WO2024252480A1 - データ変換装置、データ変換方法及びプログラム - Google Patents
データ変換装置、データ変換方法及びプログラム Download PDFInfo
- Publication number
- WO2024252480A1 WO2024252480A1 PCT/JP2023/020846 JP2023020846W WO2024252480A1 WO 2024252480 A1 WO2024252480 A1 WO 2024252480A1 JP 2023020846 W JP2023020846 W JP 2023020846W WO 2024252480 A1 WO2024252480 A1 WO 2024252480A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- conversion
- examples
- positive
- negative
- new
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
- G06F40/16—Automatic learning of transformation rules, e.g. from examples
Definitions
- the present invention relates to a data conversion device, a data conversion method, and a program.
- Digital transformation is driving the use of digital technology and data (information assets). In order to become more competitive, it is important for not only data scientists but also general employees to incorporate data analysis into their daily work. Data analysis requires preprocessing of data, but it is said that preprocessing takes up approximately 80% of the workforce and requires knowledge of conversion methods and programming, which is hindering the spread of data analysis.
- ETL tools exist as tools that support data analysis. With ETL tools, data conversion can be performed automatically by specifying the data conversion method. However, in addition to requiring knowledge of the conversion method, it is time-consuming to specify the conversion method every time new data conversion is performed.
- AutoPandasz (Non-Patent Document 1) is a technology that synthesizes a program that realizes data conversion from examples of data before and after that conversion. AutoPandas has the advantage that it can be used without knowledge of conversion methods or programming, since it is only necessary to prepare specific examples of data before and after that conversion.
- the present invention was made in consideration of the above points, and aims to improve the work efficiency of data conversion.
- the data conversion device has an example input unit configured to input a table to be converted, and conversion results of positive examples and negative examples for a part of the table, a conversion unit configured to generate a table that includes the positive examples and does not include the negative examples by repeating the process of calculating an evaluation value based on a comparison between the positive examples and the negative examples for each table obtained by performing an operation that can be performed on the operation target among a plurality of operations with the table to be converted as a first operation target and selecting the table with the best evaluation value as the operation target, and an output unit configured to output a table that includes the positive examples and does not include the negative examples, and the conversion unit is configured to generate a table that includes the new positive examples and does not include the new negative examples when the example input unit inputs a new positive example or a new negative example after the output unit outputs the table.
- FIG. 10A to 10C are diagrams for explaining data conversion desired by a user in the first embodiment.
- FIG. 13 is a diagram showing an example of a positive example and a negative example.
- FIG. 13 illustrates an example of a search graph.
- FIG. 2 illustrates an example of a hardware configuration of a data conversion device according to the first embodiment.
- FIG. 2 illustrates an example of a functional configuration of a data conversion device according to the first embodiment.
- 4 is a flowchart illustrating an example of a processing procedure executed by the data conversion device 10.
- 10 is a flowchart illustrating an example of a processing procedure of a data conversion process according to the first embodiment.
- 13 is a flowchart illustrating an example of a processing procedure for executing an operator on a table corresponding to a node.
- FIG. 13 is a diagram showing an example of a positive example and a negative example.
- FIG. 13 illustrates an example of a search graph.
- FIG. 2 illustrates an example of a
- FIG. 13 is a diagram illustrating an example of a search graph generated by adding negative examples.
- 13 is a flowchart illustrating an example of a processing procedure of a data conversion process according to the second embodiment.
- 13 is a flowchart illustrating an example of a procedure for recalculating the cost of each node.
- FIG. 13 is a diagram showing an example of a search graph G after recalculation of costs.
- FIG. 1 is a diagram for explaining the data conversion desired by the user in the first embodiment.
- the user desires to convert table Ti to table To.
- table To is merely a table imagined in the user's mind, and has not actually been obtained.
- the values of all rows and columns are not clearly specified in the user's mind, and the user only has a vague idea of what kind of conversion result is desired.
- the user provides a machine (data conversion device 10 described below) with examples of correct conversion results (hereinafter referred to as "positive examples") of a portion of the converted data (a portion of the data).
- the positive example Ep in FIG. 2 is provided to the machine.
- the positive example Ep is a set of data included in table To.
- FIG. 1 shows an example in which the positive example Ep includes only one example, the positive example Ep may include multiple examples.
- the machine searches (heuristic search) for a conversion program (conversion procedure) that includes the given positive example Ep, and presents the converted data to the user.
- the user reviews the data and corrects any inappropriate parts. Specifically, the user provides data that corresponds to the inappropriate parts as examples of incorrect conversion results (hereinafter referred to as "negative examples").
- the negative example En in FIG. 2 is provided to the machine.
- the negative example En is a set of data that is not included in table To.
- FIG. 1 shows an example in which the negative example En includes only one example, the negative example En may include multiple examples.
- Note that further positive examples may be added to Ep.
- the machine searches again for a conversion program that takes the modifications into account (a conversion program that includes all of the given positive examples but does not include all of the given negative examples), and presents the new converted data to the user again. By repeating this interactive process, the user can perform the desired data conversion without knowledge of conversion methods or programming.
- the conversion program is a recursive repetition of the following operations (hereinafter referred to as "operators") on a table.
- move_end(n) moves the nth column to the rightmost column, but does not apply to columns that are already the rightmost column.
- split(n, str) Splits the data in the nth column by str. However, this does not apply to columns that do not have str.
- del_empty() Deletes rows that have blanks. However, this is not applicable if there are no blanks in the table.
- FIG. 3 is a diagram showing an example of a search graph.
- the search graph is a directed graph in which the root node corresponds to the table Ti to be converted, the edges correspond to operators, and each node corresponds to a table obtained as a result of executing an operator related to the edge between the parent node and the parent node.
- Each node is assigned an evaluation value (hereinafter referred to as "cost") that is a quantitative evaluation result of the extent to which the table corresponding to the node contains positive examples and the extent to which it does not contain negative examples.
- the cost of a table that contains all given positive examples and does not contain all given negative examples is 0. In other words, the cost is a value greater than or equal to 0, with 0 being the best.
- FIG. 3 shows a search graph in a state where the executable operators move_end(0) and split(1,',') have been executed on table Ti. Therefore, an edge corresponding to move_end(0) and an edge corresponding to split(1,',') extend from the root node.
- the child node at the end of the edge corresponding to move_end(0) corresponds to table t1 obtained by executing move_end(0) on table Ti.
- the child node at the end of the edge corresponding to split(1,',') corresponds to table t2 obtained by executing split(1,',') on table Ti.
- the machine recursively repeats the execution of the operator on the node with the best cost among the terminal nodes of the search graph.
- the machine ends the search when a node matching table To is obtained.
- the cost of each table in FIG. 3 is the cost when only the positive example Ep in FIG. 1 is given.
- table t2 has a cost of 0 because it includes the positive example Ep.
- table t2 is presented to the user.
- the user adds a negative example En to table t2 to remove the parts that are different from table To.
- the machine searches again for a conversion program (converted data) that also satisfies the negative example En.
- Figure 4 is a diagram showing an example of the hardware configuration of the data conversion device 10 in the first embodiment.
- the data conversion device 10 in Figure 4 has a drive device 100, an auxiliary storage device 102, a memory device 103, a CPU 104, an interface device 105, a display device 106, and an input device 107, which are all interconnected by a bus B.
- the program that realizes the processing in the data conversion device 10 is provided by a recording medium 101 such as a CD-ROM.
- a recording medium 101 such as a CD-ROM.
- the program is installed from the recording medium 101 via the drive device 100 into the auxiliary storage device 102.
- the program does not necessarily have to be installed from the recording medium 101, but may be downloaded from another computer via a network.
- the auxiliary storage device 102 stores the installed program as well as necessary files, data, etc.
- the memory device 103 When an instruction to start a program is received, the memory device 103 reads out and stores the program from the auxiliary storage device 102.
- the CPU 104 realizes functions related to the data conversion device 10 in accordance with the program stored in the memory device 103.
- the interface device 105 is used as an interface for connecting to a network.
- the display device 106 displays a GUI (Graphical User Interface) based on a program, etc.
- the input device 107 is composed of a keyboard, mouse, etc., and is used to input various operational instructions.
- FIG. 5 is a diagram showing an example of the functional configuration of the data conversion device 10 in the first embodiment.
- the data conversion device 10 has a data input unit 11, a case input unit 12, a conversion unit 13, and an output unit 14. Each of these units is realized by a process in which one or more programs installed in the data conversion device 10 are executed by the CPU 104.
- Figure 6 is a flowchart for explaining an example of the processing procedure executed by the data conversion device 10.
- step S101 the data input unit 11 inputs a table to be converted.
- table Ti in FIG. 1 is input.
- the example input unit 12 accepts input of examples (positive examples or negative examples) related to the conversion from the user (S102).
- examples positive examples or negative examples
- the positive example Ep in FIG. 2 is input first.
- the negative example En may also be input from the beginning.
- the conversion unit 13 executes a data conversion process (S103).
- the operator is executed recursively on table Ti until a table with a cost of 0 is found using the search graph.
- the operator is executed recursively on the table with the best cost among the end tables in the series of tables on which the operator is to be executed (operation target).
- the conversion unit 13 returns that table as converted data.
- the output unit 14 outputs the converted data generated by the conversion unit 13 (S104).
- the case example input unit 12 receives from the user whether the output converted data is appropriate (S105). If an input indicating that the converted data is appropriate is received (Yes in S105), the processing procedure in FIG. 6 ends. In this case, the converted data output in step S104 is used by the user.
- step S102 if an input indicating that the results are inappropriate is received (No in S105), step S102 and subsequent steps are repeated. In step S102 that is executed for the second or subsequent times, a new positive example or a new negative example is added.
- FIG. 7 is a flowchart for explaining an example of the processing procedure of the data conversion process in the first embodiment.
- step S210 the conversion unit 13 initializes the search graph G with an empty set ( ⁇ ).
- step S211 to S214 a root node is generated for the search graph G.
- step S211 the conversion unit 13 assigns null to parent, assigns null to edge, assigns the table Ti of the conversion source to table out , and initializes children with an empty set ( ⁇ ).
- parent is a variable corresponding to the parent node of the node to be generated (here, the root node). Since the root node has no parent node, null is assigned to parent here.
- edge is a variable corresponding to the edge connecting parent and the node to be generated. Since the root node has no corresponding edge, null is assigned to edge here.
- table out is a variable that stores a table corresponding to the node to be generated. Initially, the root node corresponding to table Ti is the target of generation, so table Ti is assigned to table out .
- calcCost is an evaluation function that quantitatively evaluates to what extent a table contains positive examples and to what extent it does not contain negative examples.
- the evaluation function inputs the table to be evaluated, all positive examples contained in Ep, and all negative examples contained in En, and outputs the cost.
- En is empty.
- the evaluation function may be any function that outputs a higher evaluation the more positive examples are included, and outputs a lower evaluation the more negative examples are included.
- the cost is 0 or more, and 0 is the best (highest evaluation).
- the conversion unit 13 assigns ⁇ edge, table out , cost, parent, children ⁇ to node (S213).
- node is the node to be generated.
- the conversion unit 13 adds a node to the search graph G (S214). As a result, a root node is generated in the search graph G.
- step S221 the conversion unit 13 selects one node with the best cost (the cost closest to 0) from among the terminal nodes of the search graph G, and assigns the selected node to the node parent .
- the conversion unit 13 sets the node parent table as the operation target and executes all operators that can be executed on the operation target table (S222), resulting in a change in the search graph G.
- Figure 8 is a flowchart for explaining an example of the processing procedure for executing an operator on a table corresponding to a node.
- step S301 the conversion unit 13 assigns the node with the smallest cost (the node with the best cost) among the terminal nodes (nodes whose children are ⁇ ) in the search graph G to parent.
- the node is selected as the parent node of the node to be generated.
- node parent is the root node corresponding to table Ti.
- the conversion unit 13 executes a loop process L1 for each element of a set Oe of operators that can be executed for a table corresponding to node parent .
- the argument values of the operators that can be executed for a certain table are also distinguished.
- move_end(0) and move_end(1) are executable, then two types of operators are executable. There are two types of operators that can be executed for table Ti: move_end(0) and split(1,','). Therefore, when table Ti is parent_node, loop process L1 is executed for each of these two types of operators.
- the loop process L1 includes steps S302 to S309 in order to generate a child node for node parent for each executable operator.
- the operator that is the processing target in loop process L1 is hereinafter referred to as "operator p".
- step S302 the conversion unit 13 assigns the operator p to the edge that connects the node parent and the node to be generated.
- the conversion unit 13 substitutes a table obtained by executing the operator p on the table (table out ) corresponding to the node parent into the table out (S303).
- the conversion unit 13 executes calcCost(table out , Ep, En) and substitutes the output into cost (S304). That is, the value of the evaluation function of table out is substituted into cost.
- the conversion unit 13 substitutes node parent into parent and initializes children with an empty set ( ⁇ ) (S305).
- the conversion unit 13 substitutes ⁇ edge, table out , cost, parent, children ⁇ into node (S306).
- the conversion unit 13 judges whether or not there is a node in the search graph G that has the same table as table out (S307). If there is no corresponding node (Yes in S307), the conversion unit 13 adds a node to the search graph G (S308). Next, the conversion unit 13 adds a node to the children of the node parent (S309). As a result, it is registered that the node is a child node of the node parent . Note that the reason that nodes corresponding to the same table are not duplicated is because the search graphs beyond the nodes that have the same table are all the same, which results in a wasteful search.
- the search graph G becomes as shown in Fig. 3 by executing the processing procedure of Fig. 8. In this case, since the cost of table t2 is 0, the conversion unit 13 returns table t2 in step S224 of Fig. 6. The output unit 14 outputs table t2 .
- Table t2 is different from table To (FIG. 1) desired by the user. Specifically, table t2 includes rows in which the second column is empty. Therefore, the user removes these rows using negative examples. Specifically, the user inputs negative examples En in FIG. 2 to data conversion device 10. The negative examples En are input by case input unit 12 in step S102 in FIG. 6.
- the conversion unit 13 re-executes the data conversion process (FIG. 7) (S103).
- a search graph G as shown in FIG. 9 is generated.
- the cost of table t5 is 0. Therefore, the conversion unit 13 returns table t5 in step S224 in FIG. 6.
- the output unit 14 outputs table t5 .
- the user can obtain the desired conversion result.
- the work efficiency for data conversion can be improved. Specifically, a user can perform data conversion with minimal work even if he or she does not have knowledge of conversion methods or programming. This enables people other than data scientists to perform data analysis, and knowledge gained from data analysis can be reflected in daily work.
- the data before conversion is on a scale that allows all data (all records) to be easily grasped, but this embodiment can also be applied to large-scale data, in which case the effects can be more pronounced.
- step S103 (FIG. 7) from the second time onwards starts with generating the root node every time.
- the execution starts with reconstructing the search graph G in the (n-1)th execution.
- step S103 in FIG. 6 the processing procedure executed in step S103 in FIG. 6 is replaced by that in FIG. 10 instead of that in FIG. 7.
- FIG. 10 is a flowchart for explaining an example of the processing procedure of the data conversion process in the second embodiment.
- the same steps as those in FIG. 7 are given the same step numbers, and their explanations are omitted.
- step S201 is added.
- the conversion unit 13 determines whether the search graph G has not yet been generated. The determination in step S201 is equivalent to the determination of whether the processing procedure in FIG. 10 is being executed for the first time or for the second or subsequent time.
- the conversion unit 13 executes the same processing procedure as in the first embodiment.
- the conversion unit 13 executes a process of recalculating the cost of each node in the generated search graph G (S215).
- the cost value of each node is recalculated based on the addition of a new positive example or negative example.
- the search graph G is in the state shown in FIG. 3. In this case, recalculation is performed for each node in FIG. 3.
- the conversion unit 13 executes steps S233 and onward.
- FIG. 11 is a flowchart for explaining an example of the processing procedure for recalculating the cost of each node.
- the conversion unit 13 executes a loop process L2 for each node of the latest search graph G that has already been generated.
- the loop process L2 includes steps S401 to S403.
- the node that is the processing target in the loop process L2 is hereinafter referred to as the "target node.”
- step S401 the conversion unit 13 executes calcCost(table out of the target node, Ep, En) and substitutes the output into cost new .
- Ep is all the latest positive examples
- En is all the latest negative examples. Therefore, for the table corresponding to the target node, the cost (value of the evaluation function) is recalculated based on the latest positive examples and the latest negative examples.
- the conversion unit 13 substitutes cost new into the cost of the target node (S402).
- the conversion unit 13 determines whether or not cost new is not 0 (S403). If cost new is not 0 (Yes in S403), the conversion unit 13 continues the loop process L2. If cost new is 0 (No in S403), the conversion unit 13 exits the loop process L2 and ends the processing procedure in FIG. 11. In this case, the desired table (a table that includes all positive examples and does not include all negative examples) has been found by recalculating the cost, so there is no need to recalculate the cost any more.
- Fig. 12 is a diagram showing an example of the search graph G after the cost has been recalculated.
- the value of cost in table t2 has been changed from 0 to 1.
- step S223 executed following step S215 in Fig. 10 a search for a conversion program (desired conversion result) is performed using the search graph G shown in Fig. 12.
- the advantage of introducing the processing procedure of FIG. 11 is that it is efficient because the calculation of the already searched parts in the search graph G is only a recalculation of the cost.
- the processing such as reacquiring the table for the existing parts (S303 in FIG. 8) and checking for the existence of the same table (S307 in FIG. 8) is reduced, so the search for the already searched parts can be sped up.
- the existing search graph G can be reused to make searches from the second time onwards more efficient. This allows for efficient dialogue and high-speed data conversion.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
データ変換装置(10)は、変換対象のテーブルと、前記テーブルの一部に関する正例の変換結果と負例の変換結果とを入力する事例入力部(12)と、前記変換対象のテーブルを最初の操作対象とし、複数の操作のうち前記操作対象に対して実行可能な操作を実行することで得られるテーブルごとに、前記正例及び前記負例との比較に基づく評価値を計算し、前記評価値が最良であるテーブルを前記操作対象とすることを繰り返すことで、前記正例を含み前記負例を含まないテーブルを生成する変換部(13)と、前記正例を含み前記負例を含まないテーブルを出力する出力部(14)と、を有し、前記変換部(13)は、前記出力部(14)がテーブルを出力した後に、前記事例入力部(12)が新たな正例又は新たな負例を入力した場合に、前記新たな正例をも含み前記新たな負例をも含まないテーブルを生成することで、データ変換のための作業効率を向上させる。
Description
本発明は、データ変換装置、データ変換方法及びプログラムに関する。
デジタル・トランスフォーメーションによって、デジタル技術とデータ(情報資産)の活用が進みつつある。より競争力を高めるためにはデータサイエンティストだけでなく、一般社員も日常業務にデータ分析を組み込んでいくことが重要である。データ分析を行うためにはデータの前処理が必要となるが、前処理には約8割の稼働がかかるとも言われており、変換方法やプログラミングの知識も要するため、データ分析の普及の妨げとなっている。
データ分析を支援するツールとして、ETLツールが存在する。ETLツールではデータの変換方法を指定することで、データ変換を自動で行うことができる。しかし、変換方法の知識が必要なことに加え、新しいデータ変換を行うたびに変換方法を指定するための手間がかかる。
AutoPandasz(非特許文献1)は、データ変換前後の例から、その変換を実現するプログラムを合成する技術である。AutoPandasではデータ変換前後の具体例を用意するだけで良いため、変換方法やプログラミングの知識がなくても使うことができるという利点が存在する。
Rohan Bavishi, Caroline Lemieux, Roy Fox, Koushik Sen, and Ion Stoica. 2019. "AutoPandas: neural-backed generators for program synthesis." Proc. ACM Program. Lang. 3, OOPSLA, Article 168 (October 2019), 27 pages
しかし、ユーザは実現したい仕様を反映したデータ変換前後の例を用意する必要があり、データ変換前後の例に対する仕様の反映が不十分で所望のプログラムが合成できなかった場合、再度その例を作成し直さなくてはならず、多くの稼働がかかる。
本発明は、上記の点に鑑みてなされたものであって、データ変換のための作業効率を向上させることを目的とする。
そこで上記課題を解決するため、データ変換装置は、変換対象のテーブルと、前記テーブルの一部に関する正例の変換結果と負例の変換結果とを入力するように構成されている事例入力部と、前記変換対象のテーブルを最初の操作対象とし、複数の操作のうち前記操作対象に対して実行可能な操作を実行することで得られるテーブルごとに、前記正例及び前記負例との比較に基づく評価値を計算し、前記評価値が最良であるテーブルを前記操作対象とすることを繰り返すことで、前記正例を含み前記負例を含まないテーブルを生成するように構成されている変換部と、前記正例を含み前記負例を含まないテーブルを出力するように構成されている出力部と、を有し、前記変換部は、前記出力部がテーブルを出力した後に、前記事例入力部が新たな正例又は新たな負例を入力した場合に、前記新たな正例をも含み前記新たな負例をも含まないテーブルを生成するように構成されている。
データ変換のための作業効率を向上させることができる。
以下、図面に基づいて本発明の実施の形態を説明する。第1の実施の形態の概要について説明する。第1の実施の形態では、ユーザと機械が対話的にデータ変換を行うことで、変換方法やプログラミングの知識がなくても、少ない稼働でデータ変換を行う手法が開示される。
図1は、第1の実施の形態においてユーザが所望するデータ変換を説明するための図である。第1の実施の形態では、テーブルTiについてテーブルToへの変換をユーザが所望しているとする。なお、テーブルToは、ユーザの頭の中で描かれているにすぎず、実際には得られていないテーブルである。また、ユーザの頭の中では、全ての行及び全ての列の値が明確に特定されているわけではなく、どのような変換結果が欲しいのかについての漠然としたイメージが有るにすぎない。
まず、ユーザは変換後のデータの一部(一部のデータ)の正しい変換結果の事例(以下、「正例」という。)を機械(後述のデータ変換装置10)に与える。例えば、図2の正例Epが機械に与えられる。正例Epは、テーブルToに含まれるデータの集合である。図1では正例Epが1つの事例のみを含む例が示されているが、正例Epは複数の事例を含みうる。機械は与えられた正例Epが含まれるような変換プログラム(変換手順)を探索(ヒューリスティック探索)し、変換後のデータをユーザに提示する。ユーザはそのデータをレビューし、不適切な箇所があれば修正する。具体的には、ユーザは、不適切な箇所に該当するデータを誤った変換結果の事例(以下、「負例」という。)として与える。例えば、図2の負例Enが機械に与えられる。負例Enは、テーブルToに含まれないデータの集合である。図1では負例Enが1つの事例のみを含む例が示されているが、負例Enは複数の事例を含みうる。なお、更なる正例がEpに追加されてもよい。機械はその修正を考慮した変換プログラム(与えられた全ての正例を含み与えられた全ての負例を含まない変換プログラム)を再度探索し、新しい変換後のデータを再度ユーザに提示する。このような対話的なプロセスを繰り返すことで、ユーザは変換方法やプログラミングの知識がなくても所望のデータ変換を行うことができる。
なお、変換プログラムは、テーブルに対する以下の操作(以下、「オペレータ」という。)の再帰的な繰り返しである。
・move_end(n):n列目の列を一番右の列へと移動する。但し、既に一番右となっている列には適用されない。
・split(n,str):n列目のデータをstrで分割する。但しstrが存在しない列には適用されない。
・del_empty():空欄が存在する行を削除する。但しテーブルに空欄が存在しない場合は適用されない。
・move_end(n):n列目の列を一番右の列へと移動する。但し、既に一番右となっている列には適用されない。
・split(n,str):n列目のデータをstrで分割する。但しstrが存在しない列には適用されない。
・del_empty():空欄が存在する行を削除する。但しテーブルに空欄が存在しない場合は適用されない。
本実施の形態において変換プログラム(変換後のデータ)の探索には、探索グラフが用いられる。図3は、探索グラフの一例を示す図である。探索グラフは、ルートノードが変換対象であるテーブルTiに対応し、エッジがオペレータに対応し、各ノードは親ノードに対して親ノードとの間のエッジに係るオペレータを実行した結果として得られるテーブルに対応する有向グラフである。各ノードには、当該ノードに対応するテーブルがどの程度正例を含み、どの程度負例を含まないかについての定量的な評価結果である評価値(以下、「コスト」という。)が付与される。本実施の形態において、与えられた全ての正例を含み、与えられた全ての負例を含まないテーブルのコストは0である。すなわち、コストは0以上の値であり、0が最良である。
図3の例では、テーブルTiに対して実行可能なオペレータであるmove_end(0)及びsplit(1,',')が実行された状態における探索グラフが示されている。したがって、ルートノードからは、move_end(0)に対応するエッジとsplit(1,',')に対応するエッジとが伸びている。move_end(0)に対応するエッジの先の子ノードは、テーブルTiに対してmove_end(0)を実行することで得られるテーブルt1に対応する。split(1,',')に対応するエッジの先の子ノードは、テーブルTiに対してsplit(1,',')を実行することで得られるテーブルt2に対応する。
機械は、探索グラフの末端のノードの中でコストが最良であるノードに対してオペレータを実行することを再帰的に繰り返す。機械は、テーブルToに一致するノードが得られた時点で探索を終了する。図3における各テーブルのコストは、図1の正例Epのみが与えられている場合のコストである。しテーブルt2は、正例Epを含むためコストが0となっている。この場合、テーブルt2がユーザに対して提示される。ユーザは、テーブルt2において、テーブルToと異なる部分を除くため、負例Enを追加する。その後、機械は改めて負例Enをも満たす変換プログラム(変換後のデータ)を探索する。
以下、このような機械として機能するデータ変換装置10について説明する。図4は、第1の実施の形態におけるデータ変換装置10のハードウェア構成例を示す図である。図4のデータ変換装置10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、インタフェース装置105、表示装置106、及び入力装置107等を有する。
データ変換装置10での処理を実現するプログラムは、CD-ROM等の記録媒体101によって提供される。プログラムを記憶した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従ってデータ変換装置10に係る機能を実現する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。表示装置106はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置107はキーボード及びマウス等で構成され、様々な操作指示を入力させるために用いられる。
図5は、第1の実施の形態におけるデータ変換装置10の機能構成例を示す図である。図5において、データ変換装置10は、データ入力部11、事例入力部12、変換部13及び出力部14を有する。これら各部は、データ変換装置10にインストールされた1以上のプログラムが、CPU104に実行させる処理により実現される。
以下、データ変換装置10が実行する処理手順について説明する。図6は、データ変換装置10が実行する処理手順の一例を説明するためのフローチャートである。
ステップS101において、データ入力部11は、変換対象のテーブルを入力する。例えば、図1のテーブルTiが入力される。
続いて、事例入力部12は、変換に関する事例(正例又は負例)の入力をユーザから受け付ける(S102)。例えば、最初は、図2の正例Epが入力される。但し、当初から負例Enも入力されてもよい。
続いて、変換部13は、データ変換処理を実行する(S103)。データ変換処理では、探索グラフを用いてコストが0であるテーブルが探索されるまで、テーブルTiに対して再帰的にオペレータが実行される。つまり、オペレータの実行対象(操作対象)の系列の中で末端のテーブルの中でコストが最良であるテーブルに対してオペレータを実行することが再帰的に繰り返される。変換部13は、コストが0であるテーブルが探索されると、当該テーブルを変換後データとして返却する。
続いて、出力部14は、変換部13が生成した変換後データを出力する(S104)。
続いて、事例入力部12は、出力された変換後データの適否をユーザから受け付ける(S105)。適切である旨の入力を受け付けた場合(S105でYes)、図6の処理手順は終了する。この場合、ステップS104において出力された変換後データが、ユーザによって利用される。
一方、適切でない旨の入力を受け付けた場合(S105でNo)、ステップS102以降が繰り返される。2回目以降に実行されるステップS102では、新たな正例又は新たな負例が追加される。
続いて、ステップS103の詳細について説明する。図7は、第1の実施の形態におけるデータ変換処理の処理手順の一例を説明するためのフローチャートである。
ステップS210において、変換部13は、探索グラフGを空集合(Φ)で初期化する。続くステップS211~S214では探索グラフGに対してルートノードが生成される。
ステップS211において、変換部13は、parentにnullを代入し、edgeにnullを代入し、tableoutに変換元のテーブルTiを代入し、childrenを空集合(Φ)で初期化する。parentは、生成対象のノード(ここではルートノード)の親ノードに対応する変数である。ルートノードに親ノードは無いため、ここではparentにnullが代入される。edgeは、parentと生成対象のノードとを接続するエッジに対応する変数である。ルートノードには該当するエッジは無いため、ここではedgeにnullが代入される。tableoutは、生成対象のノードに対応するテーブルを格納する変数である。最初は、テーブルTiに対応するルートノードが生成対象とされるため、tableoutに対してテーブルTiが代入される。
続いて、変換部13は、calcCost(tableout,Ep,En)を実行し、その出力をcostに代入する(S212)。calcCostは、テーブルがどの程度正例を含み、どの程度負例を含まないかを定量的に評価する評価関数である。評価関数は、評価対象のテーブル、Epが含む全ての正例、Enが含む全ての負例を入力し、コストを出力する。但し、図2の正例Epのみが入力されている場合、Enは空である。評価関数は正例を含めば含むほど高い評価を出力し、負例を含めば含むほど低い評価を出力する関数であれば任意の関数を用いて構わない。上記したように、本実施の形態では、コストは0以上であり、0が最良(最も高い評価)である。
続いて、変換部13は、{edge,tableout,cost,parent,children}をnodeに代入する(S213)。nodeは生成対象のノードである。
続いて、変換部13は、探索グラフGに対してnodeを追加する(S214)。その結果、探索グラフGにはルートノードが生成される。
続くステップS221~S223では、評価関数が0になるノードの探索が行われる。
ステップS221において、変換部13は、探索グラフGの末端ノードの中から、コストが最良である(コストが0に最も近い)ノードを1つ選択し、当該ノードをnodeparentに代入する。
続いて、変換部13は、nodeparentのテーブルを操作対象とし、操作対象のテーブルに対して実行可能な全てのオペレータを実行する(S222)。その結果、探索グラフGが変化する。
続いて、変換部13は、探索グラフGの中にcost=0であるノードが有るか否かを判定する(S223)。該当するノードが無い場合(S223でNo)、変換部13は、ステップS221以降を繰り返す。すなわち、変更後の探索グラフGにおいて末端のノードの中でコストが最良であるノードのテーブルが操作対象とされてオペレータの実行が繰り返される。該当するノードが有る場合(S223でYes)。変換部13は、該当するノードに対応するテーブル(tableout)を返却する(S224)。
続いて、ステップS222の詳細について説明する。図8は、ノードに対応するテーブルに対するオペレータの実行処理の処理手順の一例を説明するためのフローチャートである。
ステップS301において、変換部13は、探索グラフGの中の末端ノード(childrenがΦのノード)の中で最もcostが小さいノード(コストが最良であるノード)をparentに代入する。つまり、当該ノードがこれから生成されるノードの親ノードとして選択される。最初は、nodeparentはテーブルTiに対応するルートノードである。
続いて、変換部13は、nodeparentに対応するテーブルに対して実行可能なオペレータの集合Oeの要素ごとにループ処理L1を実行する。なお、或るテーブルに対して実行可能なオペレータは、オペレータの引数の値も区別される。仮に、move_end(0)及びmove_end(1)を実行可能であれば、2種類のオペレータが実行可能であることになる。テーブルTiに対して実行可能なオペレータは、move_end(0)及びsplit(1,',')の2種類である。したがって、テーブルTiがparent_nodeである場合、これら2種類のオペレータのそれぞれについてループ処理L1が実行される。ループ処理L1では、実行可能なオペレータごとに、nodeparentに対して子ノードが生成するためにステップS302~S309を含む。ループ処理L1において処理対象とされているオペレータを、以下「オペレータp」という。
ステップS302において、変換部13は、nodeparentと生成対象のノードを接続するedgeにオペレータpを代入する。
続いて、変換部13は、nodeparentに対応するテーブル(tableout)に対してオペレータpを実行することで得られるテーブルをtableoutに代入する(S303)。
続いて、変換部13は、calcCost(tableout,Ep,En)を実行し、その出力をcostに代入する(S304)。つまり、tableoutの評価関数の値がcostに代入される。続いて、変換部13は、parentにnodeparentを代入し、childrenを空集合(Φ)で初期化する(S305)。続いて、変換部13は、{edge,tableout,cost,parent,children}をnodeに代入する(S306)。
続いて、変換部13は、探索グラフGの中にtableoutと同じテーブルを持つノードが有るか否かを判定する(S307)。該当するノードが無い場合(S307でYes)、変換部13は、探索グラフGにnodeを追加する(S308)。続いて、変換部13は、nodeparentのchildrenに対してnodeを追加する(S309)。その結果、nodeがnodeparentの子ノードであることが登録される。なお、同じテーブルに対応するノードを重複させないのは、同じテーブルを持つノードの先の探索グラフは全て同じになるため探索に無駄が生じるからである。
nodeparentがテーブルTiである場合、図8の処理手順の実行により、探索グラフGは、図3に示した通りになる。この場合、テーブルt2のcostが0であるため、変換部13は、図6のステップS224においてテーブルt2を返却する。出力部14は、テーブルt2を出力する。
テーブルt2は、ユーザが求めるテーブルTo(図1)とは異なる。具体的にはテーブルt2の2列目が空の行も含まれてしまっている。そこで、ユーザは負例によってこれらの行を取り除くようにする。具体的には、ユーザは、図2の負例Enをデータ変換装置10に入力する。負例En入力は、事例入力部12が図6のステップS102において受け付ける。
続いて、変換部13がデータ変換処理(図7)を再実行する(S103)。その結果、図9のような探索グラフGが生成される。図9の探索グラフGにおいては、テーブルt5のcostが0である。したがって、変換部13は、図6のステップS224においてテーブルt5を返却する。出力部14は、テーブルt5を出力する。その結果、ユーザは、所望の変換結果を得ることができる。
上述したように、第1の実施の形態によれば、データ変換のための作業効率を向上させることができる。具体的には、ユーザは、変換方法やプログラミングの知識がなくても少ない稼働でデータ変換を行うことができる。それにより、データサイエンティスト以外でもデータ分析を行うことが可能となり、日常的な業務にデータ分析によって得られた知見を反映させることができる。
なお、本実施の形態における変換前のデータは、便宜上、全データ(全レコード)を容易に把握可能な程度の規模であるが、本実施の形態は、大規模なデータに対しての適用も可能であり、その場合にはより顕著に効果を得ることができる。
次に、第2の実施の形態について説明する。第2の実施の形態では第1の実施の形態と異なる点について説明する。第2の実施の形態において特に言及されない点については、第1の実施の形態と同様でもよい。
第1の実施の形態では、2回目以降のステップS103(図7)の実行において、毎回ルートノードの生成から行われる。つまり、n回目のステップS103においては、n-1回目において探索グラフGの再構築から実行される。第2の実施の形態では、このような非効率を改善した例について説明する。
第2の実施の形態では、図6のステップS103において実行される処理手順が、図7から図10に置き換わる。
図10は、第2の実施の形態におけるデータ変換処理の処理手順の一例を説明するためのフローチャートである。図10中、図7と同一ステップには同一ステップ番号を付し、その説明は省略する。
図10では、ステップS201が追加されている。ステップS201において、変換部13は、探索グラフGが未生成であるか否かを判定する。ステップS201の判定は、図10の処理手順が1回目の実行であるか2回目以降の実行であるかの判定と等価である。
探索グラフGが未生成である場合(図10の処理手順が1回目の実行である場合)(S201でYes)、変換部13は、第1の実施の形態と同じ処理手順を実行する。
探索グラフGを生成済みである場合(図10の処理手順が2回目の実行である場合)(S201でNo)、変換部13は、生成済みの探索グラフGの各ノードのコストの再計算処理を実行する(S215)。つまり、新たな正例又は負例の追加に基づいて各ノードのcostの値が再計算される。例えば、図10の処理手順が2回目である場合、探索グラフGは、図3の状態である。この場合、図3の各ノードについて再計算が行われる。
続いて、変換部13は、ステップS233以降を実行する。
続いて、ステップS215の詳細について説明する。図11は、各ノードのコストの再計算処理の処理手順の一例を説明するためのフローチャートである。
まず、変換部13は、既に生成されている最新の探索グラフGの全てのnodeごとにループ処理L2を実行する。ループ処理L2は、ステップS401~S403を含む。ループ処理L2において処理対象とされているnodeを、以下「対象node」という。
ステップS401において、変換部13は、calcCost(対象nodeのtableout,Ep,En)を実行し、その出力をcostnewに代入する。なお、Epは最新の全ての正例であり、Enは最新の全ての負例である。したがって、対象nodeに対応するテーブルについて、最新の正例及び最新の負例に基づいてコスト(評価関数の値)が再計算される。続いて、変換部13は、対象nodeのcostにcostnewを代入する(S402)。
続いて、変換部13は、costnewが0でないか否かを判定する(S403)。costnewが0でない場合(S403でYes)、変換部13は、ループ処理L2を継続する。costnewが0である場合(S403でNo)、変換部13は、ループ処理L2を抜けて、図11の処理手順を終了させる。この場合、コストの再計算により所望のテーブル(全ての正例を含み全ての負例を含まないテーブル)を発見できたため、これ以上コストの再計算を行う必要は無いからである。
正例Ep(図2)のみが与えられている状態において生成された探索グラフGが図3である状態において、負例En(図En)が新たに与えられた場合に図11の処理手順が実行されると、探索グラフGは、例えば、図12のように変更される。
図12は、コストの再計算後の探索グラフGの一例を示す図である。図12においては、テーブルt2のcostの値が0から1に変更されている。図10のステップS215に続いて実行されるステップS223では、図12に示される探索グラフGを用いて変換プログラム(所望の変換結果)の探索が行われる。
図11の処理手順を導入する利点は、探索グラフGにおける既探索部分の計算がコストの再計算のみであるため、効率的であることである。第1の実施の形態にように探索の度に探索グラフGを生成しなおす場合と比較して、既存部分に関してテーブルの再取得(図8のS303)、同一テーブルの存在確認(図8S307)等の処理が削減されるため、既探索部分については探索を高速化することができる。
なお、図10のループ処理L2を、探索グラフGの全てのnodeごとではなく、末端の全てのnodeごとのループ処理とすることで、更に高速化が図られてもよい。
但し、ユーザが、過去にケアレスミスで誤った正例又は負例を与えていて、ユーザがその誤りに気付いた場合、当該正例又は当該負例が修正される可能性も有る。その場合、コスト(評価関数)の再計算によってcost=0となるノードが末端以外発生する可能性が有る。探索グラフGの全てのnodeごとにループ処理L2を実行することで、そのような場合に対処可能とすることができる。
上述したように、第2の実施の形態によれば、既存の探索グラフGを再利用することで、2回目以降の探索を効率化することができる。それにより効率的な対話を実現し、データ変換を高速で行うことができる。
以上、本発明の実施の形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
10 データ変換装置
11 データ入力部
12 事例入力部
13 変換部
14 出力部
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
106 表示装置
107 入力装置
B バス
11 データ入力部
12 事例入力部
13 変換部
14 出力部
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
106 表示装置
107 入力装置
B バス
Claims (6)
- 変換対象のテーブルと、前記テーブルの一部に関する正例の変換結果と負例の変換結果とを入力するように構成されている事例入力部と、
前記変換対象のテーブルを最初の操作対象とし、複数の操作のうち前記操作対象に対して実行可能な操作を実行することで得られるテーブルごとに、前記正例及び前記負例との比較に基づく評価値を計算し、前記評価値が最良であるテーブルを前記操作対象とすることを繰り返すことで、前記正例を含み前記負例を含まないテーブルを生成するように構成されている変換部と、
前記正例を含み前記負例を含まないテーブルを出力するように構成されている出力部と、
を有し、
前記変換部は、前記出力部がテーブルを出力した後に、前記事例入力部が新たな正例又は新たな負例を入力した場合に、前記新たな正例をも含み前記新たな負例をも含まないテーブルを生成するように構成されている、
ことを特徴とするデータ変換装置。 - 前記変換部は、前記出力部がテーブルを出力した後に、前記事例入力部が新たな正例又は新たな負例を入力した場合に、既に生成した一部又は全てのテーブルについて前記評価値を再計算し、前記操作対象の系列の中で末端のテーブルのうち前記評価値が最良であるテーブルを最初の前記操作対象とするように構成されている、
ことを特徴とする請求項1記載のデータ変換装置。 - 前記変換部は、前記出力部がテーブルを出力した後に、前記事例入力部が新たな正例又は新たな負例を入力した場合に、既に生成した全てのテーブルについて前記評価値を再計算し、前記操作対象の系列の中で末端のテーブルのうち前記評価値が最良であるテーブルを最初の前記操作対象とするように構成されている、
ことを特徴とする請求項2記載のデータ変換装置。 - 前記変換部は、前記出力部がテーブルを出力した後に、前記事例入力部が新たな正例又は新たな負例を入力した場合に、前記操作対象の系列の中で末端のテーブルについてのみ前記評価値を再計算し、前記末端のテーブルのうち前記評価値が最良であるテーブルを最初の前記操作対象とするように構成されている、
ことを特徴とする請求項2記載のデータ変換装置。 - 変換対象のテーブルと、前記テーブルの一部に関する正例の変換結果と負例の変換結果とを入力する事例入力手順と、
前記変換対象のテーブルを最初の操作対象とし、複数の操作のうち前記操作対象に対して実行可能な操作を実行することで得られるテーブルごとに、前記正例及び前記負例との比較に基づく評価値を計算し、前記評価値が最良であるテーブルを前記操作対象とすることを繰り返すことで、前記正例を含み前記負例を含まないテーブルを生成する変換手順と、
前記正例を含み前記負例を含まないテーブルを出力する出力手順と、
をコンピュータが実行し、
前記変換手順は、前記出力手順がテーブルを出力した後に、前記事例入力手順が新たな正例又は新たな負例を入力した場合に、前記新たな正例をも含み前記新たな負例をも含まないテーブルを生成する、
ことを特徴とするデータ変換方法。 - 変換対象のテーブルと、前記テーブルの一部に関する正例の変換結果と負例の変換結果とを入力する事例入力手順と、
前記変換対象のテーブルを最初の操作対象とし、複数の操作のうち前記操作対象に対して実行可能な操作を実行することで得られるテーブルごとに、前記正例及び前記負例との比較に基づく評価値を計算し、前記評価値が最良であるテーブルを前記操作対象とすることを繰り返すことで、前記正例を含み前記負例を含まないテーブルを生成する変換手順と、
前記正例を含み前記負例を含まないテーブルを出力する出力手順と、
をコンピュータに実行させ、
前記変換手順は、前記出力手順がテーブルを出力した後に、前記事例入力手順が新たな正例又は新たな負例を入力した場合に、前記新たな正例をも含み前記新たな負例をも含まないテーブルを生成する、
ことを特徴とするプログラム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2023/020846 WO2024252480A1 (ja) | 2023-06-05 | 2023-06-05 | データ変換装置、データ変換方法及びプログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2023/020846 WO2024252480A1 (ja) | 2023-06-05 | 2023-06-05 | データ変換装置、データ変換方法及びプログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024252480A1 true WO2024252480A1 (ja) | 2024-12-12 |
Family
ID=93795191
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2023/020846 Ceased WO2024252480A1 (ja) | 2023-06-05 | 2023-06-05 | データ変換装置、データ変換方法及びプログラム |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2024252480A1 (ja) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20110302553A1 (en) * | 2010-06-04 | 2011-12-08 | Microsoft Corporation | Generating text manipulation programs using input-output examples |
| US20130144902A1 (en) * | 2011-12-02 | 2013-06-06 | Microsoft Corporation | Inductive synthesis of table-based string transformations |
| US20150095312A1 (en) * | 2013-10-02 | 2015-04-02 | Microsoft Corporation | Extracting relational data from semi-structured spreadsheets |
-
2023
- 2023-06-05 WO PCT/JP2023/020846 patent/WO2024252480A1/ja not_active Ceased
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20110302553A1 (en) * | 2010-06-04 | 2011-12-08 | Microsoft Corporation | Generating text manipulation programs using input-output examples |
| US20130144902A1 (en) * | 2011-12-02 | 2013-06-06 | Microsoft Corporation | Inductive synthesis of table-based string transformations |
| US20150095312A1 (en) * | 2013-10-02 | 2015-04-02 | Microsoft Corporation | Extracting relational data from semi-structured spreadsheets |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Kumar et al. | MEGA12: molecular evolutionary genetic analysis version 12 for adaptive and green computing | |
| JP7355123B2 (ja) | プログラム生成装置、プログラム生成方法及びプログラム | |
| JP6663873B2 (ja) | プログラム自動生成システム及びプログラム自動生成方法 | |
| JP2023058592A (ja) | 情報処理システムとその制御方法及びプログラム | |
| JP4001283B2 (ja) | 形態素解析装置および自然言語処理装置 | |
| CN114328860A (zh) | 一种基于多模型匹配的交互咨询方法、装置和电子设备 | |
| WO2022091536A1 (ja) | 意味表現解析システム及び意味表現解析方法 | |
| WO2024252480A1 (ja) | データ変換装置、データ変換方法及びプログラム | |
| JP7193000B2 (ja) | 類似文書検索方法、類似文書検索プログラム、類似文書検索装置、索引情報作成方法、索引情報作成プログラムおよび索引情報作成装置 | |
| CN118690864B (zh) | 基于模式树的量子线路模式匹配方法 | |
| WO2021161428A1 (ja) | プログラム生成装置、プログラム生成方法及びプログラム | |
| Prassetiyo et al. | The Effectiveness of Genetic Algorithm, And the CDS Method In Solving Flowshop Scheduling Problems | |
| Landau et al. | Sparse LCS common substring alignment | |
| JP5600826B1 (ja) | 非構造化データ処理システム、非構造化データ処理方法およびプログラム | |
| JP2010204855A (ja) | プログラム生成装置およびブロック線図生成装置 | |
| CN114676155B (zh) | 代码提示信息的确定方法、数据集的确定方法及电子设备 | |
| JP2000227795A (ja) | コード進行検索装置および記憶媒体 | |
| JP3001427B2 (ja) | ソフトウェアコーディングシステム | |
| Du et al. | Re 2 GCC: Retrieve-Rerank-Generate Framework for Code Completion | |
| WO2024075160A1 (ja) | データ変換装置、データ変換方法及びプログラム | |
| JP2001243238A (ja) | 索引作成装置および文字列照合装置、索引作成方法および文字列照合方法ならびに記憶媒体 | |
| EP4592887A1 (en) | Information processing program, information processing method, and information processing device | |
| JP3050467B2 (ja) | データ項目辞書生成方法 | |
| JPH11259482A (ja) | 複合名詞の機械翻訳方式 | |
| JP2004118741A (ja) | 短縮語作成支援装置および短縮語作成支援プログラム |
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: 23940587 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |