System and method for capturing and classifying data

JP7638009B2Active Publication Date: 2025-03-03STRIDER TECHNOLOGIES INC
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
JP2023074138
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2022-05-01
Filing Date
2023-04-28
Publication Date
2025-03-03
Estimated Expiration
2043-04-28

Smart Images

  • Figure 0007638009000001
    Figure 0007638009000001
  • Figure 0007638009000002
    Figure 0007638009000002
  • Figure 0007638009000003
    Figure 0007638009000003
Patent Text Reader

Abstract

To improve a method for capturing and classifying data.SOLUTION: At least one table is found in first content. The table includes a row of a first group and a column of the first group. It is determined that a first term indicating a person name is included in a first row of rows of the first group and a first column of columns of the first group. A second row is identified in rows of the first group. The second row includes at least a first person name in the first column and a first item of personal identification information in a second column of columns of the first group. First data is extracted indicating the first person name and the first item of the personal identification information. The first data is added to a first profile associated with the first person name.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to data processing, and in particular to data classification. [Background technology]

[0002] There is an increasing need for businesses, individuals, and the like to analyze, extract, classify, and otherwise process data obtained from various sources. However, in practice, the sheer size and / or complexity of the available data sources appears to hinder the implementation of data processing. Thus, improved methods of capturing and classifying data are desirable. Summary of the Invention

[0003] Methods and systems for capturing and classifying data are disclosed. In those embodiments, at least one table is found among the first content, the table including a first set of rows and a first set of columns. The first content includes, for example, content obtained from a first website. A first row of the first set of rows and a first column of the first set of columns are determined to include a first term indicative of a person's name. A second row is identified among the first set of rows, the second row including at least the first person's name in the first column and a first item of personal identifying information in the second column of the first set of columns. First data indicative of the first person's name and the first item of personal identifying information is extracted. The first data is added to a first profile associated with the first person's name. [Brief description of the drawings]

[0004] The accompanying drawings constitute a part of this specification, illustrate embodiments and, together with the description, serve to explain the principles of methods and systems according to the invention.

[0005] [Figure 1] FIG. 1 is a block diagram illustrating an example of an environment. [Diagram 2] 1 is an example of a table including personal identification information. [Diagram 3] 1 is an example of a table including personal identification information. [Figure 4] 1 is an example of a table including personal identification information. [Diagram 5] 1 is an example of a table including personal identification information. [Figure 6] 1 is an example of a profile group. [Figure 7A] This is one example of how data can be captured and classified. [Figure 7B] This is one example of how data can be captured and classified. [Figure 7C] This is one example of how data can be captured and classified. [Figure 8] This is one example of how data can be captured and classified. [Figure 9] FIG. 1 is a block diagram illustrating an example of a computer device. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0006] A business or individual may wish to capture personal information associated with one or more individuals. The personal information may include, for example, phone numbers, addresses, occupations, email addresses, and other personally identifiable information. The business may find such personal information across a variety of data sources, such as tens, hundreds, thousands, or millions of websites, documents, files, and the like. The business may also wish to categorize the captured personal information by individual. For example, the business may capture first personal information associated with a first individual and second personal information associated with a second individual from multiple data sources. The business may wish to locate the first personal information in a first central location associated with the first individual, and similarly, the business may wish to locate the second personal information in a second central location associated with the second individual. In this manner, the business may quickly obtain a single view of all of the personal information associated with a particular individual.

[0007] However, because of the large scale of currently available data sources, it may be difficult or impossible for an enterprise to locate all of the data sources that contain the desired personal information. For example, an enterprise may be unable to manually locate hundreds, thousands, or millions of data sources. Even if an enterprise were somehow able to locate and import the desired personal information from hundreds, thousands, or millions of data sources, the large scale of the data sources would prevent the enterprise from accurately and efficiently organizing the imported personal information by individual.

[0008] Therefore, a technique for more efficiently and accurately capturing and classifying data is desirable. Such a technique involves automatically identifying tables from multiple data sources that contain personally identifiable information, extracting the personally identifiable information from those tables, and classifying the extracted personally identifiable information by individual. Unlike conventional techniques for capturing and classifying data, this technique can efficiently capture and classify data in a single step. This can facilitate a business or the like to have a grasp of all of the personal information of various individuals in one place, without having to manually sort through multiple data sources.

[0009] 1 illustrates an example of a hardware / network configuration in which the systems and methods described herein may be implemented. Such a hardware / network system 100 includes a processor 102, a database 110, at least one user interface device 114, and at least one content source 120, which communicate over a network 116. The processor 102 may communicate with the database 110 and may cause the database 110 to store data and / or may receive stored data from the database 110. The database 110 may store a variety of data.

[0010] The processor 102, electronic storage 110, user interface device 114, and content source 120 each include one or more computing devices and / or network devices. The network 116 includes one or more public networks (e.g., the Internet) and / or one or more private networks. A private network may include a wireless local area network (WLAN), a local area network (LAN), a wide area network (WAN), a cellular network, or an intranet. The network 116 may be wired or wireless.

[0011] The processor 102 is configured to receive, ingest, and classify data and includes various elements. For example, the processor includes a content analyzer 104, a data extractor 106, and / or a data classifier 108. One or more of these elements 104, 106, 108 may be utilized to ingest and classify data from large data sources.

[0012] In an embodiment of the invention, the processor 102 includes a content analyzer 104. The content analyzer 104 is configured to accept content 122 from a content source 120. The content 122 may include digital content or analog but digitizable content, such as documents, files, articles, and web pages. The content sources 120 may include digital and analog content sources, such as but not limited to website providers, digital content providers, books, booklets, and brochures. There may be tens, hundreds, thousands, or millions of content sources 120. The content analyzer 104 may search for the content 122 in order to accept the content 122. Alternatively, the content 122 may be sent to the content analyzer 104.

