U.S. patent application number 14/635077 was filed with the patent office on 2015-10-29 for system and method of using dynamic variance networks.
The applicant listed for this patent is Lexmark International Technology SA. Invention is credited to Johannes Hausmann, Ralph Meier, Harry Urbschat, Thorsten Wanschura.
Application Number | 20150310269 14/635077 |
Document ID | / |
Family ID | 43806785 |
Filed Date | 2015-10-29 |
United States Patent
Application |
20150310269 |
Kind Code |
A1 |
Urbschat; Harry ; et
al. |
October 29, 2015 |
System and Method of Using Dynamic Variance Networks
Abstract
A method and system for determining locations of multiple
targets in a document, comprising: creating, utilizing a
localization module, information compiled from a training document,
the information comprising a reference and a reference vector tying
the reference to the multiple targets, wherein the multiple targets
includes multiple words.
Inventors: |
Urbschat; Harry; (Oldenburg,
DE) ; Hausmann; Johannes; (Corcelles, CH) ;
Meier; Ralph; (Rastede, DE) ; Wanschura;
Thorsten; (Oldenburg, DE) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Lexmark International Technology SA |
Meyrin |
|
CH |
|
|
Family ID: |
43806785 |
Appl. No.: |
14/635077 |
Filed: |
March 2, 2015 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
12610915 |
Nov 2, 2009 |
|
|
|
14635077 |
|
|
|
|
Current U.S.
Class: |
382/112 |
Current CPC
Class: |
G06K 9/03 20130101; G06K
9/2072 20130101; G06F 16/30 20190101; G06K 9/6269 20130101; G06K
2209/01 20130101; G06K 9/00469 20130101; G06K 9/00442 20130101 |
International
Class: |
G06K 9/00 20060101
G06K009/00; G06K 9/62 20060101 G06K009/62 |
Claims
1. A method for determining locations of multiple targets in at
least one document, comprising: creating, utilizing a localization
module, information compiled from at least one training document,
the information comprising a reference and a reference vector tying
the reference to the multiple targets, wherein the multiple targets
includes multiple words.
2. A method for determining locations of multiple targets in at
least one document, comprising: creating, utilizing a localization
module, information compiled from at least one training document,
the information comprising a reference and a reference vector tying
the reference to the multiple targets, wherein the reference
extends over multiple rows in the training document.
Description
[0001] This patent application claims priority and benefit as a
continuation-in-part of U.S. patent application Ser. No.
12/610,915, filed Nov. 2, 2009, entitled "System and Method of
Using Dynamic Variance Networks." The entirety of the application
is incorporated herein by reference.
BRIEF DESCRIPTION OF THE FIGURES
[0002] FIG. 1 illustrates a system for obtaining information about
at least one document, according to one embodiment.
[0003] FIGS. 2-4 illustrate a method for locating at least one
target in at least one document utilizing dynamic variance networks
(DVNs), according to one embodiment.
[0004] FIGS. 3-15 illustrate examples of locating at least one
target in at least one document utilizing DVNs, according to
several embodiments.
[0005] FIGS. 16-18 illustrate a Method for locating at least one
target in at least one document utilizing dynamic sensory maps
(DVNs), according to one embodiment.
[0006] FIG. 19 illustrates an example of locating at least one
target in at least one document utilizing DVNs, according to one
embodiment.
[0007] FIG. 20 illustrates a method for obtaining information about
at least one document, according to one embodiment.
DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION
[0008] FIG. 1 illustrates a system for obtaining information about
at least one document, according to one embodiment. In one
embodiment, the system 100 can comprise at least one communication
network 101 that connects hardware and software elements. In some
embodiments, the hardware can execute the software.
[0009] The hardware can comprise at least one communications/output
unit 105, at least one display unit 110, at least one centralized
processing unit (CPU) 115, at least one hard disk unit 120, at
least one memory unit 125, and at least one input unit 130. The
communications/output unit 105 can send results of extraction
processing to, for example, a screen, printer, disk, computer
and/or application. The display unit 110 can display information.
The CPU 115 can interpret and execute instructions from the
hardware and/or software components. The hard disk unit 120 can
receive information (e.g., documents, data) from CPU 115, memory
unit 125, and/or input 130. The memory unit 125 can store
information. The input unit 130 can receive information (e.g., a
document image or other data) for processing from, for example, a
screen, scanner, disk, computer, application, keyboard, mouse, or
other human or non-human input device, or any combination
thereof.
[0010] The software can comprise one or more databases 145, at
least one localization module 150, at least one image processing
module 155, at least one OCR module 160, at least one document
input module 165, at least one document conversion module 170, at
least one text processing statistical analysis module 175, at least
one document/output post processing module 180, and at least one
systems administration module 185. The database 145 can store
information. The image processing module 155 can include software
which can process images. The OCR module 160 can include software
which can generate a textual representation of the image scanned in
by the input unit 130 (e.g., scanner). It should be noted that
multiple OCR modules 160 can be utilized, in one embodiment. The
document input module 165 can include software which can work with
preprocessed documents (e.g., preprocessed in system 100 or
elsewhere) to obtain information (e.g., used for training).
Document representation (e.g., images and/or OCR text) can be sent
to the localization module 150. The document conversion module 170
can include software which can transform a document from one form
to another (e.g., from Word to PDF). A text processing statistical
analysis module 175 can include software which can provide
statistical analysis of the generated text to pre-process the
textual information. For example, information such as the frequency
of words, etc. can be provided. A document/output post processing
module 180 can include software which can prepare a result document
in a particular form (e.g., a format requested by a user). It can
also send result information to an external or internal application
for additional formatting and processing. The system administration
module 185 can include software which allows an administrator to
manage the software and hardware. In one embodiment, individual
modules can be implemented as software modules that can be
connected (via their specific interface) and their output can be
routed to modules desired for further processing. All described
modules can run on one or many CPUs, virtual machines; mainframes,
or shells within the described information processing
infrastructure, such as CPU 115. Database 145 can be stored on hard
disk drive unit 120.
[0011] The localization module 150 can utilize at least one
document classifier, at least one dynamic variance network (DVN),
at least one dynamic sensory map (DSM), or at least one fuzzy
format engine, or any combination thereof. A document classifier
can be used to classify a document using, for example, a class
identifier (e.g., invoice, remittance statement, bill of lading,
letter, e-mail; or by sender; vendor, or receiver identification).
The document classifier can help narrow down the documents that
need to be reviewed or to be taken into account for creating the
learn sets. The document classifier can also help identify which
scoring applications (e.g., DVNs, DSMs, and/or fuzzy format
engines) should be used when reviewing new documents. For example,
if the document classifier identifies a new document as an invoice
from company ABC, this information can be used to pull information
learned by the DVN, DSM, and fuzzy format engine from other
invoices from company ABC. This learned information can then be
applied to the new document in an efficient manner, as the learned
information may be much more relevant than, for example,
information learned from invoices from company BCD. The document
classifier is described in more detail with respect to FIG. 20.
[0012] As mentioned above, the localization module 150 can include
numerous scoring applications, such as, but not limited to, DVNs,
DSMs, or fuzzy format engines, or any combination thereof. DVNs can
be used for determining possible target values by using references
on a document or piece of a document to determine possible
locations for any targets. A score can be given for each possible
target value identified by the DVN. DVNs are discussed further
below with respect to FIGS. 2-15 and 20. DSMs can also be used to
determine possible target values based on different known locations
for the target. A score can be given for each possible target value
identified by the DSM. DSMs are discussed further below with
respect to FIGS. 16-20. In addition, fuzzy format engines can be
utilized to identify possible target values by using a fuzzy list
of formats for any targets. As with DVNs and DSMs, fuzzy format
engines can give a score for any possible target values. Fuzzy
format engines are discussed in more detail below with respect to
FIG. 20.
[0013] Information generated by the localization module 150 can be
sent to the databases(s) 145 or to external inputs (e.g., input
unit 130, communication network 101, hard disk unit 120, and
administration module 185). The output or part of the output of the
localization module 150 can be stored, presented or used as input
parameters in various components (e.g., communications/output unit
105, display unit 110, hard disk unit 120, memory unit 125,
communication network 101, conversion module 170, database(s) 145,
OCR module 160, statistical analysis module 175) either using or
not using the post-processing module 180. Such a feedback system
can allow for iterative refinement.
Document Classifier
[0014] As indicated above, the document classifier can be used to
classify a document using, for example, a class identifier (e.g.,
invoice, remittance statement, bill of lading, letter, e-mail; or
by sender, vendor, or receiver identification). The document
classifier can operate based on text in a document. The document
classifier can also be based on positional information about text
in a document. Details relating to how a document classifier can
classify a document using any combination of textual and/or
positional information about text from the document is explained in
more detail in the following patents, which are herein incorporated
by reference: U.S. Pat. No. 8,276,067; U.S. Pat. No. 6,976,207; and
U.S. Pat. No. 7,509,578 (all entitled "Classification Method and
Apparatus").
[0015] Once the text information and text positional information is
obtained for at least one training document, this information can
be used to return an appropriate class identifier for a new
document. (It should also be noted that a human or other
application can provide this information.) For example, if invoices
issued by company ABC are to be reviewed, certain text (e.g.,
"ABC") or text positional information (e.g., where "ABC" was found
to be located on training documents using, for example, DVNs or
DSMs) found on the training set of documents can be searched on new
documents to help determine if the new document is an invoice
issued by company ABC. Documents identified as invoices issued by
company ABC can be reviewed with company ABC-specific DVNs, DSMs
and/or fuzzy searching machines.
[0016] It should be noted that the document classification search
can be performed in a fuzzy manner. For example, punctuation or
separation characters, as well as leading or lagging alphabetical
characters and leading or lagging zeroes can be ignored. Thus, for
example, "123-45", "1/2345", "0012345", "INR1234/5" can be found if
a fuzzy search is done for the string "12345". Those of ordinary
skill in the art will see that many types of known fuzzy searching
applications can be used to perform the document classification
search. Other examples of fuzzy representations and their
respective classification are described in further detail in the
following patents, which are herein incorporated by reference: U.S.
Pat. No. 7,908,430; U.S. Pat. No. 6,983,345; and U.S. Pat. No.
7,433,997 (all entitled "Associative Memory").
[0017] As explained above, the document classifier can help narrow
down the documents that need to be reviewed. The document
classifier can also help identify which scoring applications (e.g.,
DVNs, DSMs, and/or fuzzy format engines) should be used when
reviewing new documents. This learned information from the DVNs,
DSMs, and/or fuzzy format engines can then be applied to the new
document in an efficient manner, as the learned information may be
much more relevant than, for example, information learned from
invoices from company BCD.
[0018] FIG. 20 illustrates an example use of document classifiers
with scoring applications. (It should be noted that document
classifiers do not need to be used to narrow down the documents. It
should also be noted that many other scoring applications can be
utilized. Furthermore, it should be noted that other applications
can be used to determine information about targets.) Referring to
FIG. 20, in 2005, a document classifier is utilized to choose the
most relevant scoring information. For example, if the document
classifier identifies a new document as an invoice from company
ABC, this information can be used to pull information learned by
the DVN, DSM, and fuzzy format engine from other invoices from
company ABC. In 2010, the relevant DVN, DSM and fuzzy format
information (e.g., related to invoices issued by company ABC) can
be applied to the classified document to obtain any possible target
values along with a score for each. In 2015, validation rules can
be used to narrow down the set of possible target values. For
example, only possible target values for targets NET, VAT and TOTAL
that satisfy the formula NET+VAT=TOTAL can be returned as filtered
possible target values. Other example validation rules could
include: that the date of a document has to be later than Jan. 1,
2005; or that an order number needs to be within a certain range.
In 2020, the filtered possible target values are compared to each
other, and the filtered possible target value with the highest
score can be used as the target value. Note that in other
embodiments, all filtered possible target values, or even all
unfiltered possible target values could be shown to a person or fed
to another application.
Dynamic Variance Networks (DVNs)
[0019] FIG. 2 illustrates a method 200 for locating at least one
target in at least one document utilizing DVNs, according to one
embodiment. In 205, one or more documents (or pieces of documents)
can be used for training. In 210, at least one DVN can be created
from information compiled from the training set of documents. The
DVN can be a set of "keyword" references (e.g., any
textual/digit/character block, such as a word, number,
alpha-numeric sequence, token, logo, text fragment, blank space
etc.) and reference vectors for this set of references. Each
reference vector can connect a reference to a target. In 215, the
DVN can be applied on untrained documents to localize at least one
target on the untrained documents. The localization can determine
where on the untrained documents the position of the target is
expected to be. This can help obtain or confirm information about
the target (e.g., such as the target value Jan. 10, 2009 for the
target "invoice date"). For example, if the target is a document
field, such as a date, the value present at the target can be
extracted. If there is no reference at the given target position,
it can be indicated that the target is not present on the document.
Example targets can include, but are not limited to: check boxes,
signature fields, stamps, address blocks, fields (e.g. total amount
for invoices, weight of package on delivery notes, credit card
number on receipts), manual or automatically edited entries on
maps, image related content in text/image mixed documents, page
numbers, etc.
[0020] It should be noted that the above method 200 can provide
increased redundancy and accuracy. Because every reference is a
potential basis for target localization, there can be hundreds of
reference anchors per page for each target. Thus, even for torn
pages, where all classical keywords are missing, a target
localization can be found.
[0021] In addition, it should be noted that a reference with a typo
or misrecognized by an OCR engine at a particular position can
automatically be used as an anchor based on where the reference is
found. Thus, in some embodiments, there is no need to specify
traditional keywords or apply any limitation to anchor references.
In this way, strict and/or fuzzy matching can be utilized to match
any similar reference to at least one reference in a new
document.
[0022] Furthermore, the following characteristics of the reference
can be taken into account when matching: font; font size; style; or
any combination thereof. Additionally, the reference can be: merged
with at least one other reference; and/or split into at least two
references.
[0023] FIG. 3 illustrates details of the method 210 for creating
the DVN from the training set, according to one embodiment. In 305,
a set of "keyword" references can be created from at least one
reference found on at least one document used for training. In 310,
at least one reference vector can be created for each
reference.
[0024] FIG. 5 illustrates a view of a document, where gray areas
510 denote different references that could be used as the set of
"keyword" references. The reference vectors 515 are lines from each
reference to a particular target 505. Different colors of gray can
indicate different content. For example, the darker gray could
represent content that is word content. As another example, the
lighter gray could represent content that is a number or a
combination of numbers and letters. Additional examples of content
include, but are not limited to: number and punctuation strings,
OCR-mis-recognized characters (e.g., "/(!*7%8[ ]4$2.sctn." for part
of a stamp on an image), words in different languages, words found
in dictionaries, words not found in dictionaries, different font
types, different font sizes, different font properties, etc.
[0025] In 315, variance filtering can be performed by selecting
similar reference vectors. The variance filtering can compare the
references and the reference vectors for all documents in the learn
set, compare the type of references, and keep similar reference
vectors. Similar reference vectors can be similar in terms of
position, content similar, and/or type similar for the reference. A
reference can be positionally similar when the reference is usually
found in one or more particular places on a page. Content
similarity relates to references having the same type of content
(e.g., when the references are all the same word or similar words).
Type similarity relates to the reference usually being a particular
type (e.g., a numerical value, a word, a keyword, a font type,
etc.). Similarity types can be tied to other similarity types
(e.g., when the references are all content similar, the same word
or similar words, but only when the references are type similar as
well (e.g., all of the type "date")).
[0026] It should be noted that the reference consistency tests can
be fuzzy. An example of fuzzy testing with a positionally similar
reference is when everything within a defined x and y coordinate
space is utilized, and the space parameters are able to be
adjusted. An example of content consistency is determined by
comparing words. Thus, "Swine-Flu", "swineflu", "Schweinegrippe"
and "H1N1" can be assumed to be identical for a special kind of
fuzzy comparison. "Invoice Number", "Inv0!ce No." and "invoiceNr"
can be assumed to be identical for another kind of fuzzy
comparison. An example of type similar fuzzy testing is when more
than one type can be used (e.g., both "number" type and
"number/letter" type for a date).
[0027] In 320, the similar reference filters are used to create the
DVN. For example, FIG. 6 illustrates the DVNs (i.e., reference
vectors for the "keyword" references) for six documents. The six
documents illustrate the variability in terms of references and
positions across different documents and its effect on the
reference vectors.
[0028] FIG. 7 illustrates the variance filtering 315 (e.g.,
overlaying) of all six documents from FIG. 6. 705 illustrates the
reference vectors in FIG. 6 on one stack. The variability and
consistency of the reference vectors is indicated with the darkness
of the lines. The darker the line on FIG. 7, the more often the
reference vector was found when overlaying the documents. 710
illustrates the effect of a consistency filter on the reference
vectors. The minimal amount of consistency across the reference
vectors and the documents can be configurable and can have a value
between 1 (meaning every reference vector is kept) and N (the
number of documents in the current set, meaning only the reference
vectors present on all documents are considered useful). For
example, if the selected value for the consistency is 5, and the
number of documents is 7, the similar vector for one specific word
at a specific position must be found on 5 out of 7 documents to
keep this reference vector.
[0029] It should be noted that the content, position and type of
reference can be used to filter reference vectors and construct the
DVN, especially when only totally similar reference vectors are
used. FIG. 9 illustrates an example result when only fully similar
(e.g., the reference vectors are similar (e.g., lining up) or
similar in a fuzzy manner (e.g., almost lining up, "almost" being a
preset variance) in all documents in the learn set) reference
vectors are kept. References 905 have maximum stability (e.g.,
content, position and type similar), and, in one embodiment, could
be represented in a first color. References 910 are only stable
with respect to position and type, and, in one embodiment, can be
shown in a second color. References stable in neither position,
content or type are not shown in FIG. 9.
[0030] Note that the image of a reference can be blurry in some
situations because identical content with small positional changes
can render the words readable but blurry. When the content is not
the same (e.g., numbers for the invoice date, invoice number, order
date and order number), the content may be unreadable in the
overlay. As shown in FIG. 8, 810 illustrates the variability of the
content and its impact on the variability filtering (e.g. when each
document in the learn set is overlaid on one another), according to
one embodiment. In 815, enlarged versions of words having low
content variance are shown. In 820, enlarged versions of words
having high content variance are shown. In one embodiment, content
with no or low variance can be considered as more valuable
information for building the dynamic variance network, due to
content stability. More variable content (e.g., date), can be
referred to as unstable reference points and can be considered less
important.
[0031] FIG. 4 illustrates details of applying the DVN for target
localization on untrained documents 215, according to one
embodiment. In 405, all references on the document to be processed
are compared with a DVN "keyword" reference list to determine which
references are most relevant. The DVN "keyword" list is a list of
references consistently found by the training. In one embodiment,
only references found in all the documents used for training are
used on the DVN "keyword" reference list. In other embodiment,
references found in most of the documents used for training can be
used.
[0032] For example, using the example of 710, 805 and 810 of FIGS.
7 and 8, the similar references from the training could include the
following word-type references (designated by a dark gray):
"Invoice N", "Invoice Date", "Order No.", "Order Date",
"Description", and "Amount". Variants of these references (e.g.,
Order Number instead of Order No.) can also be used. The similar
references from the training could also include number or
number/letter character strings (designated by a light gray) of the
form: ______ (for Date), ______ (for Invoice No.), ______ (for
Order No.), and ______ (for Order Date).
[0033] In 410, all of the reference vectors that relate to the
"keyword" references can be used to point towards the target. In
415, the integrating of the pointer information from all of the
reference vectors and the reference keywords can then used to
localize (determine) the target.
[0034] For example, in FIG. 10, in 1005, all the references for a
document are shown. In 1010, the references after the positional
consistency filter is applied are shown. In 1015, the reference
vector information from these references from various documents are
applied and compared. In 1020, the similar reference vectors are
used to determine the locality of the target.
[0035] Once possible positions for the locality of any targets are
found using the DVNs, possible values for the targets can be found
(e.g., Jan. 10, 2009 as the value for the target "invoice date").
Each possible value for the target can be given a score. The score
can be determined by the ratio of the reference vectors hitting the
target against the reference vectors not pointing to the target.
Additionally, the fuzzy edit distance between the learned
reference(s) (e.g., text) and the reference(s) used for
localization can be integrated as a weight. For example, if all
possible reference words on a document could be found exactly at
the same relative position from the target as the ones stored in
the learn set, the highest score can be returned. Additional
references not contained in the learn set, or references with no
vectors pointing towards the respective target can reduce the
score.
[0036] It should be noted that DVNs can be used for many additional
tasks, including, but not limited to: the addition of reference
vectors, reference correction, document classification, page
separation, recognition of document modification, document
summarization, or document compression, or any combination thereof.
These tasks are explained in more detail below.
[0037] Addition and/or removal of Reference Vectors. DVNs can be
dynamically adapted after target localization. When at least one
reference vector is learned and used to localize a target, all
other possible reference vectors can be created and dynamically
added to the DVN learned in 210 of FIG. 2. Furthermore, outdated
(e.g., reference vectors not used for a long time, or filtered) can
be removed. This can allow continuous updating of the reference
vectors from all processed documents. Such a continuous updating
procedure can update and change the DVN during document
processing.
[0038] Reference Correction. Reference vectors can be used for
reference correction. An example is illustrated in FIG. 11. At
1105, one learn document containing one target 1107 and three
anchor references ("991826", "!8%!", "example") is shown. The
respective reference vectors 1115 from the references to the target
are also shown. After learning, the set of reference vectors 1115
is matched on a different document 1130. On this document 1130, the
reference "example" is corrupted and spelled "Example". However,
due to its location, "Example" can be matched to "example" and be
replaced in 1140. This ability can help result in reference
correction on processed documents.
[0039] Another example of reference vectors being used for
reference correction is when the reference vectors are used to
locate a target of, for example, a specific type. Additional
information present can then be used to correct a potentially
corrupted target. For example, if the reference vectors point
towards the reference "29 Sep. 1009", and this reference is known
to be a date field target from a currently retrieved document, then
a correction of that target to "29 Sep. 2009" is possible. To do
this correction, the high similarity between "September" and
"September" is used in a fuzzy content comparison and additional
information about the entry being a date can be used to correct the
year to a (configurable) time period that seems to be valid. It
should also be noted that, if a date field target is clearly
located, then the reference vectors can be followed back to the
potential anchor references. It for example, the position &
information for such an anchor reference perfectly fits, then the
actual reference present there, but not fitting to the anchor
reference present in the learned DVN could be replaced by the one
from the learned DVN. For example, if the invoice number field
target was located, the surrounding classical keyword which is
corrupted and shows "Inv0!ce Number" could be replaced by the one
stored for this position from the learned DVN. Thus, after that
correction, "Invoice Number", could be read at that position.
[0040] Document Classification. As explained earlier with respect
to FIG. 1, the learned DVN can also be used for document
classification, as shown in FIG. 12. Two documents (1205 a and 1205
b), with references anchored on the targets of the documents (1210
a and 1210 b) are shown. The reference vectors for document 1205 a
point to anchor reference words. For document 1205 b, some of the
reference vectors point to anchor reference whitespace. The quality
of fit of the learned DVN can be measured and serve as an indicator
as to whether the present document is from the same "category" or
"class" as the one where the learned DVN was trained. In a many
class scenario for such an application, for all collected DVNs, the
overlap of the reference vectors on one target area can be
measured. A high overlap of many reference vectors indicates that
the anchor words may be in a similar relative position to one or
many targets. This high overlap information can be used as
information to determine from which class or set of documents the
DVN was created.
[0041] Page Separation. Positional information regarding anchor
references can also be used for page separation. In a stack of
different documents (e.g., single documents, multi-page documents),
the changes in the DVNs positional information (also referred to as
"quality of fit" can provide information about the starting page of
a new document. This method can be used to, for example, repackage
piles of documents into single documents.
[0042] Recognition of Document Modification. DVNs can also be used
in a reverse manner (e.g., after having located a target, looking
up how well the anchor words on the present document fit to the
learned anchor words of the DVN), to recognize a document
modification. For example, in FIG. 13, one document (1300 a) is
learned (e.g., the DVN is created for at least one target) and then
this DVN is matched later onto the potentially edited document
(1300 b) to detect modifications. There are three basic types of
modification: 1) a reference vector points to a reference that has
same position, but changed content (1310); 2) the reference vector
points to whitespace (1320), indicating that the reference there
may have been deleted or moved; and 3) there are references with no
reference vectors (e.g., these may be added words 1230). Such
modifications can include, but are not limited to: an exchange of
words, a rephrasing of words, a removal of document parts, changes
in document layout, font size or font style. Additionally, the
comparison of several DVNs for different targets on one document
can allow for precise "fingerprinting", essentially giving a robust
and sensitive method to detect any non-typical changes in the
document. For example, frequent changes in the revision number for
contracts can be ignored while changes in wording can be
highlighted. The option to return where and what was changed can be
provided.
[0043] DVN for Multiple Targets. DVNs can also be used to localize
multiple targets on a document in some example embodiments. In this
regard, a multi-target area that may, for example, contain multiple
words is trained. Examples of multiple word targets include, but
are not limited to, addresses, terms and conditions, phrases, full
names, and content of free-form fields in forms. The relative
position of a bounding box or bounding area (formed for example by
polygon, splines or other shapes forming an circumference around at
least one target, typically comprising all desired targets) is then
anchored to the document with the method described above for
localization of single targets. In some example embodiments, the
bounding box or bounding area may be extend over multiple rows. The
two dimensional statistics of the spread, size, probability density
of target localizations within an area covered of the bounding area
are trained based upon the statistics of the learn-set documents
presented to the system. There, positional information, variance
across positions, frequency of targets, their abstracted content
(e.g., via a character to format transformation) play a role in how
to determine the area which is learned. For target localization
purposes, the statistically enriched bounding area is positioned on
the document by the anchoring method described above for the DVN
target localization. Then potential targets desired for extraction
within this area are selected based on the learned statistics for
the bounding area and returned as a multi-target localization. Such
a return value typically comprises more than one word as a
result.
[0044] Document Summarization. DVNs can also be used to
automatically summarize document content. This process is
illustrated in FIG. 14. In this example, two documents (1400 a and
1400 b) are used as inputs, two DVNs are created, and these two
DVNs are analyzed for their variability. The variance is shown in
1420 as a slightly shifted (for visual aid) overlap of the two
DVNs. Note the positional and possible content variability of the
references. An example for content variability, that also applies
to this case is shown in FIG. 9, where 905 show stable content and
910 shows content with a certain variance. Based on this
information, two summaries can be constructed: a stable summary
(1430), which keeps only similar references, and a variable summary
(1440), which keeps changing references. The (low variance) stable
reference vectors to any target on a document can represent the
"form" or "template" of the document. The (high variance) variable
reference vectors can indicate individual information per document,
and can thus be valuable for automatic summarization.
[0045] Document Compression. DVNs can also be used for compression
of a document or set of documents. In FIG. 15, document compression
is illustrated for four different documents (1500 a, 1500 b, 1500
c, 1500 d) and their respective DVNs. In the uncompressed case
(1501), all four documents have to be stored. In the compressed
case (1520), only the stable DVN (shown in 1510) and the deviations
from that DVN (1505 a, 1505 b, 1505 c, 1505 d, 1505 e), with the
respective positions on the documents for each of the non-DVN
mapped words have to be stored. For example, 1505 a could be the
string "Management-Approved" at document coordinates
+1902.times.+962 relative to the top left corner of the document.
Such variable information can be stored for 1505 b, 1505 c, 1505 d,
and 1505 e. This can be seen as the application of a delta
compression algorithm on the basis of the DVN. In this scenario,
the DVNs and the deviations from the DVNs are stored separately,
thus the redundancy of the DVNs reduce the amount of data to be
stored over many documents. Moreover, all aforementioned DVN
applications can be used on compressed documents as well, without
the need to unpack them.
Dynamic Sensory Maps (DSMs)
[0046] FIG. 16 illustrates a method for locating at least one
target in at least one document utilizing DSMs, according to one
embodiment. In 1610, one or more documents (or pieces of documents)
can be used for training. In 1620, at least one DSM can be created
from information compiled from the training. The DSM can be a set
of possible locations for at least one target. In 230, the DSM can
be applied on untrained documents to locate the target using the
target possible locations.
[0047] FIG. 17 illustrates details related to creating the DSM in
1620, according to one embodiment. In 1710, the at least one target
is identified. In 1720, the probability for the most likely
position of the target is determined. If the target location is
from the first document in a set of training documents, such target
location can be used as the probable location of the target. As
further training documents are analyzed, the possible target
locations can be increased to include other locations. The
probability for each possible target location can also be
determined by counting the frequency of the target being found at
that location (e.g., 7 times in 10 documents). The probability for
each possible target location can thus be increased or reduced
(e.g., resembling un-learning or inclusion of counter-examples) as
additional documents are reviewed.
[0048] FIG. 19 illustrates an example of creating the DSM. For
three different documents (1910 a, 1910 b, 1910 c) the location of
the targets (1940 a, 1940 b, 1940 c) is determined Gray boxes
indicate other potential targets or references on the documents. In
1950, the three documents (1910 a, 1910 b, 1910 c) are overlaid in
a manner such that the document boundaries are aligned. The
respective DSM is shown in 1970, where the different gray levels of
1980 can indicate different possible locations for the targets. The
DSM of 1970 also indicates two different axes (1985 and 1990), so
that possible locations of a target can be used on other documents
in a systematic manner (e.g., using its relative position on an x
and y axis). For example, for a "total amount" target on invoices,
it can be determined that the position along the 1985 axis can more
reliable than along the 1990 axis. This type of information can be
taken into account as a secondary criterion for the sorting of the
potential candidates for a target during extraction.
[0049] FIG. 18 illustrates details related to applying the DSM in
1630, according to one embodiment. In 1810, the DSM is overlaid
onto the document where a target is to be localized. In 1820, the
possible position(s) of the target (along with the probability for
each possible position) is obtained from the DSM. In 1830, these
possible positions can be sorted so that the position with the
highest probability can be deemed to be the position of the target.
Once the position of the target is determined, information about
the target (e.g., an amount listed in the "total amount" field) can
be found.
Fuzzy Format Engines
[0050] Fuzzy format engines can collect a list of fuzzy formats for
at least one target from training documents. During the extraction
phase, the fuzzy format engine can calculate a score for the
matching of the learned formats to the potential target. For
example, given the target value "102.65$" for an amount type
target, the fuzzy format engine could learn from the training
documents that, in the representation "ddd.ddR", d represents digit
and R represents a currency signal. If the fuzzy format engine then
finds a string "876.27$", then this string can be determined to be
a potential target value with a very high score (e.g., 10).
However, if the string "1872,12$" is found, the score could be
reduced by one for the additional digit, and reduced by another one
for the comma instead of the period, for a score of 8. As another
example, a fuzzy format engine could learn that "INVNR-10234" could
be represented as "CCCC-ddddd", where C represents capital
characters and d represents digits. Those of ordinary skill will
see that many type of fuzzy format engines can be used, and there
can also be many types of scoring utilized. Examples of other
possible scoring systems are, for example: the different handling
of missing or additional characters and digits (e.g., having a
0.125 score penalty per missing or additional character vs. a 0.25
penalty for a missing or additional digit); character string
similarity measures that can be obtained as described in the
following patent patents, which are herein incorporated by
reference: U.S. Pat. No. 7,908,430; U.S. Pat. No. 6,983,345; and
U.S. Pat. No. 7,433,997 (all entitled "Associative Memory").
[0051] While various embodiments of the present invention have been
described above, it should be understood that they have been
presented by way of example, and not limitation. It will be
apparent to persons skilled in the relevant art(s) that various
changes in form and detail can be made therein without departing
from the spirit and scope of the present invention. Thus, the
present invention should not be limited by any of the
above-described exemplary embodiments.
[0052] In addition, it should be understood that the figures
described above, which highlight the functionality and advantages
of the present invention, are presented for example purposes only.
The architecture of the present invention is sufficiently flexible
and configurable, such that it may be utilized in ways other than
that shown in the figures.
[0053] Further, the purpose of the Abstract of the Disclosure is to
enable the U.S. Patent and Trademark Office and the public
generally, and especially the scientists, engineers and
practitioners in the art who are not familiar with patent or legal
terms or phraseology, to determine quickly from a cursory
inspection the nature and essence of the technical disclosure of
the application. The Abstract of the Disclosure is not intended to
be limiting as to the scope of the present invention in any
way.
[0054] Finally, it is the applicant's intent that only claims that
include the express language "means for" or "step for" be
interpreted under 35 U.S.C. 112, paragraph 6. Claims that do not
expressly include the phrase "means for" or "step for" are not to
be interpreted under 35 U.S.C. 112, paragraph 6.
* * * * *