JP2013120534A - Related word classification device, computer program, and method for classifying related word - Google Patents
Related word classification device, computer program, and method for classifying related word Download PDFInfo
- Publication number
- JP2013120534A JP2013120534A JP2011269000A JP2011269000A JP2013120534A JP 2013120534 A JP2013120534 A JP 2013120534A JP 2011269000 A JP2011269000 A JP 2011269000A JP 2011269000 A JP2011269000 A JP 2011269000A JP 2013120534 A JP2013120534 A JP 2013120534A
- Authority
- JP
- Japan
- Prior art keywords
- word
- column
- words
- unit
- class
- 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.)
- Pending
Links
Images
Abstract
Description
この発明は、複数の単語を関連する単語同士のグループに分類する関連語分類装置に関する。 The present invention relates to a related word classification device that classifies a plurality of words into groups of related words.
単語の特徴ベクトル間の類似度に基づいて、単語をクラスタリングして、関連語を抽出する技術がある。単語の特徴ベクトルの要素には、例えば、その単語と共起する文脈語の出現頻度などが用いられる。単語の特徴ベクトル間の類似度には、例えば、特徴ベクトルの内積などが用いられる。クラスタリングの方式には、例えば、k−means法や階層クラスタリング法、あるいは複数のクラスタリング法を組み合わせた方式などが用いられる。
また、同義語辞書を用いて、2つの単語が同義語である同義語ペアと、同義語でない非同義語ペアとを多数生成し、生成したペアをサポートベクターマシン(SVM)などの教師あり学習モデルに学習させることにより、2つの単語が同義語であるか否かを識別する分類器を形成する技術がある。
There is a technique of extracting related words by clustering words based on the similarity between feature vectors of words. For example, the appearance frequency of a context word co-occurring with the word is used as an element of the word feature vector. For example, the inner product of feature vectors is used as the similarity between feature vectors of words. As a clustering method, for example, a k-means method, a hierarchical clustering method, or a method combining a plurality of clustering methods is used.
In addition, using a synonym dictionary, a number of synonym pairs in which two words are synonyms and non-synonym pairs that are not synonyms are generated, and the generated pairs are supervised learning such as a support vector machine (SVM). There is a technique for forming a classifier that identifies whether two words are synonyms by having a model learn.
データベースでは、テーブルの名称やカラムの名称として、データベース設計者が任意に名づけた名称が用いられる。このため、異なるデータベースを統合する場合などにおいて、対応するカラムを判別するのに、非常な労力が必要となる。
テーブル名やカラム名には、通常、自然言語に由来する単語が用いられる。このため、上述したような関連語抽出技術を応用することにより、似たような意味の名称を持つカラムを抽出できれば、対応するカラムを判別するのを助けることができる。
しかし、データベースのテーブルを定義するテーブルスキーマやその他の構造化データに対して、上述の技術を適用するには、以下のような課題が存在する。
第一に、構造化データにおいては、単語間の文脈上の結合が疎であり、文脈に基づいて形成した特徴ベクトルでは、関連語を適切に抽出できない場合がある。このため、本来区別して扱われるべき単語とそうでない単語とを識別することができず、関連語として抽出されてしまう場合がある。
第二に、同義語辞書を用いる方式では、対象となる構造化データに含まれる単語が、同義語辞書にあらかじめ十分登録されていることが必要となり、そのような同義語辞書が存在しない場合は、適用することができない。
In the database, names arbitrarily named by the database designer are used as table names and column names. For this reason, when integrating different databases, a great effort is required to determine the corresponding columns.
For table names and column names, words derived from natural languages are usually used. Therefore, if a column having a similar meaning name can be extracted by applying the related word extraction technique as described above, it is possible to help discriminate the corresponding column.
However, there are the following problems in applying the above-described technique to a table schema that defines a database table and other structured data.
First, in structured data, contextual connections between words are sparse, and related words may not be extracted properly with feature vectors formed based on the context. For this reason, a word that should be treated distinctly and a word that should not be handled cannot be distinguished, and may be extracted as a related word.
Secondly, in the method using the synonym dictionary, it is necessary that the word included in the target structured data is sufficiently registered in the synonym dictionary in advance, and such a synonym dictionary does not exist. , Can not apply.
この発明は、例えば、データベースの定義などの構造化データを対象とする場合でも、使い分けられている語を識別しつつ、関連語を抽出することを目的とする。 An object of the present invention is to extract related words while identifying words that are used properly, even when structured data such as database definitions is targeted.
この発明にかかる関連語分類装置は、
複数の単語を関連する単語同士のグループに分類する関連語分類装置において、
データを処理する処理装置と、テキスト取得部と、特徴ベクトル算出部と、単語分類部と、重みベクトル算出部とを有し、
上記テキスト取得部は、上記処理装置を用いて、1つ以上の単語からなる単語群を1つ以上含むテキストを複数取得し、
上記特徴ベクトル算出部は、上記処理装置を用いて、上記テキスト取得部が取得した複数のテキストに含まれる複数の単語のそれぞれについて、上記単語の特徴を表わす特徴ベクトルを算出し、
上記単語分類部は、上記処理装置を用いて、上記テキスト取得部が取得した複数のテキストに含まれる複数の単語のそれぞれを、複数のグループのいずれかに分類し、
上記重みベクトル算出部は、上記処理装置を用いて、上記複数のグループのそれぞれについて、上記特徴ベクトルとの内積が上記特徴ベクトルによって特徴を表わされた単語が上記グループに属する尤度を表わす重みベクトルであって、上記単語分類部による分類に最もよく適合する重みベクトルを算出し、
上記単語分類部は、更に、上記処理装置を用いて、上記複数の単語のそれぞれについて上記特徴ベクトル算出部が算出した特徴ベクトルと、上記複数のグループのそれぞれについて上記重みベクトル算出部が算出した重みベクトルとに基づいて、上記複数の単語のそれぞれが上記複数のグループのそれぞれに属する尤度を算出し、算出した尤度に基づいて、上記複数の単語を分類し直す
ことを特徴とする。
The related word classification device according to this invention is:
In a related word classification device for classifying a plurality of words into groups of related words,
A processing device for processing data, a text acquisition unit, a feature vector calculation unit, a word classification unit, and a weight vector calculation unit;
The text acquisition unit acquires a plurality of texts including one or more word groups composed of one or more words using the processing device,
The feature vector calculation unit calculates a feature vector representing the feature of the word for each of a plurality of words included in the plurality of texts acquired by the text acquisition unit using the processing device;
The word classification unit classifies each of the plurality of words included in the plurality of texts acquired by the text acquisition unit into any of a plurality of groups using the processing device,
The weight vector calculation unit uses the processing device to determine, for each of the plurality of groups, a weight indicating a likelihood that a word whose feature is represented by the feature vector as an inner product with the feature vector belongs to the group. A vector that calculates a weight vector that best fits the classification by the word classification unit,
The word classification unit further uses the processing device to calculate the feature vector calculated by the feature vector calculation unit for each of the plurality of words and the weight calculated by the weight vector calculation unit for each of the plurality of groups. The likelihood that each of the plurality of words belongs to each of the plurality of groups is calculated based on the vector, and the plurality of words are reclassified based on the calculated likelihood.
この発明によれば、データベースの定義などの構造化データを対象とする場合でも、使い分けられている語を識別しつつ、関連語を抽出することができる。 According to the present invention, even when structured data such as a database definition is targeted, related words can be extracted while identifying words that are used properly.
実施の形態1.
実施の形態1について、図1〜図20を用いて説明する。
The first embodiment will be described with reference to FIGS.
図1は、この実施の形態における関連カラム抽出システム900の全体構成の一例を示すシステム構成図である。
FIG. 1 is a system configuration diagram showing an example of the overall configuration of a related
関連カラム抽出システム900は、一または複数のデータベースにおいて、テーブルを構成するカラムのなかから、関連カラムである可能性が高い複数のカラムを抽出する。関連カラムとは、互いに異なるテーブルに属する複数のカラムであって、相当する内容を格納するカラムのことである。関連カラム抽出システム900は、カラムに付けられた名称(カラム名)に基づいて、関連カラムである可能性が高いカラムを抽出する。
関連カラム抽出システム900は、例えば、データベース定義記憶装置901と、概念辞書記憶装置902と、関連カラム判定装置903とを有する。
The related
The related
データベース定義記憶装置901は、データベースを定義するデータベース定義データを記憶している。
概念辞書記憶装置902は、概念辞書を表わす概念辞書データを記憶している。概念辞書とは、自然言語における単語の意味や、複数の単語の間の意味の関係(同意語、類義語、反意語、上位概念・下位概念など)を記載した辞書である。概念辞書記憶装置902が記憶した概念辞書データは、例えば、汎用の大語彙概念辞書を表わす。
関連カラム判定装置903(関連語分類装置の一例。)は、データベース定義記憶装置901が記憶したデータベース定義データから、カラム名を取得し、概念辞書記憶装置902が記憶した概念辞書データを使って、関連カラムである可能性が高いカラムを抽出する。関連カラム判定装置903は、例えば、抽出したカラムを表示して、関連カラム抽出システム900の利用者に提示する。
関連カラム抽出システム900の利用者は、関連カラム判定装置903が提示したカラムの内容を確認して、関連カラムであるか否かを判断する。
The database
The concept
A related column determination device 903 (an example of a related word classification device) acquires a column name from the database definition data stored in the database
The user of the related
図2は、この実施の形態における関連カラム判定装置903などのハードウェア資源の一例を示すハードウェア構成図である。
FIG. 2 is a hardware configuration diagram illustrating an example of hardware resources such as the related
データベース定義記憶装置901、概念辞書記憶装置902、関連カラム判定装置903は、例えば、処理装置911と、入力装置912と、出力装置913と、記憶装置914とを有するコンピュータである。
処理装置911は、記憶装置914が記憶したコンピュータプログラムを実行することにより、データを処理し、コンピュータ全体を制御する。なお、コンピュータは、処理装置911を複数有する構成であってもよい。
記憶装置914は、処理装置911が実行するコンピュータプログラムや、処理装置911が処理するデータなどを記憶する。例えば、記憶装置914は、処理途中の一時的なデータなどを記憶する揮発性の記憶装置である。あるいは、記憶装置914は、コンピュータプログラムや永続的なデータなどを記憶する不揮発性の記憶装置である。また、例えば、記憶装置914は、半導体記憶素子を集積した集積回路や大規模集積回路である。あるいは、記憶装置914は、磁気ディスクや光学ディスクなどの記憶媒体を用いる外部記憶装置である。なお、コンピュータは、記憶装置914を複数有する構成であってもよい。複数の記憶装置914は、同じ種類の記憶装置であってもよいし、異なる種類の記憶装置であってもよい。
入力装置912は、コンピュータの外部から情報を入力して、処理装置911が処理できるデータに変換する。例えば、入力装置912は、操作者による操作を入力するキーボードやマウスなどの操作入力装置である。あるいは、入力装置912は、静止画像や動画像を入力するカメラやスキャナ装置などの画像入力装置である。あるいは、入力装置912は、音声を入力するマイクなどの音声入力装置である。あるいは、入力装置912は、温度や明るさや圧力などの物理量を測定する温度センサや照度センサや圧力センサなどのセンサ装置である。あるいは、入力装置912は、アナログ信号をデジタルデータに変換するアナログデジタル変換装置である。あるいは、入力装置912は、外部の装置がコンピュータに対して送信した信号を受信して復調する受信装置である。なお、コンピュータは、入力装置912を複数有する構成であってもよい。複数の入力装置912は、同じ種類の入力装置であってもよいし、異なる種類の入力装置であってもよい。また、入力装置912が変換したデータは、処理装置911が直接処理する構成であってもよいし、記憶装置914が一時的に記憶する構成であってもよい。
出力装置913は、処理装置911が処理したデータや、記憶装置914が記憶したデータなどを変換して、コンピュータの外部に出力する。例えば、出力装置913は、テキストや画像などを表示する表示装置である。あるいは、出力装置913は、テキストや画像などを印刷する印刷装置である。あるいは、出力装置913は、音声を出力するスピーカなどの音声出力装置である。あるいは、出力装置913は、デジタルデータをアナログ信号に変換するデジタルアナログ変換装置である。あるいは、出力装置913は、変調した信号を外部の装置に対して送信する送信装置である。なお、コンピュータは、出力装置913を複数有する構成であってもよい。複数の出力装置913は、同じ種類の出力装置であってよいし、異なる種類の出力装置であってもよい。
The database
The
The
The
The
以下に説明する機能ブロックは、記憶装置914が記憶したコンピュータプログラムを処理装置911が実行することによって実現することができる。なお、一つのコンピュータを用いて一つの装置を実現する構成であってもよいし、複数のコンピュータを用いて一つの装置を実現する構成であってもよい。逆に、一つのコンピュータを用いて複数の装置を実現する構成であってもよい。
また、これらの機能ブロックのうちのいくつか、あるいは、そのすべてを、コンピュータを用いて実現するのではなく、例えば、デジタル回路やアナログ回路などの電気的構成や、機械的構成など、他の構成を用いて実現してもよい。
The functional blocks described below can be realized by the
In addition, some or all of these functional blocks are not realized using a computer, but other configurations such as an electrical configuration such as a digital circuit or an analog circuit, or a mechanical configuration, for example. You may implement | achieve using.
図3は、この実施の形態における関連カラム判定装置903の構成の一例を示すブロック構成図である。
FIG. 3 is a block configuration diagram showing an example of the configuration of the related
関連カラム判定装置903は、例えば、単語抽出部20と、特徴ベクトル生成部40と、文脈解析部50と、単語分類部60と、関連語決定部70とを有する。
The related
単語抽出部20(テキスト取得部の一例。)は、処理装置911を用いて、関連語抽出元データ10(テキストの一例。)から、分類対象となる単語を抽出する。
例えば、単語抽出部20は、データベース定義記憶装置901が記憶したデータベース定義データから、関連語抽出元データ10として、テーブルスキーマを取得する。テーブルスキーマは、データベースのテーブルを定義するデータである。単語抽出部20は、処理装置911を用いて、取得した関連語抽出元データ10から、テーブルのカラム名を構成する単語を抽出する。
テーブルスキーマは、1つ以上のカラム名(単語群の一例。)を含む。カラム名は、データベースの設計者が任意に名付ける文字列であるが、その内容に関連する自然言語の単語や、複数の単語を組み合わせたものを使う場合が多い。例えば、複数の単語を「_」(アンダースコア)などの区切り文字を使って連結したものをカラム名とする。
例えば、単語抽出部20は、関連語抽出元データ10から、カラム名を取得する。単語抽出部20は、取得したカラム名に区切り文字が含まれているか否かを判定する。区切り文字が含まれていない場合、単語抽出部20は、取得したカラム名が1単語からなると判定し、取得したカラム名をそのまま単語として抽出する。区切り文字が含まれている場合、単語抽出部20は、取得したカラム名を区切り文字を境にして複数の文字列に分解し、分解した複数の文字列を単語として抽出する。
The word extraction unit 20 (an example of a text acquisition unit) uses the
For example, the
The table schema includes one or more column names (an example of word groups). The column name is a character string arbitrarily named by the database designer, but a natural language word related to the contents or a combination of a plurality of words is often used. For example, a column name is formed by concatenating a plurality of words using a delimiter such as “_” (underscore).
For example, the
特徴ベクトル生成部40(特徴ベクトル算出部の一例。)は、単語抽出部20が抽出した各単語を、概念ベクトルに変換する。
例えば、特徴ベクトル生成部40は、単語抽出部20が抽出した単語それぞれについて、概念辞書記憶装置902が記憶した概念辞書データ30に基づいて、概念ベクトルを生成する。概念ベクトルとは、単語の意味や、他の単語との間の意味の関係などを表わす複数の数値からなるベクトルである。例えば、概念ベクトルの各要素は、それぞれ異なる概念に対応づけられていて、「1」または「0」の値を取る。概念ベクトルの要素の値が「1」である場合、その単語が表わす概念が、その要素が対応づけられている概念またはその下位概念であることを表わし、「0」である場合、その単語が表わす概念が、その要素が対応づけられている概念でもその下位概念でもないことを表わす。
The feature vector generation unit 40 (an example of a feature vector calculation unit) converts each word extracted by the
For example, the feature
文脈解析部50(特徴ベクトル算出部の一例。)は、処理装置911を用いて、単語抽出部20が抽出した各単語のテーブル構造やカラム構造上の位置関係を解析する。
例えば、文脈解析部50は、単語抽出部20が抽出した単語それぞれについて、文脈ベクトルを生成する。文脈ベクトルとは、その単語と、他の単語との間の文脈上の位置関係などを表わす複数の数値からなるベクトルである。例えば、文脈ベクトルの各要素は、前接語グループと、後接語グループと、テーブル名グループとの3つのグループのうちのいずれかに属する。前接語グループに属する各要素は、それぞれ異なる単語に対応づけられていて、「1」または「0」の値を取る。前接語グループに属する要素の値が「1」である場合、その単語を含むカラム名において、その要素が対応づけられている単語の直後にその単語が連結していることを表わす。前接語グループに属する要素の値が「0」である場合、その単語を含むカラム名において、その単語が先頭の単語である(カラム名が1単語で構成されている場合を含む。)か、あるいは、その要素が対応づけられている単語以外の単語の直後にその単語が連結していることを表わす。後接語グループに属する各要素は、それぞれ異なる単語に対応づけられていて、「1」または「0」の値を取る。後接語グループに属する要素の値が「1」である場合、その単語を含むカラム名において、その単語の直後に、その要素が対応づけれられている単語が連結していることを表わす。後接語グループに属する要素の値が「0」である場合、その単語を含むカラム名において、その単語が末尾の単語である(カラム名が1単語で構成されている場合を含む。)か、あるいは、その単語の直後にその要素が対応づけられている単語以外の単語が連結していることを表わす。テーブル名グループに属する各要素は、それぞれ異なる単語に対応づけられていて、「1」または「0」の値を取る。テーブル名グループに属する要素の値が「1」である場合、その単語を含むカラム名を有するカラムが属するテーブルの名称(テーブル名)に、その要素が対応づけられている単語が含まれることを表わす。テーブル名グループに属する要素の値が「0」である場合、その単語を含むカラム名を有するカラムが属するテーブルのテーブル名に、その要素が対応づけられている単語が含まれないことを表わす。
The context analysis unit 50 (an example of a feature vector calculation unit) uses the
For example, the
単語分類部60は、処理装置911を用いて、単語の概念ベクトルと単語の出現文脈とに基づいて、単語のクラスタリングを行って、各単語のクラス尤度を決定する。単語分類部60は、算出したクラス尤度に基づいて、各クラスより単語を抽出する。
例えば、単語分類部60は、特徴ベクトル生成部40が生成した概念ベクトルと、文脈解析部50が生成した文脈ベクトルとに基づいて、単語抽出部20が抽出した複数の単語をクラスタリングする。例えば、単語分類部60は、単語抽出部20が抽出した単語それぞれについて、あらかじめ定められた数のクラスそれぞれに属する尤度を算出する。単語分類部60は、単語抽出部20が抽出した単語それぞれについて、算出した尤度に基づいて、その単語がどのクラスに属するかを判定する。
The
For example, the
関連語決定部70は、処理装置911を用いて、単語分類部60がクラスごとに抽出した単語群に基づいて、関連カラムである可能性が高いカラムを抽出する。
例えば、関連語決定部70は、あるテーブルに属するカラムのカラム名を構成する単語を分類したクラスの組と、別のテーブルに属するカラムのカラム名を構成する単語を分類したクラスの組とが一致する場合に、その2つのカラムは、関連カラムである可能性が高いと判定する。
関連語決定部70は、処理装置911を用いて、判定した結果を関連語データ80として出力する。
The related
For example, the related
Using the
図4は、この実施の形態における関連語抽出元データ10の一例を示す図である。
FIG. 4 is a diagram showing an example of the related word
この例において、関連語抽出元データ10は、データベース定義記憶装置901が記憶しているデータベース定義データに含まれるテーブルスキーマである。この例に示した3つの関連語抽出元データ10a〜10cは、それぞれ、1つずつのテーブルを定義している。
関連語抽出元データ10aは、「PURCHASE_ORDER」というテーブル名のテーブル(以下、「PURCHASE_ORDERテーブル」と呼ぶ。他も同様。)を定義している。PURCHASE_ORDERテーブルは、ORDER_DATEカラムと、LINE_NOカラムと、PHONE_NOカラムとを有する。ORDER_DATEカラムは、日付型である。LINE_NOカラムは、8桁の数値型である。PHONE_NOカラムは、10文字の固定長文字列型である。例えば、ORDER_DATEカラムは、発注日を格納する。LINE_NOカラムは、商品番号を格納する。PHONE_NOカラムは、電話番号を格納する。
関連語抽出元データ10bは、ORDERテーブルを定義している。ORDERテーブルは、ODR_DATカラムと、ITEM_NOカラムと、TELカラムと、FAXカラムとを有する。ODR_DATカラムは、日付型である。ITEM_NOカラムは、6桁の数値型である。TELカラムは、8文字の固定長文字列型である。FAXカラムは、8文字の固定長文字列型である。例えば、ODR_DATカラムは、発注日を格納する。ITEM_NOカラムは、商品番号を格納する。TELカラムは、電話番号を格納する。FAXカラムは、ファクシミリ番号を格納する。
関連語抽出元データ10cは、SHIPMENTテーブルを定義している。SHIPMENTテーブルは、PRODUCTカラムと、PROD_TYPEカラムとを有する。PRODUCTカラムは、8桁の数値型である。PROD_TYPEカラムは、最大128文字の可変長文字列型である。
In this example, the related term
The related term
The related word
The related word
この例において、PURCHASE_ORDERテーブルのORDER_DATEカラムと、ORDERテーブルのODR_DATカラムとは、いずれも発注日を格納するカラムであり、関連カラムである。また、PURCHASE_ORDERテーブルのLINE_NOカラムと、ORDERテーブルのITEM_NOカラムと、SHIPMENTテーブルのPRODUCTカラムとは、いずれも商品番号を格納するカラムであり、関連カラムである。また、PURCHASE_ORDERテーブルのPHONE_NOカラムと、ORDERテーブルのTELカラムとは、いずれも電話番号を格納するカラムであり、関連カラムである。 In this example, the ORDER_DATE column of the PURCHASE_ORDER table and the ODR_DAT column of the ORDER table are both columns that store the order date and are related columns. The LINE_NO column of the PURCHASE_ORDER table, the ITEM_NO column of the ORDER table, and the PRODUCT column of the SHIPMENT table are all columns that store product numbers and are related columns. Also, the PHONE_NO column of the PURCHASE_ORDER table and the TEL column of the ORDER table are both columns that store telephone numbers and are related columns.
このように異なるシステム向けに定義されたテーブルスキーマや、異なるシステム設計者が定義したテーブルスキーマでは、名称は異なるものの、相当する内容を格納するカラムが含まれることがある。
このようなカラム間の対応関係を分析する作業は、既存の業務システム間で統合・最適化を行ったり、既存の複数のデータベースを連携させた新たなアプリケーションを構築したりする際に必須の作業である。関連カラム抽出システム900は、カラム名に含まれる単語の対応関係を自動推定することにより、関連カラムである可能性が高いカラムを抽出し、既存システムの大量のカラム間の対応を分析する作業を効率化する。
As described above, table schemas defined for different systems and table schemas defined by different system designers may include columns for storing corresponding contents although the names are different.
Analyzing the correspondence between these columns is essential when integrating and optimizing existing business systems or building new applications that link existing databases. It is. The related
図5は、この実施の形態における概念辞書データ30の一例を示す図である。
FIG. 5 is a diagram showing an example of the
概念辞書データ30は、例えば、複数の概念データ31を有する。それぞれの概念データ31は、1つの概念を表わす。
概念データ31は、例えば、概念識別子32と、概念表示語33と、上位概念識別子34とを有する。
The
The
概念識別子32は、識別番号など、その概念データ31を一意に識別するための識別子である。
概念表示語33は、その概念を表わす単語あるいは連語を表わす。同じ概念を表わす単語あるいは連語が複数ある場合、概念表示語33は、複数の単語あるいは連語を「,」(カンマ)などの区切り文字で連結したリストである。また、一つの単語あるいは連語に複数の意味がある場合、同じ単語が異なる概念データ31の概念表示語33のなかに出現してもよい。
上位概念識別子34は、その概念の上位概念を表わす概念データ31の概念識別子32である。ある概念の上位概念の更に上位概念も、その概念の上位概念であるといえるが、上位概念の上位概念は、上位概念識別子34を辿ることにより判別可能なので、上位概念識別子34は、直上の上位概念だけを表わす。なお、上位概念が存在しない概念の場合、上位概念識別子34は、空欄であってもよい。また、直上の上位概念が複数ある場合、上位概念識別子34は、複数の概念識別子32を「,」(カンマ)などの区切り文字で連結したリストであってもよい。
The
The
The
例えば、概念識別子32が「00001740」の概念(以下「概念{00001740}」と呼ぶ。他も同様。)は、単語「entity」が表わす意味の一つに対応した概念である。概念{00001740}は、最上位概念であって、上位概念が存在しない。
また、単語「object」が表わす意味の一つと、連語「physical object」が表わす意味の一つとは、同じ意味であって、概念{00002684}に対応している。概念{00002684}のすぐ上の上位概念は、概念{00001930}である。
また、単語「line」には、非常に多くの意味がある。例えば、そのなかの一つは、単語「cable」や連語「transmission line」の意味の一つと同じであって、概念{02937552}に対応している。また別の一つは、連語「railway line」や連語「rail line」の意味の一つと同じであって、概念{03676598}に対応している。
For example, a concept whose
Further, one of the meanings represented by the word “object” and one of the meanings represented by the collocation “physical object” have the same meaning and correspond to the concept {0000002684}. The superordinate concept immediately above the concept {000000264} is the concept {0000001930}.
Also, the word “line” has many meanings. For example, one of them is the same as one of the meanings of the word “cable” and the collocation “transmission line”, and corresponds to the concept {029375552}. Another one is the same as one of the meanings of the collocation “railway line” and collocation “rail line”, and corresponds to the concept {0367598}.
なお、データベースのカラム名に使用できる文字種の制限により、カラム名には、英語の単語を使うことが多いので、この例における概念辞書データ30が表わす概念辞書は、英語の辞書である。しかし、概念辞書データ30が表わす概念辞書は、英語の辞書に限らず、日本語など他の言語の辞書であってもよいし、複数の言語を含む辞書であってもよい。
Since English words are often used for column names due to restrictions on the types of characters that can be used for database column names, the concept dictionary represented by the
図6及び図7は、この実施の形態における概念辞書データ30が表わす概念の間の階層構造の一例を示す図である。
6 and 7 are diagrams showing an example of a hierarchical structure between concepts represented by the
2つの図は、概念{00001740}(entity)を頂点とする階層構造を示している。なお、図を分割しているが、全体として一つの階層構造をなす。図6上部にある「matter」は、同図下部にある「matter」と同一であり、つながっている。また、図6にある「abstruction/abstract entity」は、図7にある「abstruction/abstract entity」と同一であり、つながっている。また、図6にある「document」は、図7にある「document」と同一であり、つながっている。また、図6にある「relation」は、図7にある「relation」と同一であり、つながっている。また、図7上部にある「psychological feature」は、同図下部にある「psychological feature」と同一であり、つながっている。 The two figures show a hierarchical structure having the concept {00001440} (entity) as a vertex. In addition, although the figure is divided | segmented, the whole makes one hierarchical structure. “Matter” in the upper part of FIG. 6 is the same as “Matter” in the lower part of FIG. Further, “abstraction / abstract entity” in FIG. 6 is the same as “abstraction / abstract entity” in FIG. 7 and is connected. Further, “document” in FIG. 6 is the same as “document” in FIG. 7 and is connected. Further, “relation” in FIG. 6 is the same as “relation” in FIG. 7 and is connected. 7 is the same as “psychological feature” in the lower part of FIG. 7 and is connected to the “pysyological feature” in the upper part of FIG.
長円は、一つの概念を表わす。長円から上へ伸びる線は、上位概念を示す。長円から下へ伸びる線は、下位概念を示す。長円のなかに単語あるいは連語が記載されている場合、その概念を表わす単語あるいは連語を表わす。一つの長円のなかに複数の単語あるいは連語が記載されている場合、同じ概念を表わす同義語である。 An ellipse represents a concept. A line extending upward from the ellipse indicates a superordinate concept. A line extending downward from the ellipse indicates a subordinate concept. When a word or collocation is described in the ellipse, it represents a word or collocation representing the concept. When a plurality of words or collocations are described in one ellipse, they are synonyms representing the same concept.
概念間の階層構造は、概ね木構造であるが、一つの概念に1階層上の上位概念が複数ある場合(例えば、図6下部にある「substance」。)があるので、厳密な意味での木構造ではない。
また、この図によれば、単語「line」には、単語「product」に比較的近い意味(図6にある「merchandise/ware/product」の下位概念など。)もあるし、単語「phone」に比較的近い意味(図6にある「instrumentality/instrumentation」の下位概念など。)もあることがわかる。
The hierarchical structure between concepts is generally a tree structure, but there are cases where a single concept has a plurality of higher-level concepts (for example, “substance” at the bottom of FIG. 6). It is not a tree structure.
Further, according to this figure, the word “line” also has a meaning that is relatively close to the word “product” (such as a subordinate concept of “merchandise / ware / product” in FIG. 6), and the word “phone”. It is understood that there is a meaning that is relatively close to (such as a subordinate concept of “instrumentality / instrumentation” in FIG. 6).
図8は、この実施の形態における単語抽出部20の動作の一例を説明するための図である。
FIG. 8 is a diagram for explaining an example of the operation of the
テーブル名構成単語データ21は、テーブル名を構成する単語を表わすデータである。テーブル名構成単語データ21は、例えば、テーブル識別子22と、1つ以上のテーブル名構成単語23とを含む。テーブル識別子22は、テーブルを一意に識別するための識別子である。単語抽出部20は、1つのテーブルについて、1つのテーブル名構成単語データ21を生成する。テーブル名構成単語23は、テーブル識別子22によって識別されるテーブルのテーブル名を構成する単語を表わす。
カラム名構成単語データ24は、カラム名を構成する単語を表わすデータである。カラム名構成単語データ24は、例えば、テーブル識別子25と、カラム識別子26と、1つ以上のカラム名構成単語27とを含む。テーブル識別子25は、そのカラムが属するテーブルのテーブル識別子22である。カラム識別子26は、カラムを一意に識別するための識別子である。単語抽出部20は、1つのカラムについて、1つのカラム名構成単語データ24を生成する。なお、カラム識別子26は、カラム識別子26単独でカラムを一意に識別できる識別子であってもよいし、テーブル識別子25との組み合わせによりカラムを一意に識別できる識別子であってもよい。カラム名構成単語27は、カラム識別子26によって識別されるカラムのカラム名を構成する単語を表わす。
The table name constituting
The column name constituting
単語抽出部20は、テーブルスキーマのテーブル名、カラム名の単語分割を行い、単語を抽出する。
例えば、PURCHASE_ORDERテーブルについて、単語抽出部20は、識別子「T0001」を割り当ててテーブル識別子22とする。単語抽出部20は、テーブル名「PURCHASE_ORDER」を、区切り文字「_」(アンダースコア)で単語「PURCHASE」と単語「ORDER」とに分割して、テーブル名構成単語23とする。
また、PURCHASE_ORDERテーブルのORDER_DATEカラムについて、単語抽出部20は、識別子「C0011」を割り当ててカラム識別子26とする。単語抽出部20は、カラム名「ORDER_DATE」を、区切り文字「_」(アンダースコア)で単語「ORDER」と単語「DATE」とに分割して、カラム名構成単語27とする。
The
For example, for the PURCHASE_ORDER table, the
In addition, for the ORDER_DATE column of the PURCHASE_ORDER table, the
図9は、この実施の形態における文脈解析部50の動作の一例を説明するための図である。
FIG. 9 is a diagram for explaining an example of the operation of the
前置単語51は、カラム名構成単語27を含むカラム名において、カラム名構成単語27の直前に現れる単語である。後置単語52は、カラム名構成単語27を含むカラム名において、カラム名構成単語27の直後に現れる単語である。テーブル名構成単語53は、カラム名構成単語27を含むカラムが属するテーブルのテーブル名を構成するテーブル名構成単語23である。
The
例えば、文脈解析部50は、単語抽出部20が抽出したカラム名構成単語27のなかから、前置単語51を抽出する。文脈解析部50は、カラム名構成単語27のなかから、後接する単語が存在する単語だけを抽出して、前置単語51とする。
また、文脈解析部50は、単語抽出部20が抽出したカラム名構成単語27のなかから、後置単語52を抽出する。文脈解析部50は、カラム名構成単語27のなかから、前接する単語が存在する単語だけを抽出して、後置単語52とする。
また、文脈解析部50は、単語抽出部20が抽出したテーブル名構成単語23を、テーブル名構成単語53とする。
For example, the
Further, the
The
文脈ベクトル54は、文脈解析部50が生成する文脈ベクトルである。文脈解析部50は、1つの単語について、1つの文脈ベクトル54を生成する。文脈解析部50は、異なる位置(カラムやテーブル)に出現する同じ綴りの単語を区別する。例えば、カラム名構成単語27「NO」は、テーブル{T0001}(PURCHASE_ORDERテーブル)のカラム{C0012}(LINE_NOカラム)と、テーブル{T0001}(PURCHASE_ORDERテーブル)のカラム{C0013}(PHONE_NOカラム)と、テーブル{T0002}(ORDERテーブル)のカラム{C0222}(ITEM_NOカラム)との3箇所に出現している。文脈解析部50は、これら3箇所に出現したカラム名構成単語27「NO」を区別して、それぞれについて、文脈ベクトル54を生成する。
なお、前置単語51や後置単語52やテーブル名構成単語53については、文脈解析部50は、同じ綴りの単語を区別せず、1つの単語として取り扱う。
The
Note that, for the
文脈ベクトル54の各要素は、前置単語51、後置単語52及びテーブル名構成単語53のうちのいずれかに対応づけられている。
例えば、文脈解析部50は、抽出した前置単語51と、後置単語52と、テーブル名構成単語53との数に基づいて、文脈ベクトル54の次数を決定する。文脈解析部50は、抽出した前置単語51の数と、後置単語52の数と、テーブル名構成単語53の数とを合計して、文脈ベクトル54の次数とする。
文脈解析部50は、カラム名構成単語27のそれぞれについて、単語抽出部20が生成したカラム名構成単語データ24に基づいて、そのカラム名構成単語27の直前に位置する単語が存在するか否かを判定する。そのカラム名構成単語27の直前に位置する単語が存在すると判定した場合、文脈解析部50は、前置単語51のなかから、そのカラム名構成単語27の直前に位置する単語を選択する。文脈解析部50は、文脈ベクトル54の要素のうち、選択した前置単語51に対応づけられた要素の値を「1」にし、それ以外の前置単語51に対応づけられた要素の値を「0」にする。
文脈解析部50は、単語抽出部20が生成したカラム名構成単語データ24に基づいて、そのカラム名構成単語27の直後に位置する単語が存在するか否かを判定する。そのカラム名構成単語27の直後に位置する単語が存在すると判定した場合、文脈解析部50は、後置単語52のなかから、そのカラム名構成単語27の直後に位置する単語を選択する。文脈解析部50は、文脈ベクトル54の要素のうち、選択した後置単語52に対応づけられた要素の値を「1」にし、それ以外の後置単語52に対応づけられた要素の値を「0」にする。
文脈解析部50は、単語抽出部20が生成したテーブル名構成単語データ21に基づいて、テーブル識別子25によって識別されるテーブルを構成するテーブル名構成単語23を取得する。文脈解析部50は、テーブル名構成単語53のなかから、取得したテーブル名構成単語23を選択する。文脈解析部50は、文脈ベクトル54の要素のうち、選択したテーブル名構成単語53に対応づけられた要素の値を「1」にし、それ以外のテーブル名構成単語53に対応づけられた要素の値を「0」にする。
Each element of the
For example, the
Based on the column name
Based on the column name
Based on the table name
例えば、テーブル{T0001}(PURCHASE_ORDERテーブル)のカラム{C0011}(ORDER_DATEカラム)に出現する単語「ORDER」について、文脈解析部50は、単語「ORDER」がカラム{C0011}のカラム名の先頭に位置し、直前に位置する単語が存在しないことから、文脈ベクトル54の要素のうち、前置単語51に対応づけられた要素の値をすべて「0」にする。また、文脈解析部50は、カラム{C0011}のカラム名において単語「ORDER」の直後に単語「DATE」が位置することから、後置単語52に対応づけられた文脈ベクトル54の要素のうち、「DATE」に対応づけられた要素の値を「1」にし、他の要素の値を「0」にする。また、文脈解析部50は、テーブル{T0001}のテーブル名構成単語23が「PURCHASE」及び「ORDER」であることから、テーブル名構成単語53に対応づけられた文脈ベクトル54の要素のうち、「PURCHASE」及び「ORDER」に対応づけられた要素の値を「1」にし、他の要素の値を「0」にする。
For example, for the word “ORDER” appearing in the column {C0011} (ORDER_DATE column) of the table {T0001} (PURCHASE_ORDER table), the
図10は、この実施の形態における特徴ベクトル生成部40の動作の一例を説明するための図である。
FIG. 10 is a diagram for explaining an example of the operation of the feature
概念識別子41は、カラム名構成単語27が表わす概念についての概念辞書データ30における概念識別子32である。
例えば、特徴ベクトル生成部40は、概念辞書データ30のなかから、単語抽出部20が抽出したカラム名構成単語27のうちいずれかの単語を概念表示語33のなかに含む概念データ31を抽出し、抽出した概念データ31に含まれる概念識別子32を、概念識別子41とする。また、特徴ベクトル生成部40は、抽出した概念データ31に含まれる上位概念識別子34に基づいて、その概念の上位概念を表わす概念データ31を、概念辞書データ30のなかから抽出する。特徴ベクトル生成部40は、抽出した概念データ31に含まれる概念識別子32を、概念識別子41に追加する。特徴ベクトル生成部40は、これを、最上位概念に到達するまで繰り返す。
The
For example, the feature
概念ベクトル44は、特徴ベクトル生成部40が生成する概念ベクトルである。特徴ベクトル生成部40は、1つの単語について1つの概念ベクトル44を生成する。ただし、特徴ベクトル生成部40は、文脈解析部50と異なり、同じ綴りの単語を区別しない。概念ベクトル44の要素の値は、出現位置によって変わることはない。例えば、カラム名構成単語27「NO」は、3箇所に出現するが、特徴ベクトル生成部40は、カラム名構成単語27「NO」に対して1つの概念ベクトル44を生成する。
The
概念ベクトル44の各要素は、概念識別子41にそれぞれ対応づけられている。
例えば、特徴ベクトル生成部40は、抽出した概念識別子41の数に基づいて、概念ベクトル44の次数を決定する。特徴ベクトル生成部40は、抽出した概念識別子41の数を、概念ベクトル44の次数とする。
特徴ベクトル生成部40は、カラム名構成単語27のそれぞれについて、概念辞書データ30のなかから、そのカラム名構成単語27が概念表示語33のなかに含まれる概念データ31を抽出する。特徴ベクトル生成部40は、概念識別子41のなかから、抽出した概念データ31の概念識別子32と一致する概念識別子41を選択する。特徴ベクトル生成部40は、抽出した概念データ31に含まれる上位概念識別子34に基づいて、その概念の上位概念を表わす概念データ31を、概念辞書データ30のなかから抽出する。特徴ベクトル生成部40は、概念識別子41のなかから、抽出した概念データ31の概念識別子32と一致する概念識別子41を更に選択する。特徴ベクトル生成部40は、これを、最上位概念に到達するまで繰り返す。このようにして、特徴ベクトル生成部40は、カラム名構成単語27の概念辞書における概念カテゴリパスに含まれる概念の概念識別子41をすべて選択する。
特徴ベクトル生成部40は、概念識別子41の要素のうち、選択した概念識別子41に対応づけられた要素の値を「1」にし、それ以外の概念識別子41に対応づけられた要素の値を「0」にする。
Each element of the
For example, the feature
The feature
The feature
図11は、この実施の形態における単語分類部60の動作の一例を説明するための図である。
FIG. 11 is a diagram for explaining an example of the operation of the
この図の上側の部分は、文脈管理グラフである。文脈管理グラフは、テーブル、カラム、単語の構成関係を表わす。
ネットワークの最上位階層は、テーブル識別子25によって識別される個々のテーブルである。第二階層は、カラム識別子26によって識別される個々のカラムである。第三階層は、カラム名構成単語27である。ただし、第三階層は、異なり語彙としてノードを生成している。
テーブルとカラムとを接続する線は、そのカラムがそのテーブルに属することを表わす。各テーブルは、1つ以上のカラムと接続している。各カラムは、いずれか1つのテーブルと接続している。
カラムとカラム名構成単語27とを接続する線は、そのカラムのカラム名がそのカラム名構成単語27を含むことを表わす。各カラムは、1つ以上のカラム名構成単語27と接続している。同じ綴りの単語を異なるカラムが含む場合があるので、各カラム名構成単語27は、複数のカラムと接続する場合がある。
The upper part of this figure is a context management graph. The context management graph represents the compositional relationship between tables, columns, and words.
The highest level of the network is an individual table identified by the
A line connecting a table and a column indicates that the column belongs to the table. Each table is connected to one or more columns. Each column is connected to any one table.
A line connecting the column and the column name
この図の下側の部分は、クラスを表わす。クラスとは、カラム名構成単語27を分類するグループのことである。クラスの数は、あらかじめ定められている。例えば、関連カラム判定装置903は、入力装置912を用いて、関連カラム抽出システム900の利用者が設定したクラス数を入力し、記憶装置914を用いて、入力したクラス数を記憶しておく。
クラス識別子61は、クラスを一意に識別するための識別子である。例えば、単語分類部60は、処理装置911を用いて、記憶したクラス数に基づいて、それぞれのクラスを識別するクラス識別子61を生成する。
The lower part of the figure represents the class. The class is a group for classifying the column name
The
単語分類部60は、カラム名構成単語27をいずれかのクラスに分類する。すなわち、単語分類部60は、この図に示したカラム名構成単語27(異なり単語)とクラスとの間を繋ぐ1対他の枝を引く。各カラム名構成単語27は、1つのクラスと接続される。各クラスは、1つ以上のカラム名構成単語27と接続される。
単語分類部60は、与えられた条件に基づいて、条件を充足する最適なクラス割り当てを探索する。
The
The
図12は、この実施の形態における単語分類部60の動作の一例を説明するための図である。
FIG. 12 is a diagram for explaining an example of the operation of the
クラス識別子62は、カラム名構成単語27を分類したクラスのクラス識別子61である。
単語分類部60は、処理装置911を用いて、単語抽出部20が抽出したカラム名構成単語27を、いずれかのクラスに分類する。単語分類部60は、カラム名構成単語27を分類したクラスのクラス識別子61を、クラス識別子62とする。
このとき、単語分類部60は、異なる位置に出現する同じ綴りの単語を区別しない。すなわち、単語分類部60は、異なる位置に出現する同じ綴りの単語を、必ず同じクラスに分類する。
The
The
At this time, the
単語分類部60は、各テーブルの各カラムについて、クラスベクトル63を生成する。単語分類部60は、カラムの総数と同じ数のクラスベクトル63を生成する。クラスベクトル63は、そのカラムのカラム名に含まれるカラム名構成単語27が分類されたクラスを表わす。
クラスベクトル63の各要素は、クラス識別子61によって識別されるクラスに対応づけられている。クラスベクトル63の各要素は、そのカラムのカラム名に含まれるカラム名構成単語27のなかに、そのクラスに分類された単語があるか否かを表わす。
例えば、単語分類部60は、テーブル識別子25で識別されるテーブルのカラム識別子26で識別されるカラムそれぞれについて、あらかじめ定められたクラスの数を次数とするクラスベクトル63を生成する。単語分類部60は、単語抽出部20が生成したカラム名構成単語データ24と、分類したクラスのクラス識別子62とに基づいて、クラス識別子61のなかから、そのカラムに属する単語を分類したクラスのクラス識別子62と一致するクラス識別子61を選択する。単語分類部60は、クラスベクトル63の要素のうち、選択したクラス識別子61に対応づけられた要素の値を「1」(そのカラムのカラム名に含まれるカラム名構成単語27のなかに、そのクラスに分類された単語があることを表わす値の一例。)にし、それ以外の要素の値を「0」(そのカラムのカラム名に含まれるカラム名構成単語27のなかに、そのクラスに分類された単語がないことを表わす値の一例。)にする。
The
Each element of the
For example, the
例えば、単語分類部60が、単語「ORDER」をクラス{y3}に分類し、単語「DATE」をクラス{y3}に分類し、単語「LINE」をクラス{y4}に分類し、単語「NO」をクラス{y1}に分類し、単語「TEL」をクラス{y1}に分類したとする。
テーブル{T0001}(PURCHASE_ORDERテーブル)のカラム{C0011}(ORDER_DATEカラム)について、単語分類部60は、単語「ORDER」をクラス{y3}に分類し、単語「DATE」をクラス{y3}に分類したことから、クラスベクトル63の要素のうち、クラス{y3}に対応づけられた要素の値を「1」にし、それ以外のクラスに対応づけられた要素の値を「0」にする。
For example, the
For column {C0011} (ORDER_DATE column) of table {T0001} (PURCHASE_ORDER table),
また、テーブル{T0001}のカラム{C0012}(LINE_NOカラム)について、単語分類部60は、単語「LINE」をクラス{y4}に分類し、単語「NO」をクラス{y1}に分類したことから、クラスベクトル63の要素のうち、クラス{y1}及びクラス{y4}に対応づけられた要素の値を「1」にし、それ以外のクラスに対応づけられた要素の値を「0」にする。
また、テーブル{T0002}(ORDERテーブル)のカラム{C0023}(TELカラム)について、単語分類部60は、単語「TEL」をクラス{y1}に分類したことから、クラスベクトル63の要素のうち、クラス{y1}に対応づけられた要素の値を「1」にし、それ以外のクラスに対応づけられた要素の値を「0」にする。
Further, for the column {C0012} (LINE_NO column) of the table {T0001}, the
In addition, for the column {C0023} (TEL column) of the table {T0002} (ORDER table), the
単語分類部60は、同じテーブルに属するカラムについて生成したクラスベクトル63が、互いに異なるよう、カラム名構成単語27をクラスに分類する。
例えば、単語分類部60は、すべてのカラム名構成単語27を分類したのちにクラスベクトル63を生成する。同じテーブルに属するカラムについて生成したクラスベクトル63のなかに一致するものがある場合、単語分類部60は、分類をやり直す。
あるいは、単語分類部60は、カラム名構成単語27を順に分類していき、カラム名に含まれるすべての単語を分類したカラムから順に、クラスベクトル63を生成する。新たに生成したクラスベクトル63が、同じテーブルに属する他のカラムについて既に生成してあるクラスベクトル63と一致している場合、単語分類部60は、最後に分類したカラム名構成単語27のクラスを変更する。
The
For example, the
Or the word classification |
図13は、この実施の形態における単語分類部60の動作の一例を説明するための図である。
FIG. 13 is a diagram for explaining an example of the operation of the
単語分類部60(特徴ベクトル生成部の一例。)は、処理装置911を用いて、文脈解析部50が生成した文脈ベクトル54と、特徴ベクトル生成部40が生成した概念ベクトル44とを結合して、特徴ベクトル64を生成する。前置単語51の次数がm、概念識別子41の次数がnであるとすると、特徴ベクトル64の次数は、m+nである。
このとき、単語分類部60は、文脈解析部50と同様、異なる位置に出現する同じ綴りの単語を区別する。単語分類部60は、文脈解析部50が生成した文脈ベクトル54の数と同じ数の特徴ベクトル64を生成する。
特徴ベクトル64の各要素は、前置単語51、後置単語52、テーブル名構成単語53及び概念識別子41のいずれかに対応づけられている。
The word classification unit 60 (an example of a feature vector generation unit) uses the
At this time, like the
Each element of the
例えば、単語分類部60は、文脈解析部50が生成した文脈ベクトル54のそれぞれについて、特徴ベクトル生成部40が生成した概念ベクトル44のなかから、カラム名構成単語27が一致する概念ベクトル44を選択する。単語分類部60は、文脈ベクトル54のm個の要素と、選択した概念ベクトル44のn個の要素との合計m+n個の要素を持つ特徴ベクトル64を生成する。
For example, the
図14は、この実施の形態における単語分類部60の動作の一例を説明するための図である。
FIG. 14 is a diagram for explaining an example of the operation of the
単語分類部60(重みベクトル生成部の一例。)は、処理装置911を用いて、クラス識別子61によって識別されるクラスそれぞれについて、重みパラメータベクトル65(重みベクトルの一例。)を生成する。単語分類部60は、あらかじめ定められたクラスの数と同じ数の重みパラメータベクトル65を生成する。
重みパラメータベクトル65の次数は、特徴ベクトル64の次数と同じである。重みパラメータベクトル65の各要素は、前置単語51、後置単語52、テーブル名構成単語53及び概念識別子41のいずれかに対応づけられている。
The word classification unit 60 (an example of a weight vector generation unit) uses the
The order of the
重みパラメータベクトル65は、カラム名構成単語27がそのクラスに属する尤度を算出するために用いられる。単語分類部60は、あるカラム名構成単語27について生成した特徴ベクトル64と、あるクラスについて生成した重みパラメータベクトル65との内積を算出することにより、そのカラム名構成単語27がそのクラスに属する尤度を算出する。重みパラメータベクトル65の各要素は、その要素が対応づけられた項目(前置単語51、後置単語52、テーブル名構成単語53または概念識別子41)が、単語がそのクラスに属する尤度にどのように影響するかを表わす。要素の値が正である場合、単語がその項目に該当するときに、その単語がそのクラスに属する尤度が高いことを意味する。逆に、要素の値が負である場合、単語がその項目に該当しないときに、その単語がそのクラスに属する尤度が高いことを意味する。要素の値の絶対値が大きいほど、影響が大きいことをを表わす。要素の値が0である場合、単語がその項目に該当するかしないかは、その単語がそのクラスに属するか否かと無関係であることを意味する。
The
最初に、単語分類部60は、条件を充足する範囲内でランダムに、カラム名構成単語27を分類する。
First, the
次に、単語分類部60は、その分類に最適な重みパラメータベクトル65を生成する。単語分類部60は、例えば、多クラスロジスティック回帰の教師あり学習を用いる。単語分類部60は、例えば、反復重み付き最小二乗法(iterative rewaited least squares method)によって最適解を求めることにより、重みパラメータベクトル65を算出する。
単語分類部60は、算出した重みパラメータベクトル65を用いて、カラム名構成単語27がそれぞれのクラスに属する尤度を算出する。単語分類部60は、算出した尤度を用いて、カラム名構成単語27を分類し直す。単語分類部60は、例えば、多クラスロジスティック回帰モデルを用いた制約付き教師なしクラスタリングにより、カラム名構成単語27を分類する。
Next, the
The
単語分類部60は、新たに分類し直した分類と、分類し直す前の分類とを比較する。分類に変化があった場合、単語分類部60は、重みパラメータベクトル65を算出し直し、算出し直した重みパラメータベクトル65を用いて、カラム名構成単語27を分類し直す。単語分類部60は、これを、分類が変化しなくなるまで繰り返す。
なお、分類が収束しない場合もあるので、繰り返しの最大回数をあらかじめ定めておく構成であってもよい。単語分類部60は、繰り返し回数が最大回数に達した場合、処理を打ち切る。
The
Since the classification may not converge, a configuration in which the maximum number of repetitions is determined in advance may be used. The
図15は、この実施の形態における関連語決定部70の動作の一例を説明するための図である。
FIG. 15 is a diagram for explaining an example of the operation of the related
関連語決定部70は、単語分類部60による分類の結果に基づいて、関連カラムデータ71を生成する。関連カラムデータ71は、関連カラムである可能性の高い複数のカラムの組を表わす。関連カラムデータ71は、例えば、テーブル識別子25とカラム識別子26との組を複数含む。関連カラムデータ71は、テーブル識別子25によって識別されるテーブルのカラム識別子26によって識別されるカラムが、関連カラムである可能性が高いことを表わす。
The related
関連語決定部70は、例えば、単語分類部60がカラム名構成単語27を最終的に分類したクラスに基づいて単語分類部60が生成したクラスベクトル63に基づいて、クラスベクトル63が一致する複数のカラムが存在するか否かを判定する。クラスベクトル63が一致する複数のカラムが存在する場合、関連語決定部70は、それぞれのカラムが属するテーブルのテーブル識別子25とそれぞれのカラムのカラム識別子26とに基づいて、関連カラムデータ71を生成し出力する。
The related
例えば、関連語決定部70は、テーブル{T0001}(PURCHASE_ORDERテーブル)のカラム{C0011}(ORDER_DATEカラム)について単語分類部60が生成したクラスベクトル63と、テーブル{T0002}(ORDERテーブル)のカラム{C0021}(ODR_DATカラム)について単語分類部60が生成したクラスベクトル63とが一致するので、この2つのカラムを、関連カラムである可能性が高いカラムであると判定し、この2つのカラムのテーブル識別子25及びカラム識別子26を含む関連カラムデータ71を生成する。
また、関連語決定部70は、テーブル{T0001}のカラム{C0012}(LINE_NOカラム)について単語分類部60が生成したクラスベクトル63と、テーブル{T0002}のカラム{C0022}(ITEM_NOカラム)について単語分類部60が生成したクラスベクトル63とが一致するので、この2つのカラムを、関連カラムである可能性が高いカラムであると判定し、この2つのカラムのテーブル識別子25及びカラム識別子26を含む関連カラムデータ71を生成する。
For example, the related
In addition, the related
なお、関連語決定部70は、更に、テーブル識別子25によって識別されるテーブルのテーブル名や、カラム識別子26によって識別されるカラムのカラム名などを、関連カラムデータ71に含める構成であってもよい。
また、関連語決定部70は、関連語抽出元データ10から、各カラムのデータ型を取得し、取得したデータ型が一致しもしくは近いカラムだけを、関連カラムである可能性が高いカラムであると判定する構成であってもよい。
The related
Further, the related
また、関連語決定部70は、関連カラムデータ71を出力するのではなく、単語分類部60が同じクラスに分類したカラム名構成単語27の組を出力する構成であってもよい。
Further, the related
図16は、この実施の形態における関連抽出処理S800の流れの一例を示すフロー図である。 FIG. 16 is a flowchart showing an example of the flow of the related extraction process S800 in this embodiment.
関連抽出処理S800において、関連カラム判定装置903は、概念辞書データ30が記憶したデータベース定義データによって表わされる複数のテーブルの複数のカラムのなかから、関連カラムである可能性の高いカラムを抽出する。
関連抽出処理S800は、例えば、単語抽出処理S801と、文脈解析処理S802と、概念解析処理S803と、単語分類処理S804と、関連決定処理S805とを有する。関連カラム判定装置903は、単語抽出処理S801から関連抽出処理S800を開始する。
In the related extraction process S800, the related
The association extraction process S800 includes, for example, a word extraction process S801, a context analysis process S802, a concept analysis process S803, a word classification process S804, and an association determination process S805. The related
単語抽出処理S801において、単語抽出部20は、データベース定義記憶装置901から関連語抽出元データ10を取得する。単語抽出部20は、取得した関連語抽出元データ10から、カラム名構成単語27を抽出する。
文脈解析処理S802において、文脈解析部50は、単語抽出処理S801で単語抽出部20が抽出したカラム名構成単語27それぞれについて、文脈ベクトル54を生成する。
概念解析処理S803において、特徴ベクトル生成部40は、概念辞書記憶装置902が記憶した概念辞書データ30を使って、単語抽出処理S801で単語抽出部20が抽出したカラム名構成単語27それぞれについて、概念ベクトル44を生成する。
単語分類処理S804において、単語分類部60は、文脈解析処理S802で文脈解析部50が生成した文脈ベクトル54と、概念解析処理S803で特徴ベクトル生成部40が生成した概念ベクトル44とに基づいて、単語抽出処理S801で単語抽出部20が抽出したカラム名構成単語27を分類する。
関連決定処理S805において、関連語決定部70は、単語分類処理S804で単語分類部60が分類した分類結果に基づいて、関連カラムである可能性の高いカラムを判定する。
In word extraction processing S <b> 801, the
In the context analysis process S802, the
In the concept analysis process S803, the feature
In the word classification process S804, the
In the related determination process S805, the related
図17は、この実施の形態における単語分類処理S804の流れの一例を示すフロー図である。 FIG. 17 is a flowchart showing an example of the flow of the word classification process S804 in this embodiment.
単語分類処理S804は、例えば、初期化工程S810と、重み最適化工程S820と、分類算出工程S830と、収束判定工程S840とを有する。 The word classification process S804 includes, for example, an initialization step S810, a weight optimization step S820, a classification calculation step S830, and a convergence determination step S840.
初期化工程S810において、単語分類部60は、処理装置911を用いて、暫定正解クラスを、制約を充足しなからランダムに与える。単語分類部60は、以下の一致制約と排他制約を充足させながら、各単語に対し、暫定正解クラスをランダムに割り当てる。
(1)一致制約:表記が等しい単語は、テーブル/カラムの出現文脈に依らず同一の正解クラスを割り当てる。
(2)排他制約:同一テーブルを構成するカラム間では、異なるクラスの単語が1つ以上存在するように正解クラスを割り当てる。
In the initialization step S810, the
(1) Match constraint: Words with the same notation are assigned the same correct class regardless of the appearance context of the table / column.
(2) Exclusive constraint: correct classes are allocated so that one or more words of different classes exist between columns constituting the same table.
重み最適化工程S820において、単語分類部60は、処理装置911を用いて、暫定正解クラスを固定して、重みパラメータベクトル65などのモデルパラメータを最適化する。単語分類部60は、例えば次の式を用いて、正解クラスの割り当てAtをAt (η−1)に固定して、モデルパラメータwを最適化する。
単語分類部60は、例えば次の式によりlog p(t,w,At|Φ)の値を求める。
ここで、log p(w)は、モデルパラメータwに対する二次の正則化項であり、モデルが過剰に大きな重みを使って学習データにオーバーフィッティングするのを防ぐ。単語分類部60は、例えば次の式により、log p(w)の値を求める。
例えば、関連カラム判定装置903は、入力装置912を用いて、C1の設定値を入力し、記憶装置914を用いて、入力したC1の設定値を記憶しておく。単語分類部60は、記憶したC1の設定値を使って、log p(w)の値を算出する。
あるいは、C1は、固定値ではなく、繰り返し回数ηが多くなるにしたがって減衰する値であってもよい。例えば、関連カラム判定装置903は、入力装置912を用いて、C1の初期値C1 (1)と、C1の収束値C1 (∞)と、減衰係数ε1とを入力する。関連カラム判定装置903は、記憶装置914を用いて、入力したC1の初期値C1 (1)と、C1の収束値C1 (∞)と、減衰係数ε1とを記憶しておく。単語分類部60は、η回目の繰り返し(ただし、η≧2。)において、前回の繰り返しで使ったC1の値C1 (η−1)と、記憶したC1の収束値C1 (∞)と減衰係数ε1とに基づいて、例えば次の式により、今回の繰り返しで使う定数C1 (η)を算出する。
For example, associated
Alternatively, C 1 is not a fixed value, but may be a value that attenuates as the number of repetitions η increases. For example, associated
また、log p(At|w)は、各クラスで全学習データから受ける重みの総和を最大化する。上述の正則化項による大きさに対するペナルティと合わせて、クラス間でクラスの大きさ(単語の種類数)がバランスするようなペナルティとして働く。単語分類部60は、例えば次の式により、log p(At|w)の値を求める。
あるいは、C2は、固定値ではなく、繰り返し回数ηが多くなるにしたがって減衰する値であってもよい。例えば、関連カラム判定装置903は、入力装置912を用いて、C2の初期値C2 (1)と、C2の収束値C1 (∞)と、減衰係数ε2とを入力する。関連カラム判定装置903は、記憶装置914を用いて、入力したC2の初期値C2 (1)と、C2の収束値C2 (∞)と、減衰係数ε1とを記憶しておく。単語分類部60は、η回目の繰り返し(ただし、η≧2。)において、前回の繰り返しで使ったC2の値C2 (η−1)と、記憶したC2の収束値C2 (∞)と減衰係数ε2とに基づいて、例えば次の式により、今回の繰り返しで使う定数C2 (η)を算出する。
Alternatively, C 2 is not a fixed value, but may be a value that attenuates as the number of repetitions η increases. For example, associated
また、log p(t|Φ;w,At)は、モデルによる学習データの尤度である。例えば、単語分類部60は、次の式により、log p(t|Φ;w,At)の値を求める。
多クラスロジスティック回帰を用いる場合、単語分類部60は、例えば次の式を用いて、i番目の単語xiがk番目のクラスykに属する尤度p(yk|φi;w,At)を求める。
分類算出工程S830において、単語分類部60は、処理装置911を用いて、モデルパラメータを固定して、制約付き最尤クラスを求める。単語分類部60は、例えば次の式により、モデルパラメータwをw(η)に固定して、制約付きで最適なクラスを探索し、正解クラスAt (η)として割り当て直す。
例えば、単語分類部60は、各カラム名構成単語27を、各クラスに分類するかしないかを変数とする0−1整数計画問題を解くことにより、クラス選択の最適解(制約付き最尤解)を求める。この方式は、クラス数や単語数が小規模の場合に有効である。
あるいは、単語分類部60は、貪欲法により平均尤度の高い単語から順番にクラスを割り当てることにより、準最適解を求める。この方式は、クラス数や単語数が大規模な場合に有効である。
For example, the
Or the word classification |
収束判定工程S840において、単語分類部60は、処理装置911を用いて、クラスタリング処理の収束判定を行う。例えば、単語分類部60は、いずれの単語に割り当てた暫定正解クラスも前回の反復で割り当てたクラスと変わらなければクラスタリング処理が収束したと判定し、反復を打ち切る。あるいは、単語分類部60は、繰り返し回数ηが所定の最大反復回数に達したら、強制的に反復を打ち切る。
反復を打ち切らないと判定した場合、単語分類部60は、重み最適化工程S820に処理を戻す。
反復を打ち切ると判定した場合、単語分類部60は、単語分類処理S804を終了する。
In the convergence determination step S840, the
If it is determined that the iteration is not terminated, the
When it is determined that the repetition is to be terminated, the
図18は、この実施の形態における初期化工程S810の流れの一例を示すフロー図である。 FIG. 18 is a flowchart showing an example of the flow of the initialization step S810 in this embodiment.
初期化工程S810は、例えば、単語選択工程S811と、暫定クラス割当工程S812と、カラム選択工程S813と、兄弟カラム選択工程S814と、排他制約判定工程S815とを有する。 The initialization step S810 includes, for example, a word selection step S811, a provisional class assignment step S812, a column selection step S813, a sibling column selection step S814, and an exclusion constraint determination step S815.
単語選択工程S811において、単語分類部60は、まだ暫定正解クラスを割り当てていないカラム名構成単語27のなかから、単語ζを一つ選択する。
全語彙(カラム名構成単語27)に暫定正解クラスを付与済みであり、選択すべき単語が存在しない場合、すべての単語に暫定正解クラスを割り当てたので、単語分類部60は、初期化工程S810を終了する。
暫定正解クラスを未付与の語彙がある場合、単語分類部60は、暫定正解クラスを割り当てていない単語を一つ取り出し、単語ζとする。単語分類部60は、暫定クラス割当工程S812へ処理を進める。
In the word selection step S811, the
If the provisional correct answer class has been assigned to all the vocabularies (column name constituent words 27) and there are no words to be selected, the provisional correct answer class is assigned to all the words. Exit.
When there is a vocabulary to which no provisional correct answer class has been assigned, the
暫定クラス割当工程S812において、単語分類部60は、単語選択工程S811で選択した単語ζに対してまだ割り当てていないクラスのなかから、暫定正解クラスを一つ選択する。例えば、単語分類部60は、すべてのクラスをランダムな順序に並べ替えたリストを生成して、暫定正解クラス候補リストとする。単語分類部60は、暫定正解クラス候補リストの先頭にあるクラスを暫定正解クラスとして選択し、選択したクラスを暫定正解クラス候補リストから削除する。単語分類部60は、その単語ζについての暫定正解クラス候補リストを記憶しておく。次回の暫定クラス割当工程S812を同じ単語ζに対して実行する場合、単語分類部60は、その単語ζについて記憶しておいた暫定正解クラス候補リストを使い、暫定正解クラス候補リストの先頭にあるクラスを暫定正解クラスとして選択し、選択したクラスを暫定正解クラス候補リストから削除する。
単語ζに対してまだ割り当てていないクラスが存在しない場合、例えば、その単語ζについて記憶している暫定正解クラス候補リストが空である場合、単語分類部60は、その単語ζに対してクラスを割り当てることができない。単語分類部60は、その単語ζに対してクラスを割り当てることを諦め、前回の単語選択工程S811で選択した単語にロールバックする。単語分類部60は、単語選択工程S811で選択した単語ζを未選択に戻し、前回の単語選択工程S811で選択した単語に対して割り当てた暫定正解クラスを変更する。単語分類部60は、前回の単語選択工程S811で選択した単語ζに対して、まだ割り当てていないクラスのなかから、暫定正解クラスを一つ選択する。例えば、単語分類部60は、前回の単語選択工程S811で選択した単語ζについて記憶しておいた暫定正解クラス候補リストの先頭にあるクラスを暫定正解クラスとして選択し、選択したクラスを暫定正解クラス候補リストから削除する。
In the provisional class assignment step S812, the
When there is no class not yet assigned to the word ζ, for example, when the temporary correct class candidate list stored for the word ζ is empty, the
カラム選択工程S813において、単語分類部60は、全カラムのなかから、暫定クラス割当工程S812で暫定正解クラスを割り当てた単語ζを含むカラムを抽出する。単語分類部60は、抽出したカラムのなかから、そのカラムのカラム名に含まれるすべての単語(全構成語)に対して暫定正解クラスを割り当てたカラムを抽出して、カラム集合C1とする。
カラム集合C1が空集合であって、カラム集合C1に属するカラムが存在しない場合、単語分類部60は、単語選択工程S811に処理を戻し、次の単語ζを選択する。
カラム集合C1が空集合でなく、カラム集合C1に属するカラムが存在する場合、単語分類部60は、カラム集合C1に属するカラムのなかからカラムを1つ選択し、選択したカラムをカラム集合C1から削除する。単語分類部60は、その単語ζについてのカラム集合C1を記憶しておく。次回のカラム選択工程S813を同じ単語ζに対して実行する場合、単語分類部60は、記憶しておいたカラム集合C1を使い、カラム集合C1に属するカラムのなかから、カラムを1つ選択し、選択したカラムをカラム集合C1から削除する。
単語分類部60は、選択したカラムについてクラスベクトル63を生成し、生成したクラスベクトル63を記憶しておく。単語分類部60は、兄弟カラム選択工程S814へ処理を進める。
In the column selection step S813, the
When the column set C1 is an empty set and there is no column belonging to the column set C1, the
When the column set C1 is not an empty set and there is a column belonging to the column set C1, the
The
兄弟カラム選択工程S814において、単語分類部60は、全カラムのなかから、カラム選択工程S813で選択したカラムと同じテーブルに属するカラムを抽出する。単語分類部60は、抽出したカラムのなかから、そのカラムのカラム名に含まれるすべての単語に対して暫定正解クラスを割り当てたカラムを抽出して、カラム集合C2とする。カラム集合C2には、カラム選択工程S813で選択したカラムが必ず含まれるので、単語分類部60は、カラム選択工程S813で選択したカラムをカラム集合C2から削除する。
カラム集合C2が空集合であって、カラム集合C2に属するカラムが存在しない場合、単語分類部60は、カラム選択工程S813に処理を戻し、次のカラムをカラム集合C1から選択する。
カラム集合C2が空集合でなく、カラム集合C2に属するカラムが存在する場合、単語分類部60は、カラム集合C2に属するカラムのなかからカラムを1つ選択し、選択したカラムをカラム集合C2から削除する。単語分類部60は、そのカラムについてのカラム集合C2を記憶しておく。次回の兄弟カラム選択工程S814を同じカラムに対して実行する場合、単語分類部60は、記憶しておいたカラム集合C2を使い、カラム集合C2に属するカラムのなかから、カラムを1つ選択し、選択したカラムをカラム集合C2から削除する。
単語分類部60は、排他制約判定工程S815へ処理を進める。
In the sibling column selection step S814, the
When the column set C2 is an empty set and there is no column belonging to the column set C2, the
When the column set C2 is not an empty set and there is a column belonging to the column set C2, the
The
排他制約判定工程S815において、単語分類部60は、カラム選択工程S813で選択したカラムについて生成したクラスベクトル63と、兄弟カラム選択工程S814で選択したカラムについて記憶しておいたクラスベクトル63とを比較する。
2つのクラスベクトル63が一致している場合、単語分類部60は、制約違反であると判定し、暫定クラス割当工程S812に処理を戻して、単語ζに対して次の暫定正解クラスを割り当てる。
2つのクラスベクトル63が異なる場合、単語分類部60は、制約を充足していると判定し、兄弟カラム選択工程S814に処理を戻して、次のカラムをカラム集合C2から選択する。
In the exclusion constraint determination step S815, the
When the two
When the two
図19は、この実施の形態における分類算出工程S830の流れの一例を示すフロー図である。 FIG. 19 is a flowchart showing an example of the flow of the classification calculation step S830 in this embodiment.
分類算出工程S830は、例えば、単語選択工程S831と、暫定クラス割当工程S832と、カラム選択工程S813と、兄弟カラム選択工程S814と、排他制約判定工程S815とを有する。 The classification calculation step S830 includes, for example, a word selection step S831, a provisional class assignment step S832, a column selection step S813, a sibling column selection step S814, and an exclusive constraint determination step S815.
単語選択工程S831において、単語分類部60は、すべての単語について、すべてのクラスに対する平均尤度を算出する。単語分類部60は、例えば次の式により、単語ζがクラスykに属する尤度をすべての出現箇所について平均した平均尤度p ̄(yk|ζ)を算出する。
単語分類部60は、それぞれの単語ζについて、平均尤度が大きい順にクラスを並べたリストを生成し、その単語ζについての暫定正解クラスリストとする。
単語分類部60は、暫定正解クラスリストの先頭にあるクラスに対する平均尤度(すなわち、平均尤度の最大値)が大きい順に単語ζを並べたリストを生成し、割当順単語リストとする。
単語分類部60は、割当順単語リストのなかから、未処理の単語を1つ選択する。
割当順単語リストに未処理の単語が存在しない場合、すべての単語に対するクラス割当てが完了したので、単語分類部60は、分類算出工程S830を終了する。
割当順単語リストに未処理の単語が存在する場合、単語分類部60は、未処理の単語のなかで一番前にある単語(すなわち、最大平均尤度が一番大きい単語)を選択して、単語ζとする。単語分類部60は、暫定クラス割当工程S832へ処理を進める。
The
The
The
When there is no unprocessed word in the allocation order word list, the class allocation for all the words is completed, and the
When there is an unprocessed word in the allocation order word list, the
暫定クラス割当工程S832において、単語分類部60は、単語選択工程S831で選択した単語ζに対して、単語選択工程S831で生成した暫定正解クラスリストを使って、クラスを割り当てる。単語分類部60は、暫定正解クラスリストのなかから、未選択のクラスを1つ選択する。
暫定正解クラスリストに未選択のクラスが存在しない場合、その単語ζに対してクラスを割り当てることができないので、単語分類部60は、1つ前の単語にロールバックする。単語分類部60は、単語選択工程S831で選択した単語ζについての暫定正解クラスリストをすべて未選択状態に戻す。単語分類部60は、割当順単語リストの処理済の単語のなかから、一番後ろにある単語を選択して、単語ζとし、未処理状態に戻す。単語分類部60は、ロールバックした単語ζについての暫定正解クラスリストのなかから、未選択のクラスを1つ選択する。
暫定正解クラスリストに未選択のクラスが存在する場合、単語分類部60は、未選択のクラスのなかで一番前にあるクラス(すなわち、平均尤度が一番大きいクラス)を選択する。
In the provisional class assignment step S832, the
If no unselected class exists in the provisional correct answer class list, a class cannot be assigned to the word ζ, and the
When there is an unselected class in the provisional correct answer class list, the
カラム選択工程S813、兄弟カラム選択工程S814及び排他制約判定工程S815は、クラスの割当てが排他制約に違反しないかを検証する工程であり、初期化工程S810と同様である。 The column selection step S813, the sibling column selection step S814, and the exclusion constraint determination step S815 are steps for verifying whether the class assignment does not violate the exclusion constraint, and are the same as the initialization step S810.
初期化工程S810では、単語の選択順やクラスの選択順がランダムであるのに対し、分類算出工程S830では、最大平均尤度が高い順に単語を選択し、平均尤度が高い順にクラスを選択する。これにより、排他制約に反しないという条件を充足しつつ、全体として尤度が高いクラス割当を見つけることができる。 In the initialization step S810, the word selection order and the class selection order are random, whereas in the classification calculation step S830, the words are selected in descending order of the maximum average likelihood, and the classes are selected in descending order of the average likelihood. To do. As a result, it is possible to find a class assignment having a high likelihood as a whole while satisfying the condition that the exclusive constraint is not violated.
図20は、この実施の形態における分類算出工程S830単語分類部60の動作の一例を説明するための図である。
FIG. 20 is a diagram for explaining an example of the operation of the classification calculation step S830
単語選択工程S831において、単語分類部60は、異なる位置に出現する同じ綴りの単語を区別して、それぞれのカラム名構成単語27について、それぞれのクラスに対する尤度66を算出する。
単語分類部60は、異なる位置に出現する同じ綴りの単語について算出した尤度66に基づいて、平均尤度67を算出する。この例では、単語「NO」が3箇所に出現しているので、単語分類部60は、それぞれのクラスについて、算出した3つの尤度66から、平均尤度67を算出する。
単語分類部60は、異なる位置に出現する同じ綴りの単語を区別せず、それぞれの単語について、算出した平均尤度67が大きい順にクラスを並べた暫定正解クラスリスト68を生成する。また、単語分類部60は、異なる位置に出現する同じ綴りの単語を区別せず、算出した平均尤度67のうち最大の平均尤度67が大きい順に単語を並べた割当順単語リスト69を生成する。
In the word selection step S831, the
The
The
単語分類部60は、割当順単語リスト69の上位に位置する単語から順に、クラスを割り当てる。単語分類部60は、暫定正解クラスリスト68の先頭に位置するクラスを割り当て、それで排他制約違反になる場合には、次のクラスを割り当てる。
The
例えば、単語分類部60は、単語選択工程S831で、割当順単語リスト69の先頭にある単語「NO」を選択し、暫定クラス割当工程S832で、その単語の暫定正解クラスリスト68の先頭にあるクラス{y4}を選択し、単語「NO」にクラス{y4}を割り当てる。
上述したように、単語「NO」は、3箇所に出現している。それぞれの出現位置について別々に算出した尤度66によれば、テーブル{T0001}のカラム{C0012}で尤度66が一番大きいのはクラス{y4}であり、テーブル{T0001}のカラム{C0013}で重みパラメータベクトル65が一番大きいのもクラス{y4}であるが、テーブル{T0002}のカラム{C0022}で尤度66が一番大きいのはクラス{y2}である。しかし、単語分類部60は、出現位置を区別せずに単語「NO」にクラス{y4}を割り当てる。これにより、一致制約を充足する割当てを見つけることができる。
For example, the
As described above, the word “NO” appears in three places. According to the
次に、単語分類部60は、単語選択工程S831で、割当順単語リスト69の2番目にある単語「ITEM」を選択し、暫定クラス割当工程S832で、その単語の暫定正解クラスリスト68の先頭にあるクラス{y1}を選択し、単語「ITEM」にクラス{y1}を割り当てる。この時点で、テーブル{T0002}のカラム{C0022}について、カラム名に含まれるすべての単語についてクラスを割り当てたので、単語分類部60は、カラム選択工程S813で、クラスベクトル63を生成する。このように、単語分類部60は、すべての単語にクラスを割り当てたカラムから順に、クラスベクトル63を生成していく。テーブル{T0002}に属する他のカラムについては、クラスベクトル63をまだ生成していないので、単語分類部60は、排他制約違反ではないと判定する。
Next, the
このようにして、単語分類部60は、割当順単語リスト69の順に、単語にクラスを割り当てていく。
In this way, the
分類算出工程S830が単語「DATE」まで終わったとする。この時点で、単語分類部60は、テーブル{T0001}のカラム{C0012}と、テーブル{T0002}のカラム{C0022}と、テーブル{T0003}のカラム{C0032}とについて、カラム名に含まれるすべての単語についてクラスを割り当て終わり、クラスベクトル63を生成している。
次に、単語分類部60は、単語選択工程S831で、割当順単語リスト69の次にある単語「PHONE」を選択し、その単語の暫定正解クラスリスト68の先頭にあるクラス{y1}を選択し、単語「PHONE」にクラス{y1}を割り当てる。テーブル{T0001}のカラム{C0013}について、カラム名に含まれるすべての単語についてクラスを割り当てたので、単語分類部60は、カラム選択工程S813で、クラスベクトル63を生成する。しかし、生成したクラスベクトル63は、同じテーブル{T0001}のカラム{C0012}について生成したクラスベクトル63と一致しているので、単語分類部60は、排他制約違反であると判定する。そこで、単語分類部60は、暫定クラス割当工程S832に処理を戻し、単語「PHONE」の暫定正解クラスリスト68の2番目にあるクラス{y2}を選択し、単語「PHONE」にクラス{y2}を割り当て直す。これにより、排他制約を充足する割当てを見つけることができる。
Assume that the classification calculation step S830 ends up to the word “DATE”. At this point, the
Next, in the word selection step S831, the
このようにして、教師なし学習だけでは識別が難しいサンプルにおいても、大域的な識別状況とタスクのヒューリスティクスに基づいて、正しいクラスを割り当てることができ、高精度なクラスタリングを実現できる。 In this way, even for samples that are difficult to identify by unsupervised learning alone, the correct class can be assigned based on the global identification situation and task heuristics, and high-precision clustering can be realized.
この実施の形態における関連語抽出方式(関連カラム判定装置903、関連語分類装置)は、テキストを含むデータから多クラス識別モデルを用いて関連語を抽出する。
単語分類部60(重みベクトル算出部)は、単語のクラスを識別するためのモデルパラメータを、データ中に出現する単語に割り当てられた暫定正解クラスに基づいて最適化する。
単語分類部60は、現在のモデルパラメータを使って求めたクラスの尤度に基づいて、クラス割り当てに関する制約を充足するクラスのなかで最尤のクラスを選択し、新たな暫定正解クラスとして単語に割り当てる。
単語分類部60は、この2つを交互に反復処理した後に、同一クラスに分類された単語を関連語として抽出する。
The related word extraction method (related
The word classification unit 60 (weight vector calculation unit) optimizes the model parameters for identifying the word class based on the provisional correct answer class assigned to the word appearing in the data.
The
The
前記テキストを含むデータは、データベースのスキーマ定義データ(テーブルスキーマ)である。 The data including the text is database schema definition data (table schema).
前記クラス割り当てに関する制約は、データ構造中の姉妹データ要素が、異なるクラスのデータ要素を有するような割り当てである。 The constraint on the class assignment is an assignment such that sister data elements in the data structure have different classes of data elements.
この実施の形態における関連語抽出方式によれば、関連語をテーブルスキーマ群から高い精度で自動抽出することができる。 According to the related word extraction method in this embodiment, related words can be automatically extracted from a table schema group with high accuracy.
この実施の形態における関連語抽出方式は、「類似した単語は類似した文脈で出現する」との仮定に基づいて、共起語の出現頻度ベクトルをもとに適当な重み付けを行って特徴ベクトルとし、その類似度を基準に関連語を抽出する。
しかし、テーブルスキーマなどの構造化データは、新聞記事やウェブページなどと比べて、利用可能なデータ量が限定される。このため、共起頻度ベクトルがスパースとなり、共起語だけでは単語間の類似性を十分説明できないことがある。
そこで、この実施の形態における関連語抽出方式は、更に、概念辞書を用いて特徴量を追加する。
The related word extraction method in this embodiment is based on the assumption that “similar words appear in similar contexts” and is weighted appropriately based on the appearance frequency vector of co-occurrence words as feature vectors. Then, related words are extracted based on the similarity.
However, the amount of data that can be used for structured data such as a table schema is limited compared to newspaper articles and web pages. For this reason, the co-occurrence frequency vector becomes sparse, and the similarity between words may not be sufficiently explained only by the co-occurrence words.
Therefore, the related word extraction method in this embodiment further adds feature amounts using a concept dictionary.
しかし、概念辞書を用いて追加した特徴量は、自然言語処理一般に存在する課題である曖昧性や多義性の影響を受ける。
そこで、この実施の形態における関連語抽出方式は、以下の3つの仮定を導入して、単語の使い分けを判別する。
However, the feature amount added using the concept dictionary is affected by ambiguity and ambiguity, which are problems that generally exist in natural language processing.
Therefore, the related word extraction method in this embodiment introduces the following three assumptions to determine the proper use of words.
仮定(1):関連語は、出現文脈の特徴または概念辞書における登録階層が近い。
仮定(1)は、特徴ベクトルのクラスタリングで関連語を抽出するための基本的な仮定である。仮定(1)は、特徴ベクトル64の構成に反映されている。文脈ベクトル54及び概念ベクトル44を含む特徴ベクトル64を使うことにより、仮定(1)に沿ったクラスタリングを実現する。
Assumption (1): The related word is close to the feature of the appearance context or the registration hierarchy in the concept dictionary.
Assumption (1) is a basic assumption for extracting related words by clustering feature vectors. Assumption (1) is reflected in the configuration of the
仮定(2):単語は、出現文脈に依らず一貫して同じ概念を表している。
仮定(2)は、スパースなスキーマデータで頻度を集約するために導入するやや強い仮定である。仮定(2)は、上述の一致制約に反映されている。単語分類部60が、異なる位置に出現する同じ綴りの単語に対して、同じクラスを割り当てることにより、仮定(2)に沿ったクラスタリングを実現する。
Assumption (2): Words consistently represent the same concept regardless of appearance context.
Assumption (2) is a rather strong assumption that is introduced to aggregate frequency with sparse schema data. Assumption (2) is reflected in the above-mentioned coincidence constraint. The
仮定(3):カラム名は、テーブル内で異なる概念を表している。
仮定(3)は、テーブル設計のヒューリスティックスに基づく最も強い仮定である。仮定(3)は、上述の排他制約に反映されている。カラム名が複数の単語で構成されている場合、カラム名が表わす概念は、それを構成する単語が表わす概念を総合したものと考えられる。そこで、仮定(3)に基づいて、単語分類部60は、同じテーブルに属する複数のカラムの間で、カラム名を構成する単語に割り当てたクラスの組合せが異なるよう、単語にクラスを割り当てる。
Assumption (3): The column name represents a different concept in the table.
Assumption (3) is the strongest assumption based on heuristics of table design. Assumption (3) is reflected in the exclusion constraint described above. When the column name is composed of a plurality of words, the concept represented by the column name is considered to be a combination of the concepts represented by the words constituting the column name. Therefore, based on Assumption (3), the
上述の例において、「PURCHASE_ORDER」テーブルには、「LINE_NO」カラムと「PHONE_NO」カラムとが属する。仮に、単語「LINE」と単語「PHONE」とを同じクラスに分類したとすると、「LINE_NO」と「PHONE_NO」とを概念的に区別できなくなる。仮定(3)は、このような直観にそぐわないクラスタリングを回避するための仮定である。 In the above example, the “PURCHASE_ORDER” table includes a “LINE_NO” column and a “PHONE_NO” column. If the word “LINE” and the word “PHONE” are classified into the same class, “LINE_NO” and “PHONE_NO” cannot be conceptually distinguished. Assumption (3) is an assumption for avoiding such unsuitable clustering.
以上のように、この実施の形態における関連語抽出方式は、単語特徴ベクトルのクラスタリングにおいて、特徴ベクトルの類似度を尺度とするだけでなく、元データから取得するヒューリスティクスをクラス分類の一致制約ないし排他制約として利用して、クラスタリングをする。
このように制約条件としてヒューリスティクスを利用する方式は、特徴ベクトルの類似度にペナルティを加えるようなアドホックな方式と異なり、教師あり学習で用いられる識別モデルを用いたクラスタリングにおいて匿名クラス割り当てに反映させて識別学習する方式である。このため、効果的にクラスタリングの精度を向上することができる。
As described above, the related word extraction method according to the present embodiment uses not only the similarity of feature vectors as a measure in clustering of word feature vectors but also the heuristics acquired from the original data as class classification matching constraints. Use as an exclusive constraint for clustering.
Unlike the ad hoc method that adds a penalty to the similarity of feature vectors, the method that uses heuristics as a constraint condition is reflected in anonymous class assignment in clustering using an identification model used in supervised learning. Discriminative learning method. For this reason, it is possible to effectively improve the accuracy of clustering.
更に、この実施の形態における関連語抽出方式は、ヒューリスティクスとして、スキーマ構造中の姉妹データ要素(同じテーブルに属するカラム)は、異なる概念を表すよう設計されていることを仮定し、それゆえ、それらデータ要素は互いに異なるクラスのデータ要素を有することを利用する。この仮定は、スキーマデータから容易に取得可能で、かつ、スキーマ設計においては広く成立することが期待される。これにより、類似した単語の使い分けを混同することなくクラスタリングをすることができる。 Furthermore, the related term extraction scheme in this embodiment assumes, as heuristics, that sister data elements (columns belonging to the same table) in the schema structure are designed to represent different concepts, and therefore These data elements are used to have different classes of data elements. This assumption can be easily obtained from schema data, and is expected to hold widely in schema design. As a result, clustering can be performed without confusing the use of similar words.
この実施の形態における関連語抽出方式は、本来区別して扱われるべき単語とそうでない単語とを判別し、関連語として抽出しないという、高精度な関連語抽出を実現する。
また、この実施の形態における関連語抽出方式は、辞書に登録されている関連語の組み合わせに基づいて学習のためのサンプルを生成する必要がないので、対象ドメインの単語が辞書にあらかじめ十分登録されていない場合であっても適用可能であり、対象ドメインの単語が辞書に登録されていない状態であっても、高精度な関連語抽出を実現することができる。
The related word extraction method in this embodiment realizes high-precision related word extraction in which a word that should be treated distinctly and a word that should not be handled are discriminated and are not extracted as related words.
In addition, the related word extraction method in this embodiment does not need to generate a sample for learning based on a combination of related words registered in the dictionary, so the words of the target domain are sufficiently registered in the dictionary in advance. Even if it is not, it can be applied, and even when the words of the target domain are not registered in the dictionary, it is possible to realize high-precision related word extraction.
なお、文脈解析部50は、カラム名構成単語27の直前や直後に位置する単語に対応づけられた文脈ベクトル54の要素の値を「1」にするだけでなく、同じカラム名のなかで離れた位置にある単語に対応づけられた文脈ベクトル54の要素の値も「1」にする構成であってもよい。
あるいは、文脈解析部50は、離れた位置にある単語に対応づけられた文脈ベクトル54の要素に、単語間の距離が遠くなるほど小さくなる数値を与える構成であってもよい。例えば、文脈解析部50は、2つ前もしくは2つ後の単語に対応づけられた文脈ベクトル54の要素の値を「1/2」、3つ前もしくは3つ後の単語に対応づけられた文脈ベクトル54の要素の値を「1/3」にする構成であってよい。
Note that the
Alternatively, the
また、特徴ベクトル生成部40は、カラム名構成単語27が表わす概念及びその上位概念に対応づけられた概念ベクトル44の要素の値を「1」にするだけでなく、カラム名構成単語27が表わす概念の下位概念に対応づけれらた要素の値も「1」にする構成であってもよい。
The feature
あるいは、特徴ベクトル生成部40は、階層が離れた概念に対応づけられた概念ベクトル44の要素に、階層差が大きくなるほど小さくなる数値を与える構成であってもよい。例えば、特徴ベクトル生成部40は、すぐ上の上位概念に対応づけられた要素の値を「1/2」、2階層上の上位概念に対応づけれらた要素の値を「1/3」にする構成であってもよい。
Alternatively, the feature
あるいは、特徴ベクトル生成部40は、カラム名構成単語27が多義語である場合、その意味の使用頻度に応じて、概念ベクトル44の要素に与える数値を按分する構成であってもよい。例えば、特徴ベクトル生成部40は、その単語の第一義である概念に対応づけられた要素の値を「0.5」、第二義である概念に対応づけられた要素の値を「0.3」、第三義である概念に対応づけられた要素の値を「0.2」にする構成であってもよい。
Alternatively, the feature
また、クラスベクトル63は、排他制約違反を見つけるため、そのカラムのカラム名に含まれる単語に割り当てたクラスの組合せと、他のカラムのカラム名に含まれる単語に割り当てたクラスの組合せとが一致するか否かを判定するためのものである。単語分類部60は、クラスベクトル63を生成する代わりに、他のデータを使って、排他条件違反を見つける構成であってもよい。例えば、単語分類部60は、カラム名に含まれる単語に割り当てたクラスのリストや集合を生成し、生成したリストや集合を使って、そのカラムのカラム名に含まれる単語に割り当てたクラスの組合せと、他のカラムのカラム名に含まれる単語に割り当てたクラスの組合せとが一致するか否かを判定する構成であってもよい。
The
また、単語分類部60(重みベクトル算出部)は、多クラスロジスティクス回帰ではなく、他の最適化手法を用いて、重みパラメータベクトル65(重みベクトル)を算出する構成であってもよい。
あるいは、単語分類部60は、貪欲法ではなく、他のクラスタリング手法を用いて、単語をクラスタリングする構成であってもよい。
The word classification unit 60 (weight vector calculation unit) may be configured to calculate the weight parameter vector 65 (weight vector) using another optimization method instead of multi-class logistics regression.
Alternatively, the
実施の形態2.
実施の形態2について、図21を用いて説明する。
なお、実施の形態1と共通する部分については、同一の符号を付し、説明を省略する。
In addition, about the part which is common in
この実施の形態における関連カラム抽出システム900の全体構成、関連カラム判定装置903などのハードウェア構成、関連カラム判定装置903のブロック構成は、実施の形態1と同様である。
The overall configuration of the related
図21は、この実施の形態における文脈解析部50の動作の一例を示す説明するための図である。
FIG. 21 is a diagram for explaining an example of the operation of the
文脈解析部50(特徴ベクトル生成部の一例。)は、異なる位置に出現する同じ綴りの単語を区別せず、それぞれのカラム名構成単語27について、文脈ベクトル54を生成する。
文脈ベクトル54の要素のうち、前置単語51及び後置単語52に対応づけられた要素は、その単語の前接単語及び後接単語の出現頻度を表わす。また、文脈ベクトル54の要素のうち、テーブル名構成単語53に対応づけられた要素は、その単語を含むカラムが属するテーブルであって、テーブル名構成単語53を含むテーブル名を有するテーブルの数を表わす。
The context analysis unit 50 (an example of a feature vector generation unit) generates a
Of the elements of the
例えば、文脈解析部50は、それぞれのカラム名構成単語27について、すべてのカラムのなかから、その単語を含むカラム名を有するカラムを抽出して、カラム集合とする。文脈解析部50は、抽出したカラム集合に属するカラムのカラム名を構成するカラム名構成単語27のなかから、その単語に前接する前接単語を抽出して、前接単語集合とする。なお、前接単語集合において、文脈解析部50は、同じ綴りの単語を区別する。すなわち、その単語に前接する単語が同じ綴りであるカラムが複数ある場合、前接単語集合には、同じ綴りの単語が複数含まれる。文脈解析部50は、それぞれの前置単語51について、前接単語集合のなかから、その前置単語51と一致する単語を抽出する。文脈解析部50は、抽出した単語の数を、その前置単語51に対応づけられた文脈ベクトル54の要素の値とする。
同様に、文脈解析部50は、抽出したカラム集合に属するカラムのカラム名を構成するカラム名構成単語27のなかから、その単語に後接する後接単語を抽出して、後接単語集合とする。後接単語集合においても、文脈解析部50は、同じ綴りの単語を区別する。文脈解析部50は、それぞれの後置単語52について、後接単語集合のなかから、その後置単語52と一致する単語を抽出する。文脈解析部50は、抽出した単語の数を、その後置単語52に対応づけられた文脈ベクトル54の要素の値とする。
また、文脈解析部50は、すべてのテーブルのなかから、抽出したカラム集合に属するカラムが属するテーブルを抽出して、テーブル集合とする。なお、テーブル集合において、文脈解析部50は、同じテーブルを区別しない。すなわち、同じテーブルに含まれるカラムがカラム集合内に複数ある場合でも、テーブル集合には、そのテーブルが1つだけ含まれる。文脈解析部50は、テーブル集合に属するテーブルのテーブル名を構成する単語を抽出して、テーブル名構成単語集合とする。テーブル名構成単語集合において、文脈解析部50は、同じ綴りの単語を区別する。すなわち、異なるテーブルのテーブル名に同じ綴りの単語が含まれる場合、テーブル名構成単語集合には、同じ綴りの単語が複数含まれる。文脈解析部50は、それぞれのテーブル名構成単語53について、テーブル名構成単語集合のなかから、そのテーブル名構成単語53と一致する単語を抽出する。文脈解析部50は、抽出した単語の数を、そのテーブル名構成単語53に対応づけられた文脈ベクトル54の要素の値とする。
For example, for each column name
Similarly, the
Further, the
例えば、単語「NO」が、「PURCHASE_ORDER」テーブルの「LINE_NO」カラムと、同じく「PURCHASE_ORDER」テーブルの「PHONE_NO」カラムと、「ORDER」テーブルの「ITEM_NO」カラムとの3箇所に出現しているとする。 For example, the word “NO” appears in three places: the “LINE_NO” column of the “PURCHASE_ORDER” table, the “PHONE_NO” column of the “PURCHASE_ORDER” table, and the “ITEM_NO” column of the “ORDER” table. To do.
単語「NO」について、文脈解析部50は、「LINE_NO」カラムと「PHONE_NO」カラムと「ITEM_NO」カラムとの3つのカラムからなる集合を生成して、カラム集合とする。
文脈解析部50は、単語「LINE」と単語「PHONE」と単語「ITEM」との3つの単語からなる集合を生成して、前接単語集合とする。文脈解析部50は、前置単語51に対応づけられた文脈ベクトル54の要素のうち、単語「LINE」に対応づけられた要素と、単語「PHONE」に対応づけられた要素と、単語「ITEM」に対応づけられた要素との3つの要素の値を「1」にし、それ以外の前置単語51に対応づけられた要素の値を「0」にする。
また、文脈解析部50は、単語を含まない空集合を、後接単語集合とする。文脈解析部50は、後置単語52に対応づけられた文脈ベクトル54の要素の値をすべて「0」にする。
また、文脈解析部50は、「PURCHASE_ORDER」テーブルと「ORDER」テーブルとの2つのテーブルからなる集合を生成して、テーブル集合とする。文脈解析部50は、単語「PURCHASE」と単語「ORDER」と単語「ORDER」とからなる集合(単語「ORDER」が2つ含まれる点に留意。)を生成して、テーブル名構成単語集合とする。文脈解析部50は、テーブル名構成単語53に対応づけられた文脈ベクトル54の要素のうち、単語「PURCHASE」に対応づけられた要素の値を「1」にし、単語「ORDER」に対応づけられた要素の値を「2」にし、それ以外のテーブル名構成単語53に対応づけられた要素の値を「0」にする。
For the word “NO”, the
The
In addition, the
In addition, the
文脈解析部50が、単語の出現位置を区別せず、異なる位置に出現した同じ綴りの単語を統合した文脈ベクトル54を生成するのに伴い、単語分類部60(特徴ベクトル生成部の一例。)も、単語の出現位置を区別せず、異なる位置に出現した同じ綴りの単語を統合した特徴ベクトル64を生成する。単語分類部60は、それぞれの単語について、文脈解析部50が生成した文脈ベクトル54と、特徴ベクトル生成部40が生成した概念ベクトル44とを結合して、特徴ベクトル64とする。
As the
同じ綴りの単語に対する特徴ベクトル64が一つしかないので、単語分類部60は、単語の出現位置を区別せず、それぞれのクラスに対する尤度66を算出する。したがって、単語分類部60は、平均尤度67を算出する必要がない。単語分類部60は、算出した尤度66に基づいて、単語をいずれかのクラスに分類する。
Since there is only one
以上、各実施の形態で説明した構成は、一例であり、他の構成であってもよい。例えば、異なる実施の形態で説明した構成を組み合わせた構成であってもよいし、本質的でない部分の構成を、他の構成で置き換えた構成であってもよい。 As described above, the configuration described in each embodiment is an example, and another configuration may be used. For example, the structure which combined the structure demonstrated in different embodiment may be sufficient, and the structure which replaced the structure of the non-essential part with the other structure may be sufficient.
以上説明した関連語分類装置(関連カラム判定装置903)は、複数の単語を関連する単語同士のグループ(クラス)に分類する。
関連語分類装置は、データを処理する処理装置(911)と、テキスト取得部(単語抽出部20)と、特徴ベクトル算出部(特徴ベクトル生成部40、文脈解析部50、単語分類部60)と、単語分類部(60)と、重みベクトル算出部(単語分類部60)とを有する。
上記テキスト取得部は、上記処理装置を用いて、1つ以上の単語(カラム名構成単語27)からなる単語群(カラム名)を1つ以上含むテキスト(テーブルスキーマ)を複数取得する。
上記特徴ベクトル算出部は、上記処理装置を用いて、上記テキスト取得部が取得した複数のテキストに含まれる複数の単語のそれぞれについて、上記単語の特徴を表わす特徴ベクトル(64)を算出する。
上記単語分類部は、上記処理装置を用いて、上記テキスト取得部が取得した複数のテキストに含まれる複数の単語のそれぞれを、複数のグループのいずれかに分類する。
上記重みベクトル算出部は、上記処理装置を用いて、上記複数のグループのそれぞれについて、上記特徴ベクトルとの内積が上記特徴ベクトルによって特徴を表わされた単語が上記グループに属する尤度を表わす重みベクトル(重みパラメータベクトル65)であって、上記単語分類部による分類に最もよく適合する重みベクトルを算出する。
上記単語分類部は、更に、上記処理装置を用いて、上記複数の単語のそれぞれについて上記特徴ベクトル算出部が算出した特徴ベクトルと、上記複数のグループのそれぞれについて上記重みベクトル算出部が算出した重みベクトルとに基づいて、上記複数の単語のそれぞれが上記複数のグループのそれぞれに属する尤度を算出し、算出した尤度に基づいて、上記複数の単語を分類し直す。
The related word classification device (related column determination device 903) described above classifies a plurality of words into groups (classes) of related words.
The related word classification device includes a processing device (911) for processing data, a text acquisition unit (word extraction unit 20), a feature vector calculation unit (feature
The text acquisition unit acquires a plurality of texts (table schemas) including one or more word groups (column names) made up of one or more words (column name constituent words 27) using the processing device.
The feature vector calculation unit calculates a feature vector (64) representing the feature of the word for each of a plurality of words included in the plurality of texts acquired by the text acquisition unit using the processing device.
The word classification unit classifies each of a plurality of words included in the plurality of texts acquired by the text acquisition unit into one of a plurality of groups using the processing device.
The weight vector calculation unit uses the processing device to determine, for each of the plurality of groups, a weight indicating a likelihood that a word whose feature is represented by the feature vector as an inner product with the feature vector belongs to the group. A vector (weight parameter vector 65) that is most suitable for classification by the word classification unit is calculated.
The word classification unit further uses the processing device to calculate the feature vector calculated by the feature vector calculation unit for each of the plurality of words and the weight calculated by the weight vector calculation unit for each of the plurality of groups. The likelihood that each of the plurality of words belongs to each of the plurality of groups is calculated based on the vector, and the plurality of words are reclassified based on the calculated likelihood.
これにより、構造化データなどを対象テキストとする場合でも、使い分けられている語を識別しつつ、関連語を抽出することができる。 As a result, even when structured data or the like is used as a target text, related words can be extracted while identifying words that are used properly.
上記重みベクトル算出部は、更に、上記単語分類部が分類し直した回数が所定の回数より少ない場合と、上記単語分類部が分類し直した後の分類と上記単語分類部が分類し直す前の分類とが異なる場合とのうち少なくともいずれかの場合に、上記処理装置を用いて、上記単語分類部が分類し直した後の分類に基づいて、上記重みベクトルを算出し直す。 The weight vector calculation unit further includes a case where the number of times the word classification unit reclassifies is less than a predetermined number of times, and a classification after the word classification unit reclassifies and before the word classification unit reclassifies In the case where the classification is different from at least one of the classifications, the weight vector is recalculated using the processing device based on the classification after the word classification unit reclassifies.
重みベクトルの算出と、単語の分類とを交互に繰り返すことにより、使い分けられている語を識別しつつ、関連語を抽出することができる。 By alternately repeating the calculation of the weight vector and the word classification, it is possible to extract related words while identifying the words that are used properly.
上記単語分類部は、ある単語群に含まれる1つ以上の単語をそれぞれ分類したグループの組と、上記単語群と同じテキストに属する他の1つの単語群に含まれる1つ以上の単語をそれぞれ分類したグループの組とが異なるように、上記複数の単語を分類する。 The word classifying unit includes a group group in which one or more words included in a certain word group are classified, and one or more words included in another word group belonging to the same text as the word group. The plurality of words are classified so that the group of the classified group is different.
データベース定義などの構造化データの特徴に基づいて単語を分類するので、使い分けられている語を識別しつつ、関連語を抽出することができる。 Since words are classified based on features of structured data such as a database definition, related words can be extracted while identifying different words.
上記単語分類部は、ある単語を分類したグループと、上記複数のテキストのなかで上記単語と異なる位置に出現する上記単語と同一の単語を分類したグループとが同じになるように、上記複数の単語を分類する。 The word classifying unit is configured such that a group in which a certain word is classified and a group in which the same word as the word appearing at a position different from the word in the plurality of texts are the same are the same. Classify words.
データベース定義などの構造化データの特徴に基づいて単語を分類するので、使い分けられている語を識別しつつ、関連語を抽出することができる。 Since words are classified based on features of structured data such as a database definition, related words can be extracted while identifying different words.
上記特徴ベクトル算出部は、上記複数の単語のそれぞれについて、上記単語が表わす概念と、上記単語が属する単語群に属する他の単語(前置単語51、後置単語52)と、上記単語が属する単語群の名称(テーブル名)を構成する単語(テーブル名構成単語53)とのうち少なくともいずれかに基づいて、上記特徴ベクトルを算出する。
The feature vector calculation unit, for each of the plurality of words, the concept represented by the word, other words (prefix
単語が表わす一般的な概念や、単語が現れる文脈などに基づいて、単語を分類するので、使い分けられている語を識別しつつ、関連語を抽出することができる。 Since the words are classified based on the general concept represented by the word, the context in which the word appears, and the like, it is possible to extract related words while identifying the words that are used properly.
上記テキスト取得部が取得するテキストは、データベースにおけるテーブルを定義するテーブル定義データである。上記単語群は、上記テーブルを構成するカラムのカラム名である。
上記関連語分類装置は、更に、関連カラム判定部(関連語決定部70)を有する。
上記関連カラム判定部は、上記処理装置を用いて、上記単語分類部があるカラムのカラム名を構成する1つ以上の単語をそれぞれ分類したグループの組と、上記単語分類部が別のカラムのカラム名を構成する1つ以上の単語をそれぞれ分類したグループの組とが一致する場合に、上記2つのカラムが、同一の内容を格納するカラム(関連カラム)である可能性があると判定する。
The text acquired by the text acquisition unit is table definition data that defines a table in the database. The word group is a column name of columns constituting the table.
The related word classification device further includes a related column determination unit (related word determination unit 70).
The related column determination unit uses the processing device to group a group of one or more words constituting the column name of the column in which the word classification unit is located, and the word classification unit in a different column. When a pair of groups in which one or more words constituting a column name are respectively matched, it is determined that there is a possibility that the two columns are columns (related columns) that store the same contents. .
単語の分類結果に基づいて、関連カラムである可能性があるカラムを判定するので、関連カラムを判別する作業の効率を高めることができる。 Since a column that may be a related column is determined based on the word classification result, the efficiency of the work of determining the related column can be improved.
10 関連語抽出元データ、20 単語抽出部、21 テーブル名構成単語データ、22,25 テーブル識別子、23,53 テーブル名構成単語、24 カラム名構成単語データ、26 カラム識別子、27 カラム名構成単語、30 概念辞書データ、31 概念データ、32,41 概念識別子、33 概念表示語、34 上位概念識別子、40 特徴ベクトル生成部、44 概念ベクトル、50 文脈解析部、51 前置単語、52 後置単語、54 文脈ベクトル、60 単語分類部、61,62 クラス識別子、63 クラスベクトル、64 特徴ベクトル、65 重みパラメータベクトル、66 尤度、67 平均尤度、68 暫定正解クラスリスト、69 割当順単語リスト、70 関連語決定部、71 関連カラムデータ、80 関連語データ、900 関連カラム抽出システム、901 データベース定義記憶装置、902 概念辞書記憶装置、903 関連カラム判定装置、911 処理装置、912 入力装置、913 出力装置、914 記憶装置、S800 関連抽出処理、S801 単語抽出処理、S802 文脈解析処理、S803 概念解析処理、S804 単語分類処理、S805 関連決定処理、S810 初期化工程、S811,S831 単語選択工程、S812,S832 暫定クラス割当工程、S813 カラム選択工程、S814 兄弟カラム選択工程、S815 排他制約判定工程、S820 重み最適化工程、S830 分類算出工程、S840 収束判定工程。 10 related word extraction source data, 20 word extraction unit, 21 table name constituent word data, 22, 25 table identifier, 23, 53 table name constituent word, 24 column name constituent word data, 26 column identifier, 27 column name constituent word, 30 concept dictionary data, 31 concept data, 32, 41 concept identifier, 33 concept display word, 34 superordinate concept identifier, 40 feature vector generation unit, 44 concept vector, 50 context analysis unit, 51 prefix word, 52 suffix word, 54 Context Vector, 60 Word Classifier, 61, 62 Class Identifier, 63 Class Vector, 64 Feature Vector, 65 Weight Parameter Vector, 66 Likelihood, 67 Average Likelihood, 68 Temporary Correct Answer Class List, 69 Allocation Order Word List, 70 Related word determination unit, 71 Related column data, 80 Related word data , 900 related column extraction system, 901 database definition storage device, 902 conceptual dictionary storage device, 903 related column determination device, 911 processing device, 912 input device, 913 output device, 914 storage device, S800 related extraction processing, S801 word extraction processing , S802 context analysis processing, S803 concept analysis processing, S804 word classification processing, S805 association determination processing, S810 initialization step, S811, S831 word selection step, S812, S832 provisional class assignment step, S813 column selection step, S814 sibling column selection Step, S815 Exclusive constraint determination step, S820 weight optimization step, S830 classification calculation step, S840 convergence determination step.
Claims (8)
データを処理する処理装置と、テキスト取得部と、特徴ベクトル算出部と、単語分類部と、重みベクトル算出部とを有し、
上記テキスト取得部は、上記処理装置を用いて、1つ以上の単語からなる単語群を1つ以上含むテキストを複数取得し、
上記特徴ベクトル算出部は、上記処理装置を用いて、上記テキスト取得部が取得した複数のテキストに含まれる複数の単語のそれぞれについて、上記単語の特徴を表わす特徴ベクトルを算出し、
上記単語分類部は、上記処理装置を用いて、上記テキスト取得部が取得した複数のテキストに含まれる複数の単語のそれぞれを、複数のグループのいずれかに分類し、
上記重みベクトル算出部は、上記処理装置を用いて、上記複数のグループのそれぞれについて、上記特徴ベクトルとの内積が上記特徴ベクトルによって特徴を表わされた単語が上記グループに属する尤度を表わす重みベクトルであって、上記単語分類部による分類に最もよく適合する重みベクトルを算出し、
上記単語分類部は、更に、上記処理装置を用いて、上記複数の単語のそれぞれについて上記特徴ベクトル算出部が算出した特徴ベクトルと、上記複数のグループのそれぞれについて上記重みベクトル算出部が算出した重みベクトルとに基づいて、上記複数の単語のそれぞれが上記複数のグループのそれぞれに属する尤度を算出し、算出した尤度に基づいて、上記複数の単語を分類し直す
ことを特徴とする関連語分類装置。 In a related word classification device for classifying a plurality of words into groups of related words,
A processing device for processing data, a text acquisition unit, a feature vector calculation unit, a word classification unit, and a weight vector calculation unit;
The text acquisition unit acquires a plurality of texts including one or more word groups composed of one or more words using the processing device,
The feature vector calculation unit calculates a feature vector representing the feature of the word for each of a plurality of words included in the plurality of texts acquired by the text acquisition unit using the processing device;
The word classification unit classifies each of the plurality of words included in the plurality of texts acquired by the text acquisition unit into any of a plurality of groups using the processing device,
The weight vector calculation unit uses the processing device to determine, for each of the plurality of groups, a weight indicating a likelihood that a word whose feature is represented by the feature vector as an inner product with the feature vector belongs to the group. A vector that calculates a weight vector that best fits the classification by the word classification unit,
The word classification unit further uses the processing device to calculate the feature vector calculated by the feature vector calculation unit for each of the plurality of words and the weight calculated by the weight vector calculation unit for each of the plurality of groups. A related word characterized by calculating a likelihood that each of the plurality of words belongs to each of the plurality of groups based on the vector, and reclassifying the plurality of words based on the calculated likelihood Classification device.
ことを特徴とする請求項1に記載の関連語分類装置。 The weight vector calculation unit further includes a case where the number of times the word classification unit reclassifies is less than a predetermined number of times, and a classification after the word classification unit reclassifies and before the word classification unit reclassifies The weight vector is recalculated on the basis of the classification after the word classification unit reclassifies using the processing device in at least one of cases where the classification is different from The related word classification device according to claim 1.
ことを特徴とする請求項1または請求項2に記載の関連語分類装置。 The word classifying unit includes a group group in which one or more words included in a certain word group are classified, and one or more words included in another word group belonging to the same text as the word group. The related word classification device according to claim 1 or 2, wherein the plurality of words are classified so that a group of the classified groups is different.
ことを特徴とする請求項1乃至請求項3のいずれかに記載の関連語分類装置。 The word classifying unit is configured such that a group in which a certain word is classified and a group in which the same word as the word appearing at a position different from the word in the plurality of texts are the same are the same. The related word classification device according to claim 1, wherein words are classified.
ことを特徴とする請求項1乃至請求項4のいずれかに記載の関連語分類装置。 The feature vector calculation unit includes, for each of the plurality of words, a concept represented by the word, another word belonging to the word group to which the word belongs, and a word constituting the name of the word group to which the word belongs. 5. The related word classification device according to claim 1, wherein the feature vector is calculated based on at least one of the above.
上記関連語分類装置は、更に、関連カラム判定部を有し、
上記関連カラム判定部は、上記処理装置を用いて、上記単語分類部があるカラムのカラム名を構成する1つ以上の単語をそれぞれ分類したグループの組と、上記単語分類部が別のカラムのカラム名を構成する1つ以上の単語をそれぞれ分類したグループの組とが一致する場合に、上記2つのカラムが、同一の内容を格納するカラムである可能性があると判定する
ことを特徴とする請求項1乃至請求項5のいずれかに記載の関連語分類装置。 The text acquired by the text acquisition unit is table definition data that defines a table in the database, and the word group is a column name of a column constituting the table,
The related word classification device further includes a related column determination unit,
The related column determination unit uses the processing device to group a group of one or more words constituting the column name of the column in which the word classification unit is located, and the word classification unit in a different column. It is characterized in that it is determined that there is a possibility that the above two columns are columns storing the same contents when a set of groups in which one or more words constituting the column name are respectively matched. The related word classification device according to any one of claims 1 to 5.
上記テキスト取得部が、上記処理装置を用いて、1つ以上の単語からなる単語群を1つ以上含むテキストを複数取得し、
上記特徴ベクトル算出部が、上記処理装置を用いて、上記テキスト取得部が取得した複数のテキストに含まれる複数の単語のそれぞれについて、上記単語の特徴を表わす特徴ベクトルを算出し、
上記単語分類部が、上記処理装置を用いて、上記テキスト取得部が取得した複数のテキストに含まれる複数の単語のそれぞれを、複数のグループのいずれかに分類し、
上記重みベクトル算出部が、上記処理装置を用いて、上記複数のグループのそれぞれについて、上記特徴ベクトルとの内積が上記特徴ベクトルによって特徴を表わされた単語が上記グループに属する尤度を表わす重みベクトルであって、上記単語分類部による分類に最もよく適合する重みベクトルを算出し、
上記単語分類部が、上記処理装置を用いて、上記複数の単語のそれぞれについて上記特徴ベクトル算出部が算出した特徴ベクトルと、上記複数のグループのそれぞれについて上記重みベクトル算出部が算出した重みベクトルとに基づいて、上記複数の単語のそれぞれが上記複数のグループのそれぞれに属する尤度を算出し、算出した尤度に基づいて、上記複数の単語を分類し直す
ことを特徴とする関連語分類方法。 A related word classification device having a processing device that processes data, a text acquisition unit, a feature vector calculation unit, a word classification unit, and a weight vector calculation unit classifies a plurality of words into groups of related words. In the related term classification method,
The text acquisition unit acquires a plurality of texts including one or more word groups composed of one or more words using the processing device,
The feature vector calculation unit calculates a feature vector representing the feature of the word for each of a plurality of words included in the plurality of texts acquired by the text acquisition unit using the processing device;
The word classification unit classifies each of a plurality of words included in the plurality of texts acquired by the text acquisition unit into any of a plurality of groups using the processing device,
The weight vector calculation unit uses the processing device to determine, for each of the plurality of groups, a weight representing a likelihood that a word whose feature is represented by the feature vector as an inner product with the feature vector belongs to the group. A vector that calculates a weight vector that best fits the classification by the word classification unit,
The word classifying unit using the processing device, the feature vector calculated by the feature vector calculating unit for each of the plurality of words, and the weight vector calculated by the weight vector calculating unit for each of the plurality of groups; Based on the above, the related word classification method characterized by calculating the likelihood that each of the plurality of words belongs to each of the plurality of groups, and reclassifying the plurality of words based on the calculated likelihood .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011269000A JP2013120534A (en) | 2011-12-08 | 2011-12-08 | Related word classification device, computer program, and method for classifying related word |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011269000A JP2013120534A (en) | 2011-12-08 | 2011-12-08 | Related word classification device, computer program, and method for classifying related word |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013120534A true JP2013120534A (en) | 2013-06-17 |
Family
ID=48773140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011269000A Pending JP2013120534A (en) | 2011-12-08 | 2011-12-08 | Related word classification device, computer program, and method for classifying related word |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013120534A (en) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016024502A (en) * | 2014-07-16 | 2016-02-08 | 日本電信電話株式会社 | Model parameter estimation device, method, and program |
JP2016110646A (en) * | 2014-12-05 | 2016-06-20 | 富士通株式会社 | Table definition device and method |
WO2018028065A1 (en) * | 2016-08-11 | 2018-02-15 | 中兴通讯股份有限公司 | Method and device for classifying short message and computer storage medium |
JP2018106662A (en) * | 2016-12-22 | 2018-07-05 | キヤノン株式会社 | Information processor, information processing method, and program |
CN109933714A (en) * | 2019-03-18 | 2019-06-25 | 北京搜狗科技发展有限公司 | A kind of calculation method, searching method and the relevant apparatus of entry weight |
CN110069633A (en) * | 2019-04-24 | 2019-07-30 | 普元信息技术股份有限公司 | Big data realizes that auxiliary formulates the system and method for data standard in administering |
WO2019171538A1 (en) * | 2018-03-08 | 2019-09-12 | 日本電気株式会社 | Meaning inference system, method, and program |
WO2019171537A1 (en) * | 2018-03-08 | 2019-09-12 | 日本電気株式会社 | Meaning inference system, method, and program |
JP2020184294A (en) * | 2019-04-26 | 2020-11-12 | Arithmer株式会社 | Dialog management server, dialog management method, and program |
US11062213B2 (en) | 2016-08-05 | 2021-07-13 | Nec Corporation | Table-meaning estimation system, method, and program |
-
2011
- 2011-12-08 JP JP2011269000A patent/JP2013120534A/en active Pending
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016024502A (en) * | 2014-07-16 | 2016-02-08 | 日本電信電話株式会社 | Model parameter estimation device, method, and program |
JP2016110646A (en) * | 2014-12-05 | 2016-06-20 | 富士通株式会社 | Table definition device and method |
US11062213B2 (en) | 2016-08-05 | 2021-07-13 | Nec Corporation | Table-meaning estimation system, method, and program |
WO2018028065A1 (en) * | 2016-08-11 | 2018-02-15 | 中兴通讯股份有限公司 | Method and device for classifying short message and computer storage medium |
JP2018106662A (en) * | 2016-12-22 | 2018-07-05 | キヤノン株式会社 | Information processor, information processing method, and program |
US11551134B2 (en) | 2016-12-22 | 2023-01-10 | Canon Kabushiki Kaisha | Information processing apparatus, information processing method, and storage medium |
WO2019171538A1 (en) * | 2018-03-08 | 2019-09-12 | 日本電気株式会社 | Meaning inference system, method, and program |
WO2019171537A1 (en) * | 2018-03-08 | 2019-09-12 | 日本電気株式会社 | Meaning inference system, method, and program |
JPWO2019171537A1 (en) * | 2018-03-08 | 2021-02-12 | 日本電気株式会社 | Semantic estimation systems, methods and programs |
JPWO2019171538A1 (en) * | 2018-03-08 | 2021-03-04 | 日本電気株式会社 | Semantic estimation systems, methods and programs |
US11948098B2 (en) | 2018-03-08 | 2024-04-02 | Nec Corporation | Meaning inference system, method, and program |
CN109933714A (en) * | 2019-03-18 | 2019-06-25 | 北京搜狗科技发展有限公司 | A kind of calculation method, searching method and the relevant apparatus of entry weight |
CN110069633A (en) * | 2019-04-24 | 2019-07-30 | 普元信息技术股份有限公司 | Big data realizes that auxiliary formulates the system and method for data standard in administering |
CN110069633B (en) * | 2019-04-24 | 2022-12-06 | 普元信息技术股份有限公司 | System and method for realizing auxiliary data standard establishment in big data management |
JP2020184294A (en) * | 2019-04-26 | 2020-11-12 | Arithmer株式会社 | Dialog management server, dialog management method, and program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2013120534A (en) | Related word classification device, computer program, and method for classifying related word | |
US10915564B2 (en) | Leveraging corporal data for data parsing and predicting | |
Kalra et al. | Importance of Text Data Preprocessing & Implementation in RapidMiner. | |
Ren et al. | Afet: Automatic fine-grained entity typing by hierarchical partial-label embedding | |
CN109844742B (en) | Analysis system | |
KR20180011254A (en) | Web page training methods and devices, and search intent identification methods and devices | |
CN108124477A (en) | Segmenter is improved based on pseudo- data to handle natural language | |
WO2005050473A2 (en) | Clustering of text for structuring of text documents and training of language models | |
JP6291443B2 (en) | Connection relationship estimation apparatus, method, and program | |
CN110705304B (en) | Attribute word extraction method | |
CN112989208B (en) | Information recommendation method and device, electronic equipment and storage medium | |
WO2022154897A1 (en) | Classifier assistance using domain-trained embedding | |
JP2018045524A (en) | Learning program, learning method, and learning device | |
US11886515B2 (en) | Hierarchical clustering on graphs for taxonomy extraction and applications thereof | |
CN112818121A (en) | Text classification method and device, computer equipment and storage medium | |
CN115062621A (en) | Label extraction method and device, electronic equipment and storage medium | |
Baboo et al. | Sentiment analysis and automatic emotion detection analysis of twitter using machine learning classifiers | |
CN108038109A (en) | Method and system, the computer program of Feature Words are extracted from non-structured text | |
JP5291645B2 (en) | Data extraction apparatus, data extraction method, and program | |
JP2019016074A (en) | Ontology generation device, ontology generation program and ontology generation method | |
Shafi et al. | [WiP] Web Services Classification Using an Improved Text Mining Technique | |
JP2014096058A (en) | Inter-document relationship estimation model learning unit, inter-document relationship estimation device, method and program | |
CN107220249A (en) | Full-text search based on classification | |
JP2016197289A (en) | Parameter learning device, similarity calculation device and method, and program | |
Alian et al. | Unsupervised learning blocking keys technique for indexing Arabic entity resolution |