INFORMATION PROCESSING APPARATUS

An information processing apparatus includes a processor configured to: extract a table group including a first table and at least one second table from plural tables formed as images, the first table and the at least one second table having a common characteristic in terms of a table structure, the first table including a heading row representing attributes of attribute values included in the first table and the at least one second table, the at least one second table not including the heading row; relate the first table and the at least one second table included in the table group to each other so that the first table and the at least one second table are arranged in consecutive order, by using attribute values of an attribute which is included in the heading row and which represents consecutiveness of the first table and the at least one second table; and obtain attribute values corresponding to each of the attributes included in the heading row from a table sequence, the table sequence including the first table and the at least one second table arranged in consecutive order.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is based on and claims priority under 35 USC 119 from Japanese Patent Application No. 2021-156133 filed Sep. 24, 2021.

BACKGROUND

(i) Technical Field

The present disclosure relates to an information processing apparatus.

(ii) Related Art

Japanese Unexamined Patent Application Publication No. 2020-155054 discloses a table information reading device. The table information reading device includes a document input unit, a table structure estimator, and a table element relationship determiner. The document input unit receives input of document information and extracts table configuration information included in the document information. The table configuration information indicates the configuration of a table. Based on the table configuration information, the table structure estimator estimates table structure information indicating the association between each cell forming the table and its element type, that is, whether each cell is a header element, a content filling element, or another element. The table element relationship determiner determines the relationship between information included in the header element and that in the content filling element, based on the relationship between the positions of cells grouped into the header element in the table and the positions of cells grouped into the content filling element in the table.

SUMMARY

When a single table does not fit on one page and is divided into multiple tables with a page break, a heading row indicating attributes of the content of the table is included only in a divided heading table and not in the other tables following the heading table. If different types of multiple tables are divided and each of the divided tables is formed on one page of a sheet, the following situation may occur. If the sheets including these divided tables are imaged with an optical device, such as a scanner, in the state in which the sheets are not arranged as in the dividing order of the tables, it may not be clear which tables form the same type of table.

To deal with such a situation, in the related art, the structures of divided tables, such as the number of columns, column width, row width, border type, background color, and font type, are first checked. Then, from the divided tables having the same structure, a single table constituted by these tables is constructed, and attribute values corresponding to each attribute included in the heading row are extracted from the divided tables.

With this approach of the related art, however, the order of the divided tables is not known from the structure of the divided tables, and it is not guaranteed that the tables constructed by relating the divided tables having the same structure are arranged in the same order as that of the single original table constituted by these divided tables.

Aspects of non-limiting embodiments of the present disclosure relate to an information processing apparatus in which, even if multiple tables include a table without a heading row which represents attributes of attribute values indicated in the multiple tables, the multiple tables can be arranged in order, and then, the attribute values of each attribute included in the heading row can be obtained from the table without the heading row.

According to an aspect of the present disclosure, there is provided an information processing apparatus including a processor configured to: extract a table group including a first table and at least one second table from plural tables formed as images, the first table and the at least one second table having a common characteristic in terms of a table structure, the first table including a heading row representing attributes of attribute values included in the first table and the at least one second table, the at least one second table not including the heading row; relate the first table and the at least one second table included in the table group to each other so that the first table and the at least one second table are arranged in consecutive order, by using attribute values of an attribute which is included in the heading row and which represents consecutiveness of the first table and the at least one second table; and obtain attribute values corresponding to each of the attributes included in the heading row from a table sequence, the table sequence including the first table and the at least one second table arranged in consecutive order.

DETAILED DESCRIPTION

Exemplary embodiments of the disclosure will be described below with reference to the accompanying drawings. The same element will be designated by like reference numeral, and the same operation will be designated by like step number throughout the drawings, and an explanation thereof will not be repeated.

Images2are generated as a result of optically reading a document including tables4formed on recording mediums, such as sheets. An information processing apparatus10according to the exemplary embodiments obtains from the images2attribute values corresponding to each attribute included in a heading row6of the tables4.

FIG.1illustrates an example of a document formed as an image2received by the information processing apparatus10. A document to be received by the information processing apparatus10is of any type of document, such as a purchase order sheet, an invoice, a quotation, a contract sheet, a design drawing, and an assembly diagram, as long as the image2of the document includes a table4. The document formed as the image2may include other drawings and diagrams, such as figures and photos, as well as the table4.

“Attribute” is an item to be used for identifying information to be obtained from the image2. An attribute value corresponding to an attribute is the content of the attribute represented by one or plural characters included in the image2.

The relationship between the attribute and the attribute values in the table4will be explained below by taking the image2of a purchase order sheet shown inFIG.1as an example. “No.”, “Product Name”, “Quantity”, “Unit Price”, and “Total” indicated in the heading row6of the table4represent items for identifying information indicated in the table4and are thus examples of the attributes in the table4. While each attribute of the table4is indicated in a cell3in the heading row6, characters filled in cells3in the other rows arranged in the column direction of the table4represent attribute values of the corresponding attribute. For example, for the attribute “Total” indicated in a cell3A, “100,000”, “2,300”, “17,200”, “10,000”, “2,400”, “65,000”, and “28,000” in the cells3arranged in the column direction of the table4represent specific values of the attribute “Total” and are thus examples of attribute values of the attribute “Total”.

“Cells3” are individual regions divided by gridlines in the table4. However, the cells3may not necessarily be separated from each other by gridlines in the table4. Even without gridlines in the table4, if characters are arranged in a state in which the association between rows and columns can be uniquely identified, the position of one or plural characters is recognized as a cell3in the table4.

The information processing apparatus10defines a two-dimensional coordinate system for an image2by using a specific position within the image2as an origin P1, and represents a position within the image2by the coordinate values of the two-dimensional coordinate system. In the image2of the purchase order sheet inFIG.1, the vertex on the top left of the image2is set to be the origin P1, and the X axis is set along the horizontal direction of the image2, while the Y axis is set along the vertical direction of the image2. In the exemplary embodiments, the row direction of the table4is the X-axis direction of the two-dimensional coordinate system, while the column direction of the table4is the Y-axis direction of the two-dimensional coordinate system.

The information processing apparatus10determines the position of each column of the table4within the image2in accordance with the two-dimensional coordinate system. The position of a column is represented by the X coordinate value of the gridline separating this column from another column, for example. In the table4shown inFIG.1, the position of a column is represented by the X coordinate value of a vertex P2on the top left of a corresponding cell3in the heading row6of the table4. InFIG.1andFIGS.2A,2B,2C, and11, which will be discussed later, the position of a column is indicated only for the leftmost column as a typical example.

The table4shown inFIG.1is a portion of a single table4which is divided with a page break because of the layout or the reason that the single table4does not fit on one page.

FIGS.2A through2Cillustrate examples of tables4which follow the table4shown inFIG.1. It is assumed that the four tables4shown inFIGS.1through2Cform a single table4. That is, the tables4shown inFIGS.1through2Care generated by dividing the single table4and are thus called divided tables4.

As discussed above, a user does not necessarily create a document so that a single table4can fit on one page. The information processing apparatus10may thus receive images2including divided tables4distributed over multiple pages (four pages in the example inFIGS.1through2C).

The heading row6is located on the first row of the single table4. Unless a user intentionally inserts the heading row6on the first row of each of the divided tables4following the table4inFIG.1, the tables4inFIGS.2A through2Cdo not contain the heading row6.

For the sake of description, hereinafter, a table4including a heading row6, such as that inFIG.1, will be called a heading table4A or a table4A, while a table4without a heading row6, such as those shown inFIGS.2A through2C, will be called a following table4B or a table4B. The heading table4A and the following table4B will be simply called tables4unless it is necessary to distinguish them from each other. The heading table4A is an example of a first table according to the exemplary embodiments, while the following table4B is an example of a second table according to the exemplary embodiments.

An image2may include information representing a total for at least one attribute, such as the total price and the quantity included in a heading row6. The attribute values of such an attribute can be added to each other. In the example of the tables4shown inFIGS.1through2C, the grand total price is indicated by the item name “Grand Total” in a region8inFIG.1, and the grand total price is also indicated by the item name “Grand Total” in a cell3B in the table4B inFIG.2C.

FIG.3is a block diagram illustrating an example of the functional configuration of the information processing apparatus10according to the exemplary embodiments. The information processing apparatus10includes function units: an image receiver11, a user interface (UI)12, an image processor13, a controller14, and an output unit15; storage regions: an optical character recognition (OCR) result database (DB)16and an extraction result DB17; and a relating rule18.

An optical device (not shown), such as a scanner, optically reads the content of a document including tables4and generates images2of the document. The image receiver11receives the images2including the tables4from the optical device and sends the received images2to the image processor13. Among the images2received by the image receiver11, there are an image2including a table4which fits on one page and images2including divided tables4distributed over multiple pages. The images2received by the image receiver11may not necessarily be arranged in page order. In some images2, pages may be arranged out of order, a page may be missing, or a page of a document which is not related to a document from which attribute values are to be extracted may be mixed. For example, the correct order of the images2including the tables4shown inFIGS.1through2Cis the image2inFIG.1, that inFIG.2A, that inFIG.2B, and that inFIG.2C. If, however, a purchase order sheet whose pages are not arranged in order is read by a scanner, the image receiver11may receive the images2in order of the image2inFIG.1, that inFIG.2B, that inFIG.2A, and that inFIG.2C.

The UI12receives an instruction, such as an instruction to start receiving images2using the image receiver11, from a user who intends to obtain the attribute values of attributes in the tables4of the images2by using the information processing apparatus10. The UI12also supplies various items of information, such as the operation and the state of the information processing apparatus10, to a user.

The image processor13executes processing for extracting character information from the images2received by the image receiver11and also for extracting the attribute values corresponding to a predetermined attribute in the tables4from the extracted character information. To execute this processing, the image processor13includes an OCR processor13A and an extractor13B.

The OCR processor13A performs known image recognition processing for the received images2so as to convert portions of the images2corresponding to the characters into character codes. That is, as a result of executing processing by the OCR processor13A, the portions of the images2corresponding to the characters can be handled as character information, which makes it possible to copy the characters and to search for the characters.

The OCR processor13A also recognizes the gridlines of a table4so as to identify the structure of the table4. If a table4does not contain gridlines, the OCR processor13A may identify the structure of the table4by using certain characteristics regarding how the characters are arranged in the table4, such as the characters are arranged along the row direction and the column direction in a lattice form.

The structure of a table4is the external-appearance characteristics, such as the number of columns, column width, row width, border type, positions of columns, background color of cells3, and font type and size of characters in the cells3. To identify the structure of a table4, a known recognition method, such as that disclosed in Japanese Unexamined Patent Application Publication No. 2020-155054, for example, may be used. Information representing the structure of a table4will be called the structure information of a table4.

Hereinafter, the character information and the structure information of a table4obtained from an image2by the OCR processor13A will be called OCR results. The OCR processor13A stores the OCR results in the OCR result DB16.

The extractor13B checks the OCR results stored in the OCR result DB16, extracts all the tables4included in the images2received by the image receiver11, and groups tables4having common characteristics in terms of the structure of the tables4together. In one example, the extractor13B checks the width WD (seeFIG.1) of each column in each of the extracted tables4and groups tables4having the same width WD together as tables4having common characteristics in terms of the structure of the tables4. The extractor13B may group tables4having common characteristics together, based on a combination of the width WD of the column and another item of the structure information of the tables4.

Tables4obtained by dividing the same table4tend to have the same structure. It is thus more likely that divided tables4having common characteristics in terms of the structure of the tables4form the same table4than divided tables4which do not have common characteristics. A set of divided tables4that are likely to form the same table4will be called a table group.

A table group of a single table4which is not divided includes only this table4. In the case of divided tables4, a single table4constituted by these divided tables4includes a heading row6only at the head of this table4. A table group constituted by divided tables4thus includes one heading table4A and at least one following table4B.

The extractor13B stores the individual table groups in the extraction result DB17.

After the image processor13has sorted the tables4included in the images2into table groups, the controller14performs control so that the individual tables4included in the same table group are related to each other in accordance with a predetermined rule set in the relating rule18.

The relating rule18is a rule that defines how to relate the individual tables4included in the same table group.

The relating rule18includes at least one of the following relating rules: a rule for relating individual tables4in a table group to each other so that they become consecutive (hereinafter called the consecutiveness rule); and a rule for relating individual tables4in a table group to each other so that they become consistent (hereinafter called the consistency rule).

“Consecutiveness” of tables4refers to a state in which divided tables4are arranged in consecutive order. “Consistency” of tables4refers to a state in which a combination of divided tables4reflects the content of a single table4constituted by these divided tables4(which may also be called an original table4) without any excess or shortage.

If the consecutiveness rule is set in the relating rule18, the controller14relates the individual tables4in a table group to each other so that the tables4are arranged in the same order as the original table4. If the consistency rule is set in the relating rule18, the controller14relates the individual tables4in a table group to each other after checking that the content of the original table4is reflected in the tables4obtained by relating the individual tables4in the table group to each other without any excess or shortage. In one example, relating individual tables4to each other includes a mode in which divided tables4are combined with each other so as to satisfy the relating rule18.