[0013] The content analyzer 104 is configured to determine whether the received content 122 includes one or more tables. A table includes a sequence of data that may be structurally represented by a matrix, as described below. To determine whether a particular item of the received content 122 includes one or more tables, the content analyzer 104 may scan the content 122 or may use other suitable techniques to identify the presence (or absence) of tables. If a particular item of the content 122 does not include any tables, then the processor 102 may not perform further processing on that particular item.

[0014] If the content analyzer 104 determines that a particular item of content 122 includes one or more tables, the content analyzer 104 is configured to determine whether the tables include header rows. A "header row," as used below, is a row of a table in which each column contains a label that indicates the type of data stored in the other rows of that column. A header row is typically the first row of a table, but in some embodiments may be the last row or the second row, etc. To determine whether an identified table includes a header row, the content analyzer 104 may scan the table or use other suitable techniques to identify the presence (or absence) of a header row. For example, the content analyzer 104 may search the rows of the table for rows that include labels typically found in a header row. If an identified table does not include a header row, the processor 102 may not perform any further processing on the table.

[0015] If the content analyzer 104 determines that one or more of the identified tables includes a header row, it is configured to determine whether the header row includes a label indicative of a person's name in any column. The label indicative of a person's name may not be an actual person's name, but may be, for example, the word or characters "name" in any language, a phrase representing "legal name," "English name," or "first and last name." However, it should be understood that these labels indicative of a person's name are merely examples, and that any other label indicative of a person's name may be included in the header row instead. To determine whether the header row includes a label indicative of a person's name, the content analyzer 104 may scan the table or use any other suitable technique to identify the presence (or absence) of a label. If the header row of an identified table does not include a label indicative of a person's name, the processor 102 may not perform further processing on that table.

[0016] In some embodiments, the content analyzer 104 may determine a language for the content. For example, the content analyzer 104 may determine whether the content includes English, Spanish, French, Russian, Chinese, etc. The content analyzer 104 may determine whether the header row includes a label in any column that indicates a person's name in that language. For example, the content analyzer 104 may determine whether the header row includes at least one word, phrase, letter, or number in that language that indicates a person's name but does not include the individual's first and last name.

[0017] The content analyzer 104 is configured to determine whether at least one of the other columns of a particular table contains personally identifiable information if the header row of the particular table contains a label in the first column indicating a person's name. For example, the content analyzer 104 is configured to determine whether at least one of the other columns of the table contains a phone number, an address, an occupation, an email address, or other items of personally identifiable information. To determine whether at least one of the other columns of a table contains personally identifiable information, the content analyzer 104 may scan the table or use other suitable techniques to identify the presence (or absence) of personally identifiable information. If an identified table does not contain any columns containing personally identifiable information, the processor 102 may not perform further processing on that table.

[0018] In an embodiment, the processor 102 includes a data extractor 106. If the content analyzer 104 determines that one or more of the identified tables includes both a header row that includes a label in a first column indicating a person's name and other columns that include personally identifiable information, the content analyzer 104 is configured to send (i.e., forward) the table to the data extractor 106. The data extractor 106 is configured to receive the table.

[0019] The data extraction unit 106 is configured to extract any or all rows from a table except the header row. For example, if the header row of a 10-row table is the first row, the data extraction unit 106 is configured to extract all other 9 rows following the first row from the table. Each extracted row includes, for example, a person's name and one or more items of personal identification information corresponding to the name. For example, the data extraction unit 106 may include a person's name corresponding to an individual and one or more of a phone number, address, occupation, email address, and other items of personal identification information for the individual. The data extraction unit 106 may not extract blank rows or columns with no data in one or more columns.

[0020] In an embodiment, the processor 102 includes a data sorter 108. The data sorter 108 is configured to sort the extracted data according to a person's name (i.e., by individual). For example, the data sorter 108 may generate a hash value of a person's name in a particular row and associate that name with all of the other raw data in the same row that indicates one or more items of personally identifiable information. In this manner, the data sorter 108 sorts the extracted data so that it is arranged according to the person's name. This sorting allows a business or the like to quickly obtain personal information about a particular individual in a batch.

[0021] In an embodiment, the data classifier 108 is configured to transmit or leave the classified data to a database 110. The database 110 receives the classified data and maintains it in a profile according to the person's name. For example, the database 110 receives a hash value of a first person's name and raw data indicative of one or more items of personal identification information associated therewith, and maintains the raw data in a profile associated with the first person's name. The profile is viewable, for example, by a business or the like, through one or more user interface devices 114. The user interface devices 114 may include at least one of a tablet, a phone, a smartphone, a computer, a laptop, a television, or the like. An example profile is described below with reference to FIG. 6.

[0022] In an embodiment, two or more tables containing the same person's name are identified by the content analyzer 104 for further processing by the data extractor 106. Figures 2-5 each show examples of tables containing one or more of the same person's name. When two or more tables contain the same person's name, each table contains personally identifiable information for the person with that name. In this case, all of this personally identifiable information is extracted from each of the two or more tables and classified by the data classifier 108 into a single profile for that person.

[0023] For example, the content analyzer 104 identifies the table 200 shown in FIG. 2. The table 200 includes a header row 202, subsequent rows 204a-d, and columns 201a-c. The content analyzer 104 identifies the table 200 among a first item of content 122, for example, a document or file obtained from a first website. The header row 202 includes a label 203 indicating a person's name in column 201a. The label 203 is "Person's Name". However, it should be understood that in other embodiments, other words, phrases, or sets of characters (in any language) may instead be the label indicating a person's name. The other columns 201b-c include personal identification information. For example, column 201b includes a first item of personal identification information (i.e., occupation) and column 201c includes a second item of personal identification information (i.e., email address).

