WO2018100700A1 - データ変換装置とデータ変換方法 - Google Patents

データ変換装置とデータ変換方法 Download PDF

Info

Publication number
WO2018100700A1
WO2018100700A1 PCT/JP2016/085641 JP2016085641W WO2018100700A1 WO 2018100700 A1 WO2018100700 A1 WO 2018100700A1 JP 2016085641 W JP2016085641 W JP 2016085641W WO 2018100700 A1 WO2018100700 A1 WO 2018100700A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
characters
character
processor
data conversion
Prior art date
Application number
PCT/JP2016/085641
Other languages
English (en)
French (fr)
Inventor
文也 工藤
林 秀樹
健二 北川
裕二 溝手
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to JP2018553591A priority Critical patent/JP6763967B2/ja
Priority to PCT/JP2016/085641 priority patent/WO2018100700A1/ja
Publication of WO2018100700A1 publication Critical patent/WO2018100700A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools

Definitions

  • the present invention relates to a data conversion apparatus and a data conversion method for automating data processing required for analysis based on statistical information obtained from each element in data of free description text data or table format data.
  • the number of branches is calculated as an evaluation value of a branch state corresponding to a character string extracted from the text, particularly for a natural language sentence in a text format. Based on the calculated value, one that determines whether or not a character string is a word has been proposed (see Patent Document 1).
  • Patent Document 1 enables extraction of words that are not registered in a dictionary such as a dictionary for morphological analysis.
  • a dictionary such as a dictionary for morphological analysis.
  • the data that can be handled is limited to text sentence data, and information about the number of word branches is required for application.
  • An object of the present invention is to divide elements constituting target data into a plurality of elements having different concepts for natural language text data and character string data.
  • the present invention comprises a memory for storing a program, and a processor for processing data based on the program stored in the memory, wherein the processor includes natural language sentence data and Input at least one of character string format data stored in a structured table as input data to be processed, and the first character to be aggregated among the elements constituting the input data And a combination of one or more characters connected to the first character as a plurality of aggregation target characters, and calculating the appearance frequency or information amount of each aggregation target character based on the aggregation result, Based on the calculated appearance frequency or information amount, a change point of appearance frequency or a change amount of information amount of each aggregation target character is calculated, and the calculated change point of appearance frequency or And separating the plurality of aggregated object character based on distribution of the change point.
  • the processor includes natural language sentence data and Input at least one of character string format data stored in a structured table as input data to be processed, and the first character to be aggregated among the elements constituting the input data And a combination of one
  • the present invention it is possible to separate elements constituting the target data into a plurality of elements having different concepts for natural language text data and character string data.
  • the present embodiment targets not only natural language text but also data stored in a table, paying attention to the independence between characters for label data such as IDs and names, Extracts conceptual data.
  • FIG. 1 is an overall configuration diagram showing the hardware configuration of the first embodiment of the present invention.
  • this embodiment has a central processing unit 1, a secondary storage unit 2, a main storage unit 3, an input unit 4 and an output unit 5, and the central processing unit 1, secondary storage unit 2,
  • a computer in which a main storage device 3, an input device 4, and an output device 5 are connected by a bus 6, and is configured as a data conversion device or a data conversion system.
  • the central processing unit 1 is a processor (CPU: Central Processing ⁇ ⁇ Unit) that executes a program stored in a memory (storage device) such as the secondary storage device 2 or the main storage device 3.
  • a processor Central Processing ⁇ ⁇ Unit
  • a memory storage device
  • the secondary storage device 2 is a large-capacity non-volatile storage device such as a magnetic storage device or a flash memory, and stores a data separation unit 7 calculated by the central processing unit 1 when executing a program.
  • the main storage device 3 is a high-speed and volatile storage device such as a DRAM (Dynamic Random Access Memory), and stores an operating system (OS) and application programs.
  • OS operating system
  • the central processing unit 1 executes the operating system, the basic functions of the computer are realized, and the functions provided by the computer are realized by executing the application program.
  • the main storage device 3 stores input data 8 and output data 9.
  • the input data 8 is composed of at least one of text data in natural language and character string format data stored in each element of the structured table.
  • the input device 4 is a user interface such as a keyboard and a mouse.
  • the output device 5 is a user interface such as a display device or a printer.
  • the system may be connected to a network and have a communication interface for controlling communication with other devices.
  • the system is connected to a terminal via a communication interface, and the terminal has an input device 4 and an output device 5, processes a table according to a request from the terminal, and outputs a processing result to the terminal.
  • the present system may be physically constructed on one computer or physically constructed on a logical partition configured on one or a plurality of computers.
  • FIG. 2 is a configuration diagram of an input table showing a specific example of input data input to the data separation unit in the data conversion apparatus.
  • an input table 101 is a table for managing stock products stored in a warehouse of a certain company and data relating to the management status of each product.
  • the input table 101 is, for example, a table structured by a plurality of columns (data items), and each column stores character string data.
  • the input table 101 includes a product ID 102, a product detailed name 103, a number 104, an employee ID 105, and a processing time 106 as columns (data items).
  • the product ID 102 stores data that uniquely determines the location of the product to be stored, for example, “04A51010502”, and the product detail name 103 has data including detailed attribute information about the product, for example, “10 brooms 45 cm”. Is stored in the number 104, for example, “3” is stored in the number 104, and data for identifying the employee who has stored the product, for example, “850013004” is stored in the employee ID 105.
  • data representing the date and time when the work is executed for example, “2016/01/07 09:12” is stored.
  • companies and organizations manage the operational status and inventory status of the system in the form of an input table 101.
  • natural language text data or data belonging to any table in the relational database format such as the input table 101 is an input target.
  • Data of each column of the input table 101 is separated into one or more data by the data separation unit 7 and converted into output data 9.
  • FIG. 3 is a configuration diagram of an output table showing a specific example of output data output from the data separation unit in the data conversion apparatus.
  • an output table 201 is a table composed of output data 9 obtained by separating the data of each column of the input table 101 into one or more data by the data separation unit 7.
  • the output table 201 is, for example, a table structured by a plurality of columns (data items), and each column stores character string data.
  • the output table 201 is a table having columns including upper conceptual columns in which each column of the input table 101 is abstracted.
  • the product ID '202, the product ID ′′ 203, and the product ID ′ ′′ 204 are upper conceptual columns extracted from the product ID 102 of the column in the input table 101.
  • the product ID′202, the product ID ′′ 203, and the product ID For example, “04”, “A51”, and “010502” are stored in '′′ 204 as data.
  • Product detail name '205, product detail name' '206, product detail name' '' 207 are upper conceptual columns extracted from the column product detail name 105 in the input table 101.
  • Product detail name '205, product detail name For example, “broom”, “10”, and “45 cm” are stored in the name “206” and the product detail name “” 207, respectively.
  • employee ID'209, employee ID "210, employee ID '" 211 are high-order conceptual columns extracted from the column of employee ID 105 in the input table 101
  • employee ID'209, employee ID "210" For example, “850”, “013”, and “004” are stored in the employee ID ′ ′′ 211 as data.
  • Processing time '212, processing time' '213, processing time' '' 214 are higher-order conceptual columns extracted from the processing time 106 of the column in the input table 101.
  • Processing time '212, processing time' '213, processing time For example, “2016/01/07”, “09”, and “12” are stored as data at the time “′′ 214, respectively.
  • the number 208 is a column for which there is no superordinate concept, and the data of the number 104 of columns in the input table 101 is stored in the number 208 as it is. Further, by using the column of the output data 9 which is the data separated by the data separation unit 7 and abstracted, the analyst can perform various analyzes on large-scale data.
  • FIG. 4 is a configuration diagram of another output table showing a specific example of output data output from the data separation unit in the data converter.
  • an output table 301 is a table when a name is added to each column of the output table 201 by an input from the user.
  • Each number 306, size 307, number 308, department ID 309, hire year 310, Japanese syllabary number 311, processing date 312, processing time 313, and processing portion 314 are configured.
  • the output table 301 When the data belonging to the product ID 102 in the input table 101 is separated into three types, the output table 301 includes a floor 302 representing the floor of the building where the product is stored and an area name as the column name of each separated data. An area name 303 to be represented and a shelf number 304 indicating the column number of the shelf are added. Similarly, when the data belonging to the product detail name 103 in the input table 101 is separated into three types, the output table 301 includes a product classification 305 indicating product classification, and a product name as the column name of each separated data. A number 306 for each product indicating the number of products and a size 307 indicating the product size are added.
  • the output table 301 includes a department ID 309 representing the department to which the employee belongs as the column name of each separated data, and the employee's hire year. A hiragana number 311 indicating the order of the Japanese syllabary among the employees who joined the company in the same year is added.
  • the present invention is also applied to a column that expresses date and time.
  • the output table 301 includes a processing date 312 indicating the processing date and time, and the processing time as one hour as the column name of each separated data. At the time of processing 313 expressed in units, a processing portion 314 indicating the processing time in minutes is added.
  • Each column of the output table 301 stores the same data as the output table 201.
  • FIG. 5 is a flowchart for explaining the processing of the data separation unit.
  • the elements of each column are separated into different conceptual elements, so that the input table columns are automatically converted into higher-level conceptual columns and output. Is executed.
  • the data separation unit 7 functions as a data conversion program.
  • the data separation unit 7 fetches data belonging to the input table 101 from the input table 101 belonging to the input data 8 (S11), and data belonging to the input table 101 Are sequentially selected for each column (S12), and clustering processing for dividing the data of each selected column into a plurality of groups based on, for example, character patterns and word similarities is executed (S13).
  • clustering processing for dividing the data of each selected column into a plurality of groups based on, for example, character patterns and word similarities is executed (S13).
  • the data separation unit 7 executes regular expression extraction processing on the data belonging to each divided column, and the regular expression that expresses the target character string group from the data belonging to each divided column Is extracted (S14), and it is determined whether or not the number of characters equal to or greater than the threshold is a floating character with respect to the extracted regular expression (S15). If it is determined No in step S15, that is, if the extracted regular expression has fewer floating characters than the predetermined threshold or ratio (the number of floating characters is greater than or equal to the threshold, the character string is separated by the regular expression). If it is possible, the data separation unit 7 performs a floating character string separation process on the extracted regular expression, and separates and extracts only the floating character part (S16).
  • step S15 if it is determined Yes in step S15, that is, if the number of floating characters is less than the threshold value and the character string cannot be separated by the regular expression, the frequent word extraction process using the appearance frequency is executed. Then, a cluster of frequently used words is searched, and elements are separated in units of frequently used words extracted in this search (S17). Next, the data separation unit 7 clusters the extracted frequent words, and generates a column assuming that the clustered frequent words belong to the same column (S18).
  • the data separation unit 7 presents the result of separating the elements to the user as the processing result of step S16 or step S18, for example, displays the processing result on the output device 5, and whether there is feedback from the user. (S19), if there is feedback from the user, for example, if there is a correction of the separation part, the process returns to the process of step S17, and the correction part is a frequent word in the frequent word extraction process using the appearance frequency. Reflect in the dictionary.
  • the data separation unit 7 assigns column names to the processing result of step S16 or step S18, that is, to a plurality of newly generated columns separated from the target column. A naming process to be set is executed (S20).
  • the data separation unit 7 determines whether or not processing has been performed for all the columns in the input table 101 (S21). If processing has not been completed for all the columns, the processing of step S12 is performed. Returning, the processing of steps S12 to S21 is repeated, and when the processing for all the columns is completed, for example, an output table 301 is generated as an output table including columns that are upper concepts obtained by separating and abstracting each column. Output (S22), and the processing in this routine is terminated.
  • the data separation unit 7 divides the plurality of separated columns (frequent words) into a plurality of groups based on the similarity relationship between the character strings, and assigns and manages the frequent words similar to each group.
  • a name that is a higher concept than the names of the elements constituting the input data is added. If the process (name process) in step S20 is omitted, an output table 201 is generated as an output table.
  • FIG. 6 is a flowchart showing the clustering process in the data separation unit. This process is a specific content of step S13 of FIG.
  • the data separation unit 7 sequentially selects columns belonging to the input table 101 (S31), and classifies the data of each selected column into a plurality of groups based on, for example, character patterns and word similarities.
  • Clustering processing is executed (S32), and based on the processing result, each column is divided into a plurality of groups, a new column is generated for each group (S33), and the generated column is divided.
  • Each column is output (S34), and the processing in this routine is terminated.
  • FIG. 7 is a flowchart showing a frequent word extraction process using the appearance frequency in the data separation unit. This process is a specific content of step S17 of FIG.
  • the data separation unit 7 inputs data belonging to each divided column as the processing result of step S34 of FIG. 6 (S41), and any character string appears for the input data of each column.
  • the frequency is calculated (S42), and the process of extracting the change point of the appearance frequency is executed based on the calculated appearance frequency of the character string (S43).
  • the data separation unit 7 extracts frequent words based on the extracted change point (information amount) of the appearance frequency (S44).
  • the data separation unit 7 refers to the average separation number held in the average separation number holding unit (not shown) as a basic separation number, for example, “3” (S45), and determines the referenced average separation number. It is possible to extract frequently used words. By using the average number of separations, it is possible to improve the extraction accuracy of frequent words. Note that when the extraction of data (elements) belonging to each column is completed, the value of the average separation number is updated.
  • the data separating unit 7 registers the extracted frequent word data in a dictionary, for example, a frequent word dictionary (not shown) (S46), and whether the registered frequent word conflicts with characters already registered in the dictionary. It is determined whether or not (S47). If the data separation unit 7 obtains a negative determination result in step S47, the process proceeds to step S49. If the data separation unit 7 obtains a positive determination result in step S47, that is, a character that competes with a character already registered in the dictionary. When the columns are separated, the degree of inflection at the change point is calculated, and a rollback process for updating the dictionary by adopting the one with the higher degree of change in the appearance frequency of the predefined character string is executed (S48). .
  • a dictionary for example, a frequent word dictionary (not shown)
  • the data separation unit 7 determines whether or not all the character strings of all the elements have been scanned (S49). If all the character strings of all the elements have not been scanned, the process returns to step S42, and step S42. When the process of S49 is repeated and all the character strings of all the elements are scanned, a table to which the separated element information is added is generated as a new table to which the separated columns are added (S50). The routine processing is terminated.
  • the dictionary (frequent word dictionary) and the average separation number holding unit are stored in the secondary storage device 2, for example.
  • FIG. 8 is a flowchart showing the process of extracting the change point of the appearance frequency in the data separation unit. This process is the specific content of step S43 in FIG.
  • the data separation unit 7 inputs data belonging to each divided column as the processing result of step S34 of FIG. 6 (S61), and any character string appears for the input data of each column.
  • the frequency change point is calculated and recorded (S62).
  • the change point calculated at this time is a differential value of the transition of the appearance frequency, a differential value twice, or an amount that captures a change such as a difference.
  • the data separation unit 7 determines whether to separate, for example, a point where the change in the appearance frequency is changed as a separation point (S63). In other words, separation is performed at a point where the amount of change in the appearance frequency changes from positive to negative or from negative to positive.
  • the data separation unit 7 outputs a separation character string (separated character string) as a separation result (S64), determines how many character strings are separated from the separation result, and determines the result. Based on the above, the value of the average separation number is updated (S65), and the processing in this routine is terminated.
  • FIG. 9 is a flowchart showing the extracted word clustering process in the data separator. This process is a specific content of step S18 of FIG.
  • the data separation unit 7 refers to the table to which the separated element information is added as the processing result of step S50 in FIG. 7 (S71), and for each element (data) of each target column of the referenced table.
  • the maximum number is extracted from among the separated element numbers stored in each element (S72).
  • the data separation unit 7 determines that there are less than the maximum number of elements in the target column, that is, a column composed of elements smaller than the maximum number. In order to make the number of elements in each column uniform, an empty column is generated (S73).
  • the data separation unit 7 performs clustering based on the defined similarity on each element of the target column, and stores each element in the column with the highest similarity among the character strings belonging to each empty column. (S74). For example, if there is a column containing “broom, broom, 4”, a column containing “10, 23, 25cm” and a column containing “45cm, 60cm, broom”, “broom, broom, broom” ”,“ 10, 23, 4 ”columns and“ 45 cm, 60 cm, 25 cm ”columns.
  • step S75 the data separation unit 7 determines whether all columns and all elements of the referenced table have been classified. If a negative determination result is obtained in step S75, the process proceeds to step S74. Returning, the processing of steps S74 to S75 is repeated, and if a positive determination result is obtained in step S75, a table with the set of separated columns added is generated and output (S76), and the processing in this routine is performed. finish.
  • FIG. 10 is a flowchart showing the naming process in the data separation unit. This process is a specific content of step S20 of FIG.
  • the data separation unit 7 inputs the data of the table to which the set of separated columns is added as the processing result of step S76 in FIG. 9 (S81), and the column name data input by the user (S82), referring to the data of the input table, select each column of the table (S83), and add a name to each selected column (S84).
  • each separated column is selected, and a name is added to each column using the column name information input by the user. For example, “floor” is added to “product ID ′”, “area name” is added to “product ID ′′”, and “shelf number” is added to “product ID ′ ′′”. "Is added.
  • the column name input by the user can be arbitrarily added.
  • a name obtained by adding an identification symbol to the name of the separation source column is added. For example, when two columns are generated from the “charged employee ID” column, names such as “charged employee ID ′” and “charged employee ID” are automatically added.
  • the data separation unit 7 determines whether or not all columns have been processed (S85). If a negative determination result is obtained in step S85, the process returns to step S83, and the processes in steps S83 to S85 are performed. Is repeated, and if a positive determination result is obtained in step S85, the separated column is output (S86), and the processing in this routine is terminated. Thereby, the output table 301 can be generated from the output table 201.
  • FIG. 11 is an explanatory diagram showing a state in which the regular expression extraction process is executed for one column in the input table input to the data separation unit.
  • the data separation unit 7 inputs, for example, the data of the input table 1001 as the data of the input table when executing the regular expression extraction process in step S14 of FIG. 5.
  • the input table 1001 is an input table having product IDs 1002 and product details 1003 in columns. For example, “1000”,..., “1100” are stored as data in the product ID 1002. As the data, for example, “broom (medium) 10 pieces 45 cm”,..., “Nail (large) 3 pieces 15 cm” are stored.
  • the data separation unit 7 refers to the data in the input table 1001 and classifies the data belonging to each column into, for example, common elements and other elements in each record (row), and the regular expression 1004 Is generated and output.
  • the regular expression 1004 is a symbol indicating a wild card, and represents that several symbols are connected.
  • the regular expression 1004 starts with some symbols, puts “(”, puts some symbols, puts “)”, puts some symbols into “book”, puts some symbols into “cm”
  • the elements in the target column can be expressed by the elements common to each record (“book”, “cm”) and other elements (“*”) in the format “”.
  • the input table 1001 becomes an output table 1005 having columns of product ID 1006, product name 1007, standard 1008, number (book) 1009, and length (cm) 1010. Converted.
  • the wild card part (“*”) of the regular expression 1004 is a floating character string, “(”, “book”, etc.
  • the product details 1003 are separated into columns of product ID 1006, product name 1007, standard 1008, number (book) 1009, and length (cm) 1010. The name of the column needs to be given by the user.
  • FIG. 12 is an explanatory diagram showing a state in which frequent word extraction processing using the appearance frequency is executed for one column in the input table input to the data separation unit.
  • the data separation unit 7 inputs, for example, the data of the table 1101 as the table data when executing the frequent word extraction process using the appearance frequency in step S17 of FIG.
  • the table 1101 is a table having a product ID 1102 and product details 1103 in columns.
  • the product ID 1102 stores, for example, “1000” to “1100” as data
  • the product details 1103 includes, for example, data. "10 brooms 45cm” to "3 pipes 15cm” are stored.
  • the data separation unit 7 extracts frequent words for the elements (data) belonging to the product details 1103 of the table 1101 and belonging to each record (row), and the extracted frequent words are stored in the dictionary. Register and use as a separation standard, and separate and output the elements in the column.
  • the data separation unit 7 tabulates a combination of the first character to be tabulated and one or more characters connected to the first character among the elements constituting the input data as a plurality of tabulation target characters. Then, each tabulation target character of the tabulation result is recorded in the table 1104. For example, among the elements belonging to the product details 1103, for example, “10 brooms 45 cm” is replaced with “ho”, “broom”, “broom”, “broom 1”, “broom 10”,. “45 cm” is tabulated, and these characters are recorded as tabulation target characters in each record (line) of the tabulation target character 1105 of the table 1104.
  • the data separation unit 7 performs the entire (identical) for each tabulation target character based on the tabulation result for the elements (tabulation target characters) recorded in each record (row) of the tabulation target character 1105 of the table 1104.
  • Column a column belonging to the product detail 1103), for example, an appearance frequency or an occurrence frequency is sequentially calculated, and each calculation result is recorded in each record of the frequency 1106 of the table 1104.
  • the occurrence frequency in the same column is calculated in order from “ho”.
  • the occurrence frequency in the same column is also calculated for “boku” including up to the second character and “broom” including up to the third character.
  • the calculation results are “5/100”, “4/100”, and “3/100”, these calculation results are recorded in each record of the frequency 1106 of the table 1104.
  • the data separation unit 7 generates a graph with the horizontal axis representing the number of target characters x and the vertical axis representing the frequency H (x) with respect to the calculated occurrence frequency.
  • the calculation result of the frequency (occurrence frequency) corresponding to the number of characters is plotted to generate a curve y on the graph.
  • the frequency on the curve y gradually decreases as the number x of characters to be counted 1105 increases, but it can be observed that the frequency greatly decreases at a certain point.
  • the independence of the character string can be evaluated by capturing a change in the amount of change in frequency with a certain point as the changing point (inflection point) y1, and the character string can be separated on the basis of the changing point y1.
  • the occurrence frequency is 3/100 until “broom”, and in “broom 1”, the occurrence frequency is 1/100.
  • “Broom” that is a character string from one character “ho” to the change point y1 can be regarded as a lump of character string, and “broom” can be separated as one character string from “10 brooms 45cm”. it can.
  • “1” is the first character to be counted, and a plurality of totals belonging to a combination of the first character and one or more characters connected to the first character.
  • the appearance frequency (occurrence frequency) for the entire target character is sequentially calculated based on the total result, and each calculation result is recorded in each record of the frequency 1106 of the table 1104 and calculated.
  • the change point (inflection point) y1 for the appearance frequency (occurrence frequency) “10 pieces” can be separated from “10 brooms 45 cm” as one character string.
  • an information amount expressing the size of information held in the data can also be used.
  • This amount of information H (X) can be calculated according to the following equation 1 as the amount of information held by each aggregation target character 1105 for the target column. The calculation result is recorded in each record of the information amount 1107 of the table 1104.
  • p (x) indicates the frequency.
  • the information amount 1107 is “0.33” to “0.15” from “ho” to “broom” as shown in the table 1104. Since the information amount 1107 is “0.07”, the character string “105”, which is the character string from the first character “ho” to the change point y1, is regarded as a lump of character strings. From “10 brooms 45cm”, "broom” can be separated as one character string.
  • the present embodiment it is possible to separate the elements constituting the target data into a plurality of elements having different concepts for natural language text data and character string data.
  • versatility can be improved.
  • the present invention is not limited to the above-described embodiment, and includes various modifications.
  • the above-described embodiment has been described in detail for easy understanding of the present invention, and is not necessarily limited to one having all the configurations described. Further, it is possible to add, delete, and replace other configurations for a part of the configuration of each embodiment.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Machine Translation (AREA)

