JP3831392B2 - 言語知識獲得プログラム - Google Patents

言語知識獲得プログラム Download PDF

Info

Publication number
JP3831392B2
JP3831392B2 JP2004235582A JP2004235582A JP3831392B2 JP 3831392 B2 JP3831392 B2 JP 3831392B2 JP 2004235582 A JP2004235582 A JP 2004235582A JP 2004235582 A JP2004235582 A JP 2004235582A JP 3831392 B2 JP3831392 B2 JP 3831392B2
Authority
JP
Japan
Prior art keywords
character string
occurrence frequency
character
basic data
data file
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.)
Expired - Fee Related
Application number
JP2004235582A
Other languages
English (en)
Other versions
JP2005032269A (ja
Inventor
顕 足立
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2004235582A priority Critical patent/JP3831392B2/ja
Publication of JP2005032269A publication Critical patent/JP2005032269A/ja
Application granted granted Critical
Publication of JP3831392B2 publication Critical patent/JP3831392B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Machine Translation (AREA)

Description

本発明は、言語知識獲得プログラムに係り、特に自然言語処理に利用される言語知識獲得プログラムに関する。
例えば日本語などのように単語と単語との境界が不明確な言語をコンピュータで処理するためには、単語の同定を行う必要がある。このような単語の同定は、形態素解析を用いて行われる。形態素解析とは、形態素解析のための辞書および文法を用いて隣接2項間での形態素の隣接可能性を評価しながら、最適な形態素列を取得するものである。
近年では、機械学習によって統計的に形態素分割位置を学習する方法が提案されているが、既存の形態素解析結果を基礎データとして学習しているため、形態素解析結果の品質向上に対する有効な手段でない。また、既存の形態素解析結果から機械学習を行うため、既存の形態素解析結果が誤って解析したものもそのまま学習してしまうという問題があった。なお、正しく解析された形態素解析結果のみから機械学習をすれば問題はないが、膨大な機械学習量が必要となるために実現の見込みは低い。
また、形態素解析で用いる文法は、2−gramの形式で記述された隣接2項関係に関する規則である。しかし、言語現象のすべてを満足できる規則を構築することは非常に困難であるという問題があった。
さらに、形態素解析で用いる辞書は、文法的な素性を備えたものである。したがって、辞書の構築時に扱ったデータを処理すれば高い精度を得られるが、全く異なった分野のデータに適用すると辞書が十分に対応しきれず、十分な精度を得ることができないという問題があった。
本来、形態素解析で用いる辞書は、扱うデータの分野に合わせて構築することが望ましい。しかしながら、形態素解析で用いる辞書の構築には多大な手間および膨大なコストを要するという問題があった。
本発明は、上記の点に鑑みなされたもので、形態素解析で用いる辞書を自動生成することができ、形態素解析で用いていた文法を用いることなく形態素解析を行うことが可能な言語知識獲得プログラムを提供することを目的とする。
そこで、上記課題を解決するため、本発明は、コンピュータを、解析対象メモリから解析対象文を取得し、該解析対象文の文字列の全ての組合せを基礎データファイルに出力する抽出手段と、前記基礎データファイルのソートを行う第一のソート手段と、前記基礎データファイルに格納されている各文字列の生起頻度を計算する第一の生起頻度計算手段と、前記基礎データファイルの隣接する一の文字列と該一の文字列の部分文字列の生起頻度を比較し、該生起頻度が同一であった場合は、該部分文字列を除去する第一の除去手段と、前記基礎データファイルの一の文字列の生起頻度を、該一の文字列を部分文字列とする隣接する一の文字列の生起頻度を除いた数として書き換える第一の独立生起頻度計算手段と、前記基礎データファイルの各文字列を構成する文字の前後を置換する第一の文字列順序置換手段と、前記基礎データファイルのソートを行う第二のソート手段と、前記基礎データファイルに格納されている各文字列の生起頻度を計算する第二の生起頻度計算手段と、前記基礎データファイルの隣接する一の文字列と該一の文字列の部分文字列の生起頻度を比較し、該生起頻度が同一であった場合は、該部分文字列を除去する第二の除去手段と、前記基礎データファイルの一の文字列の生起頻度を、該一の文字列を部分文字列とする隣接する一の文字列の生起頻度を除いた数として書き換える第二の独立生起頻度計算手段と、前記基礎データファイルの各文字列を構成する文字の前後を置換する第二の文字列順序置換手段と、前記基礎データファイルに格納された文字列、該文字列ごとの生起頻度、該文字列ごとの独立生起頻度を言語知識として出力する出力手段として動作させることを特徴とする。
このような言語知識獲得プログラムでは、形態素解析を行う文の分割位置を分割点の数に応じて決定することにより、形態素解析を行うことができる。したがって、言語知識を形態素解析で用いる辞書として利用することにより、形態素解析で用いていた文法を用いることなく形態素解析を行うことが可能である。
上述の如く、本発明の言語知識獲得プログラムによれば、解析対象文から文字列の全ての組合せを出力し、出力した文字列の重複を除去して言語知識として出力する。この言語知識は形態素解析で用いる辞書として利用できるので、形態素解析で用いる辞書を自動生成することが可能である。
また、本発明の言語知識獲得プログラムによれば、形態素解析を行う文の分割位置を分割点の数に応じて決定することで、形態素解析を行うことができる。したがって、言語知識を形態素解析で用いる辞書として利用することにより、形態素解析で用いていた文法を用いることなく形態素解析を行うことが可能である。
次に、本発明を実施するための最良の形態を、以下の実施例に基づき図面を参照しつつ説明していく。
図1は、本発明の言語知識獲得プログラムおよび形態素解析プログラムを実行するコンピュータシステムの一実施例のハードウェア構成図を示す。言語知識獲得プログラムおよび形態素解析プログラムを実行するコンピュータシステム1は、それぞれバスBで相互に接続されている入力装置10,表示装置11,ドライブ装置12,記録媒体13,補助記憶装置14,メモリ装置15,演算処理装置16を有するように構成される。
入力装置10はキーボード及びマウスなどで構成され、様々な操作指示を入力するために用いられる。表示装置11は、操作に必要な各種ウインドウやデータ等を表示する。
言語知識獲得プログラムおよび形態素解析プログラムは、CD−ROM等の記録媒体13によって提供される。言語知識獲得プログラムおよび形態素解析プログラムを記録した記録媒体13は、ドライブ装置12にセットされ、言語知識獲得プログラムおよび形態素解析プログラムが記録媒体13からドライブ装置12を介して補助記憶装置14にインストールされる。
補助記憶装置14は、インストールされた言語知識獲得プログラムおよび形態素解析プログラムを格納すると共に、必要なファイルやデータ等を格納する。例えば補助記憶装置14は、言語知識獲得プログラムおよび形態素解析プログラムの処理に必要な各種テーブルを格納している。なお、各種テーブルはコンピュータシステム1の他に設けられたデータベースサーバに管理させてもよい。
メモリ装置15は、コンピュータシステム1の起動時に補助記憶装置14から言語知識獲得プログラムおよび形態素解析プログラムを読み出して格納する。演算処理装置16は、メモリ装置15に格納された言語知識獲得プログラムおよび形態素解析プログラムに従って処理を実行する。
次に、言語知識獲得プログラムの詳細について説明する。言語知識獲得プログラムは、n−gramを用いて言語知識を獲得するためのものである。n−gramとは、n文字またはn単語の連鎖確率を指すものである。特に、n−gramは、文字として扱う場合を文字n−gram,単語として扱う場合を単語n−gramと区別して表現される。
n−gramは、膨大なデータを扱うために解析対象となるデータを絞った形でその有効性が示されてきた。例えば特開平8−161340号公報に記載された連語自動抽出装置は、単語n−gramを用いることで扱うデータを小さくする試みがなされている。しかし、解析対象となるデータを絞った形や単語n−gramを用いることで得られたデータは、予め想像可能なデータや本来言語が持っている性質を十分反映しないデータとなる場合が多い。
単語n−gramは単語として扱っているため、n−gramを抽出する以前に単語を認識するための辞書を用いなければならない。ここで用いる辞書は、人間のノウハウとして集められた語のセットであり、必ずしも言語現象を的確に表現したものでない。さらに、単語を認識する際の認識ミスを否定することはできない。このため、単語n−gramを用いることで得られたデータは、言語が持つ意味のまとまりを言語知識として十分に取り出せていない場合がある。
また、解析対象となるデータを絞った形では、情報量の問題がある。曖昧さの多い自然言語では出来るだけ多くのデータを用いて解析することが望ましく、小規模なデータでそれなりのものが得られたとしてもn−gramの有効性を示すにとどまり、実用可能なデータのセットを取り出せない。
そこで、文字n−gramで言語知識を獲得する方法が提案されている。例えば特開平11−184866号公報には、文字n−gramで言語知識を獲得する自然言語統計データベース装置が記載されている。しかし、特開平11−184866号公報に記載された自然言語統計データベース装置は、後述するような後方に内包する文字列を除去できない。
n−gramを用いてデータを取り出すシステムでは、扱う文字数や単語数を無制限とすると処理が膨大となるため、扱う文字数や単語数を予め決定しておく必要がある。そこで、n−gramを用いてデータを取り出すシステムではn=2としたbi−gramやn=3としたtri−gramなどとして扱う対象を限定している。
しかし、n−gramで言語知識を獲得する場合、扱う文字数や単語数を決定しなければならないということは未知の言語現象に対して予め閾値を設定することとなり、言語現象を的確に捉えるための妨げとなる。すなわち、自然言語処理では、扱う対象となる言語自身に曖昧性があり、人間により見つけられてきたヒューリスティックス(定性的ノウハウ)を用いた時点で言語現象と異なった結果を得ることになる。
このように、n−gramで言語知識を獲得する場合、扱う対象について何らかの制約(例えば、データ量,単語単位,文字数限定など)を与えなければならない。例えば文字数限定を与えてn−gramで言語知識を獲得する場合、十分に大きなnを設定すると処理自身が重くなり、nを小さくすると言語現象を捕らえられない可能性がある。
そこで、本発明の言語知識獲得プログラムでは、文字n−gramを用いて言語知識を獲得するときに、システム的な制約を与えなくても十分に実用的な処理時間で結果を得るようにする。なお、言語知識の獲得は頻繁に発生するものではないため、リアルタイムに処理できるほどの能力を要求されない。
本発明の言語知識獲得プログラムは、安定した生起頻度で得られた文字列の連続を、その文字列自身が固有の意味を持つ単位であると仮定する。文字列自身が固有の意味を持つ単位としては、例えば単語や慣用表現が該当する。
つまり、本発明の言語知識獲得プログラムは、システム的な制約を排除することにより、先入観なしに言語現象を捕捉し、より言語現象に近い文字の連続を導出する。
以下、言語知識獲得プログラムの具体的な処理について説明する。図2は、言語知識獲得処理の一例のフローチャートを示す。図2中、ステップS1では、文字n−gramを用いて言語知識を獲得するために必要な基礎データの抽出を行う。ここで、基礎データ抽出処理について図3を参照しつつ説明する。
図3は、基礎データ抽出処理の一例のフローチャートを示す。基礎データ抽出処理は、記事データベース21および基礎データファイル22のオープン処理を行った後でステップS11に進む。ステップS11では、演算処理装置16が記事データベース21から解析対象とする1文を取得する。
ステップS11に続いてステップS12に進み、演算処理装置16はステップS11で取得した解析対象とする1文を句点または読点で分割する。図4は、文分割,読点分割処理の一例のフローチャートを示す。図5は、文分割,読点分割処理の一例の説明図を示す。
図4中、ステップS21では、演算処理装置16が、解析対象とする1文の先頭から1文字ずつ読み込む。ステップS21に続いてステップS22に進み、演算処理装置16はステップS21で読み込んだ文字が句点であるか否かを判定する。読み込んだ文字が句点であると判定すると(S22においてYES)、演算処理装置16はステップS24に進む。一方、読み込んだ文字が句点でないと判定すると(S22においてNO)、演算処理装置16はステップS23に進む。
ステップS23では、演算処理装置16が、ステップS21で読み込んだ文字が文末であるか否かを判定する。読み込んだ文字が文末でないと判定すると(S23においてNO)、演算処理装置16はステップS21に進み、次の1文字を読み込む。一方、読み込んだ文字が文末であると判定すると(S23においてYES)、演算処理装置16はステップS24に進む。
ステップS24では、演算処理装置16が、解析対象とする1文の先頭から1文字ずつ読み込む。ステップS24に続いてステップS25に進み、演算処理装置16はステップS24で読み込んだ文字が読点であるか否かを判定する。読み込んだ文字が読点であると判定すると(S25においてYES)、演算処理装置16はステップS27に進む。一方、読み込んだ文字が読点でないと判定すると(S25においてNO)、演算処理装置16はステップS26に進む。
ステップS26では、演算処理装置16が、ステップS24で読み込んだ文字が文末であるか否かを判定する。読み込んだ文字が文末でないと判定すると(S26においてNO)、演算処理装置16はステップS24に進み、次の1文字を読み込む。一方、読み込んだ文字が文末であると判定すると(S26においてYES)、演算処理装置16はステップS27に進む。ステップS27では、演算処理装置16が、文頭から句点または読点までを解析対象範囲に設定して解析対象メモリ23に格納する。
例えば図5のように、解析対象とする1文が『「今日は良い天気だ。」と太郎は叫んだ。』である場合、先頭から1文字ずつ句点か読点かを判断し、句点を見つけた部分で解析対象とする1文を「今日は良い天気だ。」と「と太郎は叫んだ。」とに分割する。
なお、文分割、読点分割処理では、解析対象とする1文に複数文が埋め込まれている場合、句点で分割される。また、読点は形式的に語の明示的なセパレータであることから、解析対象とする1文は読点でも分割される。
図5の例では、解析対象とする1文に読点が含まれていないが、句点で分割される場合の処理と同様である。また、図5の例では、解析対象とする1文を句点または読点により分割した部分を順番に文字n−gram解析を行う例について説明しているが、解析対象とする1文を最後まで分割した後で順番に文字n−gram解析を行ってもよい。
ステップS12に続いてステップS13に進み、演算処理装置16はステップS12で分割した部分の文字n−gram解析を行う。図6は、文字n−gram解析処理の一例のフローチャートを示す。図7は、文字n−gram解析処理の一例の説明図を示す。
図6中、ステップS31では、演算処理装置16が、解析対象メモリ23からステップS27で設定した解析対象範囲の1文を読み込む。例えば図7では、解析対象範囲の1文として「今日は良い天気だ」が読み込まれている。ステップS31に続いてステップS32に進み、演算処理装置16はステップS31で読み込んだ1文に文頭を設定する。例えば図7では、「今」が文頭として設定される。
ステップS32に続いてステップS33に進み、演算処理装置16は文頭が文末と同じ文字に設定されたか否かを判定する。文頭が文末と同じ文字に設定されたと判定すると(S33においてYES)、演算処理装置16は処理を終了する。一方、文頭が文末と同じ文字に設定されていないと判定すると(S33においてNO)、演算処理装置16はステップS34に進む。
ステップS34では、演算処理装置16が、基礎データとして出力する文字列の文字数nの初期値(n=1)を設定する。ステップS34に続いてステップS35に進み、演算処理装置16はステップS31で読み込んだ1文の文頭から文字数nを切り取って基礎データとして基礎データファイル22に格納する。例えば図7では、「今」を基礎データとして基礎データファイル22に格納する。
ステップS35に続いてステップS36に進み、演算処理装置16は文頭から文末までの文字数と文字数nとが同じであるか、言い替えれば文末であるか否かを判定する。文末であると判定すると(S36においてYES)、演算処理装置16はステップS32に進み、文頭を1文字後ろへ移動する。
一方、文末でないと判定すると(S36においてNO)、演算処理装置16はステップS37に進み、基礎データとして出力する文字列の文字数nを1文字増やしてステップS35に進む。例えば図7の解析対象範囲の1文「今日は良い天気だ」に対して図6の文字n−gram解析処理を行うと、n文字の文字列「今,今日,・・・,気だ,だ」が出力される。
このように、演算処理装置16は文字n−gram解析処理を利用して解析対象とする1文から文字列の全ての組合せを出力する。したがって、演算処理装置16は、ステップS13で出力されたn文字の文字列を基礎データファイル22に格納できる。
そして、ステップS13に続いてステップS14に進み、演算処理装置16は基礎データ抽出処理を行うべき対象が依然として記事データベース21に存在するか否かを判定する。基礎データ抽出処理を行うべき対象が記事データベース21に存在すると判定すると(S14において継続)、演算処理装置16はステップS11に進み、基礎データ抽出処理を継続する。一方、基礎データ抽出処理を行うべき対象が記事データベース21に存在しないと判定すると(S14において終了)、演算処理装置16は処理を終了する。
図2中、ステップS1に続いてステップS2に進み、演算処理装置16は基礎データファイル22に格納されている基礎データのソートを行う。ステップS2で行うソートは、基礎データファイル22に基礎データとして格納されている文字列のうち同一の文字列を探しやすくするための処理である。
ソートが行われた基礎データファイル22では、同一の文字列が連続して記述されていることが保証され、同一な文字列ごとの生起頻度の計算を容易としている。ここで、生起頻度とは、基礎データファイル22に含まれる同一な文字列の数をいう。なお、ソートの手法は、バイナリソート(Binary Sort),クイックソート(Quick Sort)などの周知のソート手法を用いることができる。
一般に文字n−gram解析を扱う場合、中間過程で得られるデータは膨大となる。例えば文字数nのデータを文字n−gram解析した場合、中間過程で得られるデータ(文字列数,文字数)は、以下のようになる。
Figure 0003831392
本発明の言語知識獲得プログラムでは、データを分割して行う基礎データ抽出処理と、基礎データファイル22に格納されている基礎データのソートとで、膨大なデータ量の扱いを可能としている。
ステップS2に続いてステップS3に進み、演算処理装置16は基礎データファイル22に基礎データとして格納されている文字列ごとに生起頻度の計算を行う。例えばステップS3の生起頻度の計算により、図8のような生起頻度が作成される。
図8は、生起頻度データの一例の説明図を示す。図8中、左側の文字列が基礎データファイル22に基礎データとして格納されている文字列である。また、右側の数値は文字列ごとの生起頻度である。ただし、図8の生起頻度は、より長い文字列の部分列として出現した数を含んでいるため、重複を許した数となっている。
また、文字列「今日は良い天気だ」に付与されている生起頻度1は、解析対象としたデータに一文しか存在しなかった文字列を意味している。生起頻度1という文字列は、意味ある文字列の連続として認定しにくいため、生起頻度1という文字列を生起頻度データから削除する。さらに、閾値を設定して生起頻度の低い文字列を削除することにより、最終的なデータ量を調整することも可能である。
基礎データをソートした後に計算した文字列ごとの生起頻度は、文字列間で重複を許したものとなっているが、以下のように文字列間の重複を除去することが考えられる。ここでは、解析対象とする1文が「256メガビットDRAM」である場合に、文字列間の重複を除去する例について説明していく。
例えばステップS1〜S3の処理を行うことで、解析対象とする1文「256メガビットDRAM」から図9のような文字列および文字列ごとの生起頻度が得られる。図9は、文字列ごとの生起頻度について説明するための図を示す。
算出された文字列の生起頻度には、図9に表すような依存関係が存在する。例えば最も長い文字列S0(256メガビットDRAM)の生起頻度をf0とした場合、1文字短い文字列S1(256メガビットDRA)の生起頻度はf0+f1となる。文字列S1は文字列S0の部分列であるが、f1=0の場合、文字列S0の完全な部分文字列となる。一方、f1≠0の場合、文字列S1は他の文字列S’の部分文字列となる可能性がある。
この場合、文字列S’は文字列S1を前方包含する文字列を形成し、以下のような関係を有する。なお、ciは文字列S’に含まれる文字を表す。文字列S1は、独自の意味の単位もしくは他の文字列の単なる部分文字列となる。
Figure 0003831392
多くの場合、意味の単位を構成しない文字列の生起頻度は、意味の単位を構成する、より長い文字列と同等の生起頻度をとる。したがって、図9では生起頻度f1,f2,f3,f5,f6,f7およびf8が0である可能性が高い。したがって、生起頻度f1,f2,f3,f5,f6,f7およびf8が0であると仮定すると、図9を図10のように書き換えることができる。
図10は、生起頻度の単一化について説明するための図を示す。図10を参照すると、生起頻度として有効なものはf0,f4,f9,f10およびf11となる。隣接する文字列間で生起頻度の差異(差分)を計算することにより、単純に長い文字列の部分列として出力されている部分文字列を除去できる。単純に長い文字列の部分列として出力されている部分文字列を除去することにより、図10を図11のように書き換えることができる。
図11は、文字列間の重複が除去された結果を説明するための図を示す。図11に含まれる文字列は言語的に意味の単位を構成するものであって、意味の単位を構成する文字列とその文字列の生起頻度を表している。したがって、意味の単位を構成する文字列とその文字列の生起頻度とを容易に導出することができる。
ステップS3に続いてステップS4に進み、演算処理装置16は意味の単位を構成する文字列の独立生起頻度の計算を行う。ここで、独立生起頻度とは、意味の単位を構成する文字列の部分文字列として出現した回数を生起頻度から除いたものである。
例えば図11の文字列「256メガビット」では、文字列「256メガビットDRAM」の生起頻度f0を除いたf4が独立生起頻度に相当する。文字列「256メガビット」の独立生起頻度は、文字列「256メガビット」が文字列「256メガビットDRAM」の部分文字列として出現した場合以外の生起頻度となる。同様な処理を繰り返すことにより、図11を図12のように書き換えることができる。
図12は、文字列ごとの独立生起頻度について説明するための図を示す。図12中、左側の文字列が意味の単位を構成する文字列である。また、右側の数値は意味の単位を構成する文字列の独立生起頻度である。図12の文字列「256メガビットDRAM」を前方に包含する、より長い文字列が存在しない場合、文字列「256メガビットDRAM」の独立生起頻度は確定する。
また、文字列「256メガビット」,「256」,「25」,「2」を前方に包含する、より長い文字列が存在するかの検証も行う必要がある。図13は、文字列の独立生起頻度を確定する処理について説明するための図を示す。
まず、検証する文字列は隣接している方が容易に計算できるので、予め独立生起頻度が確定している文字列を除去した上で検証する文字列の隣接関係を維持する。例えば、文字列「256メガビットDRAM」の独立生起頻度が確定している場合、図13から文字列「256メガビットDRAM」が除去される。
文字列「256メガビット」を前方に包含する、より長い文字列が文字列「256メガビットSDRAM」および文字列「256メガビットRAM」しか存在せず、以下の関係を示せば文字列「256メガビット」は文字列「256メガビットSDRAM」および文字列「256メガビットRAM」の部分文字列としてのみ存在する文字列であると解釈できる。
このとき、文字列「256」の独立生起頻度に対する文字列「256メガビットSDRAM」,文字列「256メガビットRAM」の関係が気になるが、文字列「256メガビットSDRAM」および文字列「256メガビットRAM」の文字列「256」に関する独立生起頻度は、既に文字列「256メガビット」の独立生起頻度として除去しているため、文字列「256メガビット」と文字列「256メガビットSDRAM」および文字列「256メガビットRAM」との関係の中だけで計算を行えばよい。すなわち、隣接関係上の計算となるため、前述してきた処理と同様な処理を繰り返し行えばよい。
したがって、文字列「256メガビット」の生起頻度はこれまでと同様に隣接関係上の独立生起頻度の差分を行えばよいことになる。文字列「256メガビット」から文字列「256メガビットSDRAM」の独立生起頻度を除去すると、文字列「256メガビット」の独立生起頻度は、f4−f’0となる。また、文字列「256メガビットRAM」の独立生起頻度を除去すると、文字列「256メガビット」の独立生起頻度は、f4−f’0−f’’0となる。
文字列「256メガビット」を前方に包含する、より長い文字列が無くなった時点で文字列「256メガビット」の独立生起頻度が確定する。上記を繰り返し行って図13の文字列を全て処理した時点で独立生起頻度の重複をすべて除去することができる。したがって、文字列ごとの独立生起頻度を確定することが可能である。
ここまでの処理により前方に包含する文字列を除去したが、後方に包含する文字列を除去する必要もある。後方に包含する文字列を除去するために、文字列を後方からの方向でソートすることにより、後方に包含する文字列を一カ所に集めることができる。図14は、ステップS1〜S4までの処理により得られた文字列およびその文字列の独立生起頻度を示す。
文字列「6メガビットDRAM」には、文字列「16メガビットDRAM」の部分文字列としての生起頻度が含まれている。さらに、文字列「6メガビットDRAM」には、文字列「16メガビットDRAM」を構成する部分文字列としての生起頻度が含まれている。
つまり、文字列「6メガビットDRAM」は、前方からの生起頻度計算において意味の単位を構成するように計算されるが、後方からの生起頻度計算において他の文字列の部分文字列になっている場合がある。そこで、本発明の言語知識獲得プログラムでは、後方に包含する文字列を除去するため、図15のような処理を行う。
図15は、文字列順序の置換処理について説明するための図を示す。文字列順序の置換処理は、文字列を構成する文字の前後を置換するものである。例えば文字列が「今日は良い天気です」であれば、文字列順序の置換処理により「すで気天い良は日今」に並び替えられる。図15の文字列順序の置換処理により、図14を図16のように並び替えられる。図16は、文字列順序の置換処理により並び替えられた文字列および生起頻度を示す。ステップS5では、図15のような文字列順序の置換処理を行う。
ステップS5の処理により得られた図16のような文字列およびその文字列の生起頻度について、前述したステップS2〜S4と同様なステップS6〜ステップS8の処理を行うことにより、後方に包含する文字列を除去できる。ステップS8に続いてステップS9に進み、演算処理装置16は図15のような文字列順序の置換処理を再度行うことにより、ステップS5で並び替えられた文字列を元の文字列に並び替える。
このように、図2の言語知識獲得処理を行うことにより、文字n−gramを用いて言語知識を獲得することが可能である。なお、本発明の言語知識獲得プログラムにより取得された言語知識は、形態素解析の辞書,データベースシステムおよび情報抽出システムなどのインデックス情報として利用できる。
したがって、本発明の言語知識獲得プログラムは、形態素解析の辞書を自動的に構築することができる。また、本発明の言語知識獲得プログラムは文字列を抽出するために外部知識を与えないため、解析対象とするデータに合わせた辞書を構築できる。さらに、本発明の言語知識獲得プログラムは外部から言語的な知識を与えてデータを抽出するものでないため、抽出されたデータが言語現象に結びついたものとなっている。そのため、抽出されるデータは言語現象を分析するデータとして非常に高い価値を有している。
次に、形態素解析プログラムの詳細について説明する。形態素解析プログラムは、前述の言語知識獲得プログラムにより獲得した言語知識を用いて形態素解析を行うものである。以下、形態素解析プログラムの具体的な処理について説明する。
図17は、形態素解析処理の一例のフローチャートを示す。図17中、ステップS41では、演算処理装置16が、形態素解析を行う文(以下、解析対象文という)を入力する。ステップS41に続いてステップS42に進み、演算処理装置16はn−gram語彙辞書31からステップS41で入力した解析対象文に含まれる文字列を全て取得する。即ち、演算処理装置16はn−gram語彙辞書31から解析対象文の部分文字列を取得する。
n−gram語彙辞書31は、前述の言語知識獲得プログラムにより獲得した言語知識としての形態素(単語)エントリを格納したものであり、各形態素エントリごとに生起頻度と独立生起頻度とが付加されている。n−gram語彙辞書31は、例えば図18のような内容を含む。
図18は、n−gram語彙辞書の内容について説明するための図を示す。図18のn−gram語彙辞書31は、文字列「インターネット」の部分文字列を一例として表したものである。
ステップS42に続いてステップS43に進み、演算処理装置16は形態素解析の前作業としての形態素テーブル作成処理を行う。形態素テーブル作成処理とは、ステップS42で取得した文字列を解析対象文に記述されている順番に並び替えて、図19のような形態素テーブル32を作成する処理をいう。
図19は、形態素テーブルの一例の構成図を示す。図19の形態素テーブル32は、解析対象文が「インターネット」のときのものである。形態素テーブル32は解析対象文「インターネット」を構成する文字の順序に従って1文字ごとにポインタで結合されている線形リストとしての見出しと、ステップS42で取得した文字列をその文字列の先頭の文字に応じて見出しに振り分けたn−gramエントリ(以下、単にエントリという)とで構成される。
例えばステップS42で取得した文字列のうち「インターネット,インター,インタ,イン,イ」は、先頭の文字が「イ」なので見出し「イ」に振り分けられる。同様に、ステップS42で取得した文字列を全て処理すると、図19のような形態素テーブル32が生成される。
ステップS43に続いてステップS44に進み、演算処理装置16はステップS42で取得した文字列,言い替えればエントリに対し、そのエントリの前後で分割すべきか否かを判定するための分割位置計算を行う。
分割位置計算は、n−gram語彙辞書31に格納されているエントリそのもの,独立生起頻度,生起頻度に基づいた評価関数により行われる。ここで、エントリそのものとは、エントリの長さ,他のエントリの始まりと区切りの個数などをいう。なお、始まりと区切りの個数とは、図18のn−gram語彙辞書31の場合、例えば「タ」で始まるエントリが2個,「タ」の直前を区切りとしたエントリが2個いうような情報をいう。
分割位置計算では、エントリSnについて、エントリそのものに関する評価関数をfentry(Sn),独立生起頻度に関する評価関数をfif(Sn),生起頻度に関する評価関数をfdf(Sn),頻度に関する評価関数をffreq(fif(Sn),fdf(Sn))と設定して詳細な計算を行うべきであるが、理解を容易とするために直感的な動作について説明する。
例えば、解析対象文「インターネットを利用した情報技術は今後・・・」を形態素解析処理した場合の解析過程例を図20に表し、ステップS44の分割位置計算およびステップS45の最適解取得処理45について説明する。
図20は、形態素解析処理における一例の解析過程を示す。図20では、先頭に数字が付与されているエントリと、先頭に数字が付与されていないエントリとが記載されている。エントリの先頭に付与されている数字は、形態素テーブル32の先頭からの位置を表している。
エントリ「インターネットを」の先頭の文字「イ」は形態素テーブル32の先頭に位置しているのでエントリ「インターネットを」の先頭に「0」が付与されている。また、エントリ「ネットを」の先頭の文字「ネ」は形態素テーブル32の先頭から5文字目に位置しているのでエントリ「インターネットを」の先頭に「4」が付与されている。
また、先頭に数字が付与されているエントリにおいて、数字の次に記載されている<>内の文字は、形態素テーブル32の見出しを指している。即ち、エントリの先頭の1文字となる。矢印「→」の右側にある<>内の文字は、後述する最適解取得処理により選択された文字列を表す。
さらに、先頭に数字が付与されていないエントリにおいて、矢印「→」の右側にある<>内の文字および数字は、最適解取得処理により選択された文字列およびステップS44の分割位置計算により計算した数値を表している。
例えばステップS44の分割位置計算では、形態素テーブル32を用いてエントリが見出しのどの部分で何回分割したかを数え上げ、その数値を見出しごとに設定する。この処理を形態素テーブルの見出しに対して行うと、分割位置計算を終了する。なお、より詳細な計算を行いたい場合は、頻度関数などを導入した分割コストとして形態素テーブル32の見出しに設定すればよい。
ステップS44に続いてステップS45に進み、演算処理装置16は最適解取得処理を行う。最適解取得処理は、ステップS44の分割位置計算により得られた数値が最も高い見出し部分を分割位置として決定し、各エントリを取得する処理を行う。
ステップS45に続いてステップS46に進み、演算処理装置16はステップS45の最適解取得処理の結果に応じて、図21のような形態素解析結果を出力する。図21は、形態素解析結果の一例の出力図を示す。図21の形態素解析結果は、形態素,形態素ごとの単独生起頻度および生起頻度を含んでいる。
このように、図17の形態素解析処理を行うことにより、図2の言語知識獲得処理で取得した言語知識を辞書として用いた形態素解析を行うことができる。したがって、本発明の形態素解析プログラムは、形態素解析の文法を用いることなく形態素解析可能な枠組みを提供できる。また、本発明の形態素解析プログラムは言語知識獲得プログラムを用いて自動的に取り出した辞書を利用するため、様々な分野に合わせた辞書を容易に適用できる。さらに、本発明の形態素解析プログラムは言語特有の文法を用いていないため、日本語に限らずあらゆる言語系で動作する仕組みを提供できる。
本発明は、以下に記載する付記のような構成が考えられる。
(付記1) コンピュータに、
取得した解析対象文から文字列の全ての組合せを基礎データとして出力する基礎データ出力手順と、
前記基礎データに基づき前記文字列ごとの生起頻度および独立生起頻度を算出し、算出した生起頻度に応じて一の文字列の部分列に相当する他の文字列を除去して言語知識として出力する言語知識出力手順と
を実行させるための言語知識獲得プログラム。
(付記2) 前記言語知識出力手順は、一の文字列の生起頻度と前記一の文字列の部分列に相当する他の文字列の生起頻度とを比較し、一の文字列の生起頻度と前記一の文字列の部分列に相当する他の文字列の生起頻度とが同じときに前記一の文字列の部分列に相当する他の文字列を除去することを特徴とする付記1記載の言語知識獲得プログラム。
(付記3) 前記言語知識出力手順は、一の文字列の部分列に相当する他の文字列の生起頻度から前記一の文字列の生起頻度を減算し、前記一の文字列の部分列に相当する他の文字列の独立生起頻度を算出することを特徴とする付記1記載の言語知識獲得プログラム。
(付記4) 前記言語知識出力手順は、算出した生起頻度が所定の閾値以下の前記文字列を除去することを特徴とする付記1記載の言語知識獲得プログラム。
(付記5) 前記言語知識出力手順は、前記基礎データに基づき前記文字列ごとの生起頻度および独立生起頻度を算出し、算出した生起頻度に応じて一の文字列の部分列に相当する他の文字列を除去する前方包含部分列除去手順と、
前記文字列を構成する文字の順番を前後入れ替えたあと、前記文字列ごとの生起頻度および独立生起頻度を算出し、算出した生起頻度に応じて一の文字列の部分列に相当する他の文字列を除去する後方包含部分列除去手順と、
前記文字列を構成する文字の順番を元に戻したあと、前記文字列を言語知識として出力する言語知識出力手順と
を有することを特徴とする付記1記載の言語知識獲得プログラム。
(付記6) コンピュータに、
形態素解析を行う文から所定の言語知識格納手段に格納されている全ての文字列を取得し、取得した全ての文字列を前記形態素解析を行う文に記載されている順番に並び替えて形態素テーブルを生成する形態素テーブル生成手順と、
前記全ての文字列の始点および終点を分割点として計数し、前記分割点の数に応じて前記形態素解析を行う文の分割位置を決定する分割位置決定手順と、
決定した分割位置に応じた形態素解析結果を出力する形態素解析結果出力手順と
を実行させるための形態素解析プログラム。
(付記7) 前記形態素テーブル生成手順は、一の文字列を構成する文字を見出しとして設定し、前記文字を始点とする他の文字列を前記文字と対応付けて形態素テーブルを生成することを特徴とする付記6記載の形態素解析プログラム。
(付記8) 前記分割位置決定手順は、全ての文字列の始点および終点から前記見出しごとの分割点を計数し、計数した分割点の数が大きい見出し位置を前記分割位置と決定することを特徴とする付記7記載の形態素解析プログラム。
(付記9) 前記言語知識格納手段は、解析対象文から文字列の全ての組合せを基礎データとして出力し、前記基礎データに基づき前記文字列ごとの生起頻度および独立生起頻度を算出し、算出した生起頻度に応じて一の文字列の部分列に相当する他の文字列を除去して生成された言語知識を格納していることを特徴とする付記6記載の形態素解析プログラム。
(付記10) コンピュータに、
取得した解析対象文から文字列の全ての組合せを基礎データとして出力する基礎データ出力手順と、
前記基礎データに基づき前記文字列ごとの生起頻度および独立生起頻度を算出し、算出した生起頻度に応じて一の文字列の部分列に相当する他の文字列を除去して言語知識として出力する言語知識出力手順と
を実行させるための言語知識獲得プログラムを記録したコンピュータ読み取り可能な記録媒体。
(付記11) コンピュータに、
形態素解析を行う文から所定の言語知識格納手段に格納されている全ての文字列を取得し、取得した全ての文字列を前記形態素解析を行う文に記載されている順番に並び替えて形態素テーブルを生成する形態素テーブル生成手順と、
前記全ての文字列の始点および終点を分割点として計数し、前記分割点の数に応じて前記形態素解析を行う文の分割位置を決定する分割位置決定手順と、
決定した分割位置に応じた形態素解析結果を出力する形態素解析結果出力手順と
を実行させるための形態素解析プログラムを記録したコンピュータ読み取り可能な記録媒体。
本発明の言語知識獲得プログラムおよび形態素解析プログラムを実行するコンピュータシステムの一実施例のハードウェア構成図である。 言語知識獲得処理の一例のフローチャートである。 基礎データ抽出処理の一例のフローチャートである。 文分割,読点分割処理の一例のフローチャートである。 文分割,読点分割処理の一例の説明図である。 文字n−gram解析処理の一例のフローチャートである。 文字n−gram解析処理の一例の説明図である。 生起頻度データの一例の説明図である。 文字列ごとの生起頻度について説明するための図である。 生起頻度の単一化について説明するための図である。 文字列間の重複が除去された結果を説明するための図である。 文字列ごとの独立生起頻度について説明するための図である。 文字列の独立生起頻度を確定する処理について説明するための図である。 ステップS1〜S4までの処理により得られた文字列およびその文字列の独立生起頻度である。 文字列順序の置換処理について説明するための図である。 文字列順序の置換処理により並び替えられた文字列および生起頻度である。 形態素解析処理の一例のフローチャートである。 n−gram語彙辞書の内容について説明するための図である。 形態素テーブルの一例の構成図である。 形態素解析処理における一例の解析過程である。 形態素解析結果の一例の出力図である。
符号の説明
1 コンピュータシステム
10 入力装置
11 表示装置
12 ドライブ装置
13 記録媒体
14 補助記憶装置
15 メモリ装置
16 演算処理装置
B バス(bus)
21 記事データベース
22 基礎データ
23 解析対象メモリ
31 n−gram語彙辞書
32 形態素テーブル

Claims (1)

  1. コンピュータを、
    解析対象メモリから解析対象文を取得し、該解析対象文の文字列の全ての組合せを基礎データファイルに出力する抽出手段と、
    前記基礎データファイルのソートを行う第一のソート手段と、
    前記基礎データファイルに格納されている各文字列の生起頻度を計算する第一の生起頻度計算手段と、
    前記基礎データファイルの隣接する一の文字列と該一の文字列の部分文字列の生起頻度を比較し、該生起頻度が同一であった場合は、該部分文字列を除去する第一の除去手段と、
    前記基礎データファイルの一の文字列の生起頻度を、該一の文字列を部分文字列とする隣接する一の文字列の生起頻度を除いた数として書き換える第一の独立生起頻度計算手段と、
    前記基礎データファイルの各文字列を構成する文字の前後を置換する第一の文字列順序置換手段と、
    前記基礎データファイルのソートを行う第二のソート手段と、
    前記基礎データファイルに格納されている各文字列の生起頻度を計算する第二の生起頻度計算手段と、
    前記基礎データファイルの隣接する一の文字列と該一の文字列の部分文字列の生起頻度を比較し、該生起頻度が同一であった場合は、該部分文字列を除去する第二の除去手段と、
    前記基礎データファイルの一の文字列の生起頻度を、該一の文字列を部分文字列とする隣接する一の文字列の生起頻度を除いた数として書き換える第二の独立生起頻度計算手段と、
    前記基礎データファイルの各文字列を構成する文字の前後を置換する第二の文字列順序置換手段と、
    前記基礎データファイルに格納された文字列、該文字列ごとの生起頻度、該文字列ごとの独立生起頻度を言語知識として出力する出力手段として動作させることを特徴とする言語知識獲得プログラム。
JP2004235582A 2004-08-12 2004-08-12 言語知識獲得プログラム Expired - Fee Related JP3831392B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004235582A JP3831392B2 (ja) 2004-08-12 2004-08-12 言語知識獲得プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004235582A JP3831392B2 (ja) 2004-08-12 2004-08-12 言語知識獲得プログラム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2002092762A Division JP2003288337A (ja) 2002-03-28 2002-03-28 言語知識獲得プログラムおよび形態素解析プログラム

Publications (2)

Publication Number Publication Date
JP2005032269A JP2005032269A (ja) 2005-02-03
JP3831392B2 true JP3831392B2 (ja) 2006-10-11

Family

ID=34214363

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004235582A Expired - Fee Related JP3831392B2 (ja) 2004-08-12 2004-08-12 言語知識獲得プログラム

Country Status (1)

Country Link
JP (1) JP3831392B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008077543A (ja) * 2006-09-25 2008-04-03 Fujitsu Ltd レポート引用元情報取得装置、レポート引用元情報取得方法及びレポート引用元情報取得プログラム
JP2012141783A (ja) * 2010-12-28 2012-07-26 Yahoo Japan Corp 情報処理装置、複合語抽出方法、及び複合語抽出プログラム

Also Published As

Publication number Publication date
JP2005032269A (ja) 2005-02-03

Similar Documents

Publication Publication Date Title
JP2726568B2 (ja) 文字認識方法及び装置
JP5071373B2 (ja) 言語処理装置、言語処理方法および言語処理用プログラム
US20100023318A1 (en) Method and device for retrieving data and transforming same into qualitative data of a text-based document
RU2613846C2 (ru) Метод и система извлечения данных из изображений слабоструктурированных документов
US20080059146A1 (en) Translation apparatus, translation method and translation program
CN114036930A (zh) 文本纠错方法、装置、设备及计算机可读介质
CN111177375A (zh) 一种电子文档分类方法及装置
CN111858894A (zh) 语义缺失的识别方法及装置、电子设备、存储介质
US20220028391A1 (en) Method for processing a video file comprising audio content and visual content comprising text content
CN113330430B (zh) 语句结构向量化装置、语句结构向量化方法及记录有语句结构向量化程序的记录介质
JP3831392B2 (ja) 言語知識獲得プログラム
JP5447368B2 (ja) 新規事例生成装置、新規事例生成方法及び新規事例生成用プログラム
CN114387602B (zh) 医疗ocr数据优化模型训练方法、优化方法及设备
CN116360794A (zh) 数据库语言解析方法、装置、计算机设备及存储介质
JP2000040085A (ja) 日本語形態素解析処理の後処理方法および装置
JP5795302B2 (ja) 形態素解析装置、方法、及びプログラム
CN115169328A (zh) 一种高准确性的中文拼写检查方法、***及介质
JP2003288337A (ja) 言語知識獲得プログラムおよび形態素解析プログラム
CN113158693A (zh) 基于汉语关键词的维吾尔语关键词生成方法、装置、电子设备及存储介质
JP4985096B2 (ja) 文書解析システム、および文書解析方法、並びにコンピュータ・プログラム
JP5057916B2 (ja) 固有表現抽出装置、その方法、プログラム及び記録媒体
US20110320493A1 (en) Method and device for retrieving data and transforming same into qualitative data of a text-based document
KR20080028655A (ko) 품사 태깅 장치 및 태깅 방법
JP2014235584A (ja) 文書分析システム、文書分析方法およびプログラム
JP2020046909A (ja) 学習装置、抽出装置及び学習方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060425

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060623

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060711

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060713

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100721

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100721

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110721

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110721

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120721

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees