Patent Document ID: 10108695
Application ID: 14816894
Patent Flag: 1

Claim One:
1. A method, comprising: receiving first data including a first text element of a digital content file, a first font size of the first text element, and a first set of page coordinates of a first bounding box that contains the first text element, the first text element including a first set of one or more characters; receiving second data including a second text element of the digital content file, a second font size of the second text element, and a second set of page coordinates of a second bounding box containing the second text element, the second text element including a second set of one or more characters; determining a first font size value indicative of the first font size and a second font size value indicative of the second font size; determining, using the first set of page coordinates, a first page location value indicating a relative position of the first bounding box on a first page of the digital content file in relation to one or more other bounding boxes on the first page; determining, using the second set of page coordinates, a second page location value indicating a relative position of the second bounding box on a second page of the digital content file in relation to one or more other bounding boxes on the second page; determining a first distance function associated with a first set of input properties, the first distance function being a non-linear combination of a font size property and a page location property; executing a first iteration of a clustering algorithm on the first data and the second data, wherein executing the first iteration of the clustering algorithm includes: associating the first text element with a first cluster; determining, by applying the first distance function to a first combination of the first font size value and the first page location value and a second combination of the second font size value and the second page location value, that a first distance between the first text element and the second text element is less than a second distance between the second text element and a third text element; and associating the second text element with the first cluster; and executing a second iteration of the clustering algorithm on the first cluster, wherein executing the second iteration of the clustering algorithm includes: determining, by applying a second distance function that is different from the first distance function to a first binary value indicating presence of a keyword in the first text element and a second binary value indicating absence of the keyword in the second text element, that a third distance between the first text element and the second text element is greater than a fourth distance between the second text element and the third text element; and partitioning the first cluster into a second cluster that includes the first text element and a third cluster that includes the second text element.