In this manner, when a following table4B is related to a table4A including a heading row6, the attribute values corresponding to each attribute included in the heading row6of the table4A are arranged along the column direction of the tables4. It is thus possible to obtain the association between the content (attribute value) of each cell3in the following table4B without the heading row6and the attribute in the heading row6. That is, by relating the individual tables4in a table group to each other in accordance with the relating rule18so that the related tables4have at least one of the consecutiveness and the consistency, the controller14associates the heading row6included in the heading table4A to each following table4B in a virtual manner.

From the tables4related to each other so as to have at least one of the consecutiveness and the consistency, the controller14obtains the attribute values for each attribute included in the heading row6.

To obtain the attribute values for each attribute of the table4, “intra-table KV extraction”, for example, is used. “Intra-table KV extraction” is a technique of extracting attribute values for each attribute included in the heading row6page by page. “KV” stands for Key-Value. “Key” is a character string representing an attribute in an image2, while “value” is a character string representing an attribute value for an attribute. A character string may include one or plural characters.

For example, as a result of performing intra-table KV extraction for the image2of the purchase order sheet shown inFIG.1, for the attribute “Total”, “100,000”, “2,300”, “17,200”, “10,000”, “2,400”, “65,000”, and “28,000” arranged in the column direction of the table4A are extracted from the table4A as the attribute values of the attribute “Total”.

To perform intra-table KV extraction, the heading row6is required to specify the association between the content (attribute value) of a cell3in the table4A and the attribute.

It would not be possible to extract, from a following table4B without a heading row6, attribute values corresponding to each attribute of a table4by performing intra-table KV extraction. As discussed above, however, the information processing apparatus10according to the exemplary embodiments can associate a heading row6with each following table4B in a virtual manner. As a result of relating the tables4in a table group to each other so as to have at least one of the consecutiveness and the consistency, the information processing apparatus10is able to obtain the attribute values for each attribute included in the heading row6even from the following tables4B.

The controller14stores the attribute values obtained from the individual tables4, which are related to each other so as to have at least one of the consecutiveness and the consistency, in the extraction result DB17in association with the attributes included in the heading row6.

Specific processing executed by the information processing apparatus10for relating tables4to each other in accordance with the relating rule18will be discussed later in detail.

In response to an instruction from the controller14, the output unit15obtains the attribute values, which are extracted from the images2for each attribute of the original table4by the controller14, from the extraction result DB17, and outputs the obtained attribute values.

Outputting the attribute values for each attribute of a table4is to enable a user to check the attribute values for each attribute of the table4. From this point of view, sending the attribute values for each attribute of the table4to an external device via a communication network, displaying the attribute values on a display, printing the attribute values on a recording medium, such as a sheet, using an image forming device, and storing the attribute values in a storage device that a user is authorized to access are all output examples of the attribute values for each attribute of the table4.

The information processing apparatus10shown inFIG.3is constituted by a computer20, for example.FIG.4is a block diagram illustrating examples of major elements of the electrical system of the information processing apparatus10constituted by the computer20.

The computer20includes a central processing unit (CPU)21, a read only memory (ROM)22, a random access memory (RAM)23, a non-volatile memory24, and an input/output (I/O) interface25. The CPU21serves as the individual functions of the information processing apparatus10shown inFIG.3. The ROM22stores an information processing program executed by the CPU21. The RAM23is used as a work area for the CPU21. The CPU21, the ROM22, the RAM23, the non-volatile memory24, and the I/O interface25are connected to each other via a bus26.

The non-volatile memory24is an example of a storage device that can retrieve stored information even after power supplied to the non-volatile memory24is interrupted. As the non-volatile memory24, a semiconductor memory, for example, is used, or a hard disk may alternatively be used. The non-volatile memory24may not necessarily be built in the computer20, and may be a storage device that is attachable to and detachable from the computer20, such as a memory card. The OCR result DB16and the extraction result DB17are constructed in the non-volatile memory24, for example.

A communication unit27, an input unit28, and a display unit29, for example, are connected to the I/O interface25.

The communication unit27has a communication protocol for connecting to a communication network and performing data communication with external devices, such as storage devices and computers, connected to the same communication network.

The input unit28is a device that receives an instruction from a user and supplies this instruction to the CPU21. As the input unit28, buttons, a touchscreen, a keyboard, and/or a mouse, may be used. The information processing apparatus10executes a function specified by a user via the input unit28.

The display unit29is a device that displays information processed by the CPU21as an image. As the display unit29, a liquid crystal display, an organic electroluminescence (EL) display, or a projector projecting a video image on a screen, for example, may be used.

In collaboration with the UI12shown inFIG.3, the input unit28and the display unit29receive various instructions from a user and also supply various types of information about the operation and the state of the information processing apparatus10to a user.

Units connecting to the I/O interface25are not limited to those shown inFIG.4. For example, a scanner unit may be connected to the I/O interface25so as to optically read the content of a document placed on platen glass and to convert the content of the document into an image. In this case, the CPU21receives an image2of a document from the scanner unit via the I/O interface25.

If a scanner unit is not connected to the I/O interface25, the information processing apparatus10may receive an image2from an external device via the communication unit27, for example. The information processing apparatus10may alternatively receive an image2from a storage device that is attachable to and detachable from the computer20, such as a memory card.

First Exemplary Embodiment

An example of processing executed by the information processing apparatus10will be described below in detail.

FIG.5is a flowchart illustrating an example of extraction processing executed by the CPU21when the information processing apparatus10has received images2of a document from an external device via the communication unit27, for example. It is assumed that the consecutiveness rule is set in the relating rule18of the information processing apparatus10.

An information processing program that describes extraction processing according to a first exemplary embodiment is stored, for example, in the ROM22of the information processing apparatus10. The CPU21reads the information processing program from the ROM22and executes extraction processing.

In step S10, as a result of executing OCR processing for each of the received images2, the CPU21generates OCR results including character information within each image2and structure information of each table4, and stores the OCR results in the OCR result DB16constructed in the non-volatile memory24.

In step S20, the CPU21executes intra-table KV extraction to extract, from a table4A including a heading row6, attribute values for each attribute of the table4A included in the heading row6. The CPU21then stores the extracted attribute values in the RAM23in association with the corresponding attributes of the table4A.

In step S30, the CPU21obtains the structure information of each table4included in the images2from the OCR result DB16.