[0024] Each of the subsequent rows 204a-d pertains to a particular individual whose name is listed in column 201a. For example, row 204a pertains to an individual named "Ann." The other columns of row 204a indicate Ann's occupation, "Vice President," and her email address, "anne@company1.com." Row 204b pertains to an individual named "Ben." The other columns of row 204b indicate Ben's occupation, "Secretary," and his email address, "ben@company1.com." Row 204c pertains to an individual named "Charles." The other columns of row 204c indicate Charles' occupation, "Chief Operating Officer," and his email address, "charles@company1.com." Finally, row 204d pertains to an individual named "Drew." The other columns of row 204d indicate Drew's occupation, "Middle Management," and his email address, "drew@company1.com."

[0025] In addition to table 200, content analyzer 104 further identifies table 300, which is shown in FIG. 3. Table 300 includes a header row 302, subsequent rows 304a-d, and columns 301a-c. Content analyzer 104 identifies table 300 from within a second item of content 122, such as a document or file obtained from a second website. However, in some embodiments, content analyzer 104 may identify table 300 from within the same first item of content 122 from which table 200 was identified.

[0026] Header row 302 includes a label 303 in column 301a that indicates a person's name. Label 303 is "First Name." However, it should be understood that in other embodiments, other words, phrases, or sets of characters (in any language) may instead be labels that indicate a person's name. Other columns 301b-c contain personal identifiers. For example, column 301b contains a first item of personal identifier (i.e., phone number) and column 301c contains a second item of personal identifier (i.e., email address).

[0027] Each of the subsequent rows 304a-d pertains to a particular individual whose name is listed in column 301a. For example, row 304a pertains to an individual named "Ann." The other columns of row 304a indicate Ann's phone number, "123-6666," and email address, "anne@company1.com." Row 304b pertains to an individual named "Ben." The other columns of row 304b indicate Ben's phone number, "123-7777," and email address, "ben@company1.com." Row 304c pertains to an individual named "Charles." The other columns of row 304c indicate Charles' phone number, "123-8888," and email address, "charles@company1.com." Finally, row 304d pertains to an individual named "Drew." The other columns of row 304d indicate Drew's phone number, "123-9999," and email address, "drew@company1.com."

[0028] As shown in Figures 2-3, table 200 and table 300 share the same four names (i.e., Anne, Ben, Charles, and Drew) in columns 201a and 301a, respectively. It can be determined that the four names in table 200 and the four names in table 300 correspond to the same four people because they are associated with the same items of personal identifying information (i.e., email addresses) in each table 200 and 300. For example, it can be determined that an individual named Anne in table 200 is an individual named Anne in table 300 because both tables 200 and 300 contain the same email address (anne@company1.com) for the person name "Ann." This determination is possible because it is highly unlikely (or impossible) for two individuals to share the same email address. A similar determination can be made that Ben, Charles, and Drew in table 200 are Ben, Charles, and Drew in table 300 because of the shared items of personal identifying information (i.e., email addresses).

[0029] In some embodiments, more than two tables contain the same person's name. For example, content analyzer 104 may identify table 400, shown in FIG. 4, in addition to tables 200 and 300. Table 400 includes a header row 402, subsequent rows 404a-d, and columns 401a-c. Content analyzer 104 identifies table 400 from within a third item of content 122, such as a document or file obtained from a third website. However, in some embodiments, content analyzer 104 may identify table 400 from within the same item of content 122 from which table 200 and / or table 300 were identified.

[0030] Header row 402 includes a label 403 in column 401a that indicates a person's name. Label 403 is "Person's Name." However, it should be understood that in other embodiments, other words, phrases, or sets of characters (in any language) may instead be the label that indicates a person's name. Other columns 401b-c contain personal identifiers. For example, column 401b contains a first item of personal identifier (i.e., phone number) and column 401c contains a second item of personal identifier (i.e., address).

[0031] Each of the subsequent rows 404a-d pertains to a particular individual whose name is listed in column 401a. For example, row 404a pertains to an individual named "Ann." The other columns of row 404a indicate Ann's phone number, "123-6666," and address, "123 1st Street, State, USA." Row 404b pertains to an individual named "Ben." The other columns of row 404b indicate Ben's phone number, "123-7777," and address, "123 2nd Street, State, USA." Row 404c pertains to an individual named "Charles." The other columns of row 404c indicate Charles' phone number, "123-8888," and address, "123 3rd Street, State, USA." Finally, row 404d pertains to an individual named "Drew." Other columns in row 404d indicate Drew's phone number, "123-9999," and his address, "123 4th Street, State, USA."

[0032] As shown in Figures 2-4, tables 200, 300, and 400 share the same four names (i.e., Ann, Ben, Charles, and Drew) in columns 201a, 301a, and 401a, respectively. As described above, it has already been determined that the four names in table 200 and the four names in table 300 correspond to the same four people because they are associated with the same item of personally identifiable information (i.e., email addresses) in each table 200 and 300. It can be determined that the four names in table 300 and the four names in table 400 correspond to the same four people because they are associated with the same item of personally identifiable information (i.e., phone numbers) in each table 300 and 400.

[0033] For example, it can be determined that an individual named Ann in table 300 is an individual named Ann in table 400 because both tables 300, 400 contain the same telephone number (123-6666) for the person named "Ann." This determination is possible because it is highly unlikely (or impossible) that two individuals would share the same telephone number. A similar determination can be made that Ben, Charles, and Drew in table 300 are Ben, Charles, and Drew in table 400 because of the shared item of personally identifiable information (i.e., telephone number).

[0034] The four names in table 200 and the four names in table 400 are not associated with the same items of personal identifying information in each table 200, 400. For example, table 200 shows that an individual named Ann has an occupation of "Vice President" and an email address of "anne@company1.com". Table 400 shows that an individual named Ann has a telephone number of "123-6666" and an address of "123 1st Street, State, USA". Because tables 200 and 400 have no common items of personal identifying information, it is not possible to know whether the Ann in table 200 is the same as the Ann in table 400.

[0035] However, since it has already been determined that the Ann in table 200 is the same as the Ann in table 300 (because they have the same email address), and since it has already been determined that the Ann in table 300 is the same as the Ann in table 400 (because they have the same phone number), the transitive rules can also be used to determine that the Ann in table 200 is the same as the Ann in table 400. A similar determination using the transitive rules can also be made that the Ben, Charles, and Drew in table 200 are the same as the Ben, Charles, and Drew in table 400.

