WO2019077405A1 - Procédé, dispositif et système d'identification d'éléments de données dans des structures de données - Google Patents
Procédé, dispositif et système d'identification d'éléments de données dans des structures de données Download PDFInfo
- Publication number
- WO2019077405A1 WO2019077405A1 PCT/IB2018/001258 IB2018001258W WO2019077405A1 WO 2019077405 A1 WO2019077405 A1 WO 2019077405A1 IB 2018001258 W IB2018001258 W IB 2018001258W WO 2019077405 A1 WO2019077405 A1 WO 2019077405A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- marker
- string
- sequence
- document
- markers
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/137—Hierarchical processing, e.g. outlines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/131—Fragmentation of text files, e.g. creating reusable text-blocks; Linking to fragments, e.g. using XInclude; Namespaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/40—Document-oriented image-based pattern recognition
- G06V30/41—Analysis of document content
- G06V30/414—Extracting the geometrical structure, e.g. layout tree; Block segmentation, e.g. bounding boxes for graphics or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/40—Document-oriented image-based pattern recognition
- G06V30/41—Analysis of document content
- G06V30/416—Extracting the logical structure, e.g. chapters, sections or page numbers; Identifying elements of the document, e.g. authors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/93—Document management systems
Definitions
- Embodiments of the invention are directed to a system for creating an indexing framework of an input file, such as a document, or of an input string, and, more particularly, to a system or computer implemented method for identifying data element(s) / substructure(s) in a data structure, particularly section(s) and/or numbered list(s) in a document or input document string.
- US 6,298,357 discloses a method and apparatus for extracting structure information from an unstructured electronic document. Its method includes identifying a structural type for each instance in the electronic document by examining presentation attributes associated with each instance. Presentation attributes that it examines include numbering formats, indentations, and font sizes and weights. Methods of this sort, based on formatting, style, and structural layout, limit the breadth of application. For example, such methods cannot retrieve the structure of documents with non-conforming formatting not conforming to predefined standards or completely missing, i.e., unformatted documents.
- US 9,736,331 to Zernik discloses a method for identifying sections of contracts, particularly documents originating from scanned images, i.e., documents that could possibly include noise and misleading cues.
- Zernik' s method includes (1) identifying potential section markers at the beginning of the lines of a document, (2) listing similar potential markers, and (3) identifying sequences comprising the similar potential markers.
- Zernik considers only the candidate section markers at the beginning of the lines, making Zernik' s method inapplicable, for example, to identify the structure of (i) documents in right-to-left languages, such as Arabic, Hebrew, Persian Farsi, Urdu, etc.; (ii) documents with a formatting not following the standards; and (iii) unformatted text extracted from documents, e.g., cases where the text is extracted from a document to be included in certain data structures (iii-1) with the suppression of the carriage return, (iii-2) by cut-and- paste, (iii-3) by web service to a third-party application which sends only text and receives back the structure, or the like.
- documents in right-to-left languages such as Arabic, Hebrew, Persian Farsi, Urdu, etc.
- documents with a formatting not following the standards and
- unformatted text extracted from documents e.g., cases where the text is extracted from a document to be included in certain data structures (iii-1) with
- Zernik the similarity described by Zernik is not simply based on visual recognition— otherwise Zernik could not correctly detect the similar markers, such as from a group of potential markers including "4.", “8.”, "A.”, and “B.” (given that "4.” is visually more similar to "A.” than to the other markers, and "8.” is visually more similar to "B.” than to the other markers).
- Zernik's similarity appears based on detecting the punctuation, brackets, and text preceding the markers— e.g., "Article 1" and "Article 2" would be similar.
- Zernik's method should work also in presence of typos and/or OCR import errors, e.g., Zernik's method should identify the marker "Section 1.” as similar to "Sction 2.", even if an "e” is missing in the latter marker.
- a similarity comparison should be implemented for each character set of the languages in question.
- ideographic / logographic character sets such as Chinese or Japanese
- similarity calculation algorithms are generally more complex than for an alphabetic character set.
- Embodiments of the invention provide a method of identifying the structure of documents without necessarily having to rely upon information on the formatting, the styling, and the language of the document itself. Aspects of the invention provide a method to ease the reading of the documents, especially legal documents, by automatically identifying the sections, subsections and numbered lists within them.
- Embodiments of the invention include a computer implemented method for identifying one or more data elements in an input data stream formed from an input data structure using processing enabled by a processor-executable instruction stored on a non- transitory computerized storage medium.
- This method includes identifying a marker sequence set in the input document string, the marker sequence set including a marker sequence; assigning an eligibility value to each marker sequence, the eligibility value being a number calculated using an eligibility calculation, to obtain at least one eligible marker sequence; generating output data comprising data related to the at least one eligible marker sequence; and providing the output data, such as on a human-readable interface.
- the one or more data elements include one or more selected from the group consisting of a section, a subsection, a numbered list, and an outline numbered list.
- identifying a marker sequence set in the input document string comprises identifying a marker sequence set in the input document string without operator intervention.
- the data structure is a computer-readable text document.
- identifying a marker sequence set includes storing one or more initial sequential marker(s) of the input document string in one or more first sequence array(s), where each stored initial sequential marker is in the form of first-element string; and storing one or more consecutive sequential marker(s) of the input document string in one or more second sequence array(s), wherein each stored consecutive sequential marker is consecutively congruent to at least one marker of the second sequence array(s).
- the eligibility calculation uses data related to the sequential marker(s) of each marker sequence.
- the eligibility calculation uses eligibility data of an eligibility data set, where the eligibility data set includes (a) a cardinality of a sequential marker set comprising each sequential marker, (b) a substring of a first sequential marker, (c) a string adjacent to a second sequential marker, (d) a sequential number of a third sequential marker, and (e) identification information in a wrapping string of a fourth sequential marker, of each of the marker sequences, and where the wrapping string is obtained from a first substring of the input document string.
- the method may optionally include selecting one or more eligible marker sequences and verifying at least one of a list of eligibility conditions for each of the eligible marker sequences, where each eligibility condition of the list compares an eligibility value of the eligible marker sequence to a comparison value.
- the method may also optionally include selecting one or more eligible marker sequence from the marker sequence set by verifying at least one of a list of eligibility conditions for each of the eligible marker sequences, where each eligibility condition of the list compares an eligibility value of the eligible marker sequence to a comparison value set, where the comparison value set comprises (i) a threshold value, (ii) a comparison marker value obtained from eligibility value(s) of marker sequence(s), (iii) an adaptive comparison value calculated using an adaptive threshold calculation based on the eligibility value(s), or (iv) two or more of any of these, wherein the output data comprises (i) an output string obtained from output marker caption(s) of first-output eligible sequential marker(s), (ii) output identification information of second-output eligible sequential marker(s) in an identification string obtained from a second substring of the input document string, (iii) a report value obtained from eligibility value(s) of third-output eligible sequential marker(s), or (iv) two or more of any of these.
- Some embodiments of the invention may optionally include accepting an input document, performing a first pre-treatment process on the input document, and generating the input data stream from an output of the first pre-treatment process, and may further, optionally, include detecting if at least one removable string is present in the output of the first pre-treatment process, and removing the at least one removable string, where a removable string(s) comprises one or more selected from the group consisting of a page header, a page footer, and a footnote.
- the input document string is in HTML format.
- the operation of identifying a marker sequence set in the input document string comprises identifying an internal reference to a referred sequential marker in the input document string.
- Embodiments may further include verifying parent sequential marker(s) of child sequential marker(s), from a set of parental conditions, where the set of parental conditions comprises one or more selected from the group consisting of a first parent sequential marker identifying a parent section of the input document string, a child sequential marker identifying a first subsection of the parent section, a second parent sequential marker identifying a parent subsection of the input document string, and a child sequential marker identifying a second subsection of the parent subsection.
- Other embodiments may include combining a first eligible marker sequence with a second eligible marker sequence into a third eligible marker sequence, where the third eligible marker sequence comprises (a) one or more markers of the first eligible marker sequence, and (b) one or more markers of the second eligible marker sequence.
- Embodiments of the invention may be used when the input document string includes text in two or more document languages.
- FIG. 1 An apparatus for determining document structure, including an input for accepting an input data structure; and one or more processors configured to: generate an input document string from the input data structure; identify a marker sequence set in the input document string, the marker sequence set including a marker sequence; assign an eligibility value to each marker sequence, the eligibility value being a number calculated using an eligibility calculation, to obtain at least one eligible marker sequence; generate output data comprising data related to the at least one eligible marker sequence; and provide the output data.
- the input data structure may be received through a network coupled to the apparatus and/or the output data may be provided through a network coupled to the apparatus.
- FIG. 1 is a flow chart illustrating example operations of a system for identifying data elements in data structures according to embodiments of the invention in which at most one eligible marker sequence is identified and returned;
- FIG. 2 is a flow chart illustrating example operations of a system for identifying data elements in data structures according to other embodiments of the invention in which multiple eligible marker sequences can be identified and returned;
- FIG. 3 is a flow chart illustrating example operations of a first implementation of an identifying procedure for identifying an array of marker sequences according to embodiments of the invention
- FIG. 4 is a flow chart illustrating example operations of a second implementation of an identifying procedure for identifying an array of marker sequences according to embodiments of the invention
- FIG. 5 is a representation of a first sample document that may be processed using embodiments of the invention.
- Fig. 6 is a representation of a second sample document that may be processed using embodiments of the invention.
- Fig. 7 is a representation of a third sample document that may be processed using embodiments of the invention.
- Fig. 8 is a representation of a fourth sample document that may be processed using embodiments of the invention
- Fig. 9 is a diagram illustrating example steps 1 to 6 of an execution of the first implementation of identifying procedure illustrated in Fig. 3 to identify a marker sequence set in the input document string of the first sample document;
- Fig. 10 is a diagram illustrating example continuation steps 7 to 9 and the step 16 of the execution of the first implementation of identifying procedure that begins in Fig. 9;
- Fig. 11 is a diagram illustrating alternative example steps 7-B, 13-B, 14-B and 16-B of an execution of the second implementation of identifying procedure illustrated in Fig. 4 to identify a marker sequence set in the input document string of the fourth sample document.
- Fig. 12 is a representation of a result of the processing of the first sample input document string according to embodiments of the invention.
- Fig. 13 illustrates an example visualization of an output of a computer application implementing embodiments of the invention that process the first sample input document string
- Fig. 14 is a representation of a fifth sample document that may be processed using embodiments of the invention.
- FIG. 15 illustrates an example visualization of an output of a computer application implementing embodiments of the invention that process the fifth sample input document string
- Fig. 16 is a representation of a sixth sample document that may be processed using embodiments of the invention.
- Fig. 17 is a representation of the result of an execution of the second implementation of the identifying procedure to identify a marker sequence set in the input document string of the sixth sample document according to embodiments of the invention.
- Fig. 18 is a representation of an example result of the processing of the sixth sample input document string according to embodiments of the invention.
- Fig. 19 is another representation of an example result of the processing of the sixth sample input document string according to embodiments of the invention.
- Fig. 20 is a representation of a seventh sample document that may be processed using embodiments of the invention.
- Fig. 21 is a representation of an example result of the processing of the seventh sample input document string according to embodiments of the invention.
- Fig. 22 illustrates a representation of markers of the first sample document processed by marker-lookup according to known methods of data element identification
- Fig. 23 illustrates another representation of markers of the first sample document processed by marker-lookup according to known methods of data element identification
- Fig. 24 illustrates an example representation of markers and marker sequences of the first sample document processed according to embodiments of the invention
- Fig. 25 illustrates an example representation of a best-fit marker sequence of the first sample document processed according to embodiments of the invention
- Fig. 26 illustrates an example visualization of a supplemental visualization window in which the fifth sample input document string was processed according to embodiments of the invention
- Fig. 27 is a representation of an extract of an eighth sample document that may be processed using embodiments of the invention.
- Fig. 28 is a table illustrating example markers in the form of first-element strings according to embodiments of the invention.
- Fig. 29 is a table illustrating examples of consecutively congruent markers according to embodiments of the invention.
- Fig. 30 is a table illustrating examples of intermediate-calculation values utilized by embodiments of the invention that process while processing the fifth sample input document string;
- Fig. 31 is a graph illustrating intermediate-calculation aspects of an example of implementation of an adaptive threshold calculation technique
- FIG. 32 is a block diagram illustrating an example computing system including a processor for implementing embodiments of the invention.
- FIG. 33 is a block diagram illustrating an example computing network system including a remote processor for implementing embodiments of the invention.
- Computer implemented methods can identify one or more data elements in a data structure as an input document string using processing enabled by a processor-executable instruction stored on a non-transitory computerized storage medium, the methods generally comprising: identifying a marker sequence set in the input document string, the marker sequence set comprising a marker sequence; assigning an eligibility value to each marker sequence, the eligibility value being a number calculated using an eligibility calculation to obtain at least one eligible marker sequence; generating output data comprising data related to the at least one eligible marker sequence; and providing the output data.
- Coefficient means a floating point number in the range of 0 and 1, e.g., a single precision floating point number as defined by IEEE Standard 754, preferably comprising 32 bits, although different bit-lengths are possible.
- Reading means a finite sequence of bytes, where a byte is a group of binary digits, typically eight digits.
- Substring (of a primary string) means a secondary string that is a portion of the primary string, the portion beginning from a begin-mark byte of the primary string and ending with an end-mark byte of the primary string.
- the definition of "substring” does not exclude the case where a substring is equal to its primary string.
- Superstring (of a contained string) means a containing string of which the contained string is a substring. Similarly to the previous definition of "substring”, the case where a superstring is equal to its contained string is not excluded by this definition.
- Document means any computer data that is intended to be used in either an electronic form or as printed output.
- documents may include a file in PDF format, a file from a word processor program, an HTML web page, or a string in ASCII format.
- Identification information (of a needle string in a haystack string) means computer based information suitable for identifying the needle string in the haystack string, wherein the needle string is a substring of the haystack string.
- a first example of identification information is the position of the needle string in the haystack string, i.e., the number of bytes of the haystack string that precedes the first byte of the needle string.
- a second example of identification information is a start HTML tag inserted in the haystack string at the beginning of the needle string, followed by an end HTML tag inserted in the haystack string at the end of the needle string.
- End of line means a constant string to which the function of ending the line is pre-assigned. Solely for explanatory purposes rather than limitation, the end-of-line string is herein assumed to be of a single character.
- Outline numbered list means a nested structure of simple numbered lists.
- An example of an outline numbered list is as follows: “ 1) first item; 1.1) first sub-item; 1.2) second sub-item; 2) second item ".
- “Section hierarchy” and “hierarchy” mean an arranged set of at least one section of the input document string, wherein each section of the at least one section is (i) a sibling of the sections of the at least one section excluding itself (where the sections exist); and (ii-a) a childless element, or (ii-b) a root element of a tree structure comprising at least one subsection of the input document string.
- “Sequential marker” and “marker” mean a substring of an input document string, the substring being a candidate to identify (i) a section, (ii) a subsection, (iii) an item of a simple numbered list, (iv) an item of an outline numbered list, and (v) any other element in the input document string that is useful for processing input document strings according to
- Marker content means the content of the marker string.
- a certain marker which has "2.1” as marker content, is a substring located at a certain position of the input document string, and that substring "2.1" is candidate to identify (i) a subsection, (ii) a sub-item of an outline numbered list of the input document string, and (iii) any other element in the input document string that is useful for processing input document strings according to embodiments of the invention.
- Marker caption (of a marker) means a substring of the input document string, the substring being a superstring of the marker.
- "Trimmed marker” (of a marker) means a substring of the marker content of the sequential marker, wherein (i) the first character of the substring is the first sequenced character (e.g., the decimal numbers and the alphabetical letters) of the marker content, and (ii) the last character of the substring is the last sequenced character of the marker content.
- the trimmed marker of "2.1.2)" is "2.1.2” and the trimmed marker of "(a)” is "a”.
- "Marker enclosure” (of a marker) means a string obtained by removing the trimmed marker of the marker from its marker content.
- the marker enclosure of "2.1” is an empty string
- the marker enclosure of "3.” is a dot
- the marker enclosure of "(a)” is an open parenthesis followed by a close parenthesis "()".
- Marker in the form of first-element string means a marker whose marker content is in a form commonly utilized to represent the first elements of the sequences in the documents.
- some examples of markers in the form of first- element strings are listed solely for explanatory purposes rather than limitation, e.g., the number "1" is depicted (1) in Chinese and Japanese language in the table at 2802, (2) in Hebrew language at 2804, and (3) in Arabic language at 2806.
- general sequences include (i) an ordered sequence, and (ii) a hierarchical outline sequence.
- markers consecutively congruent to a list of base markers are shown in the table of FIG. 29.
- certain couples of characters are considered interchangeable in determining the consecutive congruence. Examples of interchangeable characters in the examples of markers of FIG. 29 are the couples of characters ["1", “i”], ["2"; “Z”], and [element 2902; element 2904].
- Marker sequence means a sequence of at least one marker of the input document string, the sequence having the two distinctive properties: (1) the first marker of the sequence is in the form of first-element string; and (2) given an "i-th” marker (in which "i” is a non- negative integer number), the immediate subsequent "(i+l)-th” marker (where it exists) is consecutively congruent to the "i-th” marker.
- Eligible marker sequence means a marker sequence that is automatically selected as a sequence identifying (i) a hierarchy, (ii) a simple numbered list, and/or (iii) an outline numbered list in the input document string.
- Eligible sequential marker and "eligible marker” mean a marker of an eligible marker sequence.
- An eligible marker Q is the closest subsequent eligible marker of an eligible marker P
- the position of the eligible marker Q in the input document string is subsequent to the position of the eligible marker P, and (ii) no eligible marker is positioned between the eligible marker P and the eligible marker Q, in the input document string.
- Document error means a mistake in the input document string due, for example, to (1) an OCR error occurring in a process of converting a document into the input document string, and/or (2) a typographical error by the writer of the document from which the input document string is obtained.
- Methods according to embodiments of the invention may ease the reading of documents, especially legal documents, by automatically identifying section(s), subsection(s), and/or numbered list(s) in such documents, and using the identified document components to build a framework to be used for document interaction.
- the reader of a document such as a contract
- a computer application in reading one or more documents without having to adhere to structural formalities constraining legal texts, e.g., validity issues.
- Computer applications according to embodiments of the invention can offer the reader a set of functionalities including displaying each section and subsection of the input document in a collapsed form, switchable to an expanded form as controlled by the reader.
- the collapsed form only the sequential marker and the heading of each section, or some convenient abbreviated format, may be shown.
- the body and the related subsections e.g., in a hierarchical relationship and/or legalistic form, may also be displayed.
- Computer applications according to embodiments of the invention may alternatively or further allow the reader to easily navigate the internal reference(s) to the sequential marker by rendering them as links. After that, the reader may perform an action on one of the links to show the referenced section or subsection of the document.
- Computer applications according to embodiments of the invention may alternatively or further ease reading of numbered lists, for example by displaying the list below "according to the conditions a) condition one, b) condition two, and c) condition three", e.g., in the following extended form:
- condition one condition one
- condition two condition two
- condition three condition three
- some of the functionalities of a computer application may allow a user of the application to provide, as input document, (1) a text string that the user can, for example, (la) type in an appropriate entry field of the application, and/or (lb) copy and then paste from a source in the user's local computer; and/or (2) an input file selected from a list of candidate files.
- the herein described methods may be, in whole or in part, implemented in a web service.
- the functionalities of the web service may allow a consumer of the service to upload to a server an input document and then to receive a set of data available to be displayed in a web interface that is implemented in a web application.
- a file-processing web-service implementation some of the functionalities of the web service allow a consumer of the service to upload an input document to a server and then to receive from the server a new version of the input document that includes a table of contents.
- the advantages of the file-processing implementation compared to the ones providing a computer application are that they allow the reader to be free to use or not use a computer application each time that the reader needs to consult the document, since the new version of the document is available to be handled as a common file.
- the internal references in the table of content may be available as (a) links to the section, when the document is displayed in a digital device; or (b) page numbers, when the document is printed, for example.
- a table of contents may have a limited effectiveness in terms of ease of navigation of the document, taking into account that the table of contents is usually not visible while the body of the document is scrolled down.
- a split-screen option may vitiate some of these downsides, however.
- some of the functionalities of a web service allow a consumer of the web service to transmit to a server the web address of an input document—which can be, for example, in the form of an HTML web page— and then to receive a set of data available to be displayed in a web interface that is implemented in a web application.
- some of the functionalities of a web service allow a consumer of the web service to select an input document, for example, from a list of input documents, and then to receive a set of data— in whole or in part related to the selected input document— which are available to be displayed in a web interface that is implemented in a web application.
- Methods according to embodiments of the invention may be, in whole or in part, implemented in an extension, an add-on, a plug-in, and/or another component installed in third-party applications— for example, in viewing applications (e.g., PDF viewers) and/or in editing applications (e.g., word processors).
- viewing applications e.g., PDF viewers
- editing applications e.g., word processors
- the user of a word processor program may utilize the functionalities of a program add-on implementing the herein described methods to facilitate the navigation of the document while editing the same document.
- the user of a PDF viewer application may utilize an application extension implementing embodiments of the invention to facilitate the reading of a document while using a PDF viewer application.
- aspects of the invention take into consideration that section(s) and/or subsection(s) of most sectioned documents—especially legal documents— are marked by sequential markers. Certain conventions for arranging the sequential markers in sectioned documents are standard all over the world, usually in the interest of clarity and consistency, irrespective of the language in which the documents are written, and even in presence of bilingual and multilingual documents.
- embodiments of the invention may be applied to any document containing sections identified by the markers, with no operator intervention, i.e., automatically, and with no need to adapt to specific language(s) and/or culture(s).
- embodiments of the invention are readily extensible to (1) documents in Chinese Mandarin language in which the sections / subsections follow a decimal numeration system with no need of adaptations; and (2) documents in Chinese Mandarin language in which the sections / subsections follow a Chinese numeration system, provided that those embodiments support the Chinese numeration system by including Chinese-numeral data types, operators, functions and/or other instructions / structures.
- embodiments of the invention are readily extensible to documents in Chinese Mandarin language in which (a) the sections / subsections follow a Chinese numeration system, and (b) document error(s) may or may not affect the markers of the documents, provided that those embodiments (i) support the Chinese numeration system, and (ii) include table(s) of predefined markers consecutively congruent that support the Chinese Mandarin language— e.g., the markers shown in the row at the bottom of the table in FIG. 29. [0096] Aspects of the invention may improve the (correct) interpretation of sections in a document compared to known methods and algorithms.
- Methods according to embodiments of the invention may gain efficiency by, in a first phase, selecting all possible marker sequences and then evaluating each marker sequence globally (e.g., in the document in question), using an optimizable eligibility calculation so as to adhere as closely as possible, when desired, to the above-mentioned standard conventions for the sequential markers.
- aspects of the invention may allow automatic identification of one or more section hierarchies and distinguish them from the numbered lists of the document and/or classify the relevance of hierarchies in the document, e.g., by identifying the main hierarchy.
- embodiments of the invention may also work correctly for one or more sequential markers not positioned at the beginning of a line, due, for example, to a document error or to a specific layout of the document.
- Inventive methods as described herein may correctly identify one or more marker sequences without reliance on keyword(s) and character set adaptations in specific languages. For example, the numbers in the strings “Section 3", “Articulo IX”, “Appendice 17” and the strings in the tables of FIG. 28 and FIG. 29 are correctly interpreted as markers.
- Such independence gives embodiments of the invention several advantages compared to known methods. Such embodiments may be compatible with all languages, provided that the above- mentioned standard conventions and well-known systems of numeration, lettering, etc. are followed. This means that, in principle, inventive methods are not constrained to a restricted list of supported languages.
- Methods according to embodiments of the invention may also be more robust to document errors compared to known methods, since embodiments of the invention can correctly interpret document strings in which certain document errors occur in the vicinity of the markers and within the markers themselves. Possible false interpretations incurred by known methods, for example, due to pre-existence of a table of contents in the input document, or due to the presence of numbered footnotes, may be bypassed using embodiments of the invention.
- embodiments of the invention ingest an input document, such as a PDF file or HTML web page, and build one or more marker sequence(s) based on markers or other indicators within the document. Markers or the other indicators may indicate the beginning of a section, subsection, item of a numbered list, or any other element.
- embodiments of the invention may generate a single marker sequence or multiple marker sequences, depending on the implementation, as described below.
- a first scenario hereinafter “single result category” includes implementations returning at most one eligible marker sequence, renaming it in this case to "best-fit marker sequence”. Such implementations may aid identification of a main hierarchy (hereinafter “master hierarchy”) of sections and subsections in a sectioned document.
- This master hierarchy may correspond, for example, to the hierarchy of conditions of a contract.
- a second scenario hereinafter “multiple result category” includes implementations returning multiple eligible marker sequences. These implementations can be utilized to identify sections and subsections belonging to more than one hierarchy. Furthermore, a best- fit marker sequence, as well as a related master hierarchy, can be identified among the eligible marker sequences returned, analogously to the results of the single result category implementations.
- the input document can have several sources, e.g., an OCR process, a word processor program, or a web address; (2) the input document can be in several formats, e.g., PDF, HTML, txt, doc, and/or odt; (3) if the format is HTML or txt, the input document may be stored directly in the input document string, otherwise if the format is different from HTML and txt, the input document may be automatically converted into a HTML or txt string and then stored in the input document string; (4) generally, eligible sequential markers identified in the document string correspond to (a) a section and/or an item of a simple numbered list, if the marker is in a basic form, e.g., "(D)", "3", or "Hi.”); and (
- eligible sequential markers in the basic form described in prior point (4) correspond to subsections that follow a consecutive numeration across the section markers, as illustrated for example in the extract of document in FIG.
- each section / subsection of the document string including (a) a heading, which is a short description of each section / subsection identified by each sequential marker, immediately following the sequential marker in the document string; (b) a body, which is the full content of each section / subsection, immediately following one of (b-1) the heading (where it exists), and (b-2) the sequential marker (if the heading is missing); and (c) one or more subsections of each section / subsection, which are hierarchically arranged as children of the section / subsection— the body (b) may be missing partially or entirely, for example, in case that a section is entirely made up of subsections— ; (7) implementations of the eligibility calculation may be built as a function (hereinafter "eligibility function") returning the eligibility value of a marker sequence, wherein the eligibility value is assumed to be a number of type floating point and strictly positive; and (8) the programming language used in inventive methods may be, for example, Javascript, which is used for exemplary purposes in
- Examples of alternative structures of the output data generated by these methods include: (1) section / subsection data structure(s) (hereinafter "SSDS"), wherein each SSDS is related to (i) a section of the document, or (ii) a subsection of one of a parent section and a parent subsection of the document; (2) linear data structure(s)— i.e., ordered array(s)— of SSDS(s); (3) tree data structure(s) of SSDS(s) (hereinafter "TSDS"); and/or (4) one or more HTML output string(s) that include one or more part(s) of the input document string, where (4-a) section(s), (4-b) subsection(s), and/or (4-c) markers, are identified by identification information of HTML tag(s) in the HTML output string(s).
- SSDS section / subsection data structure(s)
- TSDS tree data structure(s) of SSDS(s)
- the first example illustrating embodiments of the invention utilizes an eligibility calculation belonging to the single result category.
- this implementation (1) renames the eligibility function to "best-fit function” and renames the eligibility value to "best-fit value”; (2) begins each section and subsection of the best-fit marker sequence from the corresponding eligible marker, and ends each section and subsection (a) at the end of the document string, if the eligible marker is the last in the best-fit marker sequence, and (b) one character before the closest subsequent eligible marker of the eligible marker, otherwise.
- the flow chart depicted in the FIG. 1, described below, represents a flow 100 of the first implementation.
- the flow 100 starts in block 102, and the input document is acquired in block 104.
- a pre-treatment process implemented in block 106, performs a format conversion of the input document to HTML if the format is different from HTML or txt.
- the output of block 106 is referred to as an input document string.
- Block 108 which is described in detail below with reference to FIG. 3, identifies the marker sequences of the marker sequence set and then stores them in an array "mS" through the execution of a first implementation of identifying procedure (hereinafter "first identifying procedure").
- Relevant aspects of the first identifying procedure 108 include: (1) sequential markers found in the document string are all collected in "mS”— meaning that, in this phase, eligible sequential markers are not yet discriminated from others markers that meet the requirements to be part of a marker sequence; (2) sequential markers are grouped in marker sequences only using the criterion of the consecutive congruence as defined herein under "marker sequence", disregarding other criteria such as, for example, the similarity of the marker sequences; and (3) each sequential marker may be grouped into more than one marker sequence.
- the array "mS”, i.e., the output of the block 108, is structured as an ordered array of full-marker data structures, each of which is related to a marker sequence of the marker sequence set and includes (1) the marker content, and (2) the identification information in the document string— herein implemented as the position of the marker in the document string— of each sequential markers of the marker sequence.
- JSON JavaScript Object Notation
- markers are in some cases referred to by their marker contents for simplicity of exposition.
- the first marker of the example of “mS” value in the immediately prior paragraph may be referred to by its marker content "1"— i.e., either as marker "1” or as " 1".
- the array "mS" is assumed to be structured in a simplified form of an ordered array of sequence arrays, wherein each of the sequence arrays: (1) is related to a marker sequence of the marker sequence set; and (2) is an ordered array of the marker contents of the markers in the marker sequence.
- each of the sequence arrays (1) is related to a marker sequence of the marker sequence set; and (2) is an ordered array of the marker contents of the markers in the marker sequence.
- JSON JSON
- a first example of the first identifying procedure is depicted in the flow chart of FIG. 3, which illustrates example operations in a flow 300.
- the output string of block 106 of FIG. 1 is automatically scanned from the beginning by a string pointer, which searches for sequential markers in the form of one of the following (hereinafter "marker forms"): (first) a first-element string; and (second) a marker consecutively congruent to at least one last element of a sequence array of "mS".
- the condition of a marker consecutively congruent to the last element of a sequence array "mS[x]" may be hereinafter referred to as a "marker consecutive to mS[x]", wherein "x" is a non-negative integer number.
- the flow 300 starts in block 302 of FIG. 3, and the output string of block 106 of FIG. 1 is assigned to the variable "dS" in block 304.
- the position "sP" of the string pointer is initialized to the value zero (0), so that it points to the beginning of "dS”; and
- the array "mS" is initialized to an empty array.
- the control of flow 300 then passes to block 308, in which, if "sP" is not equal to a conventional value that represents the end of the string "dS" (hereinafter "End Of String”), one candidate marker— of which some examples are given below— is searched in “dS” starting from the position "sP".
- candidate markers include numbers (i.e., decimal numbers, roman numerals, and numbers in non-alphabetic character sets), and numbers and letters immediately followed by a punctuation character (e.g., the dot the closed parenthesis ")", or the dash "-"). If a candidate marker is found, then the candidate marker is assigned to the variable "cM".
- the search in the string "dS” that is performed in block 308 may be implemented using regular expression match techniques.
- the following pattern "cMRX” is an example of regular expression pattern— in Javascript language— which can be utilized to select the first word occurrence of "dS” that is in the form of (1) a decimal number and, optionally, a close parenthesis ")" or a dot ".” immediately subsequent to the decimal number; or (2) a letter immediately followed by a close parenthesis or a dot.
- the pattern "cMRX" can be, for example, utilized to search the first candidate marker in a substring of the document string "dS" that begins at the position "sP" and ends at the end of "dS".
- Block 310 the control of flow 300 passes to block 310, which is based on the result of the search in 308.
- Block 310 checks for the presence of "cM”. If no candidate marker is found in block 308, the control of flow 300 passes to block 332, in which the array "mS" is returned, and finally the flow ends in block 334. Otherwise, if a candidate marker is found, the control of flow passes to block 312, which tests whether "cM" is in the first marker form— i.e., if its marker content is in the form of a first-element string. To perform such testing, the marker content can be, for example, tested against a table of predefined first- element strings such as depicted in the table shown in FIG. 28. Of course, the table shown in FIG. 28 includes only a few predefined first element strings that may be used in embodiments of the invention, and are show for explanatory purposes only.
- the value of the position "sP" of the string pointer is updated to the value of the position of the character immediately subsequent to "cM”— if such character exists— , so that if a subsequent candidate marker of "dS" is in a position immediately subsequent to "cM”, the subsequent candidate marker is found in block 308 in the next main loop of the flow 300. If a character immediately subsequent to "cM” does not exist— i.e., "cM” is at the end of "dS”— , then "sP" is updated to the value "End Of String”. After block 328, the main loop is closed and the control of flow passes back to block 308.
- Block 312 If the test of block 312 has a negative result, the control of flow 300 passes to block 316, in which an index "i”— iterating over the elements of "mS" in a subsequent first search form loop— is initialized to the value of zero (0).
- Blocks 320, 322, 324, and 326 make up the first search form loop, whose operation is (1) detecting the markers in the second marker form, and (2) appending those detected markers to "mS".
- block 320 detects whether "cM" is in the second marker form (referred to as "mF2" in FIG. 3) for the sequence array "mS[i]", which is the sequence array of "mS” indicated by the current value of the index "i” in the first search form loop. In other words, block 320 detects if candidate marker "cM” is consecutively congruent to "mS[i]".
- Block 326 determines whether the current value of the index "i" is still pointing to an element of the array "mS”. If “mS[i]" exists, the control of flow 300 loops back to block 320 and the first search form loop proceeds with the element "mS[i]”. Otherwise, if the index "i" exceeds the end of the array "mS", the first search form loop ends and the control of flow passes on to block 328.
- the first search form loop scans the sequence array of "mS" in search of one or more second-marker-form sequence array(s) for which the candidate marker "cM" is in the second marker form. Each time that a second-marker-form sequence array is found, "cM" is appended to said second-marker-form sequence array.
- a best-fit marker sequence search loop is initialized in block 112, specifically in the form of two variables, "i” and “bestFit", wherein “i” is an index iterating over the elements of "mS”, and “bestFit” contains the partial greater best-fit value found during the execution of the loop.
- the variable “bestFit” is initialized to the value "0" in block 112 to be congruent with the assumption of strict positiveness for the eligibility value.
- the best-fit function "bFF" takes as the argument the sequence array of the marker sequence of the array "mS", as indicated by the current value of the index "i" in the loop ("mS[i]"), and returns the best-fit value of the marker sequence.
- the function "bFF” is implemented so that a better fit of the marker sequence to be a best-fit marker sequence corresponds to a greater best-fit value returned.
- the main operation of block 114 involves detecting if the best-fit value of "mS[i]" is greater than or equal to the current value of "bestFit".
- Block 120 is the closing-loop block, which determines whether the current value of the index "i" is still pointing to an element of the array "mS". That is, block 120 represents an analysis for whether the element "mS[i]" exists. In the case “mS[i]” exists, the control of flow 100 loops back to block 114 and the loop proceeds with the element "mS[i]".
- the output data generated in the block 122 includes information on the best-fit marker sequence.
- the output data includes a SSDS.
- Each SSDS (1) includes the sequential marker; and (2) may include one or more of the following optional properties: (2-a) the heading, (2-b) the body, and (2-c) the subsections of the section / subsection identified by the sequential marker.
- the SSDS(s) are structured in TSDS(s) solely for simplicity of exposition.
- a number of structure-detecting techniques may be used in block 122 to detect the structure of sections and subsections in each marker sequence and generate the TSDS(s). These structure-detecting techniques are based on the fact that the markers of the marker sequences are already in a tree ordering, due the modus operandi of the first identifying procedure described with reference to FIG. 3.
- the first identifying procedure generates the marker sequences on the basis of the consecutive congruence criterion, and this criterion implies that, given (i) a marker X of a marker sequence S, and (ii) a marker Y immediately subsequent to X in S, it turns out that Y identifies a section / subsection in accordance with one of the following 3 congruence cases: (1) Y identifies the section / subsection immediately subsequent to the section / subsection identified by X; (2) Y identifies the subsection that is the first child of the section / subsection identified by X; or (3) Y identifies a section / subsection that is immediately subsequent to an ancestor section / subsection of the section / subsection identified by X.
- the marker Y immediately subsequent to X may identify (1) the subsequent subsection "1.1.2”, (2) the first-child subsection "1.1.1.1”, or (3) a section / subsection immediately subsequent to an ancestor section / subsection of "1.1.1", i.e. " 1.2" or "2".
- the structure-detecting technique may include, for example, (1) scanning each marker Y subsequent to X, and (2) detecting the relationship between X and Y through a congruence function described below.
- the TSDS is generated according to the result of the congruence function.
- relevant aspects of the document depicted in FIG. 5, are as follows: (1) the end of lines (EOL) are explicitly displayed as elements analogous to 502; (2) a number of document errors are present in the document, as described below, to simulate some borderline cases in which it is harder to correctly identify the section and subsections markers; and (3) the page numbers in footers of the document are present in the document string— i.e., the elements 504 and 506 in FIG. 5— to further increase the difficulty to identify the correct markers, although, in alternative implementations, the page numbers could be removed from the document string in the pre-treatment process of block 106.
- EOL end of lines
- the expected result of this fact pattern description illustrating embodiments of the invention according to Example 1 is the generating of a correct TSDS without incurring misinterpretations due to the document errors, the presence of page numbers, and other digits placed in certain critical positions of the document.
- the best-fit function "bFF" is implemented as a function that (1) takes as argument the element "currentPMS” of "mS”, and (2) returns the total number of elements in "currentPMS”.
- An example of Javascript code implementing function "bFF" is
- each step shown in the FIGs. 9 and 10 is marked by a label similar to element 902 of FIG. 9, and delineated by a dashed line, i.e., element 914.
- a sequential marker matching one of the marker forms is found by the first identifying procedure: in FIGs. 9 and 10 the text surrounding the marker found is shown at the right of each step label, i.e., element 906, and the marker itself is highlighted from the text with a rounded border, i.e., element 908.
- one of the following identifying-procedure operations is performed: (1) if the marker found is in the form of a first-element string, a last-generated sequence array (e.g., the element 904), which has the marker content of the marker found as unique element, is appended to "mS"; or (2) if the marker found is consecutive to a matching set of sequence arrays of "mS", the marker content of the marker found is appended to the end of each sequence array of the matching set (e.g., the marker outlined by 916).
- a last-generated sequence array e.g., the element 904
- the marker content of the marker found is appended to the end of each sequence array of the matching set (e.g., the marker outlined by 916).
- Notable positions of the string pointer when the first identifying procedure (Flow 300 of FIG. 3, described above) is executed and a description of the related actions performed by the procedure, if any, are as follows.
- step 5 of FIG. 9 the string “ii)" of “ii) the fact occurred on 4/21/2015” is recognized as marker consecutive to “mS[2]” and appended to it, whereas the strings “4", “21”, and “2015” do not match the marker forms and thus they are not appended to any sequence array mS[0], mS[l], or mS[2].
- step 6 of FIG. 9 the string “1.2” of "1.2 The debtor acknowledges indebtedness” is recognized as a marker consecutive to both "mS[0]” and “mS[l]” and appended to both of them.
- step 7 of FIG. 10 the string “1", indicating the page number of the current page of the document, is pointed by the string pointer. The string is identified as in the form of first-element string and stored in an additional sequence array "mS[3]".
- step 7 of FIG. 10 a document error is encountered by the string pointer: a space is wrongly inserted after the hundreds of the amount of debit ("1.100” is written as “1.1 00"). Therefore, the "1.1” is interpreted as a marker and appended to "mS[3]” in step 8 of FIG. 10. The subsequent string "5" of "5% per annum” is in none of the marker forms, thus it is skipped.
- step 9 of FIG. 19 the string “2.” of "Section 2. Payment” is recognized as a marker consecutive to "mS[0]”, “mS[l]", and “mS[3]", and appended to all of them.
- step 10 not depicted in FIG. 10, the string "2.1" of "2.1 The debtor agrees” is recognized as marker consecutive to “mS[0]", “mS[l]” and “mS[3]” and appended to all of them.
- the same action is performed with the subsequent string "2.2" of "2.2 The first monthly instalment” in step 11.
- step 12 the string “ 1" of " commence on Jan 1, 2018” is stored in an additional sequence array "mS[4]" since it is in the form of first-element string.
- step 13 the string “3" of "Sction 3 General” is recognized as marker consecutive to "mS[0]", “mS[l]' ⁇ and “mS[3]' ⁇ and appended to all of them.
- the first sample document in FIG. 5 is a first "stress test" for embodiments of the invention, as it contains a selection of document errors and digits in positions that may be misinterpreted by other document analysis methods.
- the result of the loop of blocks 114, 116, 118, and 120 is, as advanced in the above description of FIG. 1, the selection of the particular marker sequence with the greatest number of markers as the best-fit marker sequence and, for marker sequences with an equal number of markers, the selection of the last marker sequence found.
- the loop assigns to "bFMS" the sequence array of "mS” having the maximum number of elements and, in the event of equal numbers, the sequence array with the greatest index: in this set of facts described with reference FIGs. 9 and 10, "mS[0]” and "mS[l]" both have nine elements, thus the sequence array assigned to "bFMS" is "mS[l]".
- the output data of block 122 comprises: (1) optionally a title of the document, containing the first line of the document; (2) optionally an opening, containing the substring of the document string starting from the first line subsequent the end of the title and ending with the last line preceding the first marker; and (3) a TSDS of one or more SSDS(s).
- Each of the SSDS(s) comprises: (a) a marker caption of the marker identifying the section / subsection (hereinafter "initial marker caption"), wherein the initial marker caption starts from the beginning of line of the document string containing the marker and ends with the last character of the marker; (b) optionally a heading, equal to a substring of the document string adjacent to the end of the initial marker caption of prior point (a), the substring ending at the end of the line containing the marker (in the case where the substring exists); (c) optionally a body, equal to a substring of the document string adjacent to (i) the end of the heading of prior point (b), if the heading exists, and (ii) the end of the initial marker caption (otherwise)— the substring ending at the end of the section / subsection (where the substring exists); and (d) optionally a subsection array of SSDSs, each of which is related to a subsection having the section / subsection as the parent, where at least one subsection of the section/subsection exists.
- FIG. 12 shows a graphical representation of (1) the TSDS generated from the best-fit marker sequence found, and (2) the related sections and subsections in the input document string, which is shown in detail in element 1202 of FIG. 12.
- the document depicted in FIG. 12 has a different maximum line width due to different space constraints.
- Each marker of the best-fit marker sequence is highlighted with a circle (such as element 1206) in the document, and the related sections and subsections are depicted in the Figure with section / subsection wrappers similar to element 1204.
- each section of the TSDS is displayed in a panel as element 1304 whereas each subsection of the TSDS is displayed in a panel as the element 1312.
- the title of the document and the opening are displayed in two panels at the top of the screen.
- Each panel, except the title, can be displayed in a collapsed and expanded form, switchable one to the other through an action of the reader.
- the initial marker caption (element 1308 is displayed; and (2) at the right of the initial marker caption (a) the first words of the heading (element 1306) are displayed, if the heading exists; otherwise, (b) the first words of the body (element 1310) are displayed, if the body exists.
- the expanded form (1) a sub-panel with the full content of the body, if present, is further displayed under the initial marker caption and the heading (element 1318); and (2) the subsections of each section / subsection are displayed under the panel.
- Example 1 works well with the first fact pattern for illustrating Example 1 because in the document of FIG. 5, the first "Feb. 1" precedes “Section 1. Acknowledgment”, which illustrates that embodiments disclosed herein work correctly.
- the second fact pattern used to illustrate Example 1 shows that Example 1 (namely, the best-fit function described therein) does not work with the second sample document depicted in FIG. 6, but that a modification to Example 1 (referred to as Example 2) allows embodiments disclosed herein to overcome the difficulties of working with documents such as the one in FIG. 6.
- Example 1 The below-described second fact pattern used to illustrate Example 1 is a further borderline case, showing how embodiments of the invention can be tuned to correctly interpret an arbitrarily high number of working cases simply by utilizing alternative implementations of the eligibility calculation.
- the document string processed in this second fact pattern is based on the second sample document, shown in FIG. 6, which is purposely organized so that the identification of its sections is misinterpreted by Example 1. This shows that it is possible, in some embodiments of the invention, to implement a number of more general implementations of "bFF", with a wider range of work cases correctly interpreted, including the document string of this second fact pattern.
- the document string of this second fact pattern is nearly the same as the document illustrated in FIG. 5. The only difference in the documents illustrated in FIGs. 5 and 6 is that the first sentence of the document of FIG.
- Example 2 To avoid misinterpretations like the one described in the second fact pattern above, another embodiment, referred to herein as Example 2, includes several modifications to the embodiment of Example 1.
- the best-fit function can be utilized: (1) a best-fit function returning, for each marker sequence, the weighted average between (a) the total number of markers— as in the first implementation— ; and (b) an index of homogeneity of the positions of the markers of the sections relative to their containing lines (hereinafter "line position"); and (2) a best-fit function returning, for each marker sequence, the weighted average between (a) the total number of markers; and (b) an index based on the maximum number of equal characters immediately preceding the markers of the sections (hereinafter "maximum pre-characters number").
- Both the index of homogeneity and the maximum pre-characters number are calculated only on the markers of the sections (hereinafter "section markers") of each marker sequence, since the markers of the subsections have generally a line position and maximum pre-characters number different from the ones of the sections. It is also possible to implement alternative and more accurate indexes, for example, by calculating the average of the index calculated on the section markers and the indexes calculated on the markers of each nesting level of subsections.
- Embodiments of the invention may detect whether a marker identifies a section or a subsection— and, in case of the marker identifying a subsection, also to retrieve the nesting level of the subsection— , for example, by detecting the number of occurrences of the dot (i.e., punctuation period) in the trimmed marker of the marker.
- the dot i.e., punctuation period
- the below-described fact pattern illustrates the performance of Example 2 using, as the source of the document input string, the same document (FIG. 6) of the second fact pattern used to illustrate Example 1.
- the index of homogeneity based on the line position of the sequence array "mS[0]" is greater than the one of "mS[l]", because, in “mS[0]", the line position of the first section marker "1.” is equal to 9— given that 9 is the position of "1.” in the string "Section 1. Acknowledgment:”.
- the value 9 is nearer to those of the other section markers, which are equal to 9 for the "Section 2" and to 8 for the "Sction 3".
- the line position of the first section marker " 1" is equal to 79.
- the value 79 is significantly different from the line positions of the other section markers related to "mS[l]".
- Example 2 As a further proof of the non-dependence of embodiments of the invention on the formatting and on the style of the input documents, the process described as Example 2 is applied to the unformatted input document string generated from the third sample document of FIG. 7, which is obtained by removing all the end of lines from the document of FIG. 6.
- the document string of this second fact pattern used to illustrate Example 2 is a single line with no carriage return (which typically results in an EOL), even if in FIG. 7 it is depicted in multiple lines due to space constraints.
- the first identifying procedure described with reference to FIG. 1 is not based on the format of the document and, particularly, on the presence of the end of lines. For this reason, the result of the processing of the document string of FIG. 7 in the block 108 of FIG. 1 is still the same of the processing of the document string of FIG. 6, i.e., the result illustrated in reference 1002 of FIG. 10 and modified as in Table 1.
- Example 3 is a modified version of Example 1, set forth above.
- the set of sequence arrays provided by the first identifying procedure described with reference to FIG. 1 may not include some sequence arrays that are relevant for the purposes of a correct hierarchies' identification.
- An example of borderline case is provided in the document string generated from the sample document depicted in FIG. 8, which is nearly the same as the document string generated from the sample document of FIG. 5.
- the most notable modification of document in FIG. 5 consists in adding the line beginning with "2.3 The present terms of payment" to the end of "Section 2", said line containing a document reference to the "Section 3"— outlined by 802. It is also noted that, differently from FIG. 5 and FIG.
- the markers outlined by 802 and 804 are related, respectively, to a document reference to "Section 3" of the document , and to "Section 3" itself (hereinafter, a marker outlined by an element E of a Figure is referred to as "marker E"). If the first identifying procedure described in Example 1 processes the document of in FIG. 8, the marker 802 is appended to a sequence array, whereas the marker 804 is not. In other words, a certain sequence array "mS[y]" is populated by the first identifying procedure (flow 300 of FIG. 3) as follows:
- mS[ y ] [ “ 1.", ... , "2.2”, “2.3”, “3.”, “3.1 “, ... ], wherein the element "3.” of "mS[y]” is related to the marker 802, which identifies a document reference to "Section 3", instead of "Section 3" itself.
- the marker 804 is encountered by the string pointer and then rejected— since its place in "mS[y]” is taken by the marker 802— , thus the marker 804 is not available to be selected in any eligible marker sequence and this leads to a misinterpretation of the sections of the document.
- a second implementation of the identifying procedure (hereinafter "second identifying procedure") is described below.
- This second implementation of the identifying procedure extends the range of documents correctly interpreted by embodiments of the invention to borderline cases such as the one mentioned in the immediately preceding two paragraphs.
- this second implementation of the identifying procedure in some cases, provides a more accurate result than does the first implementation of the identifying procedure.
- Changes between the first and second implementations of the identifying procedure include: (a) adding a third marker form— defined below— to the marker forms searched in the document; and (b) adding a third identifying-procedure operation— also defined below— to the identifying-procedure operations.
- a target marker is in the third marker form if it is consecutively congruent to one or more congruent branch elements of one ore more sequence arrays (hereinafter "forked sequence array"), wherein each congruent branch element is not the last element of the forked sequence array.
- the third identifying- procedure operation (1) is performed if the target marker found by the second identifying procedure is in the third marker form, and (2) appends a branch sequence array to "mS" for each forked sequence array, wherein the branch sequence array includes (i) the elements of the forked sequence array preceding the last congruent branch element (if such elements exist), (ii) the last congruent branch element, and (iii) the target marker.
- the second identifying procedure is depicted as flow 400 in FIG. 4. It is noted that a number of the operational blocks in the flow 400 of FIG. 4 are equivalent to the same operational blocks of the flow 300 of the first identifying procedure depicted in FIG. 3.
- the blocks in each block couple of the following list of block couples are similar or equivalent: [402, 302], [404, 304], [406, 306], [408, 308], [410, 310], [412, 312], [414, 314], [416, 316], [418, 320], [420, 322], [426, 324], [428, 326], [432, 328], [434, 332], and [436, 334]. Therefore, the description of the operations of the blocks 402, 404, 406, 408, 410, 412, 414, 416, 418, 420, 426, 428, 432, 434, and 436 of FIG. 4 is analogous to the equivalent block of the first identifying procedure illustrated in FIG. 3, and thus is omitted for brevity.
- the second search form loop of the second identifying procedure which includes the blocks 418, 420, 422, 424, 426, and 428— , in comparison to the first search form loop (blocks 320, 322, 324, and 326) of the flow 300.
- the operation of the second search form loop is (1) detecting and appending to "mS" the markers in the second marker form— similarly to the operation of the first search form loop— , (2) detecting the markers in the third marker form, and (3) appending a branch sequence array to "mS" for each forked sequence array found.
- block 418 of the flow 400 detects whether "cM" is in the second marker form.
- the control of flow 400 passes to block 420— in which "cM" is appended to the sequence array
- the following operations are performed: (1) the last congruent index "LCI” of the last congruent branch element of "mS[i]” is retrieved through a call to a function “getLCI( mS[i], cM )”— described in detail below— , and (2) a branch sequence array is appended to the array "mS", wherein the branch sequence array is the result of the concatenation of (a) the subsequence of "mS[i]" starting from the first element of "mS[i]” and ending with the element of "mS[i]” that has “LCI” as its index; and (b) the target marker "cM".
- the block 422 detects that the marker 804 is in the third marker form for "mS[w]", given that "3.” is consecutively congruent to four congruent branch elements of "mS[w]”— i.e., "2", “2.1”, “2.2”, and “2.3”— and thus the flow passes to block 424.
- function "getLCI” returns the zero-based index (i.e., 6) of the last congruent branch element (i.e., "2.3") in "mS[w]". Then, in the same block 424, branch sequence array "mS[z]” is appended to "mS", wherein “mS[z]” includes (i) the markers of
- Branch sequence array "mS[z]" is thus as follows:
- Function “getLCI” performs the following operations: (1) it scans the array "mS[i]” in descending order starting from its penultimate element— whose index is equal to the length of the array less 2— ; (2) it breaks the scanning loop as soon as an element “mS[i][j]" of "mS[i]” is found, wherein “cM” is consecutively congruent to "mS[i][j]”; and then (3) it returns "j".
- This fact pattern uses the document illustrated in FIG. 8. If the second identifying procedure (flow 400 of FIG. 4) processes the document string created from the fourth sample document in FIG. 8, the steps from 1 to 6 are nearly the same of the steps from 1 to 6
- step 7-B the string pointer encounters the string "1.1” of the document error "1.1 00", and said string " 1.1” is recognized as in the third marker form, given that it is consecutively congruent to the marker "1" of "mS[0]” and to the marker "1.” of "mS[l]”— as shown in step 6 of FIG. 9. Since the forked sequence arrays "mS[0]” and “mS[l]” are identified, for each of them a branch sequence array is appended to "mS" by the second identifying procedure (flow 400 of FIG. 4).
- branch sequence array "mS[3]” is appended to “mS", wherein “mS[3]” includes the last congruent branch element “1" of “mS[0]” and the target marker " 1.1”
- branch sequence array "mS[4]” is further appended to “mS", wherein “mS[4]” includes the last congruent branch element “1.” of "mS[l]” and the target marker " 1.1”.
- both the branch sequence arrays appended in this step 7-B have no markers of the forked sequence arrays preceding the last congruent branch element— given that in this case the last congruent branch element "1.” is also the first marker of the forked sequence arrays "mS[0]" and "mS[l]".
- step 11-B also not depicted in the FIG. 11, the string " 1" of "commence on Jan 1, 2018” is recognized as in the form of first-element string, and thus stored in a further sequence array "mS[5]".
- the localization label depicted at the right of the marker appended in this step 13-B is " ⁇ Ref. ⁇ ".
- the step 14-B is the most indicative step to show the effectiveness of the second identifying procedure (FIG. 4) compared to the first identifying procedure (FIG. 3) when processing the borderline case of this fact pattern.
- the string "3.” of "Section 3. General”— outlined by 804— is recognized as in the third marker form, and the forked sequence arrays identified by the procedure are "mS[0]", “mS[l]”, “mS[3]” and "mS[4]".
- each branch sequence array includes: (i) the markers preceding the last congruent branch element "2.3", (ii) the last congruent branch element "2.3”, and (iii) the target element "3.".
- the branch sequence arrays appended in this step 14- B are thus "mS[6]' ⁇ "mS[7]' ⁇ "mS[8]” and "mS[9]".
- step 15-B is omitted for brevity from the representation in FIG. 11.
- the marker "3.1" is recognized as marker of the second marker form and appended to "mS[0]", "mS[l]' ⁇ "mS[3]' ⁇ "mS[4]", "mS[6]' ⁇ "mS[7]", "mS[8]" and
- the marker "3.2" is in turn recognized as marker of the second marker form and appended to "mS[0]", "mS[l]' ⁇ "mS[3]' ⁇ "mS[4]' ⁇ "mS[6]", "mS[7]", "mS[8]” and "mS[9]".
- the weighted average between (a) the total number of markers, and (b) the index based on the maximum pre- characters number of the sections markers is used in the best-fit function, as described in Example 2.
- the pre-characters also includes non- visible characters such as the EOL.
- T M( mS[ 5 ] ) 1 .
- the values of maximum pre-characters number MPN of the section markers of the sequence arrays are calculated as described below.
- the sequence arrays "mS[0]” and “mS[3]” have (i) the first section marker "1" which is immediately preceded by the characters "Feb. ", (ii) the second section marker "2.” which is immediately preceded by
- the maximum pre-characters number MPN of the sequence arrays are thus as in Table 3 :
- the best-fit marker sequence is the one having the maximum values of MPN in Table 3 and of TNM in Table 2, i.e. "mS[7]". Therefore, the sequence array "mS[7]" turns out to be the marker sequence correctly interpreted by this embodiment of the invention as the best-fit marker sequence, and then said sequence array is included in the output data analogously as in the first and second fact patterns illustrating Example 1, described above.
- embodiments of the invention In addition to processing left-to-right languages, such as English, embodiments of the invention also process documents in right-to-left languages.
- the document string in FIG. 20 is a document in Hebrew language, which is a right-to-left language, in which the markers of the sections and subsections are aligned to the right.
- embodiments of the invention that accord to Example 3, process the document of FIG. 20, and generate a TSDS depicted with elements such as 2106 in FIG. 21.
- the document 2102 is only partially shown, with a cut-line illustrated as 2108.
- the marker "3" (outlined with 2110) is also appended to "mS[0]" as it is recognized of the second marker form.
- the first sequence array is
- the target marker ".2.1.3” is recognized as in the third marker form, since it is consecutively congruent to the congruent branch element ".2.1.2” of "mS[0]". Consequently, the branch sequence array "mS[l]” is appended to "mS", wherein "mS[l]” is composed of (i) the markers preceding the last congruent branch element
- mS[ 1 ] [".1 “, “.1.1 “, “.1.2”, “.2”, “.2.1 “, “.2.1.1 “, “.2.1.2”, “.2.1.3”, “.2.2”], and thus that "mS[2]” is a subset array of "mS[l]", given that each marker of "mS[2]” is also in the superset array "mS[l]".
- the subset branch sequence arrays are not appended to "mS" to improve the performance, since their eligibility value, by the definition of eligibility calculation of said certain implementations, is less than the eligibility value of the corresponding superset sequence arrays.
- Example 4 uses a version of the eligibility calculation belonging to the multiple result category. This Example 4 assumes that: (1) each of the eligible marker sequences returned by Example 4 identifies a section hierarchy in the document string— the eligible marker sequences identifying the hierarchies are hereinafter referred to as "hierarchy marker sequences"— ; (2) each section and subsection— identified by an identifying eligible marker of an eligible marker sequence— begins from the identifying eligible marker, and ends (a) one character before the closest subsequent eligible marker of the identifying eligible marker— also possibly in an eligible marker sequence different from that of the identifying eligible marker— if the closest subsequent eligible marker exists, and (b) at the end of the document string, otherwise; (3) a best-fit marker sequence (identifying the master hierarchy of the document) is selected, on the basis of the eligibility value, among the eligible marker sequences identified; and (4) embodiments of the invention identify the numbered lists in the document string, and the marker sequences identifying the numbered lists are hereinafter referred to as "numbered list marker sequences”.
- Example 4 produces outputs different from the prior Examples 1, 2 and 3, thanks to a newly described flow 200, depicted in FIG. 2, which differs from the flow 100 of FIG. 1 used in prior Examples. Many corresponding operational blocks between flows 100 and 200 of FIGs 1 and 2 operate in the same or similar manner, and are not described with reference to FIG. 2 for brevity.
- Operational block 212 in addition to initializing the iterating index "i" similarly to the block 112, performs (1) initializing as empty an array "hMS", in which the hierarchy marker sequences found are intended to be stored; and (2) initializing as empty an array "nLMS”, in which the numbered list marker sequences are intended to be stored.
- Operational block 214 in principle is equivalent to FIG. 1, i.e., block 214 has the same form as block 114 of FIG. 1, but with two component replacements: "bFF" is replaced by “hF”; and “bestFit” is replaced by "hTH”.
- the hierarchy function "hF” having similar properties to the above-described "bFF”, returns the eligibility value— renamed "hierarchy value”— of the marker sequences. If the hierarchy value is greater than or equal to a predefined threshold value for the hierarchies (labeled "hTH” in FIG. 2), the control of flow 200 passes to block 216, otherwise it passes to block 218.
- Operational block 216 (as well as its analogous block 220, described below), constitutes an important distinction between the two flows of FIGs. 1 and 2. Namely, in block 216, the sequence array "mS[i]" of the currently iterating-over marker sequence is stored directly in the array "hMS”. This means that, differently from Example 1, all the marker sequences passing the test in block 214 are identified as hierarchy marker sequences.
- blocks 218 and 220 respectively differ from those of blocks 214 and 216, in the objective of blocks 218 and 220. Namely, block 218 has the same form as block 214, and block 220 has the same form as block 216, whereby while blocks 214 and 216 populate arrays of hierarchy marker sequences "hMS", blocks 218 and 220 populate arrays of numbered list marker sequences "nLMS".
- an eligibility function in this case renamed as “numbered list function" "nLF" returns the eligibility value (in this case renamed "numbered list value") of the marker sequences. If the numbered list value is greater than or equal to a predefined threshold value for the numbered lists, i.e., "nLTH" in FIG. 2, the currently iterating-over marker sequence is identified as an item of a numbered list and the control of flow 200 passes to block 220. Otherwise, the control of flow passes to block 222.
- Block 226 differs in its operation compared to corresponding block 122.
- the output data generated in block 226 includes: (1) for each eligible marker of each hierarchy marker sequence, a TSDS analogous to the one described for block 122; and (2) for each eligible marker of each numbered list marker sequence, a numbered-list data structure nearly similar to TSDS, except for the headings, which are not provided for the items of the numbered lists.
- sequence of numbers susceptible to false identification as an eligible marker sequence includes (a) the number “1” in “Sep. 1, 2017”, (b) the number “2” in “continue for 2 year/s”, and (c) the number "3" in “and 3 months” .
- the expected result of this fact pattern is the correct identification of: (i) the hierarchies and the sections and subsections (where they exist) related to each of the hierarchies, described as relevant aspect (1) two paragraphs prior; (ii) the master hierarchy mentioned in relevant aspect (1) two paragraphs prior; and (iii) the two numbered lists described as relevant aspect (4) two paragraphs prior.
- This fact pattern uses an alternative version of the first identifying procedure of operational block 208 described below.
- block 320 of FIG. 3 is replaced by a block 320A, in which the result of the test is positive if (1) "cM" is in the second marker form for the sequence array "mS[i]", and (2) the marker enclosure of "cM” is equal to the marker enclosure(s) of the marker(s) of the sequence array "mS[i]”— hereinafter the condition described at point (2) of this paragraph is referred to as "uniformity closure condition".
- a marker is appended to a marker sequence only if the marker has the same marker enclosure of the other markers that are already present in the marker sequence.
- certain embodiments of the invention may utilize the uniformity closure condition in the identifying procedure in order to, for example, achieve better performances by excluding from the marker sequence set some marker sequences that do not identify any hierarchy or numbered list in the document.
- This fact pattern uses the alternative version of the first identifying procedure of operational block 208, whose output is illustrated in Table 4.
- sequence array subsequently stored—i.e., "mS[7]”—identifies the markers of the numbered list of the parties of the agreement (in the section “1.” of the hierarchy "LEASE AGREEMENT").
- Example 5 is a modified version of Example 4, set forth above. This Example 5 describes a hierarchy function to show the generality of embodiments of the invention, which include numerous alternative implementations and embodiments. This Example 5 also shows that the embodiments' efficiency generally increases with the complexity of the eligibility calculation.
- the hierarchy function in Example 5 returns a weighted average of (1) the total number of initial markers in a marker sequence (hereinafter "initial marker number”), having no visible character between the end of line immediately preceding each of the initial marker and the initial marker itself; and (2) a coefficient of uniform occupancy (hereinafter “uniform occupancy coefficient”) of the marker sequence in the document string.
- the uniform occupancy coefficient (a) is calculated for marker sequences of at least two markers, (b) tends to 1 for the marker sequences having evenly distributed markers across the length of the document string, and (c) tends to 0 for the marker sequences having markers concentrated around one position in the document string.
- Example 5 assumes that (1) the weights of the weighted average of the hierarchy function are pre-assigned with adequate values; and (2) for the calculation of the uniform occupancy coefficient, the length of repeated dots in the table of contents is not taken into account. Disregarding the length of repeated dots does not affect the generality of embodiments according to Example 5, since the repeated dots are in a category of graphic elements commonly used and thus easy automatically recognize in document strings.
- the below-described fact pattern illustrates the performance of the Example 5, using the same document (FIG. 14) of fact pattern used to illustrate Example 4 as the source of the document input string.
- the output of operational block 208 is the same as the output of operational block 208— i.e., the sequence arrays of Table 4.
- an occupancy substring of a marker sequence is the shortest substring of the document string that contains the markers of the marker sequence
- the markers in "mS[2]” are evenly distributed along the occupancy substring of "mS[2]
- the markers in "mS[6]” are evenly distributed along the occupancy substring of "mS[6]
- the occupancy substring of "mS[6]” is longer than the occupancy substring of "mS[2]” (given that the repeated dots of the table of contents of the document in FIG. 14 are not taken into account in the calculation of the length of the occupancy substring). Consequently, the hierarchy value of "mS[6]" returned by the hierarchy function is greater than the hierarchy value of "mS[2]".
- UOC is the result of the multiplication of (1) an occupancy character coefficient OCC, by (2) a uniformity coefficient UC of each marker sequence.
- the value of OCC is the result of the division of (i) the length OSL of the occupancy substring of the marker sequence in a pre-worked document string, by (ii) the total number of characters TNC of the pre-worked document string (i.e., 2,056), wherein the pre-worked document string is obtained by removing the repeated dots in the table of contents from the document string in FIG. 14.
- the value of UC is a coefficient which is calculated as the integer number "1" less the average of the offset coefficients OSC— described hereinafter— of the inner markers of the marker sequence, wherein an inner marker of a marker sequence SQ is a marker (a) subsequent to the first maker, and (b) antecedent to the last marker of SQ.
- OSL( mS[9] ) 500, because the occupancy substring of "mS[9]” is 500 character long, where (i) the occupancy substring of "mS[9]” starts at the beginning position of the marker “I.” and ends at the ending position of the marker "II.3.” in the pre-worked document string, and (ii) each EOL in the occupancy substring is counted as 1 character long.
- UC( mS[9] ) 1 - AVG ( OSC( mS[9], 1 ) , OSC( mS[9], 2 ), OSC( mS[9], 3 ) ), where (1) AVG is the average— i.e., the arithmetic mean— function, and (2) OSC( mS[9], 1 ), OSC( mS[9], 2 ), and OSC( mS[9], 3 ) are the offset coefficients respectively of the inner markers "II", "IL L", and "II.2 ", whose calculation is described in details below.
- OSC( mS[9], 1 ) ABS( EDL( mS[9] ) - (PM( mS[9], 1 ) - PM( mS[9], 0 ) ) ) / EDL( mS[9] );
- OSC( mS[9], 2 ) ABS( EDL( mS[9] ) * 2 - (PM( mS[9], 2 ) - PM( mS[9], 0 ) ) ) / EDL( mS[9] ); and
- OSC( mS[9], 3 ) ABS( EDL( mS[9] ) * 3 - (PM( mS[9], 3 ) - PM( mS[9], 0 ) ) ) / EDL( mS[9] ).
- PM( mS[9], 1 ) - PM( mS[9], 0 ) 145;
- PM( mS[9], 2 ) - PM( mS[9], 0 ) 173; and
- PM( mS[9], 3 ) - PM( mS[9], 0 ) 338.
- Example 6 is a modified version of Example 5, set forth above.
- the numbered list value of block 218 of FIG. 2 is calculated through the numbered list function nLF as an index based on the number of characters in common at the beginning and at the end of each sequential marker (hereinafter "common characters index").
- the common characters index for example, is zero (0) if the marker sequence includes the markers “1", “2” and “3", i.e., having no characters in common.
- the common characters index for example, is equal to 2 if the marker sequence includes the markers "(a)", “(b)” and “(c)", since these markers have the characters, "(", at their beginning, and ")", at their end, in common.
- Example 6-B is a modified version of Example 6 described in the immediately prior paragraph. Differently from Example 6, Example 6-B is utilized to identify numbered lists in a document without identifying its sections and subsections.
- a modified flow 200-B utilized in Example 6-B is similar to flow 200 of FIG. 2, where (1) blocks from 202 to 212 are equivalent to blocks from 202-B to 212-B, and (2) blocks from 218 to 230 are equivalent to blocks from 218-B to 230-B of flow 200-B.
- blocks 214 and 216 are omitted from flow 200-B, so that said flow 200-B, after the initializing performed in block 212-B, passes to block 218-B, in which a numbered list function "nLF" returns the eligibility value of the marker sequences, analogously to flow 200.
- nLF returns the eligibility value of the marker sequences, analogously to flow 200.
- the flow 200-B passes to block 220-B, otherwise it passes to block 222-B.
- Example 6 can be applied to the document in FIG. 14 to identify the numbered lists present therein.
- the marker sequences that have not been identified as hierarchy marker sequences are candidates for identification as numbered list marker sequences.
- the marker sequences related to "mS[2]' ⁇ "mS[3]' ⁇ "mS[4]' ⁇ "mS[6]' ⁇ and "mS[9]" of Table 4 are interpreted as hierarchy marker sequences
- the marker sequences related to "mS[0]”, “mS[l]”, “mS[5]”, “mS[7]", and “mS[8]” of Table 4 are candidates for identification as numbered list marker sequences.
- the numbered list value returned by the numbered list function is greater for the marker sequences related to "mS[5]” and “mS[7]", whose common characters index is 1, since each ends with ")", than the numbered list values returned for the marker sequences related to "mS[0]", “mS[l]” and “mS[8]", whose common characters index is O.
- Example 7 is a modified version of Example 6, set forth above. As well as the identifying of hierarchy(s) and numbered list(s) as in Example 6, Example 7 identifies as internal references a number of reference substrings of the document string. For this
- each reference substring must not be an eligible sequential marker, such as a marker of a hierarchy marker sequence or a numbered list marker sequence. Also, each reference substring must be equal to (1) a marker content of, or (2) a trimmed marker of an eligible sequential marker.
- a reference substring array "rSA”—which includes the reference substrings— is obtained by (1) storing in a “cMA” array the candidate markers "cM” encountered by (1-a) block 308 of FIG. 3, and (1-b) block 408 of FIG. 4 in the first and second identifying procedure; and (2) storing in "rSA", after that the eligible marker sequence(s) are selected, the marker(s) "cME” of the array "cMA” that verify the reference conditions below.
- the reference conditions include (i) the marker "cME” is not included in any eligible marker sequence(s); and (ii) the marker content of "cME” is equal to (ii-1) a marker content of, or (ii- 2) a trimmed marker of at least a referred marker "rM" of an eligible marker sequence.
- Example 7 additionally recognizes strings that are not intended to act as strings to be internal references. This situation, or defect, can be tolerated in some embodiments. For example, Example 7, if applied to the document in the FIG. 14, correctly- interprets reference “clause 3" in the section "C)" of "DEFINITIONS AND
- Example 7 when applied to the document in the FIG. 14, also misidentifies as internal references some of the page numbers on the table of contents and the markers related to sequence array "mS[8]" of Table 4.
- Example 7 can incur in false positive results.
- Such false positives include text of the document string not intended by the writer of the document to be internal references, but may be misidentified by the technique of Example 7 as such.
- Example 8 is a modified version of Example 7, set forth above.
- Example 8 identifies the internal references without incurring false positive results.
- each reference substring must not be an eligible sequential marker, such as a marker of a hierarchy marker sequence or a numbered list marker sequence.
- each reference substring must be equal to (1) a marker content of, or (2) a trimmed marker of an eligible sequential marker.
- each reference substring must be immediately preceded by a keyword of a predefined cross-language reference keyword list.
- Example 8 a further third reference condition is added, where the third reference condition is verified if the marker "cME" is immediately preceded by a string that is included in a predefined reference keyword array "rKA”.
- Examples 5, 6, and 8 may be visualized using a user interface, such as that illustrated in FIG. 15.
- the output screen 1502 of FIG. 15 was produced by operations running on a computer or other processor that receives (1) the output data of this fact pattern related to the section hierarchies, and (2) the internal reference data identified by Example 8.
- the output screen 1502 which may be an example screen of a mobile phone, personal computer, or other visualization device, includes a number of hierarchies identified in the output data, as displayed in panels as element 1504. A number of sections identified are displayed in panels as element 1506, which are shorter in width than panel 1504.
- the hierarchy "GENERAL” with its sections and subsections as well as Section “6" of the hierarchy “LEASE AGREEMENT” are not shown in FIG. 15 due to space constraints.
- the title of the document in FIG. 15 is displayed in a panel at the top of the screen 1502. Each panel, except the one with the title, can be displayed in a collapsed and expanded form analogously to the visualization depicted for FIG. 13.
- FIG. 15 illustrates that the panel related to the hierarchy having the initial marker caption "TABLE OF " is collapsed.
- the numbered list of the parties in the section “ 1.” of the hierarchy "LEASE AGREEMENT” is displayed in an extended form, as indicated in 1512.
- the colored panel of the master hierarchy is partially cut out the device screen 1502, and the reader can visualized the content hidden, for example, through a scroll action on the scroll bar 1514.
- Example 9 which is a modification of Example 4, shows the generality of
- subsection markers when processing documents in which the markers of the subsections (hereinafter “subsection markers”) follow a consecutive numeration across the section markers.
- the extract of document in FIG. 27 shows an example of subsection markers (which are immediately preceded by the word “Article”) that follow a consecutive numeration across the section markers (which are immediately preceded by the word “Section”).
- the occurrences of word “Section” followed by the section markers are outlined by solid outlines such as 2702, whereas occurrences of "Article” followed by the subsection markers are outlined by dashed outlines such as 2704.
- the hierarchy function of Example 9 returns a weighted average of (1) the index of homogeneity of the line positions; and (2) the uniform occupancy coefficient.
- Example 9 after identifying the hierarchy marker sequences, uses a hierarchy combining technique described in this paragraph.
- the hierarchy-combining technique first detects if a positional overlap condition applies to two or more hierarchy marker sequences, wherein the positional overlap condition is verified for two marker sequences SI and S2 if the position of at least one marker of SI is between the position of two markers of S2. If the positional overlap condition is verified for two hierarchy marker sequences SI and S2, the hierarchy combining technique combines the markers of SI and S2 basing on their position so that to obtain a third hierarchy marker sequence S3, which includes the markers of SI and S2.
- the set of hierarchy marker sequences includes (i) a section marker sequence including the section markers, and (ii) a subsection marker sequence including the subsection markers.
- the section marker sequence includes the section markers "1.", “2.”, and “3.”
- the subsection marker sequence includes the subsection markers "1.", “2.”, “3.”, “4.”, "5.”, and "6.”.
- the markers that identify (1) the sections, (2) the subsections, and (3) the numbered list of the document are outlined with solid marker outlines such as 1804. Furthermore, through connectors such as 1808, (i) the outlines of the section markers are connected with element "HI” (i.e., 1810), (ii) the outlines of the subsection markers are connected with element ⁇ 2", and (iii) the outlines of the markers of the numbered list (hereinafter “numbered list markers”) are connected with element " L" (i.e., 1818).
- Embodiments of the invention according to Example 9 identify the marker sequences connected with "HI” and "H2" as hierarchy marker sequences, as described below.
- sequence arrays depicted in FIG. 17 are the output of the second identifying procedure, described above with reference to FIG. 4.
- each sequence array is depicted with a sequence table such as 1706, which differs from analogous representations of the sequence arrays in FIG. 9, 10 and 11.
- Each sequence table illustrated in FIG. 17 includes
- an identifier of the depicted sequence array (which is placed at the top), (ii) the marker contents of the markers of the sequence array (which are depicted in a left column), and (iii) a context superstring of the corresponding markers of the left column (which is depicted in a right column).
- the context superstrings of the section markers e.g., the string outlined by 1708
- the context superstrings of the subsection markers e.g. the string outlined by 1702
- the context superstrings of the numbered list markers can be distinguished from the other markers since they have two spaces at their beginning, and also because they include numeric characters.
- the context superstrings of the markers not belonging to the marker categories of (a) section markers, (b) subsection markers, and (c) numbered list markers e.g. the string outlined by 1704
- the markers not belonging to the marker categories listed in this paragraph are referred to as "text markers”.
- the first sequence array "mS[0]” has (1) a section marker as first element of the array, and (2) a sequence of subsection markers as subsequent elements.
- the subsequent sequence array “mS[l]” has (1) the text marker 1806— outlined in FIG. 18— as first element, and (2) the same sequence of subsection markers of "mS[0]” as subsequent elements.
- sequence array "mS[2]” is entirely composed of a sequence of subsection markers. It is noted that the elements subsequent to the first element of the sequence arrays "mS[0]", “mS[l]” and “mS[2]” are recognized of the second marker form and thus sequentially appended to said sequence arrays by the second identifying procedure.
- Sequence array "mS[3]” is composed of the text marker 1812 and of two subsequent section markers. Similarly to “mS[3]", “mS[4]” is also composed of a text marker— which is not visible in 1802 due to to space constraints— , and two subsequent section markers, which are the same section markers of "mS[3]".
- operational block 422 will, at the appropriate time, identify the section marker 1816 as according to the third marker form, and thus for each of a set of forked sequence arrays identified in FIG. 17— i.e., "mS[0]", “mS[l]” and “mS[2]”— a branch sequence array is appended to "mS”.
- branch sequence array "mS[5]” includes the first element of “mS[0]” and 1816
- branch sequence array “mS[6]” includes the first element of “mS[l]” and 1816
- branch sequence array “mS[7]” includes the first element of "mS[2]” and 1816.
- the section marker 1822 is appended to a set of sequence arrays including "mS[5]”, “mS[6]” and "mS[7]”. Consequently, "mS[6]” is entirely composed of section markers.
- sequence array "mS[8]” is composed of the single text marker 1820, and sequence array “mS[9]” includes the numbered list markers from “(1. )” to "(5. )”.
- the hierarchy function returns a weighted average of (1) index of homogeneity of the line positions; and (2) the uniform occupancy coefficient.
- the line positions of the section markers is equal to 1
- the line positions of the subsection markers is equal to 2
- the line positions of the numbered list markers is also equal to 2
- the line positions of the text markers is greater than 2. Therefore, the greatest values of the index of homogeneity of the line positions are taken on by the sequence arrays entirely composed of a sequence of two or more markers of the same marker category, i.e., "mS[2]", “mS[5]' ⁇ and "mS[9]".
- the hierarchy combining technique detects that the positional overlap condition is verified for hierarchies "HI” and "H2", and then, basing on the marker positions, a combined marker sequence H3 is obtained. Subsequently, through a congruence function based on the marker positions, the TSDS depicted in FIG. 19 is generated.
- the document of this Example 9 is shown in 1904
- the markers of the hierarchy marker sequences are outlined with outlines such as 1906
- the TSDS is shown with section / subsection wrappers similar to element 1902. It is noted that, in FIG. 19, the sections and subsections of the TSDS are shown in decimal numbers and dot-notation solely for elucidative purposes.
- the numbered list function identifies the sequence array "mS[9]" as numbered list marker sequence, since its common characters index is greater than the common characters index of the other sequence arrays, given that the markers in the sequence array have the characters "(", at their beginning, and ")", at their end, in common.
- numbered list " L”— depicted in FIG. 18— is correctly identified as numbered list marker sequence.
- Embodiments of the invention according to Example 10 use an adaptation of the eligibility calculation.
- Example 10 is analogous to Example 5, except that the threshold value "hTH" is calculated with the adaptive threshold calculation technique.
- the threshold value has a predefined constant value.
- the adaptive threshold calculation technique may, for example, calculate the section threshold value by multiplying the maximum value of the eligibility values of the marker sequences by a predefined threshold coefficient.
- the adaptive threshold calculation technique is applied to the document in FIG. 14, wherein it is assumed that the eligibility values of the marker sequences of Table 4 are depicted in the column "WA" of the table of FIG. 30.
- the value of "hTH” is calculated by multiplying the maximum value of eligibility value in the table (i.e., 1.139, related to the marker sequence "mS[6]” of Table 4) by a pre- assigned factor equal to 0.1.
- the adaptive threshold calculation technique may, for example, interpolate the eligibility values of the marker sequences with a curve from statistical distribution fitting a model of distribution of the eligibility values.
- the section threshold value is then calculated utilizing one or more parameter(s) of the curve.
- a statistical distribution curve may be employed to interpolate eligibility values within the adaptive threshold calculation technique. For instance, consider applying the adaptive threshold calculation to the document in FIG. 14 wherein the eligibility values of the marker sequences of Table 4 are still the WA values depicted in the table of FIG. 30. For example, in a first operation of an interpolating method, the marker sequences of FIG. 30 are sorted by their corresponding eligibility value WA in descending order. The marker sequences sorted as in the first operation are depicted in graph of FIG. 31 as elements similar to 3102, wherein (1) the marker sequence identifiers are represented in the X axis, and (2) the WA values of the corresponding marker sequences are the values of elements 3102 on the Y axis.
- the WA values of FIG. 31 are approximately interpolated with a Normal Distribution function g(x), wherein it is assumed that the position on the X axis of "mS[6]” is 0.0, the position of "mS[2]” is 1.0 , the position of "mS[9]” is 2.0 , the position of "mS[4]” is 3.0 , the position of "mS[3]” is 4.0, the position of "mS[0]” is 5.0 , the position of "mS[5]” is 6.0 , the position of "mS[7]” is 7.0 , the position of "mS[8]” is 8.0, and the position of "mS[l]” is 9.0.
- g(x) Normal Distribution function
- the value of the Normal Distribution function calculated in NVX— i.e., g(NVX)— is assigned to "hTH". Said value of "hTH”— i.e., approximately 0.154— , still leads to a correct interpretation of the hierarchy marker sequences.
- results comparable to those described in the immediately preceding paragraph can be achieved with an alternative technique, which is a simplification of those above.
- the value of "hTH” is calculated by multiplying the arithmetic mean of the WA values (i.e., approximately 0.349) by a pre-assigned coefficient (e.g., 0.45).
- the value of "hTH” obtained through said alternative technique—i.e., 0.157— is close to the "hTH" value obtained in the immediately prior paragraph, thus it also leads to a correct interpretation of the hierarchy marker sequences.
- Embodiments of the invention can be applied also to document strings in HTML format, given certain modifications to support a HTML document string.
- One such modification is that the entities "line” and "EOL” are re-defined according to the HTML standards, e.g., to take account of the HTML tags "br", "p” and "div”.
- a further HTML modification is that the index of homogeneity, the maximum pre-characters number, and the uniform occupancy coefficient are calculated on a second document string obtained from the input document string.
- Obtaining the second document string from the input document string involves (a) scanning the input document string to identify certain HTML tags, elements, and attributes; and (b) if any HTML tag, element, or attribute is found, removing all found from the second document string.
- embodiments of the invention include unconventional and innovative approaches to the problem of identifying the sections and subsections in a document. As described above, some embodiments of the invention include (1) identifying a number of marker sequences of a document string (instead of identifying single markers as in the methods to date), and (2) performing— in phases separated from the identifying of the prior point (1)— the selection of one or more eligible marker sequences.
- FIG. 22 an illustration of the processing of certain key steps of the marker-lookup methods is depicted.
- a marker-identifying step of the first marker-lookup method the markers at the beginning of the lines are identified as potential markers.
- the page numbers, such as the ones marked with the shape 2208, are excluded from the list of potential markers using a page-excluding technique.
- similar potential markers i.e., potential markers that are similar to each other— are grouped together in marker group(s).
- sequences of markers are identified in the marker groups.
- the markers of the sequences of markers are combined together to produce a marker structure.
- a limitation of the first marker-lookup method when processing the document of FIG. 5 is in the concept of potential marker. Due to the restriction that the potential markers identified in the marker-identifying step are at the beginning of the lines of the document, in the marker-lookup methods the definition of marker is extended in order to correctly identify also the markers immediately preceded by keywords— e.g., "Section”, "Article”, etc.— commonly used in sectioned documents (hereinafter such markers are referred to as
- a second marker-lookup method comprises the same steps of the first marker-lookup method with a modification to the assumption of the keywords memorized in the predefined keyword table, in order to overcome the issues that lead to the misinterpretation of the first marker-lookup method.
- a word-position rule is used to identify the compound markers, i.e., a compound marker is identified as potential marker if any single word is between (1) the marker of the compound marker, and (2) the beginning of the line containing the marker.
- the markers outlined with the outlines similar to 2204 are identified as potential markers, including the marker "Feb. 1" outlined by 2202.
- a page-excluding technique that excludes the page numbers from the potential markers, is also used in the second marker-lookup method.
- a similarity technique is used in the marker-grouping step of the marker-lookup methods. This similarity technique recognizes the markers “Section 1.", “Section 2.” and “Sction 3” as similar markers and groups them in a first marker group. Furthermore, the same technique groups together the markers “ 1.1” (i.e., marker 2206), “ 1.2”, “ 1.1” (i.e., marker 2210), "2.1", “2.2”, “3.1”, and “3.2” in a second marker group. Lastly, the similarity technique assigns (1) the marker “Feb. 1” to a third marker group, and (2) the markers "i)” and “ii)” to a fourth marker group.
- sequencing techniques identify group sequences in the first, the second, and the fourth marker groups. It is noted that the group sequence identified in the second marker group includes the markers of the second marker group excluding marker 2210.
- a constructing technique combines at least the markers of the first marker group together with the markers of the second marker group, so as to identify the structure depicted in FIG. 23 with shapes such as 2302.
- FIG. 24 The approach of identifying the marker sequences first, used in embodiments of the invention, is illustrated in FIG. 24 to compare it with the approach of the marker-lookup methods described above.
- the marker sequences that are identified in the first fact pattern to illustrate Example 1 are depicted with (1) marker outlines— such as the 2410— , and (2) sequence connectors— such as 2402 .
- FIG. 24 the result of the first identifying procedure processing the document string of Example 1— depicted in 1002 of FIG. 10 is shown.
- Sequence connectors depicted with different line styles are used to mark the sequence arrays listed in 1002, as described in details below.
- the sequence array "mS[l]" is selected as best-fit marker sequence after that the marker sequences are identified.
- the best-fit marker sequence is depicted with marker outlines such as 2504 and with connectors similar to 2502 .
- the TSDS generated in the fact pattern of Example 1, using the congruence function described therein, is depicted in FIG. 12 .
- the first marker-lookup method in which the keywords of the compound markers are identified by means of the predefined keyword table, is consequently affected by poor robustness to document errors. For example, if an OCR or a typographical error affects a compound marker— e.g., the marker "Sction 3" of FIG. 5— , the keyword of the affected compound marker cannot be found in the predefined keyword table, and thus cannot be identified. Furthermore, the first marker-lookup method is affected by a dependence on the language and on the character set used in the document— since the predefined keyword table is language-specific— , which is reflected in a greater difficulty in implementing the support of multiple languages of the methods to date.
- the second marker-lookup method overcomes said first limitation by means of the word-position rule, nevertheless a second limitation of the marker-lookup methods is still in a dependence of said methods on the language and character set of the document, due to the different language-specific rules and conventions for the compound markers in languages such as, for example, the Chinese Mandarin language described in FIG. 16.
- the page-excluding techniques are affected by a further limitation whereby the identifying of the page numbers is also dependant on the document format and on the document language— e.g., in case of page-number text such as "Page 3 of 12".
- the marker-lookup methods may incur (1) poor robustness to document errors, where such errors affect the text page-number text; (2) dependence on the language and character set; and (3) dependence on the document format— e.g., when documents have a complex and structured format.
- the known methods can, for example, (1) extract a marker pattern from each potential marker, wherein the marker pattern is composed of fixed part(s) and sequenced part(s); and (2) perform a number of similarity comparisons between couples of marker patterns.
- a similarity comparison function detects whether a potential marker is similar to the potential markers of certain target marker group or not.
- the similarity comparison function uses similarity techniques to detect the similarity between (a) the potential marker, and (b) a subsidiary marker of the target marker group.
- Poor performances of the marker-grouping step may arise, for example, from (1) a lengthy document in which the number of the potential markers is 100 or more— and consequently the comparisons performed can reach the number of 4.950— ; (2) a deeply structured document, in which several marker patterns have complex structure of fixed and sequenced parts; and/or (3) a document in a non-alphabetic language, for which the similarity comparison functions have generally performances poorer than for the alphabetic ones.
- the sequencing techniques process the sequenced parts of the marker patterns of each marker group in order to identify the group sequence(s) in each marker group.
- the sequencing techniques are affected by a risk of poor performances similar to the one that affects the similarity techniques, even if it is assumed herein that techniques among the most efficient are used to identify sequences of markers each marker group.
- the following sequencing technique may be applied to each marker group: first, the markers of the marker group are sorted in ascending order according to the type of the sequenced part(s) of the marker patterns, and then each marker of the marker group is compared with the subsequent marker (if such a marker exists) in order to detect if the two markers are sequential.
- the time complexity of the most performant sorting algorithms e.g. Merge Sort, is 0(n log n), wherein "n” in this case is the number of markers of the marker groups.
- the constructing techniques process the markers of the marker groups to identify a structure of markers.
- the constructing techniques have as input data (1) the markers of each group; and (2) the position in the document of each marker, which is crucial for detecting the dependency relations between the marker groups in case of document with multiple hierarchies.
- An example of document for which the position of the markers is used in the constructing techniques is a multiple-hierarchies document with (1) a first hierarchy of sections / subsections, including the markers "1", “1.1”, “ 1.2", “1.3”, “1.4” and "2"; and (2) a second hierarchy placed below the end of the first, the second hierarchy including the markers "1", "1.1", and " 1.2".
- a sequencing technique of the methods to date identifies the following sequences:
- the constructing techniques may incur a risk of poor performances due to the number of detections of dependence relationships performed between the markers of the sequences of markers, which, especially in case of document with several hierarchies, can reach, for each sequence of marker, M * (M -1) / 2— wherein M is the number of markers in the sequence of markers. For this reason, the time complexity of the constructing techniques is 0(n2) .
- the identifying procedure of embodiments of the invention is indeed based on scanning the document string in search of (1) a marker in the form of first-element string, or (2) a marker consecutively congruent to the last markers of each sequence array.
- each operation of the main loop of the modified version is performed only one time for each marker sequence encountered in the scanning process.
- a set of acceptable markers is calculated each time that a marker is detected either in "mFl" or in "mF2" of FIG.
- the set of acceptable markers includes (1) the markers in the form of first-element string, and (2) the markers consecutively congruent to the last markers of each sequence array. Consequently, the time complexity of the third identifying procedure is O(n), i.e., it increases linearly with the number of markers of the document.
- the time complexity of the second identifying procedure of Example 3 is 0(n3)— given that block 422 of FIG. 4 performs a scan of the "mS[i]" elements that potentially involves all the elements except the last.
- fourth identifying procedure certain hashing and indirect referencing techniques are used, for example, to obtain the same result of the second identifying procedure with improved performances.
- the appending of certain branch sequence arrays to "mS” is bypassed in case, for example, of duplicate sequence arrays or of subset branch sequence arrays— as described in the second fact pattern illustrating Example 3.
- identifying procedures there is no limitation on the languages and character sets supported in the implementations of the identifying procedures given that, for example, a character set can be further supported in the identifying procedures by, where it is needed, (1) populating accordingly predefined table(s) of (1-a) first-element strings, and/or (1-b) markers consecutively congruent; and/or (2) supporting the numeration system of the character set.
- the identifying procedures also supports the right-to-left languages with no need of adaptations— as shown in with reference to the processing of FIG. 16— , since these procedures are not affected by the restriction of identifying only the markers at the beginning of the lines.
- an implementation of the identifying procedures supporting, for example, (1) a first language with a first character set, and (2) a second language with a second character set further identifies the markers of a bilingual document in which both the first and second language are used together.
- embodiments of the invention are more robust to the document errors—e.g. "Sction 3" of Example 1— and to the formatting/style document issues than the known methods.
- the robustness to the document errors is because the identifying procedures identify exclusively the sequential markers, and not the compound markers as the methods to date do.
- Embodiments of the invention support a wide range of implementations and of implementation parameters, which allow tuning the features of the embodiments to (a) correctly interpret the greatest possible number of documents, and (b) support various options of identification of sections, subsections, and numbered lists in a document. Since embodiments according to Example 1 is one of the simplest possible, albeit of proven efficacy, it is utilized as a basis for comparison with the methods to date.
- the time complexity of the step of the eligibility calculation is linear with the number of marker sequences identified, since it assigns an eligibility value to each sequence array.
- the computation time is further reduced given that the best-fit function is simply a function returning the number of elements of the sequence arrays.
- the time complexity of the step in which the eligible marker sequence is selected is also linear with the number of marker sequences identified.
- page-excluding techniques are not required in embodiments of the invention, which exclude the page numbers from the set of eligible marker sequences as a function of the operation of those embodiments themselves.
- the page numbers of the documents are identified as markers and stored in the marker sequences "mS[3]” and "mS[4]” through the first identifying procedure, and then they are excluded from the set of eligible marker sequence, i.e., neither "mS[3]” nor "mS[4]" is selected as best-fit marker sequence.
- Implementations of similarity techniques and of sequencing techniques are also not required for practicing the invention, given that by executing the identifying procedures according to embodiments of the invention, the markers are grouped using the criterion of consecutive congruence. As described in detail below, if the identifying procedures are compared with the similarity and sequencing techniques, they (1) present significant improvements, and (2) do not face the above-described limitations. [0387] A noticeable advantage of the identifying procedures in terms of time complexity lies in the fact that the sequence arrays are populated while the document is scanned, so that the markers of the sequence arrays are in the tree ordering and do not need to be further sorted.
- Example 11 embodiments of the invention are implemented as an add-on, or adjunct to a word processor program.
- FIG. 26 illustrates a user screen to a word processor program 2602.
- the user of the word processor program 2602 utilizes an add-on viewer section 2604 to navigate the document of FIG. 13 directly from the panel.
- Embodiments of the invention identify, in real time, the section hierarchies while the user simultaneously edits the document, i.e., each time that the user performs an edit action in the text of the document.
- One of the features of embodiments of the invention is (1) identifying the marker sequences in a first step, and then (2) assign an eligibility value in a second step.
- One of the benefits of this feature— as described in details below— is that it allows embodiments of the invention to perform quickly enough to operate in or near "realtime", within the add-on to the word processor program 2602.
- the editing of text generally involves small text modifications at a time, and most times they do not affect any of the markers identified by embodiments of the invention. Namely, a few text modifications involve a single marker which is added, edited, or removed by the user; and even less text modifications involve two or more markers at a time. Consequently, at each text
- an exemplary system includes a computing device 3200, including a processing unit (CPU or processor) 3220 and a system bus 3210 that couples various system components including the input device 3290 and the output device 3270 to the processor 3220.
- the system 3200 can include a cache 3222 of high speed memory connected directly with, in close proximity to, or integrated as part of the processor 3220.
- the system 3200 copies data from the memory 3230 and/or the storage device 3260 to the cache 3222 for quick access by the processor 3220. In this way, the cache provides a performance boost that avoids processor 3220 delays while waiting for data.
- These and other modules can control or be configured to control the processor 3220 to perform various actions.
- the memory 3230 can include multiple different types of memory with different performance characteristics. It can be appreciated that the disclosure may operate on a computing device 3200 with more than one processor 3220 or on a group or cluster of computing devices networked together to provide greater processing capability.
- the processor 3220 can include any processor and a hardware module or software module, such as module 1 3262, module 2 3264, and module 3 3266 stored in storage device 3260, configured to control the processor 3220 as well as a special-purpose processor where some or all software instructions used to implement embodiments of the invention are incorporated into the actual processor design.
- the processor 3220 may essentially be a completely self- contained computing system, containing multiple cores or processors, a bus, memory controller, cache, etc.
- a multi-core processor may be symmetric or asymmetric.
- the system bus 3210 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures.
- a basic input/output (BIOS) stored in ROM 3240 or the like may provide the basic routine that helps to transfer information between elements within the computing device 3200, such as during start-up.
- the computing device 3200 further includes storage devices 3260 such as a hard disk drive, a magnetic disk drive, an optical disk drive, a solid state drive, a tape drive or the like.
- the storage device 3260 can include software modules 3262, 3264, 3266 for controlling the processor 3220. Other hardware or software modules are contemplated.
- the storage device 3260 is connected to the system bus 3210 by a drive interface.
- the drives and the associated computer readable storage media provide nonvolatile storage of computer readable instructions, data structures, program modules and other data for the computing device 3200.
- a hardware module that performs a particular function includes the software component stored in a non-transitory computer-readable medium in connection with the necessary hardware components, such as the processor 3220, bus 3210, display 3270, and so forth, to carry out the function.
- the basic components are known to those of skill in the art and appropriate variations are contemplated depending on the type of device, such as whether the device 3200 is a small, handheld computing device, a desktop computer, or a computer server.
- Non-transitory computer- readable storage media expressly exclude media such as energy, carrier signals,
- an input device 3290 represents any number of input mechanisms, such as a microphone for speech, a touch- sensitive screen for gesture or graphical input, keyboard, mouse, motion input, speech and so forth.
- An output device 3270 can also be one or more of a number of output mechanisms known to those of skill in the art.
- multimodal systems enable a user to provide multiple types of input to communicate with the computing device 3200.
- the communications interface 3280 generally governs and manages the user input and system output. There is no restriction on operating on any particular hardware arrangement and therefore the basic features here may easily be substituted for improved hardware or firmware arrangements as they are developed.
- the illustrative system embodiment is presented as including individual functional blocks including functional blocks labeled as a "processor" or processor 3220.
- the functions these blocks represent may be provided through the use of either shared or dedicated hardware, including, but not limited to, hardware capable of executing software and hardware, such as a processor 3220, that is purpose-built to operate as an equivalent to software executing on a processor.
- the functions of one or more processors presented in FIG. 32 may be provided by a single shared processor or multiple processors. (Use of the term "processor” should not be construed to refer exclusively to hardware capable of executing software.)
- Illustrative embodiments may include
- VLSI Very large scale integration
- FIG. 32 can practice all or part of the recited methods, can be a part of the recited systems, and/or can operate according to instructions in the recited non-transitory computer-readable storage media.
- Such logical operations can be implemented as modules configured to control the processor 3220 to perform particular functions according to the programming of the module.
- FIG. 32 illustrates three modules Modi 3262, Mod2 3264 and Mod3 3266 which are modules configured to control the processor 3220.
- the computer 3292 can be coupled to an analog computer 3294 via the controller 3293.
- the analog computer 3294 is a quantum computer and the computer 3292 is a classical computer.
- a user operating the computer 3200 first uses the input device 3290, such as a touchscreen interface on a hand-held device, to open an application that implements embodiments of the invention. Opening the application causes a sequence of computer implemented steps, operations, or procedures to be retrieved from a storage location, such as storage device 3260, and can be stored locally in another component of the computer 3200, such as the memory 3230, RAM 3250, and/or cache 3222. Then, the program initiates by loading instructions to the processor 3220, which steps through the instructions in an order controlled by the program itself.
- a storage location such as storage device 3260
- the program initiates by loading instructions to the processor 3220, which steps through the instructions in an order controlled by the program itself.
- the user may (1) enter and/or paste a document to be analyzed— where said document is in form of text string— through an appropriate entry field of an user interface of the program; and/or (2) direct the program where to find a document to be analyzed, which may be stored on the computer 3200, or may be received through the input device 3290 or communication interface 3280.
- Embodiments of the invention may generate output for the user, as described above, which may be presented on the output device 3270 or elsewhere.
- FIG. 32 illustrates a single computer 3200
- the examples discussed above, however, are not limited to being performed on a single computer 3200. Rather, in some embodiments, the examples may be performed on a remote processor 3300, as illustrated in FIG. 33, which communicates with a local device 3302.
- the remote processor 3300 may connect to one or more local devices 3302, such as a user device, through a network
- the remote processor 3300 may be any computing device that can connect to a network, one example of which is computer 3200 illustrated in FIG. 32.
- the local device 3302 may also be any computing device that can connect to a network, one example of which is the computer 3200.
- the network 3304 may be any network which allows the remote processor 3300 and the local device 3302 to communicate with each other, including, but not limited to, a personal area network (PAN), a local area network (LAN), a wireless local area network (WLAN), a wide area network (WAN), etc.
- PAN personal area network
- LAN local area network
- WLAN wireless local area network
- WAN wide area network
- a user can upload an input file to the remote processor 3300 through the local device 3302.
- the local device 3302 transfers the input file for processing to the remote processor 3300 through the network 3304.
- a user can transmit an input string to the remote processor 3300 through the local device 3302.
- the local device 3302 transfers the input string for processing to the remote processor 3300 through the network 3304.
- a user can transmit a web address string to the remote processor 3300 through the local device 3302.
- the local device 3302 transfers the web address string for processing to the remote processor 3300 through the network 3304, and the remote processor 3300 obtains an input file and/or an input string from a third-party processor 3306, where the input file and/or the input string may be stored or not in a remote storage 3308 of the remote processor 3300.
- the remote processor 3300 receives the input file and/or the input string and builds marker sequence arrays or other operations according to any one of the examples discussed above.
- the user can transmit a selection of an input file and/or an input string to the processor 3300 through the local device 3302.
- the remote processor 3300 (1) receives the selection of the input file and/or of the input string; (2) obtains an input file and/or an input string from a third party processor 3306, where the input file and/or the input string is not in the remote storage 3308 of the remote processor 3300; and (3) builds marker sequence arrays or other operations according to any one of the examples discussed above.
- the remote processor 3300 may then transmit an output file, or output data, based on the indexing of the input file and/or input string to the local device 3302 for viewing on a display of the local device 3302.
- operations for processing of the document may be shared between both the remote processor 3300 and the local device 3302.
- the local device 3302 may perform some operations of embodiments of the invention while the remote processor 3300 performs the remainder of the operations used to implement embodiments of the invention.
- An embodiment of the technologies may include any one ore more, and any combination of, the example embodiments described below.
- Example embodiment 1 includes a computer implemented method for identifying one or more data elements in an input data stream formed from an input data structure using processing enabled by a processor-executable instruction stored on a non-transitory computerized storage medium, the method comprising: identifying a marker sequence set in the input document string, the marker sequence set including a marker sequence; assigning an eligibility value to each marker sequence, the eligibility value being a number calculated using an eligibility calculation, to obtain at least one eligible marker sequence; generating output data comprising data related to the at least one eligible marker sequence; and providing the output data.
- Example embodiment 2 includes aspects of example embodiment 1, wherein the one or more data elements include one or more selected from the group consisting of a section, a subsection, a numbered list, and an outline numbered list.
- Example embodiment 3 includes aspects of example embodiments 1-2, and is additionally capable of identifying a marker sequence set in the input document string without operator intervention.
- Example embodiment 4 includes aspects of preceding example embodiments 1-3 wherein the providing includes displaying the output data on a human-readable interface.
- Example embodiment 5 includes aspects of preceding example embodiments 1-4 wherein the identifying of a marker sequence set comprises: storing one or more initial sequential marker(s) of the input document string in one or more first sequence array(s), wherein each stored initial sequential marker is in the form of first-element string; and storing one or more consecutive sequential marker(s) of the input document string in one or more second sequence array(s), wherein each stored consecutive sequential marker is consecutively congruent to at least one marker of the second sequence array (s).
- Example embodiment 6 includes aspects of preceding example embodiments 1-5 wherein the eligibility calculation uses data related to the sequential marker(s) of each marker sequence.
- Example embodiment 7 includes aspects of preceding example embodiments 1-6 wherein the eligibility calculation uses eligibility data of an eligibility data set, and wherein the eligibility data set includes (a) a cardinality of a sequential marker set comprising each sequential marker, (b) a substring of a first sequential marker, (c) a string adjacent to a second sequential marker, (d) a sequential number of a third sequential marker, and (e) identification information in a wrapping string of a fourth sequential marker, of each of the marker sequences, and wherein the wrapping string is obtained from a first substring of the input document string.
- the eligibility data set includes (a) a cardinality of a sequential marker set comprising each sequential marker, (b) a substring of a first sequential marker, (c) a string adjacent to a second sequential marker, (d) a sequential number of a third sequential marker, and (e) identification information in a wrapping string of a fourth sequential marker, of each of the marker sequences, and wherein the wrapping string is obtained from a first substring of the
- Example embodiment 8 includes aspects of preceding example embodiments 1- 7 further comprising selecting one or more eligible marker sequences; and verifying at least one of a list of eligibility conditions for each of the eligible marker sequences, wherein each eligibility condition of the list compares an eligibility value of the eligible marker sequence to a comparison value
- Example embodiment 9 includes aspects of preceding example embodiments 1-8 further comprising: selecting one or more eligible marker sequence from the marker sequence set, by verifying at least one of a list of eligibility conditions for each of the eligible marker sequences, wherein each eligibility condition of the list compares an eligibility value of the eligible marker sequence to a comparison value set, wherein the comparison value set comprises (i) a threshold value, (ii) a comparison marker value obtained from eligibility value(s) of marker sequence(s), (iii) an adaptive comparison value calculated using an adaptive threshold calculation based on the eligibility value(s), or (iv) two or more of any of these, and wherein the output data comprises (i) an output string obtained from output marker caption(s) of first-output eligible sequential marker(s), (ii) output identification information of second-output eligible sequential marker(s) in an identification string obtained from a second substring of the input document string, (iii) a report value obtained from eligibility value(s) of third-output eligible sequential marker(s), or (iv) two
- Example embodiment 10 includes aspects of preceding example embodiments 1-9, further comprising: accepting an input document; performing a first pre-treatment process on the input document, and generating the input data stream from an output of the first pre- treatment process.
- Example embodiment 11 includes aspects of the preceding example embodiment 10, further comprising: detecting if at least one removable string is present in the output of the first pre-treatment process; and removing the at least one removable string; wherein a removable string(s) comprises one or more selected from the group consisting of a page header, a page footer, and a footnote.
- Example embodiment 12 includes aspects of preceding example embodiments 1-11 wherein the input document string is in HTML format.
- Example embodiment 13 includes aspects of preceding example embodiments 1-12 wherein identifying a marker sequence set in the input document string comprises identifying an internal reference to a referred sequential marker in the input document string.
- Example embodiment 14 includes aspects of preceding example embodiments 1-13, further comprising: verifying parent sequential marker(s) of child sequential marker(s), from a set of parental conditions, wherein the set of parental conditions comprises one or more selected from the group consisting of a first parent sequential marker identifying a parent section of the input document string, a child sequential marker identifying a first subsection of the parent section, a second parent sequential marker identifying a parent subsection of the input document string, and a child sequential marker identifying a second subsection of the parent subsection.
- Example embodiment 15 includes aspects of preceding example embodiments 1-14 wherein combining a first eligible marker sequence with a second eligible marker sequence into a third eligible marker sequence, wherein the third eligible marker sequence comprises (a) one or more markers of the first eligible marker sequence, and (b) one or more markers of the second eligible marker sequence.
- Example embodiment 16 includes aspects of the preceding example embodiments 1- 15 wherein the input document string includes text in two or more document languages.
- Example embodiment 17 includes aspects of preceding example embodiments 1-16 wherein the data structure comprises a computer-readable text document.
- Example embodiment 18 includes an apparatus for determining document structure, comprising: an input for accepting an input data structure; and one or more processors configured to: generate an input document string from the input data structure; identify a marker sequence set in the input document string, the marker sequence set including a marker sequence; assign an eligibility value to each marker sequence, the eligibility value being a number calculated using an eligibility calculation, to obtain at least one eligible marker sequence; generate output data comprising data related to the at least one eligible marker sequence; and provide the output data.
- Example embodiment 19 includes aspects of preceding example embodiment 18 wherein the input receives the input data structure through a network coupled to the apparatus.
- Example embodiment 20 includes aspects of preceding example embodiments 18-19 wherein the output data is provided through a network coupled to the apparatus.
- aspects of the disclosure may operate on particularly created hardware, firmware, digital signal processors, or on a specially programmed computer including a processor operating according to programmed instructions.
- controller or processor as used herein are intended to include microprocessors, microcomputers, quantum computers, Application Specific Integrated Circuits (ASICs), and dedicated hardware controllers.
- ASICs Application Specific Integrated Circuits
- One or more aspects of the disclosure may be embodied in computer-usable data and computer- executable instructions, such as in one or more program modules, executed by one or more computers (including monitoring modules), or other devices.
- program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types when executed by a processor in a computer or other device.
- the computer executable instructions may be stored on a computer readable storage medium such as a hard disk, optical disk, removable storage media, solid state memory, Random Access Memory (RAM), etc.
- a computer readable storage medium such as a hard disk, optical disk, removable storage media, solid state memory, Random Access Memory (RAM), etc.
- the functionality of the program modules may be combined or distributed as desired in various aspects.
- the functionality may be embodied in whole or in part in firmware or hardware equivalents such as integrated circuits, FPGA, and the like.
- Particular data structures may be used to more effectively implement one or more aspects of the disclosure, and such data structures are contemplated within the scope of computer executable instructions and computer-usable data described herein.
- the disclosed aspects may be implemented, in some cases, in hardware, firmware, software, or any combination thereof.
- the disclosed aspects may also be implemented as instructions carried by or stored on one or more or computer-readable storage media, which may be read and executed by one or more processors. Such instructions may be referred to as a computer program product.
- Computer-readable media as discussed herein, means any media that can be accessed by a computing device.
- computer-readable media may comprise computer storage media and communication media.
- Computer storage media means any medium that can be used to store computer- readable information.
- computer storage media may include RAM, ROM, Electrically Erasable Programmable Read-Only Memory (EEPROM), flash memory or other memory technology, Compact Disc Read Only Memory (CD-ROM), Digital Video Disc (DVD), or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, and any other volatile or
- Nonvolatile, removable or non-removable media implemented in any technology.
- Computer storage media excludes signals per se and transitory forms of signal transmission.
- Communication media means any media that can be used for the communication of computer-readable information.
- communication media may include coaxial cables, fiber-optic cables, air, or any other media suitable for the communication of electrical, optical, Radio Frequency (RF), infrared, acoustic or other types of signals.
- RF Radio Frequency
- All described embodiments and features of the present invention may be combined with each other in any arbitrary manner, except where as described to be exclusive or know to those of skill in the art as technically unable to be combined.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Machine Translation (AREA)
- Document Processing Apparatus (AREA)
Abstract
Selon l'invention, un procédé mis en œuvre par ordinateur permettant d'identifier un ou plusieurs éléments de données dans un flux de données d'entrée formé à partir d'une structure de données d'entrée,,à l'aide d'un traitement activé par une instruction exécutable par processeur, peut être stocké sur un support de stockage informatisé non transitoire. Ce procédé stocké consiste à : identifier un ensemble de séquences de marqueurs dans la chaîne de documents d'entrée, l'ensemble de séquences de marqueurs comprenant une séquence de marqueurs; attribuer une valeur d'éligibilité à chaque séquence de marqueurs, la valeur d'éligibilité étant un nombre calculé à l'aide d'un calcul d'éligibilité pour obtenir au moins une séquence de marqueurs éligibles; générer des données de sortie comprenant des données relatives à la séquence ou aux séquences de marqueurs éligibles; et fournir les données de sortie, par exemple sur une interface lisible par l'homme.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762573174P | 2017-10-17 | 2017-10-17 | |
US62/573,174 | 2017-10-17 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019077405A1 true WO2019077405A1 (fr) | 2019-04-25 |
Family
ID=64959376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/IB2018/001258 WO2019077405A1 (fr) | 2017-10-17 | 2018-10-04 | Procédé, dispositif et système d'identification d'éléments de données dans des structures de données |
Country Status (2)
Country | Link |
---|---|
US (3) | US10726198B2 (fr) |
WO (1) | WO2019077405A1 (fr) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9244894B1 (en) * | 2013-09-16 | 2016-01-26 | Arria Data2Text Limited | Method and apparatus for interactive reports |
US10607074B2 (en) * | 2017-11-22 | 2020-03-31 | International Business Machines Corporation | Rationalizing network predictions using similarity to known connections |
US10949606B2 (en) * | 2018-07-02 | 2021-03-16 | Jpmorgan Chase Bank, N.A. | System and method for low-maintenance conversion of advance function presentation format to portable document format |
US11544446B2 (en) * | 2018-11-29 | 2023-01-03 | Sap Se | Support hierarchical distribution of document objects |
US11468346B2 (en) * | 2019-03-29 | 2022-10-11 | Konica Minolta Business Solutions U.S.A., Inc. | Identifying sequence headings in a document |
CN112287654A (zh) * | 2019-07-25 | 2021-01-29 | 珠海金山办公软件有限公司 | 一种文档元素对齐方法及装置 |
US11763079B2 (en) | 2020-01-24 | 2023-09-19 | Thomson Reuters Enterprise Centre Gmbh | Systems and methods for structure and header extraction |
LU101705B1 (en) * | 2020-03-26 | 2021-09-27 | Microsoft Technology Licensing Llc | Document control item |
US11194953B1 (en) * | 2020-04-29 | 2021-12-07 | Indico | Graphical user interface systems for generating hierarchical data extraction training dataset |
GB2611716B (en) * | 2020-06-25 | 2024-07-17 | Pryon Incorporated | Document processing and response generation system |
JP2022117298A (ja) * | 2021-01-29 | 2022-08-10 | 富士通株式会社 | 設計書管理プログラム、設計書管理方法および情報処理装置 |
US20230075341A1 (en) * | 2021-08-19 | 2023-03-09 | Digital Asset Capital, Inc. | Semantic map generation employing lattice path decoding |
US11907643B2 (en) * | 2022-04-29 | 2024-02-20 | Adobe Inc. | Dynamic persona-based document navigation |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6298357B1 (en) | 1997-06-03 | 2001-10-02 | Adobe Systems Incorporated | Structure extraction on electronic documents |
US7743327B2 (en) | 2006-02-23 | 2010-06-22 | Xerox Corporation | Table of contents extraction with improved robustness |
US20100306260A1 (en) * | 2009-05-29 | 2010-12-02 | Xerox Corporation | Number sequences detection systems and methods |
US9001390B1 (en) | 2011-10-06 | 2015-04-07 | Uri Zernik | Device, system and method for identifying sections of documents |
US20160364608A1 (en) * | 2015-06-10 | 2016-12-15 | Accenture Global Services Limited | System and method for automating information abstraction process for documents |
Family Cites Families (74)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5392387A (en) | 1992-12-17 | 1995-02-21 | International Business Machines Corporation | Method and system for enhanced data access efficiency in an electronic book |
CA2154951C (fr) | 1994-09-12 | 2004-05-25 | John E. Warnock | Methode et appareil de visualisation de documents electroniques |
US5854304A (en) * | 1994-12-14 | 1998-12-29 | Epi Environmental Products Inc. | Degradable/compostable concentrates, process for making degradable/compostable packaging materials and the products thereof |
JPH0951422A (ja) * | 1995-08-09 | 1997-02-18 | Minolta Co Ltd | 画像編集装置 |
JP3425834B2 (ja) * | 1995-09-06 | 2003-07-14 | 富士通株式会社 | 文書画像からのタイトル抽出装置および方法 |
US6098034A (en) * | 1996-03-18 | 2000-08-01 | Expert Ease Development, Ltd. | Method for standardizing phrasing in a document |
US5933841A (en) | 1996-05-17 | 1999-08-03 | Ameritech Corporation | Structured document browser |
US6029167A (en) * | 1997-07-25 | 2000-02-22 | Claritech Corporation | Method and apparatus for retrieving text using document signatures |
US6295542B1 (en) * | 1998-10-02 | 2001-09-25 | National Power Plc | Method and apparatus for cross-referencing text |
US7080318B2 (en) | 2001-02-28 | 2006-07-18 | Koninklijke Philips Electronics N.V. | Schema, syntactic analysis method and method of generating a bit stream based on a schema |
US20040054535A1 (en) | 2001-10-22 | 2004-03-18 | Mackie Andrew William | System and method of processing structured text for text-to-speech synthesis |
US7043689B2 (en) * | 2002-02-26 | 2006-05-09 | Adobe Systems Incorporated | Managing zero-width markers |
US7260773B2 (en) | 2002-03-28 | 2007-08-21 | Uri Zernik | Device system and method for determining document similarities and differences |
TWI221989B (en) | 2002-12-24 | 2004-10-11 | Ind Tech Res Inst | Example-based concept-oriented data extraction method |
US8209608B1 (en) | 2003-05-16 | 2012-06-26 | Adobe Systems Incorporated | Method and system for presenting structured information in an interactive multimedia environment |
US20040268230A1 (en) | 2003-06-30 | 2004-12-30 | Peiya Liu | Systems and methods for differential document delivery based on delta description specifications |
US20050210003A1 (en) * | 2004-03-17 | 2005-09-22 | Yih-Kuen Tsay | Sequence based indexing and retrieval method for text documents |
US7305389B2 (en) | 2004-04-15 | 2007-12-04 | Microsoft Corporation | Content propagation for enhanced document retrieval |
US7533068B2 (en) | 2004-12-23 | 2009-05-12 | D-Wave Systems, Inc. | Analog processor comprising quantum devices |
US7937653B2 (en) | 2005-01-10 | 2011-05-03 | Xerox Corporation | Method and apparatus for detecting pagination constructs including a header and a footer in legacy documents |
US8706475B2 (en) | 2005-01-10 | 2014-04-22 | Xerox Corporation | Method and apparatus for detecting a table of contents and reference determination |
US9275159B1 (en) * | 2005-04-11 | 2016-03-01 | Novell, Inc. | Content marking |
US8302002B2 (en) | 2005-04-27 | 2012-10-30 | Xerox Corporation | Structuring document based on table of contents |
US20070109608A1 (en) * | 2005-11-14 | 2007-05-17 | Lunt Tracy T | Mapping parent/child electronic files contained in a compound electronic file to a file class |
US20070188473A1 (en) | 2006-02-14 | 2007-08-16 | Picsel Research Limited | System and methods for document navigation |
US7810021B2 (en) * | 2006-02-24 | 2010-10-05 | Paxson Dana W | Apparatus and method for creating literary macramés |
FR2906382B1 (fr) | 2006-09-25 | 2008-11-14 | Canon Kk | Procedes et dispositifs pour optimiser le traitement xml |
US8209605B2 (en) * | 2006-12-13 | 2012-06-26 | Pado Metaware Ab | Method and system for facilitating the examination of documents |
US8166045B1 (en) * | 2007-03-30 | 2012-04-24 | Google Inc. | Phrase extraction using subphrase scoring |
US8504553B2 (en) | 2007-04-19 | 2013-08-06 | Barnesandnoble.Com Llc | Unstructured and semistructured document processing and searching |
US7890486B2 (en) * | 2007-08-06 | 2011-02-15 | Ronald Claghorn | Document creation, linking, and maintenance system |
US20090199090A1 (en) * | 2007-11-23 | 2009-08-06 | Timothy Poston | Method and system for digital file flow management |
US7849081B1 (en) | 2007-11-28 | 2010-12-07 | Adobe Systems Incorporated | Document analyzer and metadata generation and use |
US8825592B2 (en) | 2008-03-12 | 2014-09-02 | Web Access, Inc. | Systems and methods for extracting data from a document in an electronic format |
US8370128B2 (en) | 2008-09-30 | 2013-02-05 | Xerox Corporation | Semantically-driven extraction of relations between named entities |
US20100146435A1 (en) | 2008-12-04 | 2010-06-10 | Jean-Christophe Cros | Method and system for navigating through parts of a document |
US8443278B2 (en) * | 2009-01-02 | 2013-05-14 | Apple Inc. | Identification of tables in an unstructured document |
US20100268528A1 (en) | 2009-04-16 | 2010-10-21 | Olga Raskina | Method & Apparatus for Identifying Contract Characteristics |
US8332754B2 (en) | 2009-11-04 | 2012-12-11 | International Business Machines Corporation | Rendering sections of content in a document |
US8356045B2 (en) | 2009-12-09 | 2013-01-15 | International Business Machines Corporation | Method to identify common structures in formatted text documents |
KR20110091296A (ko) * | 2010-02-05 | 2011-08-11 | 삼성전자주식회사 | 문서 작성 장치 및 방법 |
WO2011159843A2 (fr) | 2010-06-15 | 2011-12-22 | Thomson Reuters (Scientific) Inc. | Système et procédé de traitement de citation, présentation et transport pour valider des références |
US9563351B2 (en) | 2011-03-14 | 2017-02-07 | Apple Inc. | Device, method, and graphical user interface for navigating between document sections |
US8855421B2 (en) * | 2011-04-25 | 2014-10-07 | Fuji Xerox Co., Ltd. | Methods and apparatuses for Embedded Media Marker identification |
US20120297335A1 (en) | 2011-05-17 | 2012-11-22 | Microsoft Corporation | Document glancing and navigation |
AU2012340418C1 (en) | 2011-11-15 | 2017-11-16 | Ab Initio Technology Llc | Data clustering, segmentation, and parallelization |
RU2487403C1 (ru) | 2011-11-30 | 2013-07-10 | Федеральное государственное бюджетное учреждение науки Институт системного программирования Российской академии наук | Способ построения семантической модели документа |
US9715625B2 (en) | 2012-01-27 | 2017-07-25 | Recommind, Inc. | Hierarchical information extraction using document segmentation and optical character recognition correction |
US9613267B2 (en) | 2012-05-31 | 2017-04-04 | Xerox Corporation | Method and system of extracting label:value data from a document |
US20140281876A1 (en) * | 2013-03-15 | 2014-09-18 | Meteor Development Group, Inc. | Document element mapping |
US9183508B2 (en) | 2013-08-07 | 2015-11-10 | D-Wave Systems Inc. | Systems and devices for quantum processor architectures |
US20150046799A1 (en) * | 2013-08-07 | 2015-02-12 | Eustace Prince Isidore | Advanced Editing and Interfacing in User Applications |
US20170308517A1 (en) * | 2013-09-11 | 2017-10-26 | Google Inc. | Automatic generation of templates for parsing electronic documents |
US9058374B2 (en) | 2013-09-26 | 2015-06-16 | International Business Machines Corporation | Concept driven automatic section identification |
US20150121204A1 (en) | 2013-10-28 | 2015-04-30 | Kobo Incorporated | Method and system for a visual indicator a displayed page enablement for guided reading |
US9721002B2 (en) | 2013-11-29 | 2017-08-01 | Sap Se | Aggregating results from named entity recognition services |
US9971763B2 (en) | 2014-04-08 | 2018-05-15 | Microsoft Technology Licensing, Llc | Named entity recognition |
TWI549003B (zh) | 2014-08-18 | 2016-09-11 | 葆光資訊有限公司 | 自動切割章節方法 |
US9672265B2 (en) | 2015-02-06 | 2017-06-06 | Atlassian Pty Ltd | Systems and methods for generating an edit script |
US9588965B2 (en) * | 2015-03-30 | 2017-03-07 | Tata Consultancy Services Limited | Identifying and characterizing an analogy in a document |
US10353960B1 (en) * | 2015-05-04 | 2019-07-16 | Google Llc | Systems and methods for caching structural elements of electronic documents |
CN104933152B (zh) | 2015-06-24 | 2018-09-14 | 北京京东尚科信息技术有限公司 | 命名实体识别方法及装置 |
US10515050B2 (en) * | 2015-07-10 | 2019-12-24 | Open Text Sa Ulc | Integrated digital-analog archiving systems and methods for document preservation |
US9836453B2 (en) | 2015-08-27 | 2017-12-05 | Conduent Business Services, Llc | Document-specific gazetteers for named entity recognition |
US10558822B2 (en) | 2015-12-15 | 2020-02-11 | Oath Inc. | Enforcing anonymity in the auditing of electronic documents |
US10671801B2 (en) * | 2017-02-28 | 2020-06-02 | Microsoft Technology Licensing, Llc | Markup code generator |
CN108073569B (zh) | 2017-06-21 | 2021-08-27 | 北京华宇元典信息服务有限公司 | 一种基于多层级多维度语义理解的法律认知方法、装置和介质 |
US10565444B2 (en) | 2017-09-07 | 2020-02-18 | International Business Machines Corporation | Using visual features to identify document sections |
CN108614898B (zh) | 2018-05-10 | 2021-06-25 | 爱因互动科技发展(北京)有限公司 | 文档解析方法与装置 |
CN110069609B (zh) | 2019-03-15 | 2023-04-18 | 平安科技(深圳)有限公司 | 裁判文书分析方法、装置、计算机设备及存储介质 |
CN110276068B (zh) | 2019-05-08 | 2020-08-28 | 清华大学 | 法律案情分析方法及装置 |
CN110263323B (zh) | 2019-05-08 | 2020-08-28 | 清华大学 | 基于栅栏式长短时记忆神经网络的关键词抽取方法及系统 |
CN110781299B (zh) | 2019-09-18 | 2024-03-19 | 平安科技(深圳)有限公司 | 资产信息识别方法、装置、计算机设备及存储介质 |
CN111783399B (zh) | 2020-06-24 | 2023-10-20 | 北京计算机技术及应用研究所 | 一种法律裁判文书信息抽取方法 |
-
2018
- 2018-10-04 US US16/152,384 patent/US10726198B2/en active Active
- 2018-10-04 WO PCT/IB2018/001258 patent/WO2019077405A1/fr active Application Filing
- 2018-10-09 US US16/155,844 patent/US10460162B2/en active Active
-
2020
- 2020-07-27 US US16/939,981 patent/US11256856B2/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6298357B1 (en) | 1997-06-03 | 2001-10-02 | Adobe Systems Incorporated | Structure extraction on electronic documents |
US7743327B2 (en) | 2006-02-23 | 2010-06-22 | Xerox Corporation | Table of contents extraction with improved robustness |
US20100306260A1 (en) * | 2009-05-29 | 2010-12-02 | Xerox Corporation | Number sequences detection systems and methods |
US9001390B1 (en) | 2011-10-06 | 2015-04-07 | Uri Zernik | Device, system and method for identifying sections of documents |
US20150213314A1 (en) | 2011-10-06 | 2015-07-30 | Uri Zernik | Device, System and Method for Identifying Sections of Documents |
US9424465B2 (en) | 2011-10-06 | 2016-08-23 | Uri Zernik | Device, system and method for identifying sections of documents |
US20160360063A1 (en) | 2011-10-06 | 2016-12-08 | Uri Zernik | Device, System and Method for Identifying Sections of Documents |
US9736331B2 (en) | 2011-10-06 | 2017-08-15 | Uri Zernik | Device, system and method for identifying sections of documents |
US20170346986A1 (en) | 2011-10-06 | 2017-11-30 | Uri Zernik | Device, System and Method for Identifying Sections of Documents |
US20160364608A1 (en) * | 2015-06-10 | 2016-12-15 | Accenture Global Services Limited | System and method for automating information abstraction process for documents |
Also Published As
Publication number | Publication date |
---|---|
US20210150128A1 (en) | 2021-05-20 |
US10726198B2 (en) | 2020-07-28 |
US20190220503A1 (en) | 2019-07-18 |
US10460162B2 (en) | 2019-10-29 |
US11256856B2 (en) | 2022-02-22 |
US20190114479A1 (en) | 2019-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11256856B2 (en) | Method, device, and system, for identifying data elements in data structures | |
US11475209B2 (en) | Device, system, and method for extracting named entities from sectioned documents | |
US5794177A (en) | Method and apparatus for morphological analysis and generation of natural language text | |
US20190155898A1 (en) | Method and device for extracting entity relation based on deep learning, and server | |
Wirth et al. | EULER: A generalization of ALGOL and its formal definition: Part 1 | |
US9135249B2 (en) | Number sequences detection systems and methods | |
CN100511215C (zh) | 多语种翻译存储器和翻译方法 | |
EP1745396B1 (fr) | Outil d'extraction d'informations dans des documents | |
CN109145260B (zh) | 一种文本信息自动提取方法 | |
CN107832229A (zh) | 一种基于nlp的系统测试用例自动生成方法 | |
US20080065671A1 (en) | Methods and apparatuses for detecting and labeling organizational tables in a document | |
Ofazer et al. | Bootstrapping morphological analyzers by combining human elicitation and machine learning | |
SE517005C2 (sv) | Segmentering av text | |
WO2001082111A2 (fr) | Systeme de lecture assistee par ordinateur et procede utilisant un assistant de lecture a langage croise | |
US20140301644A1 (en) | Extracting Reading Order Text and Semantic Entities | |
CN110770735A (zh) | 具有嵌入式数学表达式的文档的编码转换 | |
Rastan et al. | Texus: A task-based approach for table extraction and understanding | |
Fan et al. | Detecting table region in PDF documents using distant supervision | |
CN106372232B (zh) | 基于人工智能的信息挖掘方法和装置 | |
Oo et al. | An analysis of ambiguity detection techniques for software requirements specification (SRS) | |
Besagni et al. | Citation recognition for scientific publications in digital libraries | |
CN111339272A (zh) | 代码缺陷报告检索方法及装置 | |
Nghiem et al. | Using MathML parallel markup corpora for semantic enrichment of mathematical expressions | |
Guisado-Gámez et al. | Massive query expansion by exploiting graph knowledge bases for image retrieval | |
Kordomatis et al. | Web object identification for web automation and meta-search |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 18830293 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 18830293 Country of ref document: EP Kind code of ref document: A1 |