In step S40, by using the structure information of each table4obtained in step S30, the CPU21sorts the tables4included in the images2into table groups, each group including tables4having common characteristics in terms of the structure of the tables4. For the sake of easy understanding, it is assumed that the tables4are sorted into one table group.

In step S50, the CPU21obtains the attributes of the table4A included in the heading row6. In the table4A of the purchase order sheet shown inFIG.1, for example, “No.”, “Product Name”, “Quantity”, “Unit Price”, and “Total” are obtained as the attributes of the table4A included in the heading row6.

In step S60, the CPU21judges whether the attributes of the table4A obtained in step S50includes an order attribute. The order attribute is an attribute representing the arrangement order of the tables4. In the table4A of the purchase order sheet inFIG.1, for example, “No.”, which is an example of the attributes included in the heading row6, is information for managing the arrangement order of the rows of the tables4by using integers starting from “1” in ascending order, and is thus an example of the order attribute. In this manner, the arrangement order of the attribute values for the order attribute is determined by a certain regularity, such as ascending order or descending order. The CPU21is thus able to determine whether the divided tables4have the consecutiveness from the arrangement order of the attribute values of the order attribute.

If it is judged in step S60that an order attribute is included in the heading row6, the CPU21proceeds to step S70.

In step S70, the CPU21sets the heading table4A as a comparison table, which is used to be compared with another table4to determine whether this table4has the consecutiveness. That is, setting the heading table4A as a comparison table enables the CPU21to select a following table4B to follow the heading table4A from the divided tables4included in the table group.

In step S80, the CPU21selects one of the following tables4B included in the table group. In this case, the CPU21may randomly select one of the following tables4B, but it is more desirable to select one of the following tables4B included in the images2in accordance with the receiving order of the images2.

Usually, a user is more likely to image documents in page order than to image documents out of order by mistake. If one of the following tables4B is selected in accordance with the receiving order of the images2, the following table4B positioned most closely to the comparison table when the images2are received is selected. This may decrease the time to relate the divided tables4to each other so that they become consecutive, compared with when one of the following tables4B is selected randomly. In the first exemplary embodiment, the following table4B selected in step S80will be called the selected following table4B.

In step S90, the CPU21compares the attribute value of the order attribute in the final row of the table4A, which is set as a comparison table, with that in the first row of the selected following table4B, and judges whether the attribute value of the order attribute of the comparison table and that of the selected following table4B are arranged in accordance with a certain regularity determined for this order attribute. That is, the CPU21judges whether the attribute values of the order attribute are arranged consecutively from the final row of the comparison table to the first row of the selected following table4B.

If the heading table4A shown inFIG.1is set as the comparison table and if the following table4B shown in FIG.2A is the selected following table4B, the attribute value of the attribute “No.” in the final row of the comparison table is “7”, while the attribute value positioned in the same column of the attribute “No.” and in the first row of the selected following table4B is “8”. If the regularity determined for the attribute “No.” is that the integer is incremented one by one from the top to the bottom of the tables4, the CPU21judges that the comparison table and the selected following table4B are arranged in consecutive order since the attribute value of the comparison table and that of the selected following table4B are “7” and “8”, which are consecutive numbers. The comparison table is an example of “one table” according to the first exemplary embodiment, while the selected following table4B is an example of “the other table” according to the first exemplary embodiment.

If the attribute value of the order attribute in the final row of the comparison table and that in the first row of the selected following table4B are found to be consecutive in step S90, the CPU21proceeds to step S100.

Since the comparison table and the selected following table4B are arranged in consecutive order, in step S100, the CPU21relates the comparison table and the selected following table4B to each other in accordance with the arrangement order of the attribute values of the order attribute so that the selected following table4B follows the comparison table.

In step S130, the CPU21sets the selected following table4B as a new comparison table.

In step S140, the CPU21judges whether there is a following table4B which is not yet related among the following tables4B in the table group. If there is such a following table4B, the CPU21returns to step S80and selects a following table4B which is not yet related as a newly selected following table4B, among the following tables4B included in the table group.

If it is judged in step S90that the comparison table and the selected following table4B are not arranged consecutively, the CPU21proceeds to step S110.

In step S110, the CPU21judges whether there is a following table4B which is not yet related and which is not yet subjected to judging processing for the consecutiveness in relation to the current comparison table. If there is such a following table4B in the table group, the CPU21proceeds to step S80. In step S80, the CPU21selects, as a selected following table4B, a following table4B which is not yet related and which is not yet subjected to the above-described consecutiveness judging processing.

If it is judged in step S110that the following tables4B which are not yet related are all subjected to the consecutiveness judging processing, the CPU21proceeds to step S120.

An example of the situations where the result of step S90becomes NO and the result of step S110becomes YES is that, among the following tables4B in the received images, at least one following table4B is missing. In such a situation, it is difficult to relate the tables4to each other in accordance with the attribute values of the order attribute. In step S120, the CPU21thus disposes the selected following table4B subsequent to the comparison table in accordance with the receiving order of the images2. That is, the CPU21determines the following table4B included in the image2located immediately after the image2including the comparison table when the images2are received, as the following table4B to follow the comparison table.

If there are multiple table groups, the CPU21may detect a following table4B to follow the comparison table from another table group, instead of relating the following table4B to the comparison table in accordance with the receiving order of the images2in step S120. For example, tables4obtained by dividing the same table4may be distributed over multiple table groups due to the reading errors of the structure information of the tables4. In this case, if a following table4B which is consecutively arranged in relation to the comparison table is included in a table group other than that including the following table4B selected in step S80, the CPU21may obtain such a following table4B from this table group and dispose it subsequent to the comparison table.

After disposing the following table4B subsequent to the comparison table in accordance with the receiving order of the images2, the CPU21proceeds to step S130. In step S130, the CPU21sets the selected following table4B related to the comparison table to be a new comparison table.

That is, steps S80through S140are repeated until all the tables4in the table group are related to each other. As a result, the individual divided tables4included in the table group are all related to each other. Among the tables4related to each other, tables4related to each other so as to be consecutive will be called a sequence of tables4. A sequence of tables4is constituted by a heading table4A and at least one following table4B.

If it is judged in step S140that all the tables4in the table group are related to each other, the CPU21proceeds to step S160.

As a result of relating the tables4in the table group to each other, the association between the attributes included in the heading row6of the table4A and the attribute values included in the following tables4B can be clarified. In step S160, in accordance with the arrangement order of the following tables4B, the CPU21adds, for each attribute included in the heading row6, the attribute values in the following tables4B to those extracted from the table4A by intra-table KV extraction in step S20. As a result, the attribute values of each attribute included in the heading row6can be obtained from the tables4related to each other.

If the individual tables4are related to each other so as to be consecutive, the attribute values of each attribute included in the heading row6can be obtained, as in the arrangement order of the attribute values of the original table4constituted by the individual tables4.

In step S170, the CPU21outputs the attribute values obtained for each attribute included in the heading row6in step S160and completes the extraction processing shown inFIG.5.

If the individual tables4are related to each other so as to be consecutive, the attribute values of each attribute included in the heading row6can be output, as in the arrangement order of the attribute values of the original table4constituted by the individual tables4.

If it is judged in step S60that an order attribute is not included in the heading row6, the CPU21is unable to relate the individual tables4included in the table group to each other by using the attribute values of an order attribute. The CPU21thus proceeds to step S150. In step S150, the CPU21relates the individual tables4in the table group to each other in accordance with the receiving order of the images2and then proceeds to step S160.

In this case, the related tables4are not necessarily arranged in consecutive order. The arrangement order of the attribute values obtained for each attribute in step S160may not necessarily be the same as that of the original table4. At least, however, the attribute values of each attribute included in the heading row6can be obtained from the following tables4B that do not include the heading row6.

In step S170, the CPU21outputs the attribute values obtained for each attribute included in the heading row6. In this case, it is desirable that the CPU21output, together with the attribute values, information indicating whether the related tables4are arranged in consecutive order. More specifically, if the attribute values are obtained even once from the tables4related to each other in accordance with the receiving order of the images2in step S120or S150, the CPU21outputs information indicating that the consecutiveness of the tables4is not guaranteed. Conversely, if the attribute values are never obtained even once from the tables4that are related to each other in accordance with the receiving order of the images2in step S120or S150, the CPU21outputs information indicating that the consecutiveness of the tables4is guaranteed.

If the tables4included in the received images2are sorted into multiple table groups in step S40, steps S50through S170are executed for each table group.

As described above, even when a single table4is divided into plural tables4distributed over multiple pages and following tables4B do not have a heading row6, the information processing apparatus10can relate the divided tables4to each other so that the attribute values of the following tables4B become consecutive, in accordance with the arrangement order of the attribute values of the order attribute included in the heading row6of the table4A. It is thus possible for the information processing apparatus10to obtain the attribute values for each attribute included in the heading row6from the divided tables4, as in the arrangement order of the attribute values of the original single table4.

Second Exemplary Embodiment

In the first exemplary embodiment, a description has been given of an example of processing to be executed when the consecutiveness rule is set in the relating rule18of the information processing apparatus10. In a second exemplary embodiment, an example of processing to be executed when the consistency rule is set in the relating rule18will be discussed.

The information processing apparatus10according to the second exemplary embodiment first checks whether tables4generated by relating individual tables4in a table group to each other has a portion missing from an original table4or an excess portion which is not included in the original table4, and then obtains the attribute values for each attribute included in a heading row6from the divided tables4.

FIG.6is a flowchart illustrating an example of extraction processing executed by the CPU21when the information processing apparatus10has received images2of a document from an external device via the communication unit27, for example.

An information processing program that describes extraction processing according to the second exemplary embodiment is stored, for example, in the ROM22of the information processing apparatus10. The CPU21reads the information processing program from the ROM22and executes extraction processing.

Steps S200through S230inFIG.6are the same as steps S10through S40of the extraction processing of the first exemplary embodiment shown inFIG.5, and an explanation thereof will thus be omitted. As in the first exemplary embodiment, for the sake of easy understanding, the individual tables4are sorted into one table group in step S230.

In step S240, the CPU21obtains each attribute included in the heading row6of the table4A. The CPU21also detects, from one of the tables4in the table group, a portion in which a total of the attribute values of at least one attribute included in the heading row6of the table4A is indicated (hereinafter such a portion will be called a total field). The CPU21obtains the total of the attribute values indicated in the detected total field, that is, the total of the attribute values of one of the attributes included in the heading row6of the table4A.

For example, in the tables4shown inFIGS.1through2C, the CPU21detects at least one of “Grand Total” indicated inFIG.1and that inFIG.2Cfrom the tables4as a total field, and obtains “566,000” written in the same row as the total field, as the total in the total field. Hereinafter, the total in a total field obtained from an image2including a table4in a table group will be called the obtained total. That is, the obtained total is an example of a total which has been indicated in an image2including a table4.

To detect a total field from a table4, characters representing the meaning of a total, such as “Total”, “Total Sum”, and “Cumulative”, are detected from the table4. To obtain the total in a total field, information on the position of the attribute value in the total field in relation to the position of the total field may be provided in advance. Then, the CPU21can obtain the total in the total field from the table4in accordance with this information.

If a character string related to one of the attributes in the heading row6of the table4A is included in the item name in the detected total field, it is possible to determine that the total indicated in the total field is a total of the attribute values of this attribute in the heading row6. For example, “Grand Total”, which is an example of the total field, shown inFIGS.1and2C, includes a character string “Total”. It can thus be determined that “Grand Total” is a total field representing the total of the attribute values of the attribute “Total” included in the heading row6of the table4A inFIG.1. Hereinafter, among the attributes included in the heading row6of the table4A, if the total of the attribute values of one of the attributes is indicated in a total field, such an attribute will be called a matching attribute.

Alternatively, if the position of the total in the total field is related to the position of one of the attributes included in the heading row6, the CPU21may determine that the total indicated in the total field is a total of the attribute values of this attribute in the heading row6. For example, if, as in the table4B inFIG.2C, the column of “566,000”, which represents the total of “Grand Total”, is located in the same column of “Total” in the heading row6of the table4A inFIG.1, the CPU21determines that “566,000” is a total field in which the total of the attribute values of the attribute “Total” is indicated.

In step S250, the CPU21selects the heading table4A and calculates the total of the attribute values for the matching attribute in the heading table4A. The total calculated from the attribute values indicated in a table4by the CPU21will be called the calculated total.

In step S260, the CPU21judges whether the calculated total determined for the matching attribute in step S250and the obtained total found for the matching attribute in step S240are equal to each other. If the calculated total and the obtained total are different values, the CPU21proceeds to step S270.

If the calculated total and the obtained total are different, it means that there is at least one following table4B to follow the heading table4A. Then, in step S270, the CPU21stores the calculated total of the heading table4A obtained in step S250in the RAM23as a cumulative calculated total.

In step S280, the CPU21selects one of the following tables4B included in the table group. In this case, the CPU21may randomly select one of the following tables4B, but it is more desirable to select one of the following tables4B included in the images2in accordance with the receiving order of the images2. In the second exemplary embodiment, the following table4B selected in step S280will be called a selected following table4B.

Then, the CPU21calculates the total of the attribute values in the selected following table4B for the matching attribute. The CPU21recognizes the attribute values in the selected following table4B positioned in the same column as the column of the matching attribute in the heading row6as the attribute values in the selected following table4B for the matching attribute.

In step S290, the CPU21adds the calculated total of the selected following table4B obtained in step S280to the cumulative calculated total stored in the RAM23, and stores the resulting cumulative calculated total in the RAM23as the updated cumulative calculated total.

In step S300, the CPU21judges whether the updated cumulative calculated total stored in step S290and the obtained total found for the matching attribute in step S240are the same value. If the cumulative calculated total and the obtained total are found to be the same, the CPU21proceeds to step S310.

If the cumulative calculated total and the obtained total are the same, it means that, if the tables4subjected to obtaining of the calculated totals forming the cumulative calculated total are related to each other, the original table4can be constructed without any excess or shortage.

That is, the individual tables4subjected to obtaining of the calculated totals forming the cumulative calculated total, which is the same value as the obtained total, have consistency. In step S310, the CPU21thus sets relating information of the tables4to be “normal”. The relating information of the tables4is information indicating in which manner the tables4are related to each other in terms of the consistency. If the relating information is “normal”, it means that the individual tables4related to each other have consistency.

In step S320, the CPU21relates the following tables4B subjected to obtaining of the calculated totals forming the cumulative calculated total to the heading table4A selected in step S250. Relating of the following tables4B to the heading table4A is desirably performed in the selecting order of the following tables4B in step S280. For example, if the following tables4B are selected in order of the following table4B inFIG.2A, that inFIG.2B, and that inFIG.2Cfor the heading table4A inFIG.1, the CPU21relates the tables4in order of the table4inFIG.1, that inFIG.2A, that inFIG.2B, and that inFIG.2C. The CPU21then stores the tables4in the extraction result DB17in association with the relating information.

Steps S370and S380are the same as steps S160and S170of the first exemplary embodiment shown inFIG.5. That is, the CPU21extracts the attribute values for each attribute included in the heading row6from the related tables4and outputs the extracted attribute values. The CPU21then completes the extraction processing inFIG.6.

If the cumulative calculated total and the obtained total are found to be different in step S300, the CPU31proceeds to step S340.

In step S340, the CPU21judges whether all the following tables4B included in the table group have been selected. If there is any unselected following table4B, the total of the attribute values in this following table4B is added to the cumulative calculated total. Then, the resulting cumulative calculated total and the obtained total may become equal to each other.

Hence, the CPU21proceeds to step S280and selects one of the following tables4B included in the table group as a newly selected following table4B. The CPU21then executes steps S290and S300for the newly selected following table4B.

If it is judged in step S340that all the following tables4B in the table group have been selected, the CPU21proceeds to step S350.

If the cumulative calculated total and the obtained total do not become the same even though all the following tables4B in the table group have been selected, there is excess or shortage in the number of tables4included in the table group in comparison with the number of tables4obtained by dividing the original table4. Such a situation occurs when tables4are not sorted correctly into table groups or when an unnecessary table4is mixed into the received images2or a necessary table4is not included in the received images2.

That is, the tables4included in the table group lack consistency. In step S350, the CPU21judges whether the relating state of the tables4is “shortage” or “excess”.

If the relating state is “shortage”, it means that a table4is missing from the divided tables4and it is not possible to construct the original table4. More specifically, if the cumulative calculated total is less than the obtained total, the CPU21determines that the relating state of the tables4is “shortage”.

If the relating state is “excess”, it means that a table4, which is a different type of table4from the original table4, is included in the table group as a following table4B, and it is not possible to construct the original table4. More specifically, if the cumulative calculated total exceeds the obtained total, the CPU21determines that the relating state of the tables4is “excess”.

In step S360, the CPU21sets the judging result obtained in step S350in the relating information of the tables4and proceeds to step S320.

If the calculated total and the obtained total are found to be the same step S260, the CPU21proceeds to step S330.

In this case, the heading table4A is the original table4. That is, there is no following table4B to follow the heading table4A. In this case, the heading table4A has consistency by itself. In step S330, the CPU21sets the relating information of the tables4to be “normal” and proceeds to step S370.

When outputting the attribute values of each attribute included in the heading row6in step S380, the CPU21may also output information indicating whether the attribute values have consistency. More specifically, if the attribute values are obtained from the tables4associated with relating information set to be “normal”, the CPU21outputs information that the consistency of the attribute values is guaranteed. Conversely, if the attribute values are obtained from the tables4associated with relating information set to be “shortage” or “excess”, the CPU21outputs information that the consistency of the attribute values is not guaranteed.

In the information processing apparatus10according to the second exemplary embodiment, even when a single original table4is divided into plural tables4distributed over multiple pages and the following tables4B do not have a heading row6, the attribute values of each attribute included in the heading row6can be obtained from the divided tables4associated with relating information set to be “normal” without any excess or shortage in comparison with the attribute values in the original table4.

Even if an order attribute is not included in the heading row6of a table4, if a matching attribute is included, the consistency rule can be set in the relating rule18of the information processing apparatus10. Then, all the attribute values indicated in the original table4can be obtained without any excess or shortage for each attribute included in the heading row6from the divided tables4associated with relating information set to be “normal”.

Third Exemplary Embodiment

The information processing apparatus10of the first exemplary embodiment obtains the attribute values for each attribute included in the heading row6from each of the divided tables4, as in the arrangement order of the attribute values in the original table4. In this configuration, it is clear that the obtained attribute values have consecutiveness, but it is not known whether the attribute values indicated in the original table4are all obtained for each attribute in the heading row6without any access or shortage.

For example, if, among the tables4distributed over the four pages shown inFIGS.1through2C, the tables4of the first through third pages are sorted into the same table group, while the last fourth page, that is, the table4B inFIG.2C, is sorted into another table group, the attribute values obtained from the table group including the first through third pages have consecutiveness but lack consistency.

In a third exemplary embodiment, the information processing apparatus10obtains attribute values both having consecutiveness and consistency for each attribute included in a heading row6from each of the divided tables4.

FIG.7is a flowchart illustrating an example of extraction processing executed by the CPU21when the information processing apparatus10has received images2of a document from an external device via the communication unit27, for example.

It is assumed that both of the consecutiveness rule and the consistency rule are set in the relating rule18of the information processing apparatus10.

An information processing program that describes extraction processing according to the third exemplary embodiment is stored, for example, in the ROM22of the information processing apparatus10. The CPU21reads the information processing program from the ROM22and executes extraction processing.

In step S400, the CPU21executes first processing. The first processing is processing according to steps S10through S150of the extraction processing of the first exemplary embodiment. It is assumed that the divided tables4are related to each other as a sequence of tables4as a result of executing the first processing.

In step S410, the CPU21judges whether a total field is included in any of the images2having the sequence of tables4. If a total field is included, the CPU21proceeds to step S420and obtains the total indicated in the total field.

As discussed above in the explanation of step S240of the extraction processing of the second exemplary embodiment shown inFIG.6, the CPU21identifies a matching attribute corresponding to the total field by using at least one of information on the item name in the total field and information on the position of the total in the total field.

In step S430, the CPU21sequentially adds, for the matching attribute, the calculated total of the attribute values in one table4in the sequence of tables4to that of another table4in the sequence of tables4to each other, thereby obtaining the cumulative calculated total of the attribute values of all the tables4for the matching attribute.

In step S440, the CPU21judges whether the obtained total found in step S420and the cumulative calculated total determined in step S430are the same value. If the obtained total and the cumulative calculated total are found to be the same value, the CPU21proceeds to step S450.

In this case, the sequence of tables4obtained by relating the individual tables4to each other in the first processing has consistency. The CPU21thus executes steps S450and S460, which are the same as steps S160and S170of the extraction processing of the first exemplary embodiment shown inFIG.5. More specifically, the CPU21extracts the attribute values for each attribute included in the heading row6from the sequence of tables4having consecutiveness and consistency, and outputs the extraction results. The CPU21then completes the extraction processing inFIG.7. The CPU21may inform a user that the attribute values obtained from the sequence of tables4have consecutiveness and consistency.

If it is judged in step S410that no total field is included in the images2having the tables4forming the sequence of tables4, it is not known whether the sequence of tables4has consistency as well as consecutiveness. Hence, the CPU21does not obtain the attribute values for each attribute included in the heading row6from the sequence of tables4and terminates the extraction processing inFIG.7. In this case, the CPU21desirably informs a user, for example, that processing for obtaining the attribute values is terminated because it is not known whether the sequence of tables4has consistency.

If it is judged in step S440that the obtained total and the cumulative calculated total are different, it means that the sequence of tables4has consecutiveness but lacks consistency. Hence, the CPU21does not obtain the attribute values for each attribute included in the heading row6from the sequence of tables4and terminates the extraction processing inFIG.7. In this case, the CPU21desirably informs a user, for example, that processing for obtaining the attribute values is terminated because the sequence of tables4lacks consistency.

As described above, when the tables4obtained by relating divided tables4to each other have both consecutiveness and consistency, the information processing apparatus10according to the third exemplary embodiment obtains the attribute values for each attribute included in the heading row6. That is, the attribute values obtained for each attribute from the individual divided tables4by executing the extraction processing of the third exemplary embodiment have consecutiveness and consistency.

If, in response to information that the sequence of tables4lacks consistency or it is not known whether the sequence of tables4has consistency, a user has provided an instruction to obtain attribute values via the input unit28, the CPU21may obtain the attribute values for each attribute included in the heading row6from the sequence of tables4even though the sequence of tables4lacks consistency.

Fourth Exemplary Embodiment

The information processing apparatus10according to the third exemplary embodiment judges whether a sequence of tables4having consecutiveness also has consistency, and if the tables4obtained by relating the divided tables4have both consecutiveness and consistency, the information processing apparatus10obtains the attribute values for each attribute included in the heading row6. That is, in the third exemplary embodiment, the consecutiveness of the tables4is first determined, and then, the consistency of the tables4is determined. However, this order may be reversed.

In a fourth exemplary embodiment, the information processing apparatus10first determines the consistency of divided tables4and then determines the consecutiveness of the divided tables4. Then, the information processing apparatus10obtains the attribute values having consecutiveness and consistency for each attribute included in a heading row6.

FIG.8is a flowchart illustrating an example of extraction processing executed by the CPU21when the information processing apparatus10has received images2of a document from an external device via the communication unit27, for example.

It is assumed that both of the consecutiveness rule and the consistency rule are set in the relating rule18of the information processing apparatus10.

An information processing program that describes extraction processing according to the fourth exemplary embodiment is stored, for example, in the ROM22of the information processing apparatus10. The CPU21reads the information processing program from the ROM22and executes extraction processing.

In step S500, the CPU21executes second processing. The second processing is processing according to steps S200through S360of the extraction processing of the second exemplary embodiment.

In step S510, the CPU21refers to the content of relating information of the tables4related to each other in step S500(hereinafter simply called the related tables4in the fourth exemplary embodiment) and judges whether the relating information is set to be “normal”.

If the relating information is not set to be “normal”, it is not guaranteed that the related tables4have consistency, and the CPU21thus terminates the extraction processing. In this case, the CPU21desirably informs a user that obtaining of attribute values is terminated because it is not known whether the related tables4have consistency.

If it is judged in step S510that the relating information is set to be “normal”, the CPU21proceeds to step S520. That is, when the tables4related to each other as a result of executing the second processing has consistency, the CPU21proceeds to step S520.

In step S520, the CPU21judges whether an order attribute is included in the heading row6of the related tables4. If an order attribute is not included, the CPU21terminates the extraction processing inFIG.8since the consecutiveness of the related tables4is not guaranteed. In this case, the CPU21desirably informs a user that obtaining of attribute values is terminated because it is not known whether the related tables4have consecutiveness even though they have consistency.

If it is determined in step S520that an order attribute is included in the heading row6of the related tables4, the CPU21proceeds to step S530.

In step S530, the CPU21judges whether the related tables4are arranged in consecutive order. For making this judgement, the approach discussed in step S90of the extraction processing of the first exemplary embodiment shown inFIG.5is used. If the related tables4are not arranged in consecutive order, the CPU proceeds to step S540.

It is at least guaranteed that the related tables4have consistency as a result of executing step S510. Accordingly, if the order of the related tables4is rearranged so that the attribute values in the related tables4corresponding to the order attribute become consecutive, the rearranged tables4become consecutive.

In step S540, the CPU21thus refers to the attribute values in the related tables4corresponding to the order attribute and rearranges the related tables4so that they become consecutive. The CPU21then proceeds to step S550.

If it is judged in step S530that the related tables4are arranged in consecutive order, rearranging of the order of the related tables4is not necessary, and the CPU21proceeds to step S550by skipping step S540.