[0036] As described above, if two or more tables each contain personal identifying information for an individual with the same name, the data classifier 108 classifies all of the personal identifying information extracted from these tables into one profile for that individual. This results in the entire personal identifying information from tables 200, 300, and 400 being classified into four profiles, namely, Anne's profile, Ben's profile, Charles' profile, and Drew's profile. Each profile includes the person's occupation, email address, telephone number, and address. For example, Anne's profile includes the occupation "VP", email address "anne@company1.com", telephone number "123-6666", and address "123 1st Street, State, USA".

[0037] The same logic can be used to link tens, hundreds, thousands, or millions of names from tens, hundreds, thousands, or millions of tables from tens, hundreds, thousands, or millions of sources (items of content). Thus, a profile associated with a particular individual represents personal identifying information extracted from tens, hundreds, thousands, or millions of sources. In this way, comprehensive profiles can be generated for various individuals. If such profiles were generated manually, it would be nearly impossible for a single company or the like to generate tens, hundreds, thousands, or millions of profiles unless they had unlimited time and resources.

[0038] Alternatively, if two or more tables contain the same name, the tables may contain personal identifying information for two or more individuals with the same name (e.g., there are two or more individuals named John Smith). In this case, the data classifier 108 classifies the personal identifying information extracted from each table into two or more profiles, each of which is associated with an individual who shares the same name.

[0039] In addition to table 400, content analyzer 104 may further identify table 500, which is shown in FIG. 5. Table 500 includes a header row 502, subsequent rows 504a-d, and columns 501a-c. Content analyzer 104 identifies table 500 from within a fourth item of content 122, such as a document or file obtained from a fourth website. However, in some embodiments, content analyzer 104 may identify table 500 from within the same item of content 122 from which tables 200, 300, and / or 400 were identified.

[0040] Header row 502 includes a label 503 in column 501a that indicates a person's name. Label 503 is "Person's Name." However, it should be understood that in other embodiments, other words, phrases, or sets of characters (in any language) may instead be the label that indicates a person's name. Other columns 501b-c contain personal identifiers. For example, column 501b contains a first item of personal identifier (i.e., phone number) and column 501c contains a second item of personal identifier (i.e., address).

[0041] Each of the subsequent rows 504a-d pertains to a particular individual whose name is listed in column 501a. For example, row 504a pertains to an individual named "Ann." The other columns of row 504a indicate Ann's phone number, "456-6666," and her address, "456 5th Street, State, USA." Row 504b pertains to an individual named "Brittany." The other columns of row 504b indicate Brittany's phone number, "456-7777," and her address, "456 6th Street, State, USA." Row 504c pertains to an individual named "Cathy." The other columns of row 504c indicate Cathy's phone number, "456-8888," and her address, "456 7th Street, State, USA." Finally, row 504d pertains to an individual named "Dan." Other columns in row 504d indicate Dan's telephone number, "456-9999," and his address, "456 8th Street, State, USA."

[0042] As shown in FIG. 4-FIG. 5, tables 400 and 500 share the same name (i.e., Ann) in columns 401a and 501a, respectively. However, the Ann in table 400 and the Ann in table 500 do not correspond to the same individual because the personal identifying information in tables 400 and 500 is inconsistent. For example, it can be determined that the Ann in table 400 and the Ann in table 500 do not correspond to the same individual because tables 400 and 500 list different telephone numbers for Ann. Similarly, it can be determined that the Ann in table 400 and the Ann in table 500 do not correspond to the same individual because tables 400 and 500 list different addresses for Ann. It is unlikely that an individual named Ann would have two telephone numbers and / or two addresses, so it is likely that the Ann in table 400 is different from the Ann in table 500.

[0043] As described above, if two or more tables contain personal identification information for two or more individuals with the same name, the data classifier 108 classifies the entirety of the personal identification information extracted from each table into two or more profiles, each corresponding to an individual with the same name. The personal identification information extracted from table 500 and corresponding to Anne is classified into a different profile than the profile generated for Anne in tables 200-400. For example, a first profile associated with the person name "Ann" includes the occupation "Vice President", the email address "anne@company1.com", the telephone number "123-6666", and the address "123 1st Street, State, USA", while a second profile associated with the person name "Ann" includes the telephone number "456-6666" and the address "456 5th Street, State, USA". The personal identification information extracted from table 500 and corresponding to the people names Brittany, Cathy, and Dan are classified into three profiles.

[0044] The same logic can be used to generate tens, hundreds, thousands, or even millions of profiles associated with the same name (but different people). For example, this logic can be used to generate 2000 profiles associated with the name "Peter Jones," each showing the personal identifying information of a different individual named Peter Jones. This is a task that would be nearly impossible for a single company to do manually, unless they had unlimited time and resources.

[0045] It should be understood that although the personal names shown in tables 200, 300, 400, 500 (i.e., Anne, Ben, Charles, Drew, etc.) are first names written in English, in other embodiments the personal names shown in a particular table may include first names and / or surnames written in other languages ​​in addition to or apart from English.

[0046] Figure 6 illustrates an example of a set of profiles 600 associated with data extracted from tables 200, 300, 400, 500 of Figures 2-5. The set of profiles 600 can be stored, for example, as a JSON file (or in other suitable format). The set of profiles 600 includes profiles 602, 604, 606, 608, 610, 612, 614, 616. However, it should be understood that the set of profiles may include many more profiles than these, for example hundreds, thousands, or millions of profiles.

[0047] Profile 602 is associated with an individual identified by the person name Ann in tables 200, 300, 400 and includes personal identifying information associated with the person name Ann extracted from all of tables 200, 300, 400. Profiles 600 also include profile 604. Profile 604 is associated with an individual identified by the person name Ann in table 500 and includes personal identifying information associated with the person name Ann extracted from table 500. Profile 606 is associated with an individual identified by the person name Ben in tables 200, 300, 400 and includes personal identifying information associated with the person name Ben extracted from all of tables 200, 300, 400.

