8. A method for segmenting a string comprising one or more segments into discrete segments, wherein each of the one or more segments comprises data that is at least a variant of a marker string, the method comprising: generating a similarity vector comprising a plurality of similarity values and associated locations within the string wherein a similarity value represents a comparison of the marker string and at least a portion of the string and an associated location associated with the similarity value is the location within the string of the start of the at least a portion of the string used in the comparison; identifying a set of ideal segmentation locations in the string based upon an expected number of discrete segments within the string; using the similarity vector to generate a set of candidate segmentation locations for segmenting the string based on a comparison of each of a plurality of elements of the similarity vector to a similarity value threshold obtained from a smoothed similarity vector; using the set of candidate segmentation locations and the set of ideal segmentation locations to generate the set of segmentation locations; and using the set of segmentation locations to segment the string.
8. A method for segmenting a string comprising one or more segments into discrete segments, wherein each of the one or more segments comprises data that is at least a variant of a marker string, the method comprising: generating a similarity vector comprising a plurality of similarity values and associated locations within the string wherein a similarity value represents a comparison of the marker string and at least a portion of the string and an associated location associated with the similarity value is the location within the string of the start of the at least a portion of the string used in the comparison; identifying a set of ideal segmentation locations in the string based upon an expected number of discrete segments within the string; using the similarity vector to generate a set of candidate segmentation locations for segmenting the string based on a comparison of each of a plurality of elements of the similarity vector to a similarity value threshold obtained from a smoothed similarity vector; using the set of candidate segmentation locations and the set of ideal segmentation locations to generate the set of segmentation locations; and using the set of segmentation locations to segment the string. 9. The method of claim 8 wherein the step of using the similarity vector to generate a set of candidate segmentation locations for segmenting the string based on a comparison of each of a plurality of elements of the similarity vector to a similarity value threshold obtained from a smoothed similarity vector comprises: generating the smoothed similarity vector by applying a low-pass filter to the similarity vector; calculating a histogram of similarity values from the smoothed similarity vector; calculating the similarity value threshold using the histogram of similarity values in the smoothed similarity vector and the expected number of discrete segments; and responsive to an element of the similarity vector having a similarity value that is greater than or equal to the similarity value threshold, adding the element to the set of candidate segmentation locations.