Abstract

プログラムを記憶するメモリと、メモリに記憶されたプログラムを基にデータを処理するプロセッサを備え、プロセッサは、自然言語の文章のデータと構造化されたテーブルに格納される文字列形式のデータのうち少なくとも一方のデータを処理対象となる入力データとして入力し、入力した入力データを構成する要素のうち集計対象となる第一の文字と当該第一の文字に連なる1又は2以上の文字の組合せを複数の集計対象文字として集計し、当該集計結果を基に集計された各集計対象文字の出現頻度又は情報量を算出し、算出された出現頻度又は情報量を基に各集計対象文字の出現頻度の変化点又は情報量の変化点を算出し、算出された出現頻度の変化点又は情報量の変化点を基に複数の集計対象文字を分離する。

Description

データ変換装置とデータ変換方法
 本発明は、自由記述文章のデータあるいはテーブル形式のデータに対して、データ中の各要素から得られる統計情報を元に、分析に必要なデータ加工を自動化するデータ変換装置とデータ変換方法に関する。
 近年、企業で蓄積されてきた業績に関するビッグデータを活用し、業績向上に繋がる要因を分析するシステムの開発が盛んに行われている。一般的に分析者は、様々な情報を含む大量のデータに対して、どのような条件が業績向上の要因となり得るか調べる。このとき分析者は、業績と関係する可能性のある項目を抽出するため、様々なデータ加工を行う。しかし、分析するデータのサイズが大きくなるにつれ、このようなデータの加工を分析者が人手で行うことは困難になってきた。そこで、大規模なデータを分析する際、データ加工を支援するシステムの開発が求められている。例えば、分析者が人手で行ってきた分析対象データの加工、その中でも特にID(Identification)や名前、アンケート結果などの自然言語データやラベルデータから、所属や入社年度など上位概念情報の分離・抽出を自動化するシステムの開発が求められている。このような技術を実現するために、特にテキスト形式の自然言語文章を対象として、テキスト内から抽出される文字列に対応する分岐状態の評価値として、例えば分岐数(パープレキシティ)を算出し、算出値に基づいて、文字列が単語であるか否かを決定するものが提案されている(特許文献1参照)。
特開2008-165675号公報
 特許文献1に開示された技術により、形態素解析用の辞書等の辞書に登録されていない単語の抽出が可能となる。しかし、特許文献1では、扱えるデータはテキスト文章データに限られており、適用するためには単語の分岐数に関する情報などを必要とする。
 本発明の目的は、自然言語の文章のデータと文字列形式のデータを対象として、対象となるデータを構成する要素を概念の相異なる複数の要素に分離することにある。
 前記課題を解決するために、本発明は、プログラムを記憶するメモリと、前記メモリに記憶されたプログラムを基にデータを処理するプロセッサと、を備え、前記プロセッサは、自然言語の文章のデータと構造化されたテーブルに格納される文字列形式のデータのうち少なくとも一方のデータを処理対象となる入力データとして入力し、前記入力した入力データを構成する要素のうち集計対象となる第一の文字と当該第一の文字に連なる1又は2以上の文字の組合せを複数の集計対象文字として集計し、当該集計結果を基に前記集計された各集計対象文字の出現頻度又は情報量を算出し、前記算出された出現頻度又は情報量を基に前記各集計対象文字の出現頻度の変化点又は情報量の変化点を算出し、前記算出された出現頻度の変化点又は情報量の変化点を基に前記複数の集計対象文字を分離することを特徴とする。
 本発明によれば、自然言語の文章のデータと文字列形式のデータを対象として、対象となるデータを構成する要素を概念の相異なる複数の要素に分離することができる。
本発明の第一の実施の形態のハードウェア構成を示す全体構成図である。 データ変換装置におけるデータ分離部に入力される入力データの具体例を示す入力テーブルの構成図である。 データ変換装置におけるデータ分離部の出力による出力データの具体例を示す出力テーブルの構成図である。 データ変換装置におけるデータ分離部の出力による出力データの具体例を示す他の出力テーブルの構成図である。 データ分離部の処理を説明するためのフローチャートである。 データ分離部におけるクラスタリングの処理を示すフローチャートである。 データ分離部における出現頻度を用いた頻出語抽出の処理を示すフローチャートである。 データ分離部における出現頻度の変化点抽出の処理を示すフローチャートである。 データ分離部における抽出語クラスタリングの処理を示すフローチャートである。 データ分離部における命名の処理を示すフローチャートである。 データ分離部に入力される入力テーブル中の一つのカラムに対して、正規表現抽出処理を実行する様子を示す説明図である。 データ分離部に入力される入力テーブル中の一つのカラムに対して、出現頻度を用いた頻出語抽出処理を実行する様子を示す説明図である。
実施の形態1
 以下、本発明の一実施の形態を、図面を参照して説明する。
 本実施の形態は、自然言語テキストだけでなく、テーブルに格納されたデータも対象とし、IDや名前のようなラベルデータに対して、文字間の独立性に注目し、対象とするデータから上位概念データを抽出するものである。
 図1は、本発明の第一の実施の形態のハードウェア構成を示す全体構成図である。図1において、本実施の形態は、中央処理演算装置1、二次記憶装置2、主記憶装置3、入力装置4及び出力装置5を有し、中央処理演算装置1、二次記憶装置2、主記憶装置3、入力装置4及び出力装置5がバス6で接続された計算機であって、データ変換装置あるいはデータ変換システムとして構成される。
 中央処理演算装置1は、二次記憶装置2や主記憶装置3などのメモリ(記憶デバイス)に格納されたプログラムを実行するプロセッサ(CPU:Central Processing Unit)である。
 二次記憶装置2は、例えば、磁気記憶装置、フラッシュメモリ等の大容量かつ不揮発性の記憶装置であり、プログラム実行時に中央処理演算装置1によって計算されるデータ分離部7を格納する。
 主記憶装置3は、例えばDRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶装置であり、オペレーティングシステム(OS)及びアプリケーションプログラムを格納する。中央処理演算装置1がオペレーティングシステムを実行することによって、計算機の基本機能が実現され、アプリケーションプログラムを実行することにより計算機が提供する機能が実現される。具体的には主記憶装置3は、入力データ8、出力データ9を格納する。入力データ8は、自然言語の文章のデータと構造化されたテーブルの各要素に格納される文字列形式のデータのうち少なくとも一方のデータで構成される。
 入力装置4は、キーボード、マウスなどのユーザインターフェースである。出力装置5は、ディスプレイ装置、プリンタなどのユーザインターフェースである。
 なお、本実施の形態は、本システム(データ変換システム)がネットワークに接続し、他の装置との通信を制御する通信インターフェースを有してもよい。この場合、本システムが通信インターフェースを介して端末と接続されており、該端末が入力装置4及び出力装置5を有し、端末からの要求に従ってテーブルを処理し、処理結果を端末に出力する。
 また、本システムは物理的に一つの計算機上に構築されても、物理的には一つ又は複数の計算機上に構成された論理区画上に構築されてもよい。次に、データ分離部7に入力される入力データ8について詳細を説明する。
 図2は、データ変換装置におけるデータ分離部に入力される入力データの具体例を示す入力テーブルの構成図である。図2において、入力テーブル101は、ある企業の倉庫に保管される在庫商品と、各商品の管理状況に関するデータを管理するテーブルである。この入力テーブル101は、例えば、複数のカラム(データ項目)によって構造化されたテーブルであって、各カラムには、文字列形式のデータが格納される。
 具体的には、入力テーブル101は、カラム(データ項目)として、商品ID102、商品詳細名103、個数104、社員ID105、処理時刻106を備えている。商品ID102には、保管される商品の場所を一意に定めるデータ、例えば、「04A51010502」が格納され、商品詳細名103には、商品に関する詳細属性情報から成るデータ、例えば、「ほうき10本45cm」が格納され、個数104には、保管される商品の個数を表すデータ、例えば、「3」が格納され、社員ID105には、商品を保管した社員を特定するデータ、例えば、「850013004」が格納され、処理時刻106には、作業が実行された日時を表すデータ、例えば、「2016/01/07 09:12」が格納される。企業や組織では一般的に、入力テーブル101のような形でシステムの運用状況や在庫状況が管理されている。本実施の形態では、自然言語の文章のデータ、あるいは入力テーブル101のようなリレーショナルデータベース形式のあらゆるテーブルに属するデータを入力対象としている。入力テーブル101の各カラムのデータは、データ分離部7で1又は2以上のデータに分離され、出力データ9に変換される。
 図3は、データ変換装置におけるデータ分離部の出力による出力データの具体例を示す出力テーブルの構成図である。図3において、出力テーブル201は、入力テーブル101の各カラムのデータを、データ分離部7が1又は2以上のデータに分離して得られた出力データ9で構成されるテーブルである。出力テーブル201は、例えば、複数のカラム(データ項目)によって構造化されたテーブルであって、各カラムには、文字列形式のデータが格納される。
 具体的には、出力テーブル201は、入力テーブル101の各カラムが抽象化された上位概念カラムを含むカラムを持つテーブルであって、商品ID’202、商品ID’’203、商品ID’’’204、商品詳細名’205、商品詳細名’’206、商品詳細名’’’207、個数208、社員ID’209、社員ID’’210、社員ID’’’211、処理時刻’212、処理時刻’’213、処理時刻’’’214から構成される。
 商品ID’202、商品ID’’203、商品ID’’’204は、入力テーブル101におけるカラムの商品ID102から抽出された上位概念カラムであり、商品ID’202、商品ID’’203、商品ID’’’204には、それぞれデータとして、例えば、「04」、「A51」、「010502」が格納される。商品詳細名’205、商品詳細名’’206、商品詳細名’’’207は、入力テーブル101におけるカラムの商品詳細名105から抽出された上位概念カラムであり、商品詳細名’205、商品詳細名’’206、商品詳細名’’’207には、それぞれデータとして、例えば、「ほうき」、「10本」、「45cm」が格納される。同様に、社員ID’209、社員ID’’210、社員ID’’’211は、入力テーブル101におけるカラムの社員ID105から抽出された上位概念カラムであり、社員ID’209、社員ID’’210、社員ID’’’211には、それぞれデータとして、例えば、「850」、「013」、「004」が格納される。処理時刻’212、処理時刻’’213、処理時刻’’’214は、入力テーブル101におけるカラムの処理時刻106から抽出された上位概念カラムであり、処理時刻’212、処理時刻’’213、処理時刻’’’214には、それぞれデータとして、例えば、「2016/01/07」、「09」、「12」が格納される。
 なお、個数208は、上位概念が存在しないカラムであり、個数208には、入力テーブル101におけるカラムの個数104のデータがそのまま格納される。また、データ分離部7によって分離されたデータであって、抽象化された出力データ9のカラムを用いることで、分析者は大規模なデータに対して様々な分析を行うことができる。
 図4は、データ変換装置におけるデータ分離部の出力による出力データの具体例を示す他の出力テーブルの構成図である。図4において、出力テーブル301は、出力テーブル201の各カラムに対して、ユーザからの入力により名前を付加した際のテーブルであり、階302、エリア名303、棚番号304、製品分類305、製品ごとの数306、サイズ307、個数308、所属部署ID309、入社年度310、五十音番号311、処理日312、処理時313、処理分314から構成される。
 入力テーブル101における商品ID102に属するデータが3種類に分離された場合、分離された各データのカラム名として、出力テーブル301には、商品が格納される建物の階を表す階302、エリア名を表すエリア名303、棚の列番号を示す棚番号304が付加される。同様に、入力テーブル101における商品詳細名103に属するデータが3種類に分離された場合、分離された各データのカラム名として、出力テーブル301には、製品の分類を示す製品分類305、製品ごとの数を示す製品ごとの数306、製品のサイズを示すサイズ307が付加される。また、入力テーブル101における社員ID105に属するデータが3種類に分離された場合、分離された各データのカラム名として、出力テーブル301には、社員の所属部署を表す所属部署ID309、社員の入社年度を表す入社年度310、同期入社の社員の中での五十音順を示す五十音番号311が付加される。また、IDのようなラベル的に振る舞うカラム以外にも、日時や時刻を表現するカラムに対しても適用される。入力テーブル101における処理時刻106に属するデータが3種類に分離された場合、分離された各データのカラム名として、出力テーブル301には、処理した日時を表す処理日312、処理した時刻を一時間単位で表す処理時313、処理した時間を分単位で表す処理分314が付加される。
 なお、個数308のように、上位概念となるカラムが存在しない場合は、入力テーブル101におけるカラム名がそのまま用いられる。また、出力テーブル301の各カラムには、出力テーブル201と同一のデータが格納される。
 図5は、データ分離部の処理を説明するためのフローチャートである。この処理では、入力対象となる入力テーブルの各カラムについて、各カラムの要素を相異なる概念の要素に分離することで、入力テーブルのカラムを、上位概念となるカラムに自動変換して出力することが実行される。
 データ分離部7は、データ変換プログラムとして機能し、中央処理演算装置1の起動により、入力データ8に属する入力テーブル101から、入力テーブル101に属するデータを取り込み(S11)、入力テーブル101に属するデータをカラムごとに順次選択し(S12)、選択した各カラムのデータを、例えば、文字パターン、言葉の類似度を基に複数のグループに分割するクラスタリングの処理を実行する(S13)。このクラスタリングの処理により、文字列を構成する文字の種類が、あらかじめ設定される閾値とは異なる場合には、カラムは、複数のカラムに分割される。
 次に、データ分離部7は、分割された各カラムに属するデータに対して正規表現抽出の処理を実行し、分割された各カラムに属するデータの中から、対象文字列群を表現する正規表現を抽出し(S14)、抽出した正規表現に対して、閾値以上の文字数が浮動文字であるか否かを判定する(S15)。ステップS15でNoと判定された場合、即ち、抽出された正規表現について、定めた閾値あるいは割合よりも浮動文字が少ない場合(浮動文字の文字数が閾値以上であって、文字列が正規表現で分離できた場合)、データ分離部7は、抽出された正規表現に対して、浮動文字列分離の処理を実行し、浮動文字部分のみを分離して抽出する(S16)。一方、ステップS15でYesと判定された場合、即ち、浮動文字の文字数が閾値未満であって、正規表現によって文字列を分離することができない場合、出現頻度を用いた頻出語抽出の処理を実行して、頻出語の塊を探索し、この探索で抽出された頻出語の単位で要素を分離する(S17)。次に、データ分離部7は、抽出された頻出語をクラスタリングし、クラスタリングされた頻出語同士は、同一カラムに属するとしてカラムを生成する(S18)。
 次に、データ分離部7は、ステップS16又はステップS18の処理結果として、要素を分離した結果をユーザへ提示し、例えば、出力装置5に処理結果を表示し、ユーザからのフィードバックがあるか否かを判定し(S19)、ユーザからのフィードバックがある場合、例えば、分離箇所の修正がある場合、ステップS17の処理に戻り、出現頻度を用いた頻出語抽出の処理で、修正箇所を頻出語辞書に反映させる。一方、ユーザからのフィードバックがない場合、データ分離部7は、ステップS16又はステップS18の処理結果に対して、即ち、対象カラムから分離して新しく生成された複数のカラムに対して、カラム名を設定する命名の処理を実行する(S20)。この後、データ分離部7は、入力テーブル101中の全てのカラムに対して処理をしたか否かを判定し(S21)、全てのカラムに対する処理が完了していない場合、ステップS12の処理に戻り、ステップS12~S21の処理を繰り返し、全てのカラムに対する処理が完了した場合、各カラムを分離・抽象化した上位概念となるカラムを含んだ出力テーブルとして、例えば、出力テーブル301を生成して出力し(S22)、このルーチンでの処理を終了する。
 この際、データ分離部7は、分離された複数のカラム(頻出語)を文字列同士の類似関係を基に複数のグループに分け、各グループに類似する頻出語を割り当てて管理し、各グループに、入力データを構成する要素の名称よりも上位概念となる名称を付加することになる。なお、ステップS20の処理(命名の処理)を省略した場合、出力テーブルとして、出力テーブル201が生成される。
 図6は、データ分離部におけるクラスタリングの処理を示すフローチャートである。この処理は、図5のステップS13の具体的内容である。
 図6において、データ分離部7は、入力テーブル101に属するカラムを順次選択し(S31)、選択した各カラムのデータを、例えば、文字パターン、言葉の類似度を基に複数のグループに分類するためのクラスタリングの処理を実行し(S32)、この処理結果を基に、各カラムを複数のグループに分割して、グループ毎に新しいカラムを生成し(S33)、生成されたカラムを、分割された各カラムとして出力し(S34)、このルーチンでの処理を終了する。
 図7は、データ分離部における出現頻度を用いた頻出語抽出の処理を示すフローチャートである。この処理は、図5のステップS17の具体的内容である。
 図7において、データ分離部7は、図6のステップS34の処理結果として、分割された各カラムに属するデータを入力し(S41)、入力した各カラムのデータに対して、あらゆる文字列の出現頻度を計算し(S42)、計算された文字列の出現頻度に基づき、出現頻度の変化点を抽出する処理を実行する(S43)。次に、データ分離部7は、抽出された出現頻度の変化点(情報量)を元に、頻出語を抽出する(S44)。この際、データ分離部7は、平均分離数保持部(図示せず)に保持された平均分離数を基本の分離数、例えば、「3」を参照し(S45)、参照した平均分離数を利用して、頻出語を抽出することができる。平均分離数を利用することで、頻出語の抽出精度を高めることができる。なお、各カラムに属するデータ(要素)の抽出が終了した場合には、平均分離数の値は更新される。
 次に、データ分離部7は、抽出した頻出語のデータを辞書、例えば頻出語辞書(図示せず)に登録し(S46)、登録した頻出語が、辞書に登録済みの文字と競合するか否かを判定する(S47)。データ分離部7は、ステップS47で否定の判定結果を得た場合、ステップS49の処理に移行し、ステップS47で肯定の判定結果を得た場合、即ち、辞書に登録済みの文字と競合する文字列が分離された場合、変化点の変曲度合い計算し、予め定義されている文字列の出現頻度の変化の度合いが大きい方を採用して辞書を更新するロールバック処理を実行する(S48)。この後、データ分離部7は、全要素の全文字列を走査したか否かを判定し(S49)、全要素の全文字列を走査していない場合、ステップS42の処理に戻り、ステップS42~S49の処理を繰り返し、全要素の全文字列を走査した場合、新しく、要素が分離されたカラムが追加されたテーブルとして、分離した要素情報が追加されたテーブルを生成し(S50)、このルーチンでの処理を終了する。なお、辞書(頻出語辞書)や平均分離数保持部は、例えば、二次記憶装置2に格納される。
 図8は、データ分離部における出現頻度の変化点抽出の処理を示すフローチャートである。この処理は、図7のステップS43の具体的内容である。
 図8において、データ分離部7は、図6のステップS34の処理結果として、分割された各カラムに属するデータを入力し(S61)、入力した各カラムのデータに対して、あらゆる文字列の出現頻度の変化点を計算して記録する(S62)。このとき計算される変化点とは、出現頻度の推移の微分値であったり、2回微分値であったり、差など変化を捉える量である。次に、データ分離部7は、計算された出現頻度の変化量を元に、例えば、出現頻度の変化が変局している地点を分離点として分離するか否かを判定する(S63)。言い換えると、出現頻度の変化量が正から負、もしくは負から正に変化している地点で分離する。この後、データ分離部7は、分離結果として、分離文字列(分離された文字列)を出力し(S64)、また、分離結果から、いくつの文字列に分離されたかを判定し、判定結果を基に、平均分離数の値を更新し(S65)、このルーチンでの処理を終了する。
 図9は、データ分離部における抽出語クラスタリングの処理を示すフローチャートである。この処理は、図5のステップS18の具体的内容である。
 図9において、データ分離部7は、図7のステップS50の処理結果として、分離した要素情報が追加されたテーブルを参照し(S71)、参照したテーブルの各対象カラムの各要素(データ)の中から、各要素に格納される、分離された要素数の中で最大数を抽出する(S72)。次に、データ分離部7は、抽出した最大分離要素数に基づき、対象カラムの要素の中に、最大数に満たないものが存在する場合、即ち、最大数よりも少ない要素で構成されるカラムが存在する場合、各カラムの要素の数を揃えるために、空のカラムを生成する(S73)。
 次に、データ分離部7は、対象カラムの各要素に対して、定義された類似度によるクラスタリングを行い、各空のカラムに属する文字列のうちで最も類似度の高いカラムへ各要素を格納する(S74)。例えば、「ほうき、ほうき、4本」を含むカラムと、「10本、23本、25cm」を含むカラムと、「45cm、60cm、ほうき」を含むカラムが存在する場合、「ほうき、ほうき、ほうき」を含むカラムと、「10本、23本、4本」を含むカラムと、「45cm、60cm、25cm」を含むカラムに変更する。
 次に、データ分離部7は、参照したテーブルの全てのカラム、全ての要素に対して分類したか否かを判定し(S75)、ステップS75で否定の判定結果を得た場合、ステップS74に戻り、ステップS74~S75の処理を繰り返し、ステップS75で肯定の判定結果を得た場合、分離されたカラムの集合が追加されたテーブルを生成して出力し(S76)、このルーチンでの処理を終了する。
 図10は、データ分離部における命名の処理を示すフローチャートである。この処理は、図5のステップS20の具体的内容である。
 図10において、データ分離部7は、図9のステップS76の処理結果として、分離されたカラムの集合が追加されたテーブルのデータを入力し(S81)、且つユーザから入力されたカラム名のデータを入力し(S82)、入力したテーブルのデータを参照して、テーブルの各カラムを選択し(S83)、選択した各カラムに名前を付加する(S84)。この際、分離された各カラムがそれぞれ選択され、ユーザから入力されたカラム名の情報を用いて、各カラムに名前が付加される。例えば、「商品ID’」に対して、「階」が付加され、「商品ID’’」に対して、「エリア名」が付加され、「商品ID’’’」に対して、「棚番号」が付加される。ユーザから入力されたカラム名の付加は任意であり、カラム名が入力されなかった場合は、分離元カラムの名前に識別記号を付加した名前を付ける。例えば、「担当社員ID」カラムから2つのカラムが生成された場合、「担当社員ID’」、「担当社員ID’’」といった名前が自動的に付加される。
 次に、データ分離部7は、全てのカラムについて処理したか否かを判定し(S85)、ステップS85で否定の判定結果を得た場合、ステップS83の処理に戻り、ステップS83~S85の処理を繰り返し、ステップS85で肯定の判定結果を得た場合、分離したカラムを出力し(S86)、このルーチンでの処理を終了する。これにより、出力テーブル201から出力テーブル301を生成することができる。
 図11は、データ分離部に入力される入力テーブル中の一つのカラムに対して、正規表現抽出処理を実行する様子を示す説明図である。
 図11において、データ分離部7は、図5のステップS14で正規表現抽出処理を実行するに際して、入力テーブルのデータとして、例えば、入力テーブル1001のデータを入力する。入力テーブル1001は、商品ID1002と商品詳細1003をカラムに持つ入力テーブルであり、商品ID1002には、データとして、例えば、「1000」、・・・、「1100」が格納され、商品詳細1003には、データとして、例えば、「ほうき(中)10本45cm」、・・・、「くぎ(大)3本15cm」が格納される。この際、データ分離部7は、入力テーブル1001のデータを参照し、各カラムに属するデータに対して、例えば、各レコード(行)で共通の要素とそれ以外の要素に分類し、正規表現1004を生成して出力する。
 正規表現1004における「*」はワイルドカードを示す記号であり、いくつかの記号が連なっていることを表現している。正規表現1004により、始めに幾つかの記号が入り、「(」を挟み、幾つか記号が入って「)」を挟み、幾つか記号が入って「本」、幾つか記号が入って「cm」という形式で対象カラム中の要素が、各レコードで共通の要素(「本」、「cm」)とそれ以外の要素(「*」)で表現できることが分かる。この情報を用いて商品詳細1003中の要素を分離すると、入力テーブル1001は、商品ID1006、商品名1007、規格1008、個数(本)1009、長さ(cm)1010というカラムを有する出力テーブル1005に変換される。正規表現1004のワイルドカード部分(「*」)が浮動文字列で、「(」や「本」などが固定文字列であり、浮動文字列が、それぞれ新しいカラムとして分離される。入力テーブル1001の商品詳細1003は、商品ID1006、商品名1007、規格1008、個数(本)1009、長さ(cm)1010というカラムに分離される。カラムの名前はユーザによって与える必要がある。
 図12は、データ分離部に入力される入力テーブル中の一つのカラムに対して、出現頻度を用いた頻出語抽出処理を実行する様子を示す説明図である。
 図12において、データ分離部7は、図5のステップS17で出現頻度を用いた頻出語抽出の処理を実行するに際して、テーブルのデータとして、例えば、テーブル1101のデータを入力する。テーブル1101は、商品ID1102と商品詳細1103をカラムに持つテーブルであり、商品ID1102には、データとして、例えば、「1000」~「1100」が格納され、商品詳細1103には、データとして、例えば、「ほうき10本45cm」~「パイプ3本15cm」が格納される。この後、データ分離部7は、テーブル1101の商品詳細1103に属するデータであって、各レコード(行)に属する要素(データ)に対して、頻出単語を抽出し、抽出した頻出単語を辞書へ登録して分離の基準とし、カラム中の要素を分離して出力する。この際、データ分離部7は、入力した入力データを構成する要素のうち集計対象となる第一の文字と第一の文字に連なる1又は2以上の文字の組合せを複数の集計対象文字として集計し、集計結果の各集計対象文字をテーブル1104に記録する。例えば、商品詳細1103に属する要素のうち、例えば、「ほうき10本45cm」を、「ほ」、「ほう」、「ほうき」、「ほうき1」、「ほうき10」、・・・、「ほうき10本45cm」に分けて集計し、これらの文字を集計対象文字として、テーブル1104の集計対象文字1105の各レコード(行)に記録する。
 次に、データ分離部7は、テーブル1104の集計対象文字1105の各レコード(行)に記録された要素(集計対象文字)に対して、集計結果を基に集計対象文字ごとに、全体(同一カラムであって、商品詳細1103に属するカラム)に対する頻度、例えば、出現頻度又は生起頻度を順次計算し、各計算結果を、テーブル1104の頻度1106の各レコードに記録する。例えば、「ほ」から順に、同一カラム内での生起頻度を計算する。同様に2文字目まで含めた「ほう」や、3文字目まで含めた「ほうき」についても、同一カラム内での生起頻度を計算する。計算結果が、それぞれ「5/100」、「4/100」、「3/100」である場合、これらの計算結果が、テーブル1104の頻度1106の各レコードに記録される。
 次に、データ分離部7は、計算された生起頻度について、横軸に対象文字の文字数x、縦軸に頻度H(x)をとったグラフを生成し、生成してグラフ上に、集計対象文字の文字数に対応した頻度(生起頻度)の計算結果をプロットして、グラフ上に曲線yを生成する。曲線yにおける頻度は、集計対象文字1105の文字数xが増加するに従って、徐々に減少するが、ある地点で大きく減少する様子が観測できる。ある地点を変化点(変曲点)y1として、頻度の変化量の変化を捉えることで、文字列の独立性を評価することができ、変化点y1を基準に文字列を分離できる。
 例えば、「ほうき10本45cm」の場合、「ほうき」までで生起頻度が3/100であり、「ほうき1」では、生起頻度が1/100となっているため、集計対象文字1105のうち第一の文字「ほ」から変化点y1までの文字列である「ほうき」を、文字列の塊とみなし、「ほうき10本45cm」から、「ほうき」を、一つの文字列として分離することができる。同様に、「ほうき10本45cm」のうち、「1」を集計対象文字の第一の文字として、第一の文字と第一の文字に連なる1又は2以上の文字の組合せに属する複数の集計対象文字に対して、集計結果を基に集計対象文字ごとに、全体に対する出現頻度(生起頻度)を順次計算し、各計算結果を、テーブル1104の頻度1106の各レコードに記録し、計算された出現頻度(生起頻度)について、変化点(変曲点)y1を求めることで、「ほうき10本45cm」から、「10本」を、一つの文字列として分離することができる。
 出現頻度の代わりに、データの持つ情報の大きさを表現する情報量を用いることもできる。この情報量H(X)は、対象カラムについて、各集計対象文字1105の持つ情報量として、次の数1に従って計算することができる。この計算結果は、テーブル1104の情報量1107の各レコードに記録される。
Figure JPOXMLDOC01-appb-M000001
 ここで、p(x)は、頻度を示す。
 出現頻度の代わりに、情報量を用いた場合にも、テーブル1104に示すように、「ほ」から「ほうき」まで、情報量1107が「0.33」~「0.15」であり、「ほうき1」では、情報量1107が「0.07」となっているため、集計対象文字1105のうち第一の文字「ほ」から変化点y1までの文字列である「ほうき」を、文字列の塊とみなし、「ほうき10本45cm」から、「ほうき」を、一つの文字列として分離することができる。
 本実施の形態によれば、自然言語の文章のデータと文字列形式のデータを対象として、対象となるデータを構成する要素を概念の相異なる複数の要素に分離することができる。また、入力した分析対象テーブル(入力テーブル101)の各カラムから、上位概念関係にあるカラムを自動抽出することができ、結果として、抽出されたカラムを分析に使用することで、分析速度の向上及び汎用性の向上を図ることができる。
 なお、本発明は上記した実施の形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施の形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
 1 中央処理演算装置、2 二次記憶装置、3 主記憶装置、4 入力装置、5 出力装置、6 バス、7 データ分離部、8 入力データ、9 出力データ

Claims (15)

  1.  プログラムを記憶するメモリと、
     前記メモリに記憶されたプログラムを基にデータを処理するプロセッサと、を備え、
     前記プロセッサは、
     自然言語の文章のデータと構造化されたテーブルに格納される文字列形式のデータのうち少なくとも一方のデータを処理対象となる入力データとして入力し、前記入力された入力データを構成する要素のうち集計対象となる第一の文字と当該第一の文字に連なる1又は2以上の文字の組合せを複数の集計対象文字として集計し、当該集計結果を基に前記集計された各集計対象文字の出現頻度又は情報量を算出し、前記算出された出現頻度又は情報量を基に前記各集計対象文字の出現頻度の変化点又は情報量の変化点を算出し、前記算出された出現頻度の変化点又は情報量の変化点を基に前記複数の集計対象文字を分離することを特徴とするデータ変換装置。
  2.  請求項1に記載のデータ変換装置において、
     前記プロセッサは、
     前記算出された出現頻度の変化点又は情報量の変化点を基に前記複数の集計対象文字を複数の頻出語に分離することを特徴とするデータ変換装置。
  3.  請求項1に記載のデータ変換装置において、
     前記プロセッサは、
     前記入力データから前記複数の集計対象文字を集計する前に、前記入力データを構成する要素である文字列に対して、正規表現による抽出処理を実行し、前記文字列から固定文字列と浮動文字列を抽出し、前記抽出した浮動文字列に属する浮動文字の文字数が閾値未満か閾値以上かを判定し、前記浮動文字の文字数が前記閾値未満であることを条件に、前記入力データから前記複数の集計対象文字を集計することを特徴とするデータ変換装置。
  4.  請求項3に記載のデータ変換装置において、
     前記プロセッサは、
     前記浮動文字の文字数が前記閾値以上であることを条件に、前記入力データから前記複数の集計対象文字を集計することなく、前記文字列を前記浮動文字に従って複数の頻出語に分離することを特徴とするデータ変換装置。
  5.  請求項2に記載のデータ変換装置において、
     前記プロセッサは、
     前記分離された複数の頻出語を文字列同士の類似関係を基に複数のグループに分け、前記各グループに類似する頻出語を割り当てて管理し、前記各グループに前記入力データを構成する要素の名称よりも上位概念となる名称を付加することを特徴とするデータ変換装置。
  6.  請求項2に記載のデータ変換装置において、
     前記プロセッサは、
     前記複数の集計対象文字を分離する際に、平均分離数を基に前記複数の集計対象文字から複数の頻出語を抽出し、前記抽出された頻出語を辞書に登録することを特徴とするデータ変換装置。
  7.  請求項6に記載のデータ変換装置において、
     前記プロセッサは、
     前記抽出された頻出語を前記辞書に登録する際に、前記登録の対象となる頻出語と前記辞書に登録済みの文字とが競合するか否かを判定し、前記登録の対象となる頻出語が前記辞書に登録済みの文字と競合する場合、前記登録の対象となる頻出語を修正するためのロールバック処理を実行することを特徴とするデータ変換装置。
  8.  メモリに記憶されたプログラムを基にデータを処理するプロセッサが、自然言語の文章のデータと構造化されたテーブルに格納される文字列形式のデータのうち少なくとも一方のデータを処理対象となる入力データとして入力する第一のステップと、
     前記プロセッサが、前記第一のステップで入力された入力データを構成する要素のうち集計対象となる第一の文字と当該第一の文字に連なる1又は2以上の文字の組合せを複数の集計対象文字として集計する第二のステップと、
     前記プロセッサが、前記第二のステップでの集計結果を基に前記第二のステップで集計された各集計対象文字の出現頻度又は情報量を算出する第三のステップと、
     前記プロセッサが、前記第三のステップで算出された出現頻度又は情報量を基に前記各集計対象文字の出現頻度の変化点又は情報量の変化点を算出する第四のステップと、
     前記プロセッサが、前記第四のステップで算出された出現頻度の変化点又は情報量の変化点を基に前記複数の集計対象文字を分離する第五のステップと、を有することを特徴とするデータ変換方法。
  9.  請求項8に記載のデータ変換方法において、
     前記プロセッサは、
     前記第五のステップでは、前記第四のステップで算出された出現頻度の変化点又は情報量の変化点を基に前記複数の集計対象文字を複数の頻出語に分離することを特徴とするデータ変換方法。
  10.  請求項8に記載のデータ変換方法において、
     前記プロセッサは、
     前記第二のステップの前処理として、前記入力データを構成する要素である文字列に対して、正規表現による抽出処理を行って、前記文字列から固定文字列と浮動文字列を抽出し、前記抽出された浮動文字列に属する浮動文字の文字数が閾値未満か閾値以上かを判定し、前記浮動文字の文字数が前記閾値未満であることを条件に、前記第二のステップを実行することを特徴とするデータ変換方法。
  11.  請求項10に記載のデータ変換方法において、
     前記プロセッサは、
     前記第二のステップの前処理で、前記浮動文字の文字数が前記閾値以上であると判定した場合、前記第二のステップ以降の処理を実行することなく、前記文字列を前記浮動文字に従って複数の頻出語に分離することを特徴とするデータ変換方法。
  12.  請求項9に記載のデータ変換方法において、
     前記プロセッサは、
     前記第五のステップでは、前記分離された複数の頻出語を文字列同士の類似関係を基に複数のグループに分け、前記各グループに類似する頻出語を割り当てて管理し、前記各グループに前記入力データを構成する要素の名称よりも上位概念となる名称を付加することを特徴とするデータ変換方法。
  13.  請求項9に記載のデータ変換方法において、
     前記プロセッサは、
     前記第五のステップでは、前記複数の集計対象文字を分離する際に、平均分離数を基に前記複数の集計対象文字から複数の頻出語を抽出し、前記抽出された頻出語を辞書に登録することを特徴とするデータ変換方法。
  14.  請求項13に記載のデータ変換方法において、
     前記プロセッサは、
     前記第五のステップでは、前記抽出された頻出語を前記辞書に登録する際に、前記登録の対象となる頻出語と前記辞書に登録済みの文字とが競合するか否かを判定し、前記登録の対象となる頻出語が前記辞書に登録済みの文字と競合する場合、前記登録の対象となる頻出語を修正するためのロールバック処理を実行することを特徴とするデータ変換方法。
  15.  プログラムを記憶するメモリと、
     前記メモリに記憶されたプログラムを基にデータを処理するプロセッサと、を備えた計算機に対して、
     自然言語の文章のデータと構造化されたテーブルに格納される文字列形式のデータのうち少なくとも一方のデータを処理対象となる入力データとして入力する第一のステップと、
     前記第一のステップで入力された入力データを構成する要素のうち集計対象となる第一の文字と当該第一の文字に連なる1又は2以上の文字の組合せを複数の集計対象文字として集計する第二のステップと、
     前記第二のステップで集計された各集計対象文字の出現頻度又は情報量を算出する第三のステップと、
     前記第三のステップで算出された出現頻度又は情報量を基に前記各集計対象文字の出現頻度の変化点又は情報量の変化点を算出する第四のステップと、
     前記第四のステップで算出された出現頻度の変化点又は情報量の変化点を基に前記複数の集計対象文字を分離する第五のステップと、を実行させることを特徴とするデータ変換プログラム。
PCT/JP2016/085641 2016-11-30 2016-11-30 データ変換装置とデータ変換方法 WO2018100700A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018553591A JP6763967B2 (ja) 2016-11-30 2016-11-30 データ変換装置とデータ変換方法
PCT/JP2016/085641 WO2018100700A1 (ja) 2016-11-30 2016-11-30 データ変換装置とデータ変換方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/085641 WO2018100700A1 (ja) 2016-11-30 2016-11-30 データ変換装置とデータ変換方法

Publications (1)

Publication Number Publication Date
WO2018100700A1 true WO2018100700A1 (ja) 2018-06-07

Family

ID=62242790

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/085641 WO2018100700A1 (ja) 2016-11-30 2016-11-30 データ変換装置とデータ変換方法

Country Status (2)

Country Link
JP (1) JP6763967B2 (ja)
WO (1) WO2018100700A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020095329A (ja) * 2018-12-10 2020-06-18 諒 田中 置換方法、コンピュータプログラム、及び情報処理システム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002259370A (ja) * 2001-02-27 2002-09-13 Ricoh Co Ltd 複合語分割装置、日本語辞書作成装置、それらの方法、プログラム、及び、記録媒体
JP2016173743A (ja) * 2015-03-17 2016-09-29 株式会社Jsol 顔文字抽出装置、方法及びプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002259370A (ja) * 2001-02-27 2002-09-13 Ricoh Co Ltd 複合語分割装置、日本語辞書作成装置、それらの方法、プログラム、及び、記録媒体
JP2016173743A (ja) * 2015-03-17 2016-09-29 株式会社Jsol 顔文字抽出装置、方法及びプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020095329A (ja) * 2018-12-10 2020-06-18 諒 田中 置換方法、コンピュータプログラム、及び情報処理システム
JP7270369B2 (ja) 2018-12-10 2023-05-10 諒 田中 置換方法、コンピュータプログラム、及び情報処理システム

Also Published As

Publication number Publication date
JPWO2018100700A1 (ja) 2019-06-24
JP6763967B2 (ja) 2020-09-30

Similar Documents

Publication Publication Date Title
WO2019214245A1 (zh) 一种信息推送方法、装置、终端设备及存储介质
Ur-Rahman et al. Textual data mining for industrial knowledge management and text classification: A business oriented approach
CN110851598B (zh) 文本分类方法、装置、终端设备及存储介质
US20140207782A1 (en) System and method for computerized semantic processing of electronic documents including themes
JP6242540B1 (ja) データ変換システム及びデータ変換方法
CN112883730B (zh) 相似文本匹配方法、装置、电子设备及存储介质
CN111581193A (zh) 数据处理方法、设备、计算机系统及存储介质
CN110688593A (zh) 一种社交媒体账号识别方法及系统
CN103544299A (zh) 一种商业智能云计算系统的构建方法
Consoli et al. A quartet method based on variable neighborhood search for biomedical literature extraction and clustering
CN112395881B (zh) 物料标签的构建方法、装置、可读存储介质及电子设备
Benny et al. Hadoop framework for entity resolution within high velocity streams
CN110874366A (zh) 数据处理、查询方法和装置
WO2018100700A1 (ja) データ変換装置とデータ変換方法
CN110597796A (zh) 基于全生命周期的大数据实时建模方法及系统
US10877998B2 (en) Highly atomized segmented and interrogatable data systems (HASIDS)
CN110874398B (zh) 违禁词处理方法、装置、电子设备及存储介质
CN115617790A (zh) 数据仓库创建方法、电子设备及存储介质
CN112818215A (zh) 产品数据的处理方法、装置、设备及存储介质
US11170164B2 (en) System and method for cell comparison between spreadsheets
CN110737749A (zh) 创业计划评价方法、装置、计算机设备及存储介质
JP2020166443A (ja) データ加工方法レコメンドシステム、データ加工方法レコメンド方法、及びデータ加工方法レコメンドプログラム
Sulova Text mining approach for identifying research trends
Zhang et al. How to find valuable references? Application of text mining in abstract clustering
CN113064597B (zh) 一种冗余代码的识别方法、装置和设备

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16922985

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2018553591

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16922985

Country of ref document: EP

Kind code of ref document: A1