[0048] Profile 608 is associated with an individual identified by the person name Brittany in table 500 and includes personal identifying information associated with the person name Brittany extracted from table 500. Profile 610 is associated with an individual identified by the person name Cathy in table 500 and includes personal identifying information associated with the person name Cathy extracted from table 500. Profile 612 is associated with an individual identified by the person name Charles in tables 200, 300, 400 and includes personal identifying information associated with the person name Charles extracted from all of tables 200, 300, 400. Profile 614 is associated with an individual identified by the person name Dan in table 500 and includes personal identifying information associated with the person name Dan extracted from table 500. Profile 616 is associated with an individual identified by the person name Drew in tables 200, 300, 400 and includes personal identifying information associated with the person name Drew extracted from all of tables 200, 300, 400.

[0049] In one embodiment, one or more of the profiles 602, 604, 606, 608, 610, 612, 614, 616 may include instructions to associate each item of personally identifiable information with the content from which it was extracted. For example, profile 602, which includes personally identifiable information associated with a person's name Anne extracted from all of tables 200, 300, 400, may include instructions to associate each item of personally identifiable information with the content from which it was extracted. The content may be, for example, documents or files posted on one or more web pages. In this manner, a business or entity may view profile 602 to quickly obtain a summary of personally identifiable information for a particular individual, as well as the data sources from which the personally identifiable information originated.

[0050] 7A, 7B, and 7C illustrate an example method 700 for capturing and classifying data. The method 700 may be performed, for example, by the processor 102 of FIG. 1 to capture personally identifiable information from tens, hundreds, thousands, or millions of different sources and classify the data into profiles for each individual. Such method 700 may enable businesses to quickly obtain a comprehensive view of the various personal information associated with particular people.

[0051] As described above, the processor (i.e., the content analyzer 104) is configured to determine whether the content includes one or more tables. In step 702, it is determined that the first content includes at least one table, a first table. The first table includes a first set of rows and a first set of columns.

[0052] A first table is determined to include a header row. The header row includes a label in a first column that indicates the person's name. In step 704, a first term (i.e., label) that indicates the person's name is included in a first row (i.e., header row) of the first set of rows and in a first column of the first set of columns. As noted above, the label that indicates the person's name is not the actual person's name, but may be, for example, the word or characters "first name" written in any language, a phrase representing "legal name," "English name," or "first name and surname."

[0053] It is determined that at least one of the other columns of the first table includes personal identifying information, such as a phone number, an address, an occupation, an email address, or other item. In step 706, a second row of the first set of rows is identified. The second row includes at least a first name in the first column, a first item of personal identifying information in a second column of the first set of columns, and a second item of personal identifying information in a third column of the first set of columns.

[0054] Data is extracted from the second row of the first table. In step 708, the first data is extracted. The first data indicates a first name and a first and second item of personal identification information. The extracted first data is categorized according to the name (i.e., by individual). For example, a hash value of the first name is generated, and other extracted data indicating the first and second items of personal identification information is associated with the first name. In this way, the extracted first data is sorted and arranged according to the name. This arrangement allows a business or the like to quickly view personal information about a particular individual all at once.

[0055] The categorized data is maintained in a profile according to the person's name. In step 710, the first data is added to a first profile associated with the first person's name. For example, a hash value of the first person's name and other extracted data indicative of the first and second items of personally identifiable information are maintained in the first profile associated with the first person's name. The first profile is viewable by the business or the like through one or more user interface devices.

[0056] In step 712, it is determined that the second content includes another table (i.e., the second table). The second table includes a second set of rows and a second set of columns. The second content may be from the same content source as the first content or from a different content source. It is determined that the second table includes a header row. The header row includes a label in a first column that indicates a person's name. In step 714, it is determined that a second term (i.e., label) that indicates a person's name is included in a first row of the second set of rows and a first column of the second set of columns. The second term may be the same as or different from the first term included in the header row of the first table.

[0057] It is determined that at least one other column of the second table contains personal identifying information, e.g., a phone number, an address, an occupation, an email address, or other item. In step 716, a second row of the second set of rows is identified. The second row contains a first name in a first column of the second set of columns, at least one of the first and second items of personal identifying information (contained in the first table) in a second column, and a third item of personal identifying information in a third column, which may not be included in the first table.

[0058] A first name contained in both the first table and the second table is determined to correspond to the same individual because the first name is associated with at least one of the same items of personal identifying information contained in both the first table and the second table. This is possible because it is highly unlikely (or impossible) for two individuals to share the same item of personal identifying information, such as the same occupation, address, telephone number, email address, etc. Thus, a third item of personal identifying information contained in the third column of the second table is determined to relate to the same individual.

[0059] In step 718, second data indicative of a third item of personally identifying information is extracted from the second table, which third item is maintained or stored in the first profile along with the first and / or second items of personally identifying information extracted from the first table as it pertains to the individual associated with the first profile, and in step 720, the second data is added to the first profile.

[0060] In step 722, it is determined that the third content includes a different table (i.e., the third table). The third table includes a third set of rows and a third set of columns. The third content may belong to the same content set as the first content and / or the second content, or may belong to a different content set. It is determined that the third table includes a header row. The header row includes a label in a first column indicating a person's name. In step 724, it is determined that a third term (i.e., a label) indicating a person's name is included in a first row of the third set of rows and a first column of the third set of columns. The third term may be the same as or different from a first term in the header row of the first table or a second term in the header row of the second table.

[0061] It is determined that at least one of the other columns in the third table contains personally identifiable information, such as a phone number, an address, an occupation, an email address, or other item. In step 726, a second row in the third set of rows is identified, the second row containing a first name in the first column, a third item of personally identifiable information in the second column, and a fourth item of personally identifiable information in the third column.

