Name data matching device, name data matching method, and name data matching program
The name data association device addresses the challenge of integrating databases with different notation variations by using automated methods to correlate synonymous names, ensuring accurate and efficient data association across multiple databases.
Patent Information
- Application Number
- JP2023527147
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-06-07
- Publication Date
- 2024-12-17
- Estimated Expiration
- 2041-06-07
AI Technical Summary
Existing methods for integrating databases with different notation variations in name data fail to accurately associate synonymous names without human intervention, especially when common names are involved, and are limited in language applicability and scalability.
A name data association device that utilizes a common data extraction unit to identify matching names across databases, a path creation unit to generate paths with common endpoints, and an association unit to correlate names based on character string similarity, creating a correspondence table without requiring human effort.
Accurately associates synonymous name data with spelling variations between databases, ensuring comprehensive information retrieval and reducing human labor, thus improving operational efficiency.
Smart Images

Figure 0007601220000006 
Figure 0007601220000007 
Figure 0007601220000008
Abstract
Description
[Technical field]
[0001] The embodiment of the present invention relates to a name data matching device, a name data matching method, and a name data matching program. [Background technology]
[0002] In database-based operations, it is sometimes possible to perform more multifaceted and comprehensive analysis by integrating databases under different management and using the stored name data side by side. To do this, a process known as "name matching" is required, in which name data that represents the same thing between the databases to be integrated is integrated by assigning the same identification information to the data.
[0003] However, the method of inputting name data depends on the database administrator. Therefore, there are often situations where the same thing is represented in different spellings (spelling variations) between the databases being integrated. When databases that contain spelling variations are integrated, a situation occurs in which the information related to one thing is missing in the part where the spelling variations have occurred when performing the analysis described above.
[0004] As a technique for dealing with such variations in notation, Non-Patent Document 1 and Non-Patent Document 2 propose a method for searching for the most similar character string by quantitatively calculating the similarity between the character strings to be searched. Non-Patent Document 3 proposes a method for accurately and efficiently finding character strings expressing the same thing by creating a search dictionary. Patent Document 1 also discloses a linking method using peripheral information about the data to be matched. [Prior art documents] [Non-patent literature]
[0005] [Non-Patent Document 1] Hiroshi Nakagawa et al., "Terminology Extraction Based on Frequency of Occurrence and Concatenation," Natural Language Processing, 2003, Vol. 10, No. 1, pp. 27-45 [Non-Patent Document 2] Hiroaki Tabuchi et al., "Example-Based Parallel Text Retrieval Method Based on N-grams," IEICE Technical Report, Artificial Intelligence and Knowledge Processing Research Group, Vol.108, No.441, pp.43-48, 2009. [Non-Patent Document 3] Surajit Chaudhuri, Venkatesh Ganti, and Dong Xin. 2009. "Mining document collections to facilitate accurate approximate entity matching". Proc. VLDB Endow. 2, 1 (August 2009), 395-406. DOI: https: / / doi.org / 10.14778 / 1687627.1687673 [Patent documents]
[0006] [Patent Document 1] Japanese Patent Publication No. 2020-123210 Summary of the Invention [Problem to be solved by the invention]
[0007] There are variations in the way the data is written, including an abbreviation of the registered data name, and a nickname given by users based on local rules.
[0008] The methods disclosed in Non-Patent Documents 1 and 2 are popular and effective when only the former abbreviated spellings exist as spelling variations. However, in a situation where the latter common names are mixed, each common name is linked to a name that is similar in character string to the common name, so there is a high possibility of presenting erroneous results. This is because the common name is often significantly different from the name to which it should be linked.
[0009] Even when dealing with only the former abbreviations, the methods disclosed in Non-Patent Documents 1 and 2 are designed to be used for Japanese, so the scope of application of the technology is limited. This is because the characteristics of abbreviations in Japanese do not all match the characteristics of other languages, so the methods disclosed in Non-Patent Documents 1 and 2 may not be applicable without problems to name data entered in other languages.
[0010] Therefore, it is considered that the best method for dealing with common spellings is to create a dictionary, as disclosed in Non-Patent Document 3. However, as the number of databases to be integrated increases, the dictionary must be expanded accordingly, which has the drawback that it takes time to deal with spelling variations.
[0011] Therefore, Patent Document 1 proposes a technology that enables common names to be matched by using information surrounding the target data for matching (e.g., data A and data B in the same database are connected) without relying on dictionaries. However, the technology disclosed in Patent Document 1 requires that the graph that can be constructed from the name data of each database satisfy a kind of inclusion relationship (an edge corresponding to an edge in one graph must exist in the other graph). Therefore, there is a problem that it is difficult to match name data that results in a graph with a structure that does not maintain the inclusion relationship, or even if it is possible, a large number of candidate names will appear.
[0012] The present invention provides a technique that can accurately associate synonymous name data that have spelling variations between databases to be integrated without requiring manual labor. [Means for solving the problem]
[0013] In order to solve the above problem, a name data matching device according to one aspect of the present invention matches synonymous name data having different notations between a first database that holds a plurality of name data and adjacency information indicating a logical or physical adjacency relationship between the name data and a second database that holds a plurality of name data, the adjacency information of the name data, and path identification information indicating a path to which the name data belong, and includes a common data extraction unit, a path creation unit, and a matching unit. The common data extraction unit extracts name data having the same notation between the first database and the second database as common data. The path creation unit extracts partial paths having the common data extracted by the common data extraction unit as endpoints and non-common data as vertices between the endpoints from paths represented by the path identification information held in the second database, and creates paths for each partial path that have the same endpoints of the common data as the endpoints of the partial path and have a length equal to or greater than the length of the partial path, based on the information held in the first database. The matching unit matches the name data held in the first database with the name data held in the second database by searching for combinations of each vertex on the partial path and a vertex on the path created by the path creation unit for each partial path extracted by the path creation unit. Effect of the Invention
[0014] According to one aspect of the present invention, it is possible to provide a technique that can accurately associate synonymous name data that has spelling variations between databases to be integrated without requiring human labor. [Brief description of the drawings]
[0015] [Figure 1] FIG. 1 is a block diagram showing an example of the configuration of a name data associating device according to an embodiment of the present invention. [Diagram 2] FIG. 2 is a diagram illustrating an example of a hardware configuration of the name data associating device. [Diagram 3] FIG. 3 is a diagram illustrating an example of information held in a basic database stored in a basic database storage unit. [Figure 4] FIG. 4 is a diagram illustrating an example of information held in a derivative database stored in a derivative database storage unit. [Diagram 5] FIG. 5 is a flowchart showing an example of a processing operation related to the association of name data in the name data association device. [Figure 6] FIG. 6 is a schematic diagram for explaining a method of associating names. [Figure 7] FIG. 7 is a diagram showing an example of information held in the basic database in the operation example. [Figure 8] FIG. 8 is a diagram illustrating an example of information held in the derivative database in the operation example. [Figure 9] FIG. 9 is a schematic diagram showing an example of a cycle graph created by the graph creation unit from information held in the basic database in the operation example. [Figure 10] FIG. 10 is a schematic diagram showing an example of a path generated from a cycle graph generated by the graph generating unit from information held in the derived database in the operation example. [Figure 11] FIG. 11 is a diagram showing an example of output information stored in the output information storage unit in the operation example. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0016] Hereinafter, an embodiment of the present invention will be described with reference to the drawings.
[0017] In this embodiment, a plurality of databases hold synonymous name data with different notations, and data columns to which name data is to be associated in these databases are assumed to be known. Each data column can include name data and character string data corresponding to the name data, such as measurement values, measurement dates and times, sales dates and times, and sales amounts. It is also assumed that each database holds logical or physical adjacency information indicating the adjacency relationship of the name data. Here, the adjacency information indicating the adjacency relationship of the name data refers to information on how data is connected to each other, such as personal connections (person A and person B are acquaintances) and connection relationships on a network (building A and building B are connected by a cable). In this invention, there is no particular limit to the number of databases to which name data is associated, but in this embodiment, for the sake of simplicity of explanation, it is assumed that there are two target databases. It is also assumed that there is a connection relationship on a network between the name data in each database. Specifically, each database has columns named "upper building" and "lower building", and the name data stored in the "upper building" and the name data stored in the "lower building" are adjacent to each other on a certain network. In addition, it is assumed that at least one of the multiple databases has, in addition to the adjacent information, path identification information indicating the path to which the name data belongs.
[0018] (Configuration example) 1 is a block diagram showing an example of the configuration of a name data matching device according to an embodiment of the present invention. The name data matching device includes a basic database (database is abbreviated as DB in the figure) 1, a derived database 2, a graph creation unit 3, a common data extraction unit 4, a path information extraction unit 5, a path creation unit 6, a matching unit 7, and a data output unit 8.
[0019] The basic database 1 is a first database that holds a plurality of name data and adjacent information that indicates the adjacent relationship of the name data. The derived database 2 is a second database that holds a plurality of name data, adjacent information of the name data, and path identification information that indicates the path to which the name data belongs.
[0020] The graph creation unit 3 creates an undirected graph with name data as vertices, based on the information held in the basic database 1 and the derived database 2.
[0021] The common data extraction unit 4 extracts name data that has the same notation between the basic database 1 and the derived database 2 as common data.
[0022] Based on the path identification information held by the derivative database 2, the path information extraction unit 5 generates all paths that start from one of the common data extracted by the common data extraction unit 4 and have the name data held by the derivative database 2 as vertices. The end point of the path may be the same common data as the start point, or may be common data different from the start point. Then, the path information extraction unit 5 extracts path information for each of these paths, including the number of vertices, the name data of the included vertices, and the positions on the path. For example, the path information extraction unit 5 can extract path information based on the undirected graph created by the graph creation unit 3 and the path identification information held by the derivative database 2.
[0023] The path creation unit 6 extracts partial paths whose endpoints are common data, i.e., whose start and end points are, for each path indicated by the path information extracted by the path information extraction unit 5. Then, based on the information held in the basic database 1, the path creation unit 6 counts up all paths whose endpoints are common data matching each partial path and which have a specified length. For example, the path creation unit 6 can enumerate paths based on the undirected graph created by the graph creation unit 3 from the basic database 1.
[0024] The association unit 7 searches for a combination of vertex name data from the partial paths extracted by the path creation unit 6 and the counted paths based on character string similarity such as edit distance. Then, the association unit 7 associates the name data held in the basic database 1 with the name data held in the derived database 2 based on the searched combination.
[0025] The data output unit 8 generates output information based on the result of the matching in the matching unit 7 and outputs it. For example, the data output unit 8 can generate a correspondence table showing the correspondence of name data as output information based on the result of the matching in the matching unit 7. The data output unit 8 may also convert name data for the information held in the basic database 1 based on the result of the matching in the matching unit 7, create a new database, and use this as output information. Alternatively, the data output unit 8 may integrate the information held in the basic database 1 and the derived database 2 based on the result of the matching in the matching unit 7, create a new database, and use this as output information.
[0026] FIG. 2 is a diagram illustrating an example of a hardware configuration of the name data associating device.
[0027] 2, the name data corresponding device is configured by a computer such as a server computer or a personal computer, and has a hardware processor 101 such as a CPU (Central Processing Unit). In the name data corresponding device, program memory 102, data memory 103, communication interface 104, and input / output interface (referred to as input / output IF in FIG. 2) 105 are connected to this processor 101 via bus 106.
[0028] The communication interface 104 may include, for example, one or more wired or wireless communication modules. When the basic database 1 and / or the derived database 2 are configured in a data server connected via a network such as a LAN (Local Area Network) or the Internet, the communication interface 104 can communicate with the data server and acquire data from the data server. The communication interface 104 can also communicate with an external data processing device and receive a request from the data processing device and return a data processing result in response to the request to the data processing device.
[0029] The input unit 107 and the display unit 108 are connected to the input / output interface 105. The input unit 107 and the display unit 108 may be a so-called tablet-type input / display device in which an input detection sheet using an electrostatic method or a pressure method is arranged on a display screen of a display device using, for example, liquid crystal or organic EL (Electro Luminescence). The input unit 107 and the display unit 108 may be configured as independent devices. The input / output interface 105 inputs operation information inputted in the input unit 107 to the processor 101, and causes the display unit 108 to display display information generated by the processor 101.
[0030] The input unit 107 and the display unit 108 do not have to be connected to the input / output interface 105. The input unit 107 and the display unit 108 can transmit and receive information to and from the processor 101 by being provided with a communication unit for connecting to the communication interface 104 directly or via a network.
[0031] The input / output interface 105 may also have a function for reading / writing a recording medium such as a semiconductor memory such as a flash memory, or may have a function for connecting to a reader / writer having a function for reading / writing such a recording medium. This allows a recording medium that is detachable from the name data association device to be used as a database for storing name data. The input / output interface 105 may further have a function for connecting to other devices.
[0032] The program memory 102 is a non-transient tangible computer-readable storage medium, for example, a combination of a non-volatile memory such as a hard disk drive (HDD) or a solid state drive (SSD) that can be written and read at any time, and a non-volatile memory such as a ROM. The program memory 102 stores programs required for the processor 101 to execute various control processes according to an embodiment. That is, the processing function units in each of the graph creation unit 3, the common data extraction unit 4, the path information extraction unit 5, the path creation unit 6, the association unit 7, and the data output unit 8 can be realized by having the processor 101 read and execute the programs stored in the program memory 102. Note that some or all of these processing function units may be realized in various other forms, including integrated circuits such as an application specific integrated circuit (ASIC) or a field-programmable gate array (FPGA).
[0033] The data memory 103 is a tangible computer-readable storage medium, for example, a combination of the above-mentioned non-volatile memory and a volatile memory such as a RAM (Random Access Memory). This data memory 103 is used to store various data acquired and created in the process of performing various processes. That is, in the data memory 103, an area for storing various data as appropriate in the process of performing various processes is secured. As such areas, the data memory 103 may be provided with, for example, a basic database storage unit 1031, a derived database storage unit 1032, a temporary storage unit 1033, and an output information storage unit 1034.
[0034] The basic database storage unit 1031 stores information on the basic database 1, and the derived database storage unit 1032 stores information on the derived database 2. That is, the basic database 1 and the derived database 2 can be configured in the basic database storage unit 1031 and the derived database storage unit 1032.
[0035] FIG. 3 is a diagram showing an example of information held in basic database 1 stored in basic database storage unit 1031, and FIG. 4 is a diagram showing an example of information held in derived database 2 stored in derived database storage unit 1032. Here, an example is shown in which the name data is the name of a building. In basic database 1 stored in basic database storage unit 1031, a higher-level building and a lower-level building are adjacent to each other. In derived database 2 stored in derived database storage unit 1032, a combination of buildings with the same path identifier (identifier is abbreviated as ID in the figure) constitutes one path (Shinjuku Building → Minami-Shinjuku Building → Gaien Building → Yotsuya Building → Shinjuku Building). Hereinafter, the building names in derived database 2 will be referred to as c i (i∈{1,2,…,n}), and the name of the building in the base database 1 is d j (j∈{1,2,…,m}), where n and m are the number of building names in each database.
[0036] The information stored in the basic database storage unit 1031 and the derived database storage unit 1032 can be, for example, information on the basic database 1 and the derived database 2 received by the processor 101 via the input / output interface 105 and input from the input unit 107. That is, the basic database 1 and the derived database 2 can be constructed in the data memory 103. Also, all or part of the information held by the basic database 1 and the derived database 2 constructed in an external data server may be stored in the basic database storage unit 1031 and the derived database storage unit 1032. In this case, for example, the processor 101 acquires information accumulated in the database server via the communication interface 104 in response to an instruction by a user operation from the input unit 107, and stores the information in the storage units 1031 and 1032. Alternatively, the processor 101 may acquire information recorded on a recording medium via the input / output interface 105. In addition, the processor 101 may receive a request for matching information of the basic database 1 and derived database 2 with name data from an external data processing device or the like via the communication interface 104, and store the received database information in the memory units 1031 and 1032 as information to be processed.
[0037] The temporary memory unit 1033 stores the undirected graph created by the processor 101 when it operates as the graph creation unit 3, the common data extracted when it operates as the common data extraction unit 4, the path information for all paths extracted when it operates as the path information extraction unit 5, the partial paths extracted and counted paths when it operates as the path creation unit 6, the name data matching results obtained when it operates as the matching unit 7, and the like.
[0038] The output information storage unit 1034 stores the output information obtained when the processor 101 executes the operation as the data output unit 8 described above.
[0039] (operation) Next, the operation of the name data associating device will be described.
[0040] 5 is a flowchart showing an example of a processing operation related to matching of name data in the name data matching device. Here, it is assumed that information of basic database 1 is already stored in basic database storage unit 1031, and information of derived database 2 is already stored in derived database storage unit 1032. When an instruction to perform matching of name data is given from input unit 107 via input / output interface 105, or from an external data processing device via communication interface 104, processor 101 of the name data matching device starts the operation shown in this flowchart.
[0041] First, the processor 101 executes the operation of the graph creation unit 3. That is, the processor 101 uses the adjacency information for each of the information of the derived database 2 stored in the derived database storage unit 1032 and the information of the basic database 1 stored in the basic database storage unit 1031 to create a closed-loop graph G with name data as vertices. c and G d (Step S1). The generated cycle graph G c and G d is stored in temporary storage unit 1033 of data memory 103.
[0042] Building name c in derived database 2 i and building name d in basic database 1 j Assuming that each of the vertices is a vertex and that adjacent vertices are connected by edges, we can write the undirected cycle graph G c and G d Here, a cycle is a cycle graph G c A path is a subgraph of a graph whose start and end vertices are the same vertex.
[0043]
number
[0044] E d : A set of edges obtained from the adjacency information of the base database 1 g d : E d →P(V d ) E d Under vertex set V d A mapping that maps subsets of V d ) is the vertex set V d is a power set of G d :=(g d ,V d ,E d )
[0045]
number
[0046] E c : A set of edges obtained from the adjacent information in derived database 2 g c : E c →P(V c ) E c Under vertex set V c A mapping that maps subsets of V c ) is the vertex set V c is a power set of G c :=(g c ,V c ,E c )
[0047] Moreover, the processor 101 of the name data association device executes the operation as the common data extraction unit 4. That is, the processor 101 extracts common name data between the information of the basic database 1 stored in the basic database storage unit 1031 and the information of the derived database 2 stored in the derived database storage unit 1032 (step S2). The extracted common name data is stored in the temporary storage unit 1033 of the data memory 103.
[0048] Next, the processor 101 executes the operation as the path information extraction unit 5. That is, the processor 101 extracts a closed-path graph G c From Path Γ k (k∈{1,2,…,K}, K is a cyclic graph G c The extracted path Γ k The path information indicating the extracted path Γ is stored in the temporary storage unit 1033 of the data memory 103. k The data may include the number of vertices in the path, the names of the vertices involved, and their positions on the path.
[0049] Here, the path Γ k is a cycle graph G of derived database 2. c Vertex s in k ∈V c is the kth path starting from Gamma k [l]: Gamma k The lth vertex (lth element) of |Γ k |: Path Γ k The length of the path Γ k (The number of vertices that make up Gamma k =(s k ,…,t k ), (Γ k [l],Γ k [l+1])∈E c , l∈{1,2,…,|Γ k |
[0050] Cycle graph G c There can be any number of paths for, but each path must satisfy the following three conditions: 1. All s k For s k =d j ,t k =d l Meet the j ∈V d ,dl exists. 2. Path Γ k All edges that make up E c exists. 3.∀c i ∈V c is any path Γ k He belongs to.
[0051] Here, V extracted in step S2 c and V d Let S :={c i ∈V c |∃d j ∈V d st c i =d j}. The name data matching device selects each c i ,d j For the cycle graph G c and G d Matching is performed using
[0052] Here, the cycle graph G c One of the paths that make up Γ k and the path Γ k Among the vertices that make up the set S, let us define the array of vertices in the set I k and is defined below. I k :=(Γ k [i]|Γ k [i]∈S,Γ k [i] ≠ s k , i = 1, 2, …, | k |)
[0053] Next, the processor 101 executes the operation as the path creation unit 6 . That is, the processor 101 first selects one path Γ based on the path information extracted in step S3. k For the cycle graph G c A subpath from S whose endpoints are each element of the set S
[0054]
number
[0055] (Step S4). That is, L k i That is, path Γ k In, vertex l k [i] to vertex l k It is the partial path up to [i+1]. Also, l k [i] is the array l k is the i-th element of .
[0056] Next, the processor 101 extracts a cycle graph G d At the starting point l k [i], end point is l k Among the paths whose length is [i+1], k i |or more than (i=1,2,…,|Γ k}) and |L k i The system then counts up all paths that are less than or equal to |+x (step S5). Here, x is a positive integer equal to or greater than 0, as specified by the user. When enumerating these paths, the same vertex and edge are not passed through twice. The set of enumerated partial paths is
[0057]
number
[0058] It is written as follows.
[0059] Next, the processor 101 executes the operation of the association unit 7. That is, the processor 101 first counts the set of paths A in step S5. k i Among them, the length is |L k i If there is a |, the path is designated as α. Under this, the following combinations of names are selected (step S6). (Lk i [j],α[j]),j=1,2,…,|L k i | However, L k i [j],α[j] is the jth vertex of each path.
[0060] Furthermore, the processor 101 selects the combinations having a length of |L k i |Longer and |L k i If there is one that is |+x or less, a name data combination is searched for and associated using a name search technique based on string similarity (e.g., edit distance) as shown in Fig. 6, and the result is stored in temporary storage unit 1033 of data memory 103 (step S7). Edit distance is disclosed in, for example, D. Gusfield. "Algorithms on strings, trees and sequences: computer science and computational biology." Cambridge University Press, 1997.
[0061] FIG. 6 is a schematic diagram for explaining a method of associating names. d The name data (Building A, Building B, ... n Building) and the building BL stored in the derived database 2 c Assume that there are names (α building, β building, ..., ν building) and that A building and α building, and n building and ν building are already associated with each other by the same name or a different path, as shown by the dashed line in the figure. In such a case, the processor 101 can search for a combination of name data by the following procedure.
[0062] 1. Initialize x=0. 2. Length | L k i Count the paths of |+x. 3. From the counted vertices of one path, remove the names that have already been associated. 4. The length of the obtained path is |L k i | If greater, then Bill BL in derived database 2 c Among them, from the building that has not yet been matched (γ building), to the building BL in the basic database 1 d For example, as shown by the solid arrow, building C is searched for as the building with the shortest edit distance from building γ, and can be associated with building γ. 5. Set x=x+1, and repeat steps 2 to 4 above until x reaches the upper limit value designated in advance by the user. The building BL with the shortest edit distance d When searching for a building, as shown by the dashed arrow, the building BL d The search will begin from the next building.
[0063] In this manner, if there is only one combination, the output result is the same, and for the rest, the name data for which an output result has already been obtained is excluded from the candidates. Of the remaining candidates after the exclusion, those with consistency are kept and used as the association result. Consistency here means that when there are multiple candidate names for a certain name A, and a name B is among the candidate names that was excluded by the above-mentioned operation, a path P that was the basis for outputting the excluded name B and the combination (A, B) of name A is always present. From this path P, the name combination (C, D) is also given for a name C that is different from name A. As the name combination (A, B) has been excluded, the combination (C, D) is also excluded. A more specific example will be described later as an operation example.
[0064] Thus, one path Γ k When the process for is completed, the processor 101 selects the path Γ based on the path information extracted in step S3. k It is determined whether all of the paths Γ have been processed (step S8). k Determine whether processing has been completed for all vertices of . kIf it is determined that k exists, the processor 101 updates k, transitions to the process of step S4, and repeats the processes of steps S4 to S7.
[0065] Then, in step S8, the path Γ k When it is determined that all of the above have been processed, the processor 101 executes the operation of the data output unit 8 to output the association information of the name data (step S9). That is, the processor 101 generates output information in a form instructed from the input unit 107 or an external data processing device from the association results stored in the temporary storage unit 1033 of the data memory 103, and stores the generated output information in the output information storage unit 1034 of the data memory 103. The processor 101 can then display this output information on the display unit 108 via the input / output interface 105, or transmit it to the external data processing device via the communication interface 104.
[0066] The name data matching device according to the embodiment described above uses the path creation unit 6 to extract partial paths with common data as end points and non-common data as vertices between the end points, creates a path for each partial path that has the same end point of the common data as the end point and has a length equal to or greater than the length of the partial path, and uses the matching unit 7 to search for combinations of vertices on the partial path and vertices on the path for each partial path, thereby matching the name data held by the basic database 1 with the name data held by the derived database 2. This allows synonymous name data with spelling variations between the databases to be integrated to be matched accurately without human labor, even if the character string data corresponding to the name data does not have a correspondence relationship between the databases. This makes it possible to collect information on a certain matter without omissions between different databases. In addition, the reduction in human labor is expected to have the effect of improving business efficiency.
[0067] In the name data association device according to the embodiment, the graph creation unit 3 creates a cycle graph G, which is an undirected graph of the base database 1 and the derived database 2, with the name data as vertices. d and G c The path information extraction unit 5 creates all paths Γ with the common data as an end point and the name data held by the derivative database 2 as a vertex. k Generate paths Γ k For each of the paths, the path creation unit 6 extracts path information including the number of vertices, the names of the vertices included, and their positions on the path. k Based on the path information, c Extract subpaths from G, and for each of these subpaths, d From the above, a path is created that has the same common data end point as the end point of the partial path and includes vertices equal to or greater than the number of vertices that the partial path has. Therefore, it is possible to create a path that includes vertices that may be associated with the name data held in the derived database 2, among the name data held in the basic database 1, in other words, that excludes vertices that may not be associated with the name data held in the derived database 2.
[0068] Further, the path creation unit 6 creates a path Γ k The number of vertices in the path is limited to a number equal to or greater than the number specified by the user, and the number of vertices in the path is limited to a number equal to or less than the number specified by the user.
[0069] Furthermore, in a name data association device according to an embodiment, for each vertex on the path created by the path creation unit 6, if the position on the path corresponds to a vertex on the partial path, the association unit 7 associates the name data corresponding to the vertex on the path among the name data held in the basic database 1 with the name data of the vertex on the partial path among the name data held in the derived database 2. If the position on the path does not correspond to a vertex on the partial path, the association unit 7 associates the name data corresponding to the vertex on the path among the name data held in the basic database 1 with the name data of the vertex on the partial path among the name data held in the derived database 2 based on the character string similarity between the name data. Thus, the name data held in the basic database 1 can be easily associated with the name data held in the derived database 2.
[0070] In addition, the name data association device according to the embodiment is configured to extract the path Γ generated by the path information extraction unit 5. k The process of the path creation unit 6 and the association unit 7 is repeated until the process for all of the above is completed. This reduces the probability that the name data held in the derivative database 2 will not be associated with the name data held in the basic database 1.
[0071] Furthermore, the name data matching device according to one embodiment generates output information including a name data matching table based on the result of matching the name data by the data output unit 8. This makes it possible to implement database integration processing by utilizing this output information. Furthermore, the name data matching device according to one embodiment may generate information of the integrated database as output information.
[0072] [Example] As an operation example of this embodiment, an overview of the applied name data and the results will be described.
[0073] 7 is a diagram showing an example of information held by the basic database 1 stored in the basic database storage unit 1031 in an operation example. The adjacent information obtained from this basic database is as follows. Here, the notation (A, B) indicates that the data name A and the data name B are related to each other. (Fukuoka Hanazono Building, Tatsukoyama Building) (Tatsukoyama Building, Fukuyama Date Building) (Fukuyama Date Building, Kuwabara Building) (Kuwabara Building, Fukui Fujita Building) (Fukui Fujita Building, Fukuchi Yanagawa Building) (Fukuchi Yanagawa Building, Hoshina Building) (Hoshina Building, Osorezan Building) (Hoshina Building, Fukuoka Hanazono Building) (Osorezan Building, Fukuoka Hanazono Building) (Osorezan Building, Tsukidate Building) (Tsukidate Building, Fukushima Kawamata Building) (Fukushima Kawamata Building, Fukuoka Hanazono Building)
[0074] 8 is a diagram showing an example of information held by the derivative database 2 stored in the derivative database storage unit 1032 in an operation example. The adjacent information obtained from this derivative database is as follows. If the path of this adjacent information is Γ k In this operation example, there is only one path, so k = 1. Here, the notation (A → B) indicates that there is a path from data name A to data name B. (Hanazono Building → Date Building) (Date Building → Kuwabara Building) (Kuwabara Building → Fujita Building) (Fujita Building → Yanagawa Building) (Yanagawa Building → Hoshina Building) (Hoshina Building → Osorezan Building) (Osorezan Building → Tsukikan Building) (Tsukikan Building → Kawamata Building) (Kawamata Building → Hanazono Building)
[0075] In this operation example, for the name data of path ID=2, the vertex set V c and Vd is as follows: V c ={Fukuoka Hanazono Building, Tatsukoyama Building, Fukuyama Date Building, Kuwabara Building, Fukui Fujita Building, Fukuchi Yanagawa Building, Hoshina Building, Osorezan Building, Tsukidate Building, Fukushima Kawamata Building} V d ={Hanazono Building, Date Building, Kuwabara Building, Fujita Building, Yanagawa Building, Hoshina Building, Osorezan Building, Tsukidate Building, Kawamata Building}
[0076] In this operation example, the correct combination of notations of the name data, that is, the association of the name data, is as follows: {(Tsukidate Building, Tsukidate Building),(Fukushima Kawamata Building, Kawamata Building),(Fukuoka Hanazono Building, Hanazono Building),(Fukuyama Date Building, Date Building),(Fukui Fujita Building, Fujita Building),(Fukuchi Yanagawa Building, Yanagawa Building)}
[0077] It was confirmed whether the name data matching device according to the embodiment can correctly perform this matching.
[0078] In step S1, the processor 101 of the name data association device performs the operation of the graph creation unit 3 and creates a cycle graph. FIG. 9 shows a cycle graph G created from information held in the basic database 1 in the operation example. d FIG.
[0079] In step S2, the processor 101 operates as the common data extraction unit 4 to extract a closed-loop graph G c and a cycle graph G d Here, the name data with the same notation, that is, the set of building names S, is as follows: S :={Kuwabara Building, Hoshina Building, Osorezan Building}
[0080] Therefore, in step S3, the processor 101 operates as the path information extraction unit 5 to extract path information from the derivation database 2, and in step S4, it operates as the path creation unit 6 to extract partial paths. FIG. 10 shows a cycle graph G created from information held in the derivation database 2 in the operation example. c 1 is a schematic diagram showing an example of a path Γ1 generated from a closed-loop graph G c A partial path whose end points are each element of the building name set S
[0081]
number
[0082] Extract. L1 1 :=(Kuwabara Building, Fujita Building, Yanagawa Building, Hoshina Building) L1 2 :=(Hoshina Building, Osorezan Building) L1 3 :=(Osorezan Building, Tsukikan Building, Kawamata Building, Hanazono Building, Date Building, Kuwabara Building)
[0083] Then, in step S5, the processor 101 1 For a cycle graph G d Above, we count up the paths whose end points are "Kuwabara Building" and "Hoshina Building" and whose length is greater than or equal to 3 and less than or equal to 3+x.
[0084] For this example, let's set the parameter x=1. Then, Length 3: (Kuwabara Building, Fukui Fujita Building, Fukuchi Yanagawa Building, Hoshina Building) Length 4: (Kuwabara Building, Fukuyama Date Building, Tatsukoyama Building, Fukuoka Hanazono Building, Hoshina Building) It becomes.
[0085] For length 3, counted paths and subpath L1 1 Combining the corresponding vertex names with (Fukui Fujita Building, Fujita Building), (Fukuchi Yanagawa Building, Yanagawa Building) Get candidates.
[0086] In the case of length 4, the edit distance of every combination is 1, so Candidates for "Fujita Building": "Fukuyama Date Building", "Tatsukoyama Building", "Fukui Fujita Building" Candidates for "Yanagawa Building" are: "Fukuoka Hanazono Building", "Tatsukoyama Building", "Fukuchi Yanagawa Building" It is possible that:
[0087] Partial path L1 2 Since the length of is 1, it is omitted.
[0088] Partial path L1 3 For the above, the processor 101 calculates a cycle graph G d Above, we count the number of paths whose end points are "Osorezan Building" and "Kuwabara Building" and whose length is 5 or more and 5+x=6 or less. Then, Length 5: N / A Length 6: (Osorezan Building, Tsukidate Building, Fukushima Kawamata Building, Fukuoka Hanazono Building, Tatsukoyama Building, Fukuyama Date Building, Kuwabara Building) get.
[0089] From the path of length 6, the subpath L1 3 Select the point with the shortest edit distance to each vertex of (Tsukidate Building, Tsukidate Building), (Fukushima Kawamata Building, Kawamata Building), (Fukuoka Hanazono Building, Hanazono Building), (Fukuyama Date Building, Date Building) Get candidates.
[0090] From the above, we define the combination with one candidate as the answer, so (Tsukidate Building, Tsukidate Building), (Fukushima Kawamata Building, Kawamata Building), (Fukuoka Hanazono Building, Hanazono Building), (Fukuyama Date Building, Date Building) is the answer.
[0091] And from the answers of "Hanazono Building" and "Date Building", the candidates of "Fujita Building" and "Yanakawa Building" are, Candidates for "Fujita Building": "Tatsukoyama Building", "Fukui Fujita Building" Candidates for "Yasagawa Building" are "Tatsukoyama Building" and "Fukuchi Yanagawa Building" At this point, since the candidates for "Fukuoka Hanazono Building" and "Fukuyama Date Building" were eliminated, Path: (Kuwabara Building, Fukuyama Date Building, Tatsukoyama Building, Fukuoka Hanazono Building, Hoshina Building) is the partial path L1 1 A circular graph of G d Therefore, "Tatsukoyama Building" is also excluded from the candidates for "Fujita Building" and "Yanagagawa Building", so (Fukui Fujita Building, Fujita Building), (Fukuchi Yanagawa Building, Yanagawa Building) gets as an answer.
[0092] Thereafter, the processor 101 generates output information based on the result of the association stored in the temporary storage unit 1033 of the data memory 103, and stores the output information in the output information storage unit 1034 of the data memory 103. Fig. 11 is a diagram showing an example of the output information stored in the output information storage unit 1034. Note that, although the output information is shown here as a correspondence table showing the correspondence of the name data, it is of course not limited to this.
[0093] From the above, it has been verified that accurate name data association is possible by using a partial path with the name data association device.
[0094] [Other embodiments] In the embodiment described above, the number of target databases is two, but the number may be three or more. In other words, if at least one of the three or more databases holds path identification information, it is possible to associate name data with the remaining two or more databases.
[0095] Furthermore, in the above embodiment, a path is used as an example, but it goes without saying that the present invention can also be applied to a closed circuit (where the start point and end point are the same vertex) rather than a path.
[0096] In the above embodiment, the processing is carried out by storing all or part of the information held in basic database 1 and derived database 2 in basic database storage unit 1031 and derived database storage unit 1032 of data memory 103, but the present invention is not limited to this. Processor 101 may access an external data server as needed via communication interface 104, and use the information stored in basic database 1 and derived database 2 constructed there to carry out processing, storing only the processing results of each step in temporary storage unit 1033. This makes it possible to reduce the capacity of data memory 103 provided in the name data association device, and to configure a name data association device at low cost.
[0097] In the embodiment described above, an example was described in which output information was generated and output to display unit 108 or an external data processing device, but it would also be possible to output the association results stored in temporary storage unit 1033 without generating output information. This makes it possible to reduce the capacity of data memory 103 provided in the name data association device, making it possible to configure a name data association device at low cost. It is also possible to provide a service that only associates name data to a data processing device that performs database integration processing.
[0098] The methods described in each embodiment can be stored as a program (software means) that can be executed by a calculator (computer) on a recording medium such as a magnetic disk (floppy disk, hard disk, etc.), an optical disk (CD-ROM, DVD, MO, etc.), a semiconductor memory (ROM, RAM, flash memory, etc.), and can also be distributed by transmitting it via a communication medium. The programs stored on the medium side include a setting program that configures the software means (including not only execution programs but also tables and data structures) that the calculator executes within the computer. The computer that realizes this device reads the program recorded on the recording medium, and in some cases, configures the software means by the setting program, and executes the above-mentioned processing by controlling the operation of the software means. The recording medium referred to in this specification is not limited to a recording medium for distribution, but also includes a storage medium such as a magnetic disk or semiconductor memory provided inside the computer or in a device connected via a network.
[0099] In short, this invention is not limited to the above-mentioned embodiment, and various modifications can be made in the implementation stage without departing from the gist of the invention. Moreover, each embodiment may be implemented in combination as appropriate as possible, in which case the combined effects can be obtained. Furthermore, the above-mentioned embodiment includes inventions at various stages, and various inventions can be extracted by appropriate combinations of the disclosed constituent elements. [Explanation of symbols]
[0100] 1. Basic database 2. Derivative database 3. Graph creation section 4…Common data extraction section 5...Path information extraction section 6…Path creation section 7. Matching section 8...Data output section 101…Processor 102…Program memory 103...Data memory 104...Communication interface 105... Input / Output Interface 106…Bus 107...Input section 108...Display section 1031...Basic database storage section 1032…Derived database storage unit 1033...Temporary storage 1034...Output information storage unit
Claims
1. A name data associating device for associating synonymous name data having different notations between a first database that holds a plurality of name data and adjacency information indicating a logical or physical adjacency relationship between the name data and a second database that holds a plurality of name data, adjacency information for the name data, and path identification information indicating a path to which the name data belongs, comprising: a common data extraction unit that extracts name data having the same notation between the first database and the second database as common data; a path creation unit that extracts partial paths, from the paths represented by the path identification information stored in the second database, that have the common data extracted by the common data extraction unit as endpoints and non-common data as vertices between the endpoints, and creates, for each of the partial paths, a path that has endpoints of common data that are the same as the endpoints of the partial paths and has a length equal to or greater than the length of the partial paths, based on the information stored in the first database; a correspondence unit that associates the name data held in the first database with the name data held in the second database by searching for a combination of each vertex on the partial path and a vertex on the path created by the path creation unit for each of the partial paths extracted by the path creation unit; A name data association device comprising:
2. a graph creation unit that creates an undirected graph of the first database and the second database, with the name data as a vertex, based on information held in the first database and the second database; a path information extraction unit that generates all paths having the common data extracted by the common data extraction unit as an end point and the name data stored in the second database as a vertex based on the undirected graph of the second database created by the graph creation unit and the path identification information stored in the second database, and extracts path information for each of the paths including the number of vertices, name data of the vertices included, and positions on the path; Further comprising:
2. The name data matching device of claim 1, wherein the path creation unit extracts the partial path from the undirected graph of the second database created by the graph creation unit based on the path information for one of the paths generated by the path information extraction unit, and creates, for each of the partial paths, a path from the undirected graph of the first database that has the same common data endpoint as the endpoint of the partial path and includes more vertices than the number of vertices the partial path has.
3. 3. The name data association device according to claim 2, wherein said path creation section creates, as said path, a path including a number of vertices that is equal to or greater than said number of vertices and is equal to or less than a number designated by a user with respect to said number of vertices.
4. The association unit, for each of the vertices on the path created by the path creation unit, if the position on the path corresponds to the vertex on the partial path, then associating name data corresponding to the vertex on the path among the name data held in the first database with name data of the vertex on the partial path among the name data held in the second database; if the position on the path does not correspond to the vertex on the partial path, then, based on a character string similarity between the name data, name data corresponding to the vertex on the path among the name data held in the first database is associated with name data of the vertex on the partial path among the name data held in the second database; 4. The name data correlating device according to claim 1.
5. 4. The name data associating device according to claim 2, wherein said path creating section and said associating section repeat the process until the process is completed for all paths generated by said path information extracting section.
6. 6. The name data matching device according to claim 1, further comprising an output section for generating output information including a name data matching table based on a result of matching by said matching section.
7. A name data matching method in a name data matching device comprising a processor, a first database that holds a plurality of name data and adjacency information indicating a logical or physical adjacency relationship between the name data, and a second database that holds a plurality of name data, adjacency information for the name data, and path identification information indicating a path to which the name data belongs, the method comprising: matching synonymous name data having different notations between the first database and the second database, the method comprising: extracting, by the processor, name data having the same notation between the first database and the second database stored in the memory as common data; extracting, by the processor, a partial path having the extracted common data as an end point and non-common data as a vertex between the end points from the path represented by the path identification information held in the second database stored in the memory; by the processor, based on information held in the first database stored in the memory, creating, for each of the extracted partial paths, a path having an end point of common data that is the same as the end point of the partial path and having a length equal to or greater than the length of the partial path; by the processor, for each of the extracted partial paths, searching for a combination of each vertex on the partial path and a vertex on the created path, thereby associating the name data held in the first database stored in the memory with the name data held in the second database stored in the memory; Name data matching method.
8. 7. A name data associating program that causes a processor to function as each of said units of the name data associating device according to claim 1.
Citation Information
Patent Citations
Data base system having hierarchic link table
JP2001187477A
Database integration device
JP2005011049A
Database synthesizer, character recognition support system, and method of synthesizing database
JP2010134828A
Relation information generation method, device, and program
JP2017123062A
Similar term aggregation method and device
JP2019502995A