The CPU21executes steps S550and S560, which are the same as steps S160and S170of the extraction processing of the first exemplary embodiment shown inFIG.5. More specifically, the CPU21extracts the attribute values for each attribute included in the heading row6from the related tables4having consecutiveness and consistency, and outputs the extraction results. The CPU21then completes the extraction processing inFIG.8. The CPU21may inform a user that the attribute values obtained from the related tables4have consecutiveness and consistency.

As described above, when the tables4obtained by relating divided tables4to each other have both consecutiveness and consistency, the information processing apparatus10according to the fourth exemplary embodiment obtains the attribute values for each attribute included in the heading row6. That is, the attribute values obtained for each attribute from the individual divided tables4by executing the extraction processing of the fourth exemplary embodiment have consecutiveness and consistency.

If, in response to information that the related tables4lack consistency or it is not known whether the related tables4have consecutiveness, a user has provided an instruction to obtain attribute values via the input unit28, the CPU21may obtain the attribute values for each attribute included in the heading row6from the related tables4even though the related tables4lack at least one of the consistency and consecutiveness.

In the extraction processing executed by the information processing apparatus10according to the fourth exemplary embodiment, if the relating information associated with the related tables4is not set to be “normal”, the CPU21terminates the extraction processing without obtaining the attribute values from the related tables4since it is not guaranteed that the related tables4have consistency. Nevertheless, even if the relating information associated with the related tables4is not set to be “normal”, it may be possible to make adjustment so that the related tables4become consistent.

As discussed in the first exemplary embodiment, tables4obtained by dividing the same table4may be distributed over multiple table groups due to the reading errors of the structure information of the tables4.

In the case of related tables4associated with relating information set to be “shortage”, one of the tables4obtained by dividing the same table4may have been sorted into a table group different from the table group including the related tables4.

To deal with such a situation, if the relating information associated with related tables4indicates “shortage”, the CPU21may obtain a table4which is consistent with the related tables4from a table group other than that including the related tables4and relate the obtained table4to the related tables4. In this case, the resulting related tables4become consistent with each other, and the CPU21can proceed to step S520inFIG.8.

Conversely, in the case of related tables4associated with relating information set to be “excess”, a table4obtained by dividing a different type of table4from that of the related tables4is mixed into the table group of the related tables4.

To deal with such a situation, if the relating information associated with related tables4indicates “excess”, the CPU21refers to the attribute values of the related tables4corresponding to the order attribute included in the heading row6and removes the table4which is not consecutive among the related tables4. The CPU21then checks the consistency of the resulting related tables4by comparing the obtained total and the cumulative calculated total of the attribute values corresponding to the matching attribute.

After checking that the related tables4have consistency, the CPU21can proceed to step S520inFIG.8.

With the above-described adjustment processing, even when the relating information associated with related tables4indicates information other than “normal”, it may be possible to make adjustment so that the related tables4become consistent.

In the extraction processing shown inFIG.6executed by the information processing apparatus10according to the second exemplary embodiment, if the relating information is set as “shortage” or “excess” in step S360, the CPU21may execute the above-described adjustment processing and then extract the attribute values for each attribute included in the heading row6from the related tables4.

Modified Examples of Consecutiveness Judging

There may be a case in which the order attribute is not included in the heading row6of the heading table4A included in a table group. Even in this situation, the CPU21may relate divided tables4to each other so that they become consecutive by using external information which is located outside the heading table4A and following tables4B and which indicates the consecutiveness between the heading table4and following tables4B.

FIG.9illustrates an example of a page number, which is an example of external information. If an image2including a table4has a page number5, the CPU21may be able to relate the divided tables4sorted into the same table group so that they become consecutive, by using this page number5as external information.

FIG.10illustrates an example of a table number7, which is an example of external information. As shown inFIG.10, a table number7, which indicates the order of tables4, such as “Table 1” and “FIG.1”, may be provided near each of the divided tables4. Especially for documents such as papers and reports, it is customary to provide a table number7for each of the tables4obtained by dividing the same table4. The CPU21is thus able to relate the divided tables4sorted into the same table group so that they become consecutive, by using the table number7as external information.

If an order attribute is included in the heading row6of the heading table4A included in a table group, the CPU21may first relate the divided tables4so that they become consecutive, based on the arrangement order of the attribute values of this order attribute. Then, the CPU21may double-check whether the related tables4are consecutive by using external information.

A description has been given of an example in which a single table4is divided into plural tables4each indicated on one page, as shown inFIGS.1through2C, and the divided tables4are related to each other so that they have at least one of the consecutiveness and consistency. However, a table4may be divided in a different manner. For example, a single table4may be divided into plural tables4indicated on the same page, as shown inFIG.11.

Regardless of the dividing mode of tables4, as long as a single table4is divided into plural tables4, the information processing apparatus10is able to relate these tables4to each other so that they have at least one of the consecutiveness and consistency and to obtain the attribute values for each attribute included in the heading row6. In the dividing mode of the tables4shown inFIG.11, therefore, the information processing apparatus10is able to relate the tables4so that they have at least one of the consecutiveness and consistency and obtain the attribute values for each attribute included in the heading row6.

An example of the information processing apparatus10has been discussed through illustration of the exemplary embodiments. However, the disclosed mode of the information processing apparatus10is an only example and is not limited to that in the exemplary embodiments. Various modifications and/or improvements may be made to the exemplary embodiments without departing from the spirit and scope of the disclosure. Exemplary embodiments obtained by making modifications and/or improvements are also encompassed within the technical range of the disclosure. For example, the order of steps of extraction processing shown in each ofFIGS.5through8may be changed without departing from the spirit and scope of the disclosure.

In the above-described exemplary embodiments, extraction processing is implemented by software by way of example. However, processing equivalent to extraction processing shown inFIGS.5through8may be implemented by using hardware. In this case, extraction processing is executed faster than using software.

Although the information processing program is installed in the ROM22in the above-described exemplary embodiments, it may be provided in a different manner. For example, the information processing program may be provided as a result of being recorded in a storage medium that can be read by the computer20, such as in an optical disc (a compact disc (CD)-ROM or a digital versatile disc (DVD)-ROM), or in a portable semiconductor memory, such as a universal serial bus (USB) memory and a memory card.

The ROM22, the non-volatile memory24, a CD-ROM, a DVD-ROM, a USB memory, and a memory card are examples of non-transitory storage mediums.

Additionally, the information processing apparatus10may download the information processing program from an external device connected to the communication unit27via a communication network and store the downloaded information processing program in a non-transitory storage medium. In this case, the CPU21of the information processing apparatus10reads the information processing program from the non-transitory storage medium and executes extraction processing.