[0062] A first name contained in both the second and third tables is determined to correspond to the same individual because the first name is associated with a third item of personal identifying information contained in both the second and third tables. This determination is possible because it is highly unlikely (or impossible) for two individuals to share the same item of personal identifying information, such as the same occupation, address, telephone number, email address, etc. Thus, a fourth item of personal identifying information contained in the third column of the third table is also determined to relate to the same individual.

[0063] In step 728, third data indicative of a fourth item of personally identifying information is extracted from the third table, which fourth item pertains to the individual associated with the first profile and is therefore maintained or stored in the first profile along with the first, second and / or third items of personally identifying information extracted from the first and second tables. In step 730, the third data is added to the first profile.

[0064] FIG 8 illustrates an example method 800 for capturing and classifying data. The method 800 may be performed, for example, by the processor 102 of FIG 1 to capture personally identifiable information from tens, hundreds, thousands, or millions of different sources and classify the data into profiles for each individual. Such method 800 may enable businesses to quickly obtain a comprehensive view of the various personal information associated with particular people.

[0065] As described above, the processor (i.e., the content analyzer 104) is configured to determine whether the content includes one or more tables. In step 802, it is determined that the first content includes at least one table, a first table. The first table includes a first set of rows and a first set of columns.

[0066] A first table is determined to include a header row. The header row includes a label in a first column that indicates the person's name. In step 804, a first term (i.e., label) that indicates the person's name is included in a first row (i.e., header row) of the first set of rows and in a first column of the first set of columns. As noted above, the label that indicates the person's name is not the actual person's name, but may be, for example, the word or characters "first name" written in any language, a phrase representing "legal name," "English name," or "first name and surname."

[0067] It is determined that at least one of the other columns in the first table contains personally identifiable information, such as a phone number, an address, an occupation, an email address, or other item. In step 806, a second row in the first set of rows is identified, the second row containing at least a first person's name in the first column and a first item of personally identifiable information in a second column in the first set of columns.

[0068] Data is extracted from the second row of the first table. In step 808, the first data is extracted. The first data indicates a first name and a first item of personal identification information. The extracted first data is categorized according to the name (i.e., by individual). For example, a hash value of the first name is generated, and other extracted data indicating the first item of personal identification information is associated with the first name. In this way, the extracted first data is sorted and arranged according to the name. This arrangement allows a business or the like to quickly view personal information about a particular individual all at once.

[0069] The categorized data is maintained in a profile according to the person's name. In step 810, the first data is added to a first profile associated with the first person's name. For example, a hash value of the first person's name and other extracted data indicative of the first item of personally identifiable information is maintained in the first profile associated with the first person's name. The first profile is viewable by the business or the like through one or more user interface devices.

[0070] In step 812, it is determined that the second content includes another table (i.e., the second table). The second table includes a second set of rows and a second set of columns. The second content may be from the same content source as the first content or from a different content source. It is determined that the second table includes a header row. The header row includes a label in a first column that indicates a person's name. In step 814, it is determined that a second term (i.e., label) that indicates a person's name is included in a first row of the second set of rows and a first column of the second set of columns. The second term may be the same as or different from the first term included in the header row of the first table.

[0071] It is determined that at least one of the other columns in the second table contains personally identifiable information, such as a phone number, an address, an occupation, an email address, or other item. In step 816, a second row in the second set of rows is identified, the second row containing a first name in a first column and a second item of personally identifiable information in a second column of the second set of columns.

[0072] A second item of personal identifying information is inconsistent with a first item of personal identifying information contained in the first table, e.g., the first item includes a unique identifier for a first individual and the second item includes a unique identifier for a second individual, where the unique identifier for the first individual is indicative of at least one of an email address, an address, a telephone number, or an occupation of the first individual, and the unique identifier for the second individual is indicative of at least one of an email address, an address, a telephone number, or an occupation of the second individual.

[0073] If a second item of personal identifying information conflicts with a first item of personal identifying information, the first item is determined to relate to the first individual and the second item is determined to relate to a second individual, where the first and second individuals are different individuals who share the same name.

[0074] Data is extracted from the second row of the second table. In step 818, second data indicative of the first name and the second item of personal identification information is extracted. The extracted second data is sorted according to the name (i.e., by individual). For example, a hash value of the first name is generated, and the other extracted data indicative of the second item of personal identification information is associated with the first name. In this way, the extracted second data is sorted and arranged according to the name. This arrangement allows a business or the like to quickly view personal information about a particular individual all at once.

[0075] The categorized data is maintained in a profile according to the person's name. In step 820, the second data is added to a second profile associated with the first person's name. For example, a hash value of the first person's name and other extracted data indicative of the second item of personally identifiable information is maintained in the second profile associated with the first person's name. The second profile is viewable by the business or the like through one or more user interface devices.

[0076] The above description assumes that the table found in the content has a single "header row". However, it should be understood that in some embodiments, one or more of the tables found in the content may have a single "header row" (i.e., a "header column"). For example, if the table found in the content includes a "header column", the table includes a label for each row in the header column. These labels indicate the type of data stored in the other columns of the associated row. All of the above description is still applicable when the "header row" is actually a "header column". For example, the word "row" may be replaced with the word "column" in various places in the above description.

[0077] Figure 9 illustrates a computing device that can be used in various contexts. With respect to the example environment of Figure 1, one or more of the processor 102, electronic storage 110, user interface device 114, or content source 120 may be implemented in an example computing device 900 illustrated in Figure 9. This computing device 900 may represent a conventional server computer, workstation, desktop computer, laptop, tablet, network device, PDA, electronic reader, digital mobile phone, or other computing node, and may be utilized to perform any of the computing operations described herein, such as performing the methods described in Figures 7A, 7B, 7C, and 8.

[0078] Computing device 900 includes a board, or "motherboard," which is a printed circuit board on which numerous components and devices are connected by a system bus or other electrical communication paths. One or more central integrated units (CPUs) 904 interface with a chipset 906. CPU 904 is a programmable processor that performs the arithmetic and logical operations necessary for the operation of computing device 900.

[0079] The CPU 904 performs the necessary operations by transitioning from one physical state to the next through the manipulation of distinguishing between a number of switching elements and switching between their states. Switching elements generally include electronic circuits, such as flip-flops, that maintain one of two states, and electronic circuits, such as logic gates, that determine an output state based on a logical combination of the states of one or more other switching elements. These basic switching elements are combined to form more complex logic circuits, such as registers, address subtractors, logic arithmetic units, floating point units, etc.

[0080] Other computing units, such as a GPU 905, may be added to or substituted for the CPU 904. The GPU 905 may include computing units specialized for highly parallel computations, such as graphics and other visualization-related processing, although such computing units are not required.

[0081] An interface is provided between the CPU 904 and the remaining components / devices on the board. This interface is available to access a random access memory (RAM) 908, which is used as the main memory of the computer device 900. This interface is also available to access computer readable storage media, such as a read only memory (ROM) 920, a non-volatile RAM (NVRAM) (not shown), etc. These storage media store basic routines that help start up the computer device 900 and transfer information between the various components / devices. The ROM 920 or the NVRAM may also store software components necessary for the operation of the computer device 900 in accordance with the embodiments described herein. The interface is implemented by one or more electrical components, such as a chipset 906.

[0082] The computing device 900 operates in a network environment, where logical connections are utilized to remotely control computer nodes and computer systems via a local area network (LAN) 916. The chipset 906 includes the capability to connect to a network through a network interface controller (NIC) 922, such as a Gigabit Ethernet adapter. The NIC 922 has the capability to connect the computing device 900 to other computer nodes through the network 916. It should be understood that there may be multiple NICs 922 in the computing device 900, allowing the computing device 900 to connect to multiple different types of networks and remotely control multiple computer systems.

[0083] The computer system 900 is connected to a storage device 928 that provides non-volatile storage for the computer. The storage device 928 stores system programs, application programs, other program modules, and data. These will be described in more detail below. The storage device 928 is connected to the computer system 900 through a storage controller 924 that is connected to the chipset 906. The storage device 928 consists of one or more physical storage units. The interface to these physical storage units is the storage controller 924, which may include a Serial Attached SCSI (SAS) interface, a Serial ATA (SATA) interface, a Fibre Channel (FC) interface, or any other type of interface that physically connects and transfers data between the computer and the physical storage units.

[0084] When the computing device 900 stores data in the storage device 928, the physical storage units undergo a physical state transition to reflect the information being stored. The physical state transition depends on a variety of factors and different embodiments described herein, including, but not limited to, the technology used to implement the physical storage units and whether the storage device 928 is characterized as primary or secondary storage.

[0085] For example, the computing device 900 may store information in the storage device 928 by issuing commands through the storage controller 924 to change the magnetic properties of a particular location in a magnetic disk drive unit, the reflective or refractive properties of a particular location in an optical storage unit, or the electrical properties of a particular capacitor, transistor, or other component in a solid-state drive unit. The above examples are intended only to facilitate the description herein, and other changes in state of a physical medium may be utilized without departing from the scope and principles of the present invention. The computing device 900 reads information from the storage device 928 by detecting the physical state or properties of one or more particular locations in a physical storage unit.

[0086] In addition to, or instead of, the storage device(s) 928 described herein, the computing device 900 may access other computer readable storage media to read and write information, such as program modules, data structures, and other data. Those skilled in the art will appreciate that computer readable storage media can be any available media that stores data in a persistent form and that can be accessed by the computing device 900.

[0087] By way of example and not limitation, computer readable storage media may include volatile, non-volatile, transitory, persistent, removable, or non-removable media implemented by any method or technology, including, but not limited to, RAM, ROM, erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory or other solid state memory technology, compact disc ROM (CD-ROM), digital recording disk (DVD), high definition DVD (HD-DVD), Blu-ray or other optical storage, magnetic cassettes, magnetic tapes, magnetic disk storage, or other magnetic storage, or any other medium that can be used to store the desired information in a persistent form.

[0088] A storage device, such as storage device 928 shown in FIG. 9, stores an operating system utilized to control the operation of computing device 900. The operating system may include LINUX or WINDOWS® Server from MICROSOFT CORPORATION. In another aspect, the operating system may include UNIX®. Various mobile phone operating systems, such as IOS or ANDROID®, may also be utilized. It should be understood that other operating systems may also be utilized. Storage device 928 stores other system or application programs and data utilized by computing device 900.

[0089] The storage device 928, or other computer readable storage medium, accepts computer executable instructions that, when loaded into the computing device 900, transform the device from a general purpose computer system into a special purpose computer capable of performing the operations described herein. The instructions define how the CPU 904 transitions between states as described herein in transforming the computing device 900. The computing device 900 has access to a computer readable storage medium that stores the computer executable instructions. When executed by the computing device 900, the instructions implement the methods illustrated in Figures 7A, 7B, 7C, and 8.

[0090] A computing device, such as the computing device 900 shown in Figure 9, also includes an input / output controller 932. The input / output controller 932 receives and processes input from a number of input devices, such as a keyboard, a mouse, a touchpad, a touch screen, an electronic stylus, or other types of input devices. The input / output controller 932 also provides output to a computer monitor, a flat panel display, a digital projector, a printer, a plotter, or other types of output devices. It should be understood that the computing device 900 need not include all of the elements shown in Figure 9, may include other elements not explicitly shown in Figure 9, or may use an architecture entirely different than that shown in Figure 9.

[0091] As used herein, a computing device is a physical computing device, such as computing device 900 of Figure 9. A computing node may include a host process and one or more instances of a virtual machine, where computer-executable instructions are indirectly executed by the physical hardware of the computing device, i.e., interpreted and / or executed as instructions stored on and executed on a virtual machine.

[0092] Those skilled in the art will appreciate that a computing device capable of implementing the systems and methods disclosed herein may, but need not, include one or more processors, a system memory, and a system bus coupling various system elements, including the processors, to the system memory. If multi-processor, the system may utilize parallel computing.

[0093] For purposes of illustration, this specification depicts application programs and other executable program elements, such as an operating system, as separate blocks. However, it will be understood that such programs and elements may reside at various times in different storage elements of a computing device or may be executed by a processor of the computer. The service software is implemented by being stored on or transmitted through some form of computer readable media. Any of the disclosed methods are effected by computer readable instructions that are written on a computer readable medium. A computer readable medium may be any medium that is accessible and available to a computer. By way of example and not by way of limitation, computer readable media includes "computer storage media" and "communications media." "Computer storage media" includes volatile, non-volatile, removable, and non-removable media. They may be implemented by any method or technology for storing information, such as computer readable instructions, data structures, program modules, or other data. Examples of computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, DVD or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage, or any other medium available for storing the desired information and accessible by a computer. At least a portion of the application programs, etc., and / or the storage media may be implemented on a remote system.

[0094] As used in the specification and the appended claims, the articles "a," "an," and "the" include plural meanings unless the context clearly indicates otherwise. Numerical ranges expressed in this specification mean "near" one particular value to "near" another particular value. Unless expressly stated, it is not intended that any method described in this specification be construed as requiring that steps be performed in a particular order. Thus, neither the method claims actually stipulate an order that the steps must follow, nor are the claims or the specification expressly stated to limit the steps to a particular order. No order is intended to be inferred in any respect.

[0095] It will be apparent to those skilled in the art that various modifications and variations can be made without departing from the scope or principles of the invention. Other embodiments will be apparent to those skilled in the art from consideration of the specification and examples disclosed herein. It is intended that such specification and examples be considered as examples only, with the true scope and principles of the invention being indicated by the appended claims.

Claims

1. A method for causing a computer capable of communicating with a content source to capture and classify personally identifiable information, comprising: searching the first content for a first table including a first set of rows and a first set of columns; determining that a first row of the first set of rows and a first column of the first set of columns includes a first term that indicates a person's name; From the first group of rows: At least, the first column includes a first name, and a second column of the first set of columns includes a second row including a first item of personal identification information. and extracting first data indicative of the first name and a first item of personal identification information; adding the first data to a first profile associated with the first name; searching the second content for a second table including a second set of rows and a second set of columns; determining that a first row of the second set of rows and a first column of the second set of columns includes a second term that indicates a person's name; From the second group of rows: a first column of the second set of columns containing the first name; A second column of the second set of columns includes a second row including a second item of personal identification information. and determining whether the second item of personally identifying information is inconsistent with the first item of personally identifying information; extracting second data indicating the first name and the second item of personal identification information from the second table in response to determining that the second item of personal identification information is inconsistent with the first item of personal identification information; adding the second data to a second profile associated with the first name but distinct from the first profile; A method for providing the same.

2. a second row of the first set of rows further including a third item of personally identifying information in a third column of the first set of columns; The computer includes: extracting third data indicative of a third item of said personal identification information; adding said third data to said first profile; The method of claim 1 further comprising:

3. The computer includes: searching a third table, the third table including a third set of rows and a third set of columns, from the third content; determining that a first row of the third set of rows and a first column of the third set of columns includes a third term that indicates a person's name; From the third group of rows: a first column of the third group of columns includes the first name; a second column of the third set of columns containing a fourth item of personally identifying information; A third column of the third group of columns includes a second row including a fifth item of personal identification information. and determining whether a fourth item of personal identification information is inconsistent with the first item of personal identification information; extracting third data indicative of a fifth item of the personal identification information in response to determining that the fourth item of the personal identification information does not contradict the first item of the personal identification information; adding said third data to said first profile; The method of claim 1 further comprising:

4. The method of claim 1 , wherein the second term describing the person's name is different from the first term describing the person's name.

5. determining that the second item of personally identifiable information is inconsistent with the first item of personally identifiable information; a first item of said personally identifying information associated with a first individual; A second item of said personal identifying information is associated with a second individual. The method of claim 1 , comprising determining:

6. the first profile is associated with a first individual; the second profile is associated with a second individual; The method of claim 1.

7. the first item of personal identification information includes a unique identifier for a first individual; the second item of personally identifiable information includes an identifier unique to a second individual; The method of claim 1.

8. the unique identifier for the first individual is indicative of at least one of an email address, an address, a telephone number, and an occupation of the first individual; the unique identifier for the second individual is indicative of at least one of an email address, an address, a telephone number, and an occupation of the second individual; The method of claim 7.

9. A step of causing the computer to identify a language relating to the first content. Further comprising: causing the computer to determine that a first row of the first set of rows and a first column of the first set of columns includes a first term indicating a person's name; causing the computer to identify at least one of words, phrases, letters, and numbers associated with the language that indicate a name of a person but that do not include a first or last name of an individual. The method of claim 1 , comprising:

10. The method of claim 1 , wherein the first name term does not include a person's first or last name.

11. 2. The method of claim 1, wherein the first name includes at least one of an individual's first name and last name.

12. The method of claim 1 , wherein the first item of personally identifying information indicates at least one of an email address, an address, a telephone number, and an occupation of an individual associated with the first profile. causing the computer to accept the first content from a first website and to accept the second content from a second website. The method of claim 1 further comprising:

14. By the computer, adding an instruction to associate the first data with the first content to the first profile; adding to the second profile an indication that the second data is to be associated with the second content; The method of claim 1 further comprising:

Citation Information

Patent Citations

  • Method and device for data input

    JP1998269245A

  • Insurance contract information management system and customer index generating method

    JP2002063363A

  • Personal information control device and method, and recording medium composed by storing program with process of personal information control method described

    JP2004234686A

  • Understanding of the Table for Search

    JP2017525033A

  • Data analysis support system and data analysis support method

    JP2019168820A