JP3939264B2 - 形態素解析装置 - Google Patents
形態素解析装置 Download PDFInfo
- Publication number
- JP3939264B2 JP3939264B2 JP2003080537A JP2003080537A JP3939264B2 JP 3939264 B2 JP3939264 B2 JP 3939264B2 JP 2003080537 A JP2003080537 A JP 2003080537A JP 2003080537 A JP2003080537 A JP 2003080537A JP 3939264 B2 JP3939264 B2 JP 3939264B2
- Authority
- JP
- Japan
- Prior art keywords
- analysis
- morpheme
- character string
- character
- accuracy
- 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
Links
Images
Landscapes
- Machine Translation (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、入力された自然言語文を形態素(例えば単語)に分割する形態素解析装置に関し、特に、解析処理時間及び又は解析精度を従来より向上させようとしたものである。
【0002】
【従来の技術】
【0003】
【特許文献1】
特開平5−52543号公報
【0004】
【非特許文献1】
山本幹雄、増山正和著、「品詞・区切り情報を含む拡張文字の連鎖確率を用いた日本語形態素解析」、言語処理学会第3回年次大会発表論文集、1997年3月
ワードプロセッサによるテキスト作成機会の増大や、インターネット対応機器の普及により、大量の電子化された自然言語文が容易に入手可能となってきた。文字認識システム、機械翻訳システム、情報検索システム、情報抽出システム等の大量の自然言語文を扱う自然言語処理システムにとって、形態素解析処理は、各種システムが目的とする専門処理を実施する前に共通して実施され、単語や句等の文中の意味単位である形態素を確定する極めて重要な処理である。
【0005】
このような形態素解析処理においては、単語分割(形態素分割)の精度の高さが要求されるとともに、大量の自然言語文を高速に処理するという処理速度も要求される。
【0006】
従来の形態素解析方法としては、形態素辞書(単語辞書)や活用語尾テーブルや品詞別接続テーブル等を備え、これら各種の記憶部をアクセスしながら形態素解析を行うのが一般的であった(特許文献1参照)。
【0007】
また、最近になって、文字をベースとした確率モデルを利用した形態素解析方法も提案されている(非特許文献1、並びに、特願平9−68300号明細書及び図面参照)。
【0008】
この形態素解析方法は、自然言語テキストが入力文として与えられたときに、この入力文を構成する形態素列として、各文字の直後が形態素境界であるか否かのあらゆる組み合わせの中から最も確からしい形態素列の並びを出力させるものである。
【0009】
そして、最も確からしい形態素列の並びか否かを判断させるために、大量のテキストデータ(コーパス;学習データ)から学習させた確率モデル(統計データベース;解析実行時データのデータベース)を用いる。統計データベースに格納されている1組の解析実行時データは、例えば、文字数Nの拡張文字列、及び、その拡張文字列がコーパス上にどの程度の割合で出現するかを表す連鎖確率のデータである。なお、拡張文字とは、「私」、「は」等の通常の文字とは異なり、このような文字に対して、少なくとも形態素区切り情報(この文字の直後が形態素区切りか否か)を含む拡張情報を付加したものである。
【0010】
【発明が解決しようとする課題】
(1)形態素辞書を用いる従来では一般的であった形態素解析方法は、入力段階では長さが不明な形態素を定めるように形態素辞書を引くものであるので、形態素辞書を引く回数が非常に多くなって辞書引きにかなりの時間がかかり、大量の文書を短い時間で処理することはできなかった。すなわち、利用者は、形態素解析結果を迅速には得ることができない。以下、場合によっては、この種の形態素解析を低速形態素解析と呼ぶこととする。
【0011】
(2)これに対して、文字をベースとした確率モデル(統計データベース)を利用した形態素解析方法は、入力文から定まる所定文字数(N)の拡張文字列を統計データベースの格納内容と照合して形態素解析を行うことを基本とするので、上記の形態素解析方法(低速形態素解析方法)に比較して形態素解析結果を高速に得ることができる。
【0012】
しかし、この形態素解析方法においては、事前にパラメータ(統計データ;解析実行時データ)を学習して作成しておく必要があり、そのための学習データ(コーパス)を用意するのが大変であった。以下、場合によっては、この種の形態素解析を高速形態素解析と呼ぶこととする。
【0013】
必要な学習データ(コーパス)は、上述した拡張文字列及びその連鎖確率でなる統計データを算出できるものであるので、形態素の区切り箇所の情報(及びその形態素の品詞情報)等をテキストファイルに付加したものである。テキストファイルは入手し易いが、それに上述した情報を付加したファイルは、現状ではほとんどなく、テキストファイルに人間が上述した情報を一つ一つ付加して学習に用いられる学習データ(コーパス)を作成していた。又は、低速形態素解析の結果に対して、人手で修正を加えて、学習に用いられる学習データ(コーパス)を作成していた。
【0014】
高速形態素解析において、以上のような学習データを用意して統計データベースを作成しても、事前に用意した学習データにない文字列に対しては、正しく解析することはできない。低速形態素解析においても、勿論、辞書に入っていない形態素(未知語)からなる文字列に対しては、正しく解析できないが、通常形態素解析用の辞書には、数万から数十万語の辞書を用いているので、正しく解析できない文字列(未知語)に出会うことは少ない。仮に、低速形態素解析の辞書にある形態素を全て適当な頻度で含んだ学習データを用意することができて、それを用いて高速形態素解析を学習することができれば原理的には、低速形態素解析と高速形態素解析は、ほぼ同じ精度で解析できる。すなわち、正しく解析できない文字列は同じになるといえる。
【0015】
しかしながら、低速形態素解析の辞書にある形態素を全て適当な頻度で含んだ学習データを用意することは現実的に不可能である。その結果、高速形態素解析においては、学習データになかった形態素が出現する文章の解析精度は、低速形態素解析よりも劣ってしまう。
【0016】
(3)高速形態素解析の利用者が、その形態素解析方法が採用している学習データがどのような形態素から構成されていたかを知る方法がない場合は、利用者としては一つ一つの文章の解析結果を見て、高速解析結果の精度が悪いと判断したときには、その文章にだけ低速形態素解析を使うようにするか、あるいはその文章だけ人手で修正するかどちらかの方法をとらざるを得ない。
【0017】
形態素解析したい文章が様々な分野にわたっている場合は、一つ一つ解析結果をチェックするのは面倒な作業であり、もし、チェックをしないとすると、高速形態素解析を利用した場合の全体としての精度は悪くなってしまう。
【0018】
形態素解析したい文章が様々な分野にわたっている例としては、インターネット上の様々なWWWサーバ上の文書ファイルを形態素解析して出現する形態素の頻度を調べて、検索サービス用のインデックスファイルを作るために形態素解析を利用する場合などがある。
【0019】
(4)ところで、精度の悪かった高速形態素解析の結果に対して、人手でチェックした後、そのデータを統計データベースに反映させる(フィードバックさせる)ことも考えられる。
【0020】
このようにすると、反映処理後は、その分野と同じ分野の文章に対しては同程度の精度で解析することが可能になるが、人手によるチェックという作業はなくなる訳ではないので、面倒である。
【0021】
そのため、平均的に見て、高精度の形態素解析結果を得られるまでの時間が短い形態素解析装置が求められている。
【0022】
【課題を解決するための手段】
かかる課題を解決するために、本発明は、自然言語文に現れる所定文字数でなる部分文字列とその絶対的又は相対的な頻度情報と、上記部分文字列の各文字に対して付与されたその文字が形態素の最終文字か否かの区切り位置の情報とを少なくとも含む組データである解析実行時データを多数格納している解析実行時データ格納手段と、未知文章に対して、上記解析実行時データ格納手段の格納内容を参照して形態素解析を実行する第1の形態素解析手段とを有する形態素解析装置において、以下のようにしたことを特徴とする。すなわち、上記未知文章に対して上記第1の形態素解析手段が適用した上記解析実行時データ格納手段に格納されている中の上記解析実行時データにおける頻度情報が閾値より小さいとき、及び又は、上記解析実行時データ格納手段に格納されている上記解析実行時データを適用し得ない部分を上記未知文章が有するときに、上記第1の形態素解析手段からの形態素解析結果の精度を低精度と推測する精度判定手段、又は、上記未知文章の全体又は部分の中で特定文字種の文字が所定文字数以上つながっているときに、上記第1の形態素解析手段からの形態素解析結果の精度を低精度と推測する精度判定手段、又は、上記未知文章の全体又は部分の中で特定文字種の文字が所定文字数以上含まれているときに、上記第1の形態素解析手段からの形態素解析結果の精度を低精度と推測する精度判定手段を有することを特徴とする。
【0023】
【発明の実施の形態】
(A)第1の実施形態
以下、本発明による形態素解析装置の第1の実施形態を図面を参照しながら詳述する。
【0024】
この第1の実施形態の形態素解析装置は、基本的には、入力文を高速形態素解析方法で解析するものであり、低速な形態素解析の結果を高速な形態素解析の学習データに自動的に変換する学習機能を持つことによって、これまで学習データとしていなかった文章を容易に学習データとして使用することができるようにしたことを大きな特徴としているものである。
【0025】
図1は、第1の実施形態の形態素解析装置の構成を示す機能ブロック図である。すなわち、第1の実施形態の形態素解析装置は、実際上、入出力装置や処理装置や記憶装置(や通信装置)等を有するワークステーションやパソコン等の情報処理装置上に実現されるものであるが、機能的には、図1に示す構成を有するものである。
【0026】
図1において、この第1の実施形態の形態素解析装置10は、低速形態素解析手段11、低速形態素解析結果格納手段12、変換手段13、学習データ格納手段14、学習手段15、解析実行時データ格納手段16及び高速形態素解析手段17を有している。これらの構成要素のうち、低速形態素解析手段11、低速形態素解析結果格納手段12、変換手段13、学習データ格納手段14及び学習手段15が、第1の実施形態の解析実行時データ作成装置を構成している。
【0027】
低速形態素解析手段11は、詳細構成の図示は省略するが、内蔵する形態素辞書を利用して形態素解析を行う従来の低速形態素解析装置と同様な構成を有するものである。すなわち、上述した特許文献1に記載されている形態素解析装置やそれに類似した装置と同様な詳細構成を有する。この第1の実施形態の場合、低速形態素解析手段11は、未知文書中の各文を形態素解析するものとして設けられているのではなく、解析実行時データ格納手段16に格納させる解析実行時データを作成する構成中の一要素として設けられている。この低速形態素解析手段11には、学習用文書が入力される。なお、図1において、学習用文書と記載されているブロックは、学習用文書の入力手段をも意味している。
【0028】
低速形態素解析結果格納手段12は、低速形態素解析手段11が学習用文書の各文に対して実行した低速形態素解析結果を格納するものである。
【0029】
変換手段13は、低速形態素解析結果格納手段12に格納されている低速形態素解析結果のデータ形式を、高速形態素解析装置が必要とする学習データとしてのデータ形式に変換するものである。
【0030】
学習データ格納手段14は、変換手段13が変換して得た学習データ(コーパス)を格納するものである。
【0031】
学習手段15は、学習データ格納手段14に格納されている学習データから、高速形態素解析手段17が未知文章の形態素解析時に参照する解析実行時データを作成するものである。すなわち、例えば、学習データ上に現れる所定文字数Nの拡張文字列、及び、その拡張文字列が学習データ上にどの程度の割合で出現するかを表す連鎖確率でなる解析実行時データ(統計データ)を、学習データから作成するものである。学習データから解析実行時データを作成する方法としては、非特許文献2、並びに、特願平9−350651号明細書及び図面に記載の方法を適用できる。
【0032】
【非特許文献2】
長尾眞、森信介著、「大規模日本語テキストのnグラム統計の作り方と語句の自動抽出」、情報処理学会研究報告自然言語処理96−1、1993年7月
解析実行時データ格納手段(統計データベース)16は、学習手段15によって作成された解析実行時データを格納するものである。後述する図11は、解析実行時データ格納手段(統計データベース)16に格納された一部の解析実行時データ(Nが3の場合)を示している。なお、解析実行時データの連鎖確率は、例えば、先頭側のN−1文字が同一の複数の文字数Nの拡張文字列の連鎖確率の総和が1になるように定められる。
【0033】
高速形態素解析手段17は、形態素解析対象の未知文書又は未知文章が与えられたときに、各文章に対して、解析実行時データ格納手段16の格納内容を参照して形態素解析を実行し、得られた形態素解析結果を出力するものである。高速形態素解析手段17は、例えば、上述した非特許文献1や、特願平9−68300号明細書及び図面に記載された構成、又はそれに類似した構成により実現される。
【0034】
図示は省略するが、高速形態素解析手段17の詳細構成例を挙げると以下の通りである。すなわち、高速形態素解析手段17は、スコアテーブル17a、拡張文字列生成部17b、連鎖確率計算部17c、及び、最適経路探索部17dを有する。
【0035】
スコアテーブル17aは、解析対象の未知文章の文頭から文末までの全ての拡張文字列の経路と、解析実行時データ格納手段16に格納されている所定文字数の拡張文字列の連鎖確率とに基づき、求められた拡張文字列の経路に対応する連鎖確率を格納するものである。拡張文字列生成部17bは、解析対象の未知文章についての拡張文字を生成し、当該拡張文字の組み合わせ(経路)の全てをスコアテーブル17aに格納させるものである。連鎖確率計算部17cは、解析実行時データ格納手段16に格納されている連鎖確率に基づき、スコアテーブル17aに格納されている拡張文字列の各経路に対する連鎖確率を計算するものである。最適経路探索部17dは、連鎖確率計算部17cにより計算された連鎖確率の中から、最適な条件(例えば最大値の連鎖確率を与えるなど)を満たす拡張文字列を、最適拡張文字列(形態素解析結果)として選択するものである。
【0036】
なお、図1において、未知文書と記載されているブロックは、未知文書の入力手段をも意味しており、形態素解析結果と記載されているブロックは、形態素解析結果の出力手段をも意味している。
【0037】
次に、この第1の実施形態の形態素解析装置10の処理の概要を図2のフローチャートを参照しながら詳述する。なお、第1の実施形態の形態素解析装置10の処理は、未知文書の形態素解析を実行させるための準備段階の処理と、未知文書の形態素解析を実行する処理とに分かれ、図2におけるステップ100〜102が前者の処理に対応し、ステップ103が後者の処理に対応している。
【0038】
学習用文書が当該形態素解析装置10に入力されると、形態素辞書を利用する低速形態素解析手段11によって入力された学習用文書が形態素解析され、その形態素解析結果が低速形態素解析結果格納手段12に書き込まれる(ステップ100)。
【0039】
このとき、格納される形態素解析結果のデータ形式は、当然に、低速形態素解析手段11による出力データ形式である。このような低速形態素解析結果が、変換手段13によって、高速形態素解析手段17が利用する解析実行時データを作成させる元となる学習データのデータ形式に変換され、学習データ格納手段14に格納される(ステップ101)。
【0040】
そして、この学習データが、学習手段15によって処理されて解析実行時データが作成され、作成された解析実行時データが解析実行時データ格納手段16に格納される(ステップ102)。
【0041】
以上のような高速形態素解析処理の準備段階の処理が終了した後において、未知文書が入力されると、その未知文書の各文章に対し、高速形態素解析手段17が、解析実行時データ格納手段16の格納内容を参照しながら形態素解析し、得られた形態素解析結果を出力する(ステップ103)。
【0042】
図3は、低速形態素解析手段11に入力される学習用文書の一例を示している。図3に示すように、学習用文書は、拡張情報やタグを伴うことがない自然言語テキストデータになっている。
【0043】
適用している低速形態素解析手段11の内部構成にもよってその出力データ形式(形態素解析結果データ形式)は異なる。図4は、図3の第1文目を低速形態素解析した結果の出力例(出力データ形式例)を示している。図4の各行は一つの単語の情報を示している。1つの単語の情報は空白で区切られた3つの情報からなり、それぞれ品詞、標準形、出現形である。活用しない名詞などの場合は標準形と活用形は同じになる。
【0044】
図5は、図3に対応した学習データの例を示している。図4に例示したような低速形態素解析結果のデータを、この図5に示すような学習データに変換手段13は変換する。
【0045】
図5に示した例は、解析実行時データが、文字数Nの拡張文字列と、その拡張文字列がコーパス上にどの程度の割合で出現するかを表す連鎖確率のデータとでなり、しかも、拡張文字が、「私」、「は」等の通常の文字に対して形態素区切り情報を拡張情報として付加したものである場合に対応した例である。なお、拡張情報として、形態素区切り情報に加えて品詞情報を含むものは、図5の形式とは異なるものとなる。
【0046】
図5(A)は、前接する文字との間が形態素の区切りになる場合を「1」で、そうでない場合を「0」で表した拡張文字列で、形態素の境界(区切り)を表した例を示している。図5(B)は、図5(A)と同じ内容を、形態素区切りをスラッシュ(/)で表した例である。
【0047】
図6は、変換手段13による変換処理の流れの一例を示すフローチャートである。なお、図6は、変換後のデータ形式が図5(A)に示すような場合に対応したものである。
【0048】
まず、低速形態素解析結果格納手段12に、変換処理が終了していない低速形態素解析結果が残っているか否かを確認する(ステップ200)。残っていないならば、一連の変換処理を終了する。
【0049】
これに対して、低速形態素解析結果格納手段12に、未処理の低速形態素解析結果が残っているならば、未処理の低速形態素解析結果を1文分だけ読み出す(ステップ201)。そして、読み出した低速形態素解析結果から、出現形の項目を抜き出し(ステップ202)、各出現形の文字をそれぞれ拡張文字に変換して拡張文字列を作成する(ステップ203)。そして、得られた拡張文字列を、学習データ格納手段14に格納して上述したステップ200に戻る(ステップ204)。
【0050】
ここで、拡張文字への変換は、出現形の最後の文字だけに形態素区切りであることを表す「1」を付与し、それ以外の文字には、形態素区切りでないことを表す「0」を付与する。例えば、図7に示すように、出現形が「機械翻訳」であれば、それに対する拡張文字列として、<機,0><械,0><翻,0><訳,1>が得られる。
【0051】
上記第1の実施形態によれば、低速形態素解析結果を、高速形態素解析方法が解析時に用いる解析実行時データの作成用学習データに自動的に変換する学習機能を持たせたので、これまで学習データとしていなかった文章を容易に学習データとして使用することができる、基本的に高速形態素解析方法に従っている形態素解析装置を実現できる。その結果、学習データの充実を計ることができ、未知文書に対する高速形態素解析結果の精度向上も期待できる。
【0052】
また、低速形態素解析結果を学習データに自動的に変換する学習機能を持たせたので、利用者は学習用文書を当該装置に入力する操作を行うだけで良く、学習用文書から学習データを作成したり、低速形態素解析結果から学習データを作成したりすることを不要にすることができる。
【0053】
(B)第2の実施形態
次に、本発明による形態素解析装置の第2の実施形態を図面を参照しながら詳述する。
【0054】
この第2の実施形態の形態素解析装置は、高速形態素解析結果の精度の良否を弁別し、良くない場合には、そのことを明らかにした結果を利用者に提示し、利用者に精度が低い場合の判断を委ねるようにしたことを大きな特徴としているものである。
【0055】
図8は、この第2の実施形態の形態素解析装置10Aの機能的構成を示すブロック図であり、上述した第1の実施形態に係る図1との同一、対応部分には同一符号を付して示している。
【0056】
図8において、第2の実施形態の形態素解析装置10Aは、解析実行時データ格納手段16、高速形態素解析手段17、精度判定手段18及び精度・解析結果合成手段19を備える。
【0057】
なお、解析実行時データ格納手段16に格納する解析実行時データの作成方法が第1の実施形態と同様である場合には、図示は省略しているが、低速形態素解析手段11、低速形態素解析結果格納手段12、変換手段13、学習データ格納手段14及び学習手段15も備える(図1参照)。これら構成要素についての説明は省略する。
【0058】
また、解析実行時データ格納手段16及び高速形態素解析手段17は、第1の実施形態のものと同様であるので、その機能説明は省略する。
【0059】
この第2の実施形態で新たに設けられた精度判定手段18は、高速形態素解析手段17が解析実行時データ格納手段16に所望する解析実行時データを検索した際の検索結果に基づいて、高速形態素解析手段17から得られる形態素解析結果における精度が低いと思われる文字列を判定するものである。このような精度判定結果は、精度・解析結果合成手段19に与えられる。
【0060】
解析実行時データは、非特許文献1や、特願平9−68300号明細書及び図面にも記載されているように、また、第1の実施形態で説明したように、学習データから作成される。学習データに現れた文字列に対応した解析実行時データは存在するが、当然に、学習データに現れない文字列に対応した解析実行時データは存在しない。学習データに現れた文字列に対応した解析実行時データであっても、その出現頻度によって、連鎖確率の値は変化する。
【0061】
従って、未知文書を高速形態素解析しようとして解析実行時データ格納手段16をアクセスした場合において、該当文字列が存在しない部分や存在してもその連鎖確率が低い部分等は、高速形態素解析結果におけるその部分の精度は、他の部分より低いということができる。精度判定手段18は、解析実行時データ格納手段16に対するアクセスを通じて、このような低精度部分の判定を行うものである。
【0062】
精度・解析結果合成手段19には、精度判定手段18から精度判定結果が与えられると共に、高速形態素解析手段17から形態素解析結果が与えられる。精度・解析結果合成手段19は、これらの入力情報を合成し、精度判定手段18が精度が不十分であると判断した文字列を明示して形態素解析結果を利用者に提示するものである。
【0063】
以上のように機能ブロック化できる、第2の実施形態の形態素解析装置10Aの全体処理の流れの一例を、図9のフローチャートを参照しながら詳述する。
【0064】
なお、図9は、未知文書中のある1文に対する処理を示している。また、図9の処理例では、低精度文字列部分の特定を、解析実行時データ格納手段16に該当文字列が存在しないことを1要件としている。さらに、精度カウンタを装置10A(精度判定手段18)が内蔵しているとして説明する。この精度カウンタは、初期値が0である一時メモリである。さらにまた、装置10A(精度判定手段18)が、低精度文字列のバッファメモリも内蔵しているとして説明する。
【0065】
入力文における文字位置ポインタを備え、このポインタが示す文字位置から始まるN文字の文字列を読み込む(ステップ300)。そして、この読み込み処理で文字列が読み込めなかったか否かに基づいて、最終番目の文字列の読み込み、それに続く処理が既に終了しているか否かを判定する(ステップ301)。
【0066】
終了していない場合には、読み込んだ文字列に基づいて検索文字列を作成して解析実行時データ格納手段16を検索し、検索文字列が解析実行時データ格納手段16に存在したか否かを判定する(ステップ302、303)。
【0067】
ここで、作成される検索文字列は一般に複数組である。例えば、解析実行時データ格納手段16に図11に示すような拡張文字列の解析実行時データが格納されているので、N(例えば3)文字の読み込み文字列のそれぞれの文字を2種類の拡張文字に置き換え、入力文字列の各文字についての2種類の拡張文字の全ての組み合わせがそれぞれ、検索文字列となるので、作成される検索文字列は一般には、2のN乗組だけ存在する。ステップ303の判定で検索文字列が存在しないとする場合は、「全て」の検索文字列が存在しない場合であり、2のN乗組のうちの1組の検索文字列でも解析実行時データ格納手段16に存在する場合には、ステップ303の判定では存在するとする。
【0068】
ステップ303の判定結果、検索文字列が存在しないという結果を得たときには、精度カウンタの値を1インクリメントし、今回の読み込み文字列を低精度文字列格納領域に格納して後述するステップ309に移行する(ステップ304、305)。
【0069】
一方、ステップ303の判定結果、検索文字列が解析実行時データ格納手段16に存在していた場合には、その時点での精度カウンタの値が閾値以下であるか否かを判定する(ステップ306)。なお、閾値は、Nの値に応じて定められるものであるが、例えば、Nが3であれば1ぐらいが適当である。
【0070】
ここで、肯定結果が得られたときには、精度カウンタの値を0クリアすると共に、低精度文字列格納領域に格納されていた低精度文字列もクリアして後述するステップ309に移行する(ステップ307)。これに対して、検索文字列が解析実行時データ格納手段16に存在しており、しかも、その時点での精度カウンタの値が閾値より大きいときには、その時点で低精度文字列格納領域に格納されていた低精度文字列を、形態素解析結果で明示する部分として認識して、後述するステップ309に移行する(ステップ308)。
【0071】
ステップ309においては、解析実行時データ格納手段16に存在した1又は複数組の検索文字列についての連鎖確率に基づいて、今回読み込んだ文字列までの入力文の文字列についての複数の形態素解析結果候補の評価値(連鎖確率の積)を更新する。なお、検索文字列が存在しない場合での取り扱いは任意であるが、既存の高速形態素解析手段の方法をそのまま採用すれば良い。例えば、解析実行時データ格納手段16に格納されている解析実行時データが文字数Nの拡張文字列に係るものである場合に、それらから文字数N−1や文字数N−2の拡張文字列に係る解析実行時データを形成して処理する。一般に、文字数が長ければ存在しない文字列でも、それより短い文字数の部分ごとに見た場合には、存在することが多い。
【0072】
このようなステップ309の処理が終了すると、文字位置ポインタを1大きくして上述したステップ300に戻り、入力文中の文字数Nの文字列の読み込みを行う。
【0073】
ステップ300〜309でなる処理ループを繰り返すことにより、入力文中の文末側の文字数Nの文字列の読み込み、それに続くステップ302からステップ309に至る処理も終了し、その後、ステップ301に移行してきたときには、最終文字列の処理も終了したと判定される。
【0074】
このとき、入力文中の各文字を拡張文字に置き換えた組み合わせの中で最も連鎖確率が高いものを形態素解析結果とし、この形態素解析結果を低精度文字列を明示して利用者に提示し、一連の処理を終了する(ステップ310)。
【0075】
以上のような第2の実施形態の形態素解析装置10Aの処理を、図10に示す文「給与計算システム蜃気楼の構成を図1に示す。」が入力されたとして具体的に説明する。なお、解析実行時データ格納手段16には、学習データに連続して現れた3文字を一つの単位として値(連鎖確率)が割り当てられているものとし、図11に示す内容が格納されているものとする。図11に示されていない文字列は値が割り当てられていない存在しないものとする。また、説明を簡単にするために、文頭、文末の処理、及び、解析実行時データには3文字未満の文字列の値はないものとして説明する。さらに、精度カウンタの値に対する閾値を1として説明する。
【0076】
精度カウンタと低精度文字列格納領域を初期化してから図9の処理を開始する。
【0077】
まず、ステップ300で最初の3文字「給与計」を読み込み、読み込み終了でないことがステップ301で確認され、その文字列「給与計」について、ステップ302で解析実行時データ格納手段16を検索すると、存在が確認され(連鎖確率0.71が出力されることが存在を表す)、ステップ303、306、307を経てステップ309に至り、その文字列までの拡張文字列候補の評価値(スコア)が計算される。従って、文字列「給与計」に対する処理が終了しても、精度カウンタの値は0であり、低精度文字列格納領域にも何らの文字も格納されない。
【0078】
文字列「与計算」、「計算シ」、「算シス」、「システ」及び「ステム」についても同様な経路の処理が実行される。従って、文字列「ステム」に対する処理が終了した時点では、精度カウンタの値は0であり、低精度文字列格納領域にも何らの文字も格納されない。
【0079】
次に、文字列「テム蜃」が読み込まれると、解析実行時データ格納手段16には対応する解析実行時データがないので、ステップ304で精度カウンタの値が1加算され(これにより「1」となる)、ステップ305で低精度文字列格納領域に「テム蜃」が格納され、その後、ステップ309に移行する。
【0080】
以下、文字列「ム蜃気」、「蜃気楼」、「気楼の」及び「楼の構」についても同様な処理が実行される。その結果、文字列「楼の構」に対する処理が終了したときには、低精度文字列格納領域には文字列「テム蜃気楼の構」が格納され、精度カウンタの値は「5」となっている。
【0081】
次の文字列「の構成」は、解析実行時データ格納手段16に対応する解析実行時データが存在するので、ステップ303からステップ306に移行する。このときの精度カウンタの値「5」は、閾値「1」よりも大きいので、ステップ308で、低精度文字列格納領域に格納されている低精度文字列「テム蜃気楼の構」が精度・解析結果合成手段19に与えられ、その後、ステップ309に移行する。文字列「の構成」に対する処理が終了したときには、その前の文字列「楼の構」に対する処理が終了したときと同様に、低精度文字列格納領域には文字列「テム蜃気楼の構」が格納され、精度カウンタの値は「5」となっている。
【0082】
その次の文字列「構成を」から最終文字列「示す。」までについてはそれぞれ、ステップ303、306、307、309という、対応する解析実行時データが解析実行時データ格納手段16に存在する場合の一般的な経路での処理が実行される。
【0083】
最終文字列「示す。」に対する処理が終了すると、次には文字列がないので、ステップ310に移行し、図12に例示するように、形態素解析結果「給与/計算/システム/蜃気楼の/構成/を/図/1/に/示/す/。」と、システムが精度に自信がない低精度文字列「テム蜃気楼の構」とを対比しやすいように利用者に提示する。
【0084】
上記第2の実施形態によれば、高速形態素解析の精度が良くないと判断された部分文字列に対しては、その結果を利用者に提示するようにしたので、利用者が必要に応じて正しい形態素解析結果を入力することができる形態素解析装置を実現できる。
【0085】
形態素解析装置の解析結果は、次の構文解析装置などの入力になるので、その精度が重要であり、正しくない解析結果を次の装置に渡した場合の悪影響の度合は大きい。正しいか正しくないかが明らかでない部分に対しては、利用者に判断させるので、その結果、正しい形態素解析結果を次の装置に入力させることができる。
【0086】
ここで、精度判定を解析実行時データ格納手段に存在するか否かで行っているので、精度判定機能が処理時間をほとんど長期化させることはない。
【0087】
(C)第3の実施形態
次に、本発明による形態素解析装置の第3の実施形態を図面を参照しながら詳述する。
【0088】
この第3の実施形態の形態素解析装置は、高速形態素解析結果の精度の良否を弁別し、良くない部分に対しては、自動的に低速形態素解析を実行し、常に精度が高い形態素解析結果を出力するようにしたことを大きな特徴としているものである。
【0089】
図13は、この第3の実施形態の形態素解析装置10Bの機能的構成を示すブロック図であり、上述した第1の実施形態に係る図1や第2の実施形態に係る図8との同一、対応部分には同一符号を付して示している。
【0090】
図13において、第3の実施形態の形態素解析装置10Bは、低速形態素解析手段11、解析実行時データ格納手段16、高速形態素解析手段17、精度判定手段18及び解析結果合成手段20を備える。
【0091】
なお、解析実行時データ格納手段16に格納する解析実行時データの作成方法が第1の実施形態と同様である場合には、図示は省略しているが、低速形態素解析手段11、低速形態素解析結果格納手段12、変換手段13、学習データ格納手段14及び学習手段15も備える(図1参照)。これら構成要素についての説明は省略する。この第3の実施形態の場合、解析実行時データ格納手段16に格納する解析実行時データの作成方法が第1の実施形態と同様である場合には、低速形態素解析手段11は、解析実行時データの作成処理のためと、後述する低精度文字列を含む文字列の形態素解析のための双方に利用される。
【0092】
また、低速形態素解析手段11、解析実行時データ格納手段16及び高速形態素解析手段17の機能自体は、第1の実施形態のものと同様であるので、その機能説明は省略する。さらに、精度判定手段18の機能自体は、第2の実施形態のものと同様であるので、その機能説明は省略する。
【0093】
しかし、この第3の実施形態の場合、精度判定手段18が、高速形態素解析方法では精度に自信がないと判定した、入力文中の低精度文字列は低速形態素解析手段11に与えられるようになされている。低速形態素解析手段11は、このような低精度文字列を含む文字列部分に対して低速形態素解析処理を実行する。
【0094】
この第3の実施形態で新たに設けられた解析結果合成手段20は、高速形態素解析手段17からの形態素解析結果における低精度文字列に対応した部分を、低速形態素解析手段11による低速形態素解析結果に置き換えるものである。
【0095】
図14は、第3の実施形態の形態素解析装置10Bの全体処理の流れの一例を示すフローチャートであり、第2の実施形態に係る図9との同一処理ステップには、同一符号を付して示している。
【0096】
第2の実施形態の場合、確定された低精度文字列はステップ308で利用者への提示対象として認識されるが、この第3の実施形態の場合には、確定された低精度文字列は、ステップ308aで低速形態素解析手段11に与えられる。
【0097】
また、第2の実施形態の場合、ステップ310で、低精度文字列を明示した形で高速形態素解析結果を利用者に提示していたが、この第3の実施形態の場合には、高速形態素解析結果における低精度文字列に対応した部分を、低速形態素解析結果に置き換え、置き換え後の形態素解析結果を利用者に提示する。なお、低速形態素解析は、高速形態素解析結果における、低精度文字列の先頭文字より前の形態素区切り位置と、低精度文字列の最終文字より後の形態素区切り位置とに挟まれた文字列に対して実行される。
【0098】
以上の2点を除けば、他の処理は第2の実施形態と同様であり、その説明は省略する。
【0099】
上述した図10に示す文「給与計算システム蜃気楼の構成を図1に示す。」が、この第3の実施形態の形態素解析装置10Bに入力された場合にも、文字列「テム蜃気楼の構」が低精度文字列として認識されるのは、第2の実施形態と同様である。
【0100】
今、低速形態素解析手段11が内蔵する形態素辞書には、「蜃気楼」が一つの形態素(名詞)として登録されているものとする。低速形態素解析手段11は、低精度文字列「テム蜃気楼の構」と、高速形態素解析結果「給与/計算/システム/蜃気楼の/構成/を/図/1/に/示/す/。」とが与えられると、低精度文字列「テム蜃気楼の構」の先頭文字より前の形態素区切り位置と、低精度文字列の最終文字より後の形態素区切り位置とに挟まれた文字列「システム蜃気楼の構成」が低速形態素解析対象部分として解析を実行する。
【0101】
そして、低速形態素解析手段11は、図15に示すように、「システム」、「蜃気楼」、「の」、及び「構成」を別々の形態素として解析結果を出力する。高速形態素解析結果「給与/計算/システム/蜃気楼の/構成/を/図/1/に/示/す/。」の該当部分がこの低速形態素解析結果に置き換えられるので、最終的な形態素解析結果は、図16に示すように、「給与/計算/システム/蜃気楼/の/構成/を/図/1/に/示/す/。」となる。
【0102】
この第3の実施形態での解析結果は、第2の実施形態の解析結果に比べて、「蜃気楼」と「の」を別の形態素として解析しており、精度が向上している。
【0103】
上記第3の実施形態によれば、高速形態素解析の精度が良くないと判断された部分文字列又はその近傍に対しては、自動的に低速形態素解析を実行し、低速形態素解析結果に置き換えるようにしたので、常に精度が良い形態素解析結果を出力する形態素解析装置を実現できる。
【0104】
この第3の実施形態においても、高速形態素解析を基本解析処理としているので、入力文を全て低速形態素解析するよりも短い時間で解析を実行できる。
【0105】
(D)第4の実施形態
次に、本発明による形態素解析装置の第4の実施形態を図面を参照しながら詳述する。
【0106】
この第4の実施形態の形態素解析装置は、高速形態素解析結果の精度の良否を弁別し、良くない部分に対しては、自動的に低速形態素解析を実行し、常に精度が高い形態素解析結果を出力すると共に、低速形態素解析結果を高速形態素解析の解析実行時データに学習、反映させ、学習後には、精度が良くなかった文章と同じ形態素が含まれる文章に対して精度良くかつ高速に形態素解析できるようにしたことを大きな特徴としているものである。
【0107】
図17は、この第4の実施形態の形態素解析装置10Cの機能的構成を示すブロック図であり、既述した各実施形態に係る図1、図8及び図13との同一、対応部分には同一符号を付して示している。
【0108】
図17において、第4の実施形態の形態素解析装置10Cは、低速形態素解析手段11、変換手段13、学習データ格納手段14、学習手段15、解析実行時データ格納手段16、高速形態素解析手段17、精度判定手段18及び解析結果合成手段20を備える。
【0109】
第4の実施形態の形態素解析装置10Cの全ての構成要素はそれぞれ、既述した各実施形態の対応する要素と同一機能を果たすものである。
【0110】
しかし、この第4の実施形態の形態素解析装置10Cにおいては、低精度文字列を含む文字列に対して低速形態素解析手段11が解析して得た結果を、変換手段13に与えている点が第1や第3の実施形態と異なっている。変換手段13から解析実行時データ格納手段16への処理経路上での各手段の機能は、第1の実施形態と同様である。
【0111】
なお、低速形態素解析手段11、変換手段13、学習データ格納手段14、学習手段15及び解析実行時データ格納手段16が、第1の実施形態と同様な外部から入力された学習用文書に対する処理をも担うものであっても良いことは勿論である。
【0112】
図18は、第4の実施形態の形態素解析装置10Cの全体処理の流れの一例を示すフローチャートであり、第3の実施形態に係る図14との同一処理ステップには、同一符号を付して示している。
【0113】
第4の実施形態の形態素解析装置10Cでは、第3の実施形態の最終処理ステップ310aより後にステップ311及び312の処理を設けている。
【0114】
ステップ311は、低速形態素解析結果を、高速形態素解析の学習手段15への入力用データ(学習データ)に変換して追加格納する処理である。ステップ312は、その時点での全ての学習データを用いて、解析実行時データを作成する処理である。
【0115】
低精度文字列を含む文字列に対して、例えば、上述した図15に示すような低速形態素解析結果が得られた場合に、変換手段13が上述した図6に示すような変換方法で学習データを変換すると、図19に示すような拡張文字列(学習データ)が得られる。
【0116】
このような学習データが、既存の学習データに追加され、追加後の学習データ全体に対して、学習手段15が学習すると、低速形態素解析結果に対応した部分の解析実行時データとして図20に示すようなデータが得られて(他の解析実行時データも当然に得られる)、解析実行時データ格納手段16に格納される。すなわち、図11に示すようなデータ(連鎖確率は変化する)に加えて、図20に示すようなデータが新たに加わることになる。
【0117】
その結果、学習したデータによって解析可能な文が解析対象として入力された場合には、例えば、「給与計算システム蜃気楼の値段は2000円です。」が入力された場合には、前回低精度文字列と認定された部分も精度判定手段18で低精度と判定されなくなり、第3の実施形態と同程度の精度の高速形態素解析結果を、毎回、低速形態素解析手段11を起動しないで得られるようになる。
【0118】
上記第4の実施形態によれば、高速形態素解析の精度が良くない場合には自動的に低速形態素解析を実行し、さらにその結果を高速形態素解析の学習のためのデータとして使用し、学習後には、精度が良くなかった文章と同じ形態素が含まれる文章に対して精度良くかつ高速に形態素解析できる形態素解析装置を実現できる。
【0119】
(E)他の実施形態
上記各実施形態においては、解析実行時データが1カテゴリーのものを示したが、分野別などの複数カテゴリーのものを用意し、未知文書の入力時にカテゴリーを指定させるようにしても良い。この場合、第1の実施形態では、学習用文書を入力させる際に、その学習用文書のカテゴリーも指定することを要する。また、第3や第4の実施形態では、低速形態素解析手段が適用する専門辞書があれば、そのカテゴリーのものとなる。さらに、第4の実施形態では、低速形態素解析結果を、未知文書の入力時に指定されたカテゴリーの解析実行時データに反映させることとなる。
【0120】
また、第1の実施形態の説明では、学習データ格納手段14への格納が追加格納か新規格納(前のものをクリアしての格納)かを明確に示さなかったが、いずれであっても良い。また、外部から、格納方法を変換手段13にその都度指示できるようにしても良い。
【0121】
さらに、第1及び第4の実施形態において、学習手段15を以下のようにしても良い。学習データ格納手段14に追加された学習データについてのみ、文字列の出現頻度を計数して解析実行時データを作成する。この場合、解析実行時データ格納手段16には、連鎖確率だけでなく出現頻度も格納しておき、今回の集計結果と、解析実行時データ格納手段16に既に格納されている出現頻度とから、学習手段15は、既存の解析時学習データの文字列や、新規発生の文字列の連鎖確率を決定するようにしても良い。
【0122】
さらにまた、第2〜第4の実施形態においては、解析実行時データ格納手段16に存在しないことを低精度文字列の認定条件にしているものを示したが、存在しても、その値(連鎖確率)が所定閾値より小さいことを低精度文字列の認定条件にするようにしても良い。
【0123】
また、第2〜第4の実施形態において、低精度文字列の範囲を上記のように1文の部分文字列とするのではなく、判定文字列を含む1文全てを低精度文字列として扱うようにしても良い。第2の実施形態であれば、文単位に低精度か否かの情報が付随される。第3の実施形態であれば、低精度認定時にその文全体が低速形態素解析手段11で解析されることになる。第4の実施形態であれば、文全体の低速形態素解析結果が、解析実行時データ格納手段16の格納内容に反映される。このように文全体で精度推測を行う場合には、最適な高速形態素解析結果での連鎖確率を、入力文の文字数などで正規化し、その値を閾値と比較することなどによって、その文の精度を推測するようにしても良い。
【0124】
また、解析実行時データ格納手段16の格納内容を利用しないで精度を判定する方法を単独で採用したり、解析実行時データ格納手段16の格納内容を利用して精度を判定する方法と併用したりしても良い。例えば、解析実行時データ格納手段16の格納内容を利用しないで精度を判定する方法としては、例えば、ひらがなや漢字などのある1種類の文字種が連続して所定文字数以上つながっている部分の中央所定文字数部分を精度が低いと判定するような方法を挙げることができる。また、第2水準の漢字を所定文字数以上含む文の精度を低いと判定するようにしても良い。
【0125】
さらに、第3及び第4の実施形態においては、低精度文字列に対応した低速形態素解析を1文毎に実行するものを示したが、文書全体を高速形態素解析した後でまとめて精度の悪かった部分に対して低速形態素解析を実行するようにしても良い。
【0126】
さらにまた、上記各実施形態の具体的説明においては、解析実行時データを構成する拡張文字の拡張情報が、形態素区切り情報だけのものを示したが、これに加えて、品詞情報や単語の発音情報を含むものであっても良い。この場合、当然に、変換手段や学習手段もそれに応じたものとなる。解析実行時データをこのようにした場合には、単語分割と品詞付与を行なう形態素解析や、単語の発音を決定する形態素解析を高速化することができる。
【0127】
また、上記各実施形態においては、対象とする自然言語が日本語である形態素解析装置を示したが、他の言語の形態素解析装置に対しても本発明を適用することができる。
【0128】
【発明の効果】
以上のように、本発明の形態素解析装置によれば、利用者に負担をかけることなく、形態素解析結果の精度向上や、解析処理時間の短縮化を期待できる。
【図面の簡単な説明】
【図1】第1の実施形態の構成を示すブロック図である。
【図2】第1の実施形態の処理の概要を示すフローチャートである。
【図3】第1の実施形態の学習用文書の一例を示す説明図である。
【図4】図3の第1文目についての低速形態素解析結果を示す説明図である。
【図5】図3の学習用文書に対応した学習データを示す説明図である。
【図6】第1の実施形態の変換手段による詳細処理例を示すフローチャートである。
【図7】図6のステップ206の処理の説明図である。
【図8】第2の実施形態の構成を示すブロック図である。
【図9】第2の実施形態の処理を示すフローチャートである。
【図10】形態素解析対象文を示す説明図である。
【図11】解析実行時データ格納手段16の格納内容例を示す説明図である。
【図12】第2の実施形態で図10の文を解析した出力内容例を示す説明図である。
【図13】第3の実施形態の構成を示すブロック図である。
【図14】第3の実施形態の処理を示すフローチャートである。
【図15】第3の実施形態の低精度文字列に対する低速形態素解析結果例を示す説明図である。
【図16】第3の実施形態で図10の文を解析した最終的な解析結果例を示す説明図である。
【図17】第4の実施形態の構成を示すブロック図である。
【図18】第4の実施形態の処理を示すフローチャートである。
【図19】第4の実施形態での低精度文字列に対する低速形態素解析結果を学習データに変換した例を示す説明図である。
【図20】第4の実施形態での低精度文字列に対応した学習データから形成された解析実行時データの例を示す説明図である。
【符号の説明】
10、10A、10B、10C…形態素解析装置、
11…低速形態素解析手段、
13…変換手段、
15…学習手段、
17…高速形態素解析手段、
18…精度判定手段、
19…精度・解析結果合成手段、
20…解析結果合成手段。
【発明の属する技術分野】
本発明は、入力された自然言語文を形態素(例えば単語)に分割する形態素解析装置に関し、特に、解析処理時間及び又は解析精度を従来より向上させようとしたものである。
【0002】
【従来の技術】
【0003】
【特許文献1】
特開平5−52543号公報
【0004】
【非特許文献1】
山本幹雄、増山正和著、「品詞・区切り情報を含む拡張文字の連鎖確率を用いた日本語形態素解析」、言語処理学会第3回年次大会発表論文集、1997年3月
ワードプロセッサによるテキスト作成機会の増大や、インターネット対応機器の普及により、大量の電子化された自然言語文が容易に入手可能となってきた。文字認識システム、機械翻訳システム、情報検索システム、情報抽出システム等の大量の自然言語文を扱う自然言語処理システムにとって、形態素解析処理は、各種システムが目的とする専門処理を実施する前に共通して実施され、単語や句等の文中の意味単位である形態素を確定する極めて重要な処理である。
【0005】
このような形態素解析処理においては、単語分割(形態素分割)の精度の高さが要求されるとともに、大量の自然言語文を高速に処理するという処理速度も要求される。
【0006】
従来の形態素解析方法としては、形態素辞書(単語辞書)や活用語尾テーブルや品詞別接続テーブル等を備え、これら各種の記憶部をアクセスしながら形態素解析を行うのが一般的であった(特許文献1参照)。
【0007】
また、最近になって、文字をベースとした確率モデルを利用した形態素解析方法も提案されている(非特許文献1、並びに、特願平9−68300号明細書及び図面参照)。
【0008】
この形態素解析方法は、自然言語テキストが入力文として与えられたときに、この入力文を構成する形態素列として、各文字の直後が形態素境界であるか否かのあらゆる組み合わせの中から最も確からしい形態素列の並びを出力させるものである。
【0009】
そして、最も確からしい形態素列の並びか否かを判断させるために、大量のテキストデータ(コーパス;学習データ)から学習させた確率モデル(統計データベース;解析実行時データのデータベース)を用いる。統計データベースに格納されている1組の解析実行時データは、例えば、文字数Nの拡張文字列、及び、その拡張文字列がコーパス上にどの程度の割合で出現するかを表す連鎖確率のデータである。なお、拡張文字とは、「私」、「は」等の通常の文字とは異なり、このような文字に対して、少なくとも形態素区切り情報(この文字の直後が形態素区切りか否か)を含む拡張情報を付加したものである。
【0010】
【発明が解決しようとする課題】
(1)形態素辞書を用いる従来では一般的であった形態素解析方法は、入力段階では長さが不明な形態素を定めるように形態素辞書を引くものであるので、形態素辞書を引く回数が非常に多くなって辞書引きにかなりの時間がかかり、大量の文書を短い時間で処理することはできなかった。すなわち、利用者は、形態素解析結果を迅速には得ることができない。以下、場合によっては、この種の形態素解析を低速形態素解析と呼ぶこととする。
【0011】
(2)これに対して、文字をベースとした確率モデル(統計データベース)を利用した形態素解析方法は、入力文から定まる所定文字数(N)の拡張文字列を統計データベースの格納内容と照合して形態素解析を行うことを基本とするので、上記の形態素解析方法(低速形態素解析方法)に比較して形態素解析結果を高速に得ることができる。
【0012】
しかし、この形態素解析方法においては、事前にパラメータ(統計データ;解析実行時データ)を学習して作成しておく必要があり、そのための学習データ(コーパス)を用意するのが大変であった。以下、場合によっては、この種の形態素解析を高速形態素解析と呼ぶこととする。
【0013】
必要な学習データ(コーパス)は、上述した拡張文字列及びその連鎖確率でなる統計データを算出できるものであるので、形態素の区切り箇所の情報(及びその形態素の品詞情報)等をテキストファイルに付加したものである。テキストファイルは入手し易いが、それに上述した情報を付加したファイルは、現状ではほとんどなく、テキストファイルに人間が上述した情報を一つ一つ付加して学習に用いられる学習データ(コーパス)を作成していた。又は、低速形態素解析の結果に対して、人手で修正を加えて、学習に用いられる学習データ(コーパス)を作成していた。
【0014】
高速形態素解析において、以上のような学習データを用意して統計データベースを作成しても、事前に用意した学習データにない文字列に対しては、正しく解析することはできない。低速形態素解析においても、勿論、辞書に入っていない形態素(未知語)からなる文字列に対しては、正しく解析できないが、通常形態素解析用の辞書には、数万から数十万語の辞書を用いているので、正しく解析できない文字列(未知語)に出会うことは少ない。仮に、低速形態素解析の辞書にある形態素を全て適当な頻度で含んだ学習データを用意することができて、それを用いて高速形態素解析を学習することができれば原理的には、低速形態素解析と高速形態素解析は、ほぼ同じ精度で解析できる。すなわち、正しく解析できない文字列は同じになるといえる。
【0015】
しかしながら、低速形態素解析の辞書にある形態素を全て適当な頻度で含んだ学習データを用意することは現実的に不可能である。その結果、高速形態素解析においては、学習データになかった形態素が出現する文章の解析精度は、低速形態素解析よりも劣ってしまう。
【0016】
(3)高速形態素解析の利用者が、その形態素解析方法が採用している学習データがどのような形態素から構成されていたかを知る方法がない場合は、利用者としては一つ一つの文章の解析結果を見て、高速解析結果の精度が悪いと判断したときには、その文章にだけ低速形態素解析を使うようにするか、あるいはその文章だけ人手で修正するかどちらかの方法をとらざるを得ない。
【0017】
形態素解析したい文章が様々な分野にわたっている場合は、一つ一つ解析結果をチェックするのは面倒な作業であり、もし、チェックをしないとすると、高速形態素解析を利用した場合の全体としての精度は悪くなってしまう。
【0018】
形態素解析したい文章が様々な分野にわたっている例としては、インターネット上の様々なWWWサーバ上の文書ファイルを形態素解析して出現する形態素の頻度を調べて、検索サービス用のインデックスファイルを作るために形態素解析を利用する場合などがある。
【0019】
(4)ところで、精度の悪かった高速形態素解析の結果に対して、人手でチェックした後、そのデータを統計データベースに反映させる(フィードバックさせる)ことも考えられる。
【0020】
このようにすると、反映処理後は、その分野と同じ分野の文章に対しては同程度の精度で解析することが可能になるが、人手によるチェックという作業はなくなる訳ではないので、面倒である。
【0021】
そのため、平均的に見て、高精度の形態素解析結果を得られるまでの時間が短い形態素解析装置が求められている。
【0022】
【課題を解決するための手段】
かかる課題を解決するために、本発明は、自然言語文に現れる所定文字数でなる部分文字列とその絶対的又は相対的な頻度情報と、上記部分文字列の各文字に対して付与されたその文字が形態素の最終文字か否かの区切り位置の情報とを少なくとも含む組データである解析実行時データを多数格納している解析実行時データ格納手段と、未知文章に対して、上記解析実行時データ格納手段の格納内容を参照して形態素解析を実行する第1の形態素解析手段とを有する形態素解析装置において、以下のようにしたことを特徴とする。すなわち、上記未知文章に対して上記第1の形態素解析手段が適用した上記解析実行時データ格納手段に格納されている中の上記解析実行時データにおける頻度情報が閾値より小さいとき、及び又は、上記解析実行時データ格納手段に格納されている上記解析実行時データを適用し得ない部分を上記未知文章が有するときに、上記第1の形態素解析手段からの形態素解析結果の精度を低精度と推測する精度判定手段、又は、上記未知文章の全体又は部分の中で特定文字種の文字が所定文字数以上つながっているときに、上記第1の形態素解析手段からの形態素解析結果の精度を低精度と推測する精度判定手段、又は、上記未知文章の全体又は部分の中で特定文字種の文字が所定文字数以上含まれているときに、上記第1の形態素解析手段からの形態素解析結果の精度を低精度と推測する精度判定手段を有することを特徴とする。
【0023】
【発明の実施の形態】
(A)第1の実施形態
以下、本発明による形態素解析装置の第1の実施形態を図面を参照しながら詳述する。
【0024】
この第1の実施形態の形態素解析装置は、基本的には、入力文を高速形態素解析方法で解析するものであり、低速な形態素解析の結果を高速な形態素解析の学習データに自動的に変換する学習機能を持つことによって、これまで学習データとしていなかった文章を容易に学習データとして使用することができるようにしたことを大きな特徴としているものである。
【0025】
図1は、第1の実施形態の形態素解析装置の構成を示す機能ブロック図である。すなわち、第1の実施形態の形態素解析装置は、実際上、入出力装置や処理装置や記憶装置(や通信装置)等を有するワークステーションやパソコン等の情報処理装置上に実現されるものであるが、機能的には、図1に示す構成を有するものである。
【0026】
図1において、この第1の実施形態の形態素解析装置10は、低速形態素解析手段11、低速形態素解析結果格納手段12、変換手段13、学習データ格納手段14、学習手段15、解析実行時データ格納手段16及び高速形態素解析手段17を有している。これらの構成要素のうち、低速形態素解析手段11、低速形態素解析結果格納手段12、変換手段13、学習データ格納手段14及び学習手段15が、第1の実施形態の解析実行時データ作成装置を構成している。
【0027】
低速形態素解析手段11は、詳細構成の図示は省略するが、内蔵する形態素辞書を利用して形態素解析を行う従来の低速形態素解析装置と同様な構成を有するものである。すなわち、上述した特許文献1に記載されている形態素解析装置やそれに類似した装置と同様な詳細構成を有する。この第1の実施形態の場合、低速形態素解析手段11は、未知文書中の各文を形態素解析するものとして設けられているのではなく、解析実行時データ格納手段16に格納させる解析実行時データを作成する構成中の一要素として設けられている。この低速形態素解析手段11には、学習用文書が入力される。なお、図1において、学習用文書と記載されているブロックは、学習用文書の入力手段をも意味している。
【0028】
低速形態素解析結果格納手段12は、低速形態素解析手段11が学習用文書の各文に対して実行した低速形態素解析結果を格納するものである。
【0029】
変換手段13は、低速形態素解析結果格納手段12に格納されている低速形態素解析結果のデータ形式を、高速形態素解析装置が必要とする学習データとしてのデータ形式に変換するものである。
【0030】
学習データ格納手段14は、変換手段13が変換して得た学習データ(コーパス)を格納するものである。
【0031】
学習手段15は、学習データ格納手段14に格納されている学習データから、高速形態素解析手段17が未知文章の形態素解析時に参照する解析実行時データを作成するものである。すなわち、例えば、学習データ上に現れる所定文字数Nの拡張文字列、及び、その拡張文字列が学習データ上にどの程度の割合で出現するかを表す連鎖確率でなる解析実行時データ(統計データ)を、学習データから作成するものである。学習データから解析実行時データを作成する方法としては、非特許文献2、並びに、特願平9−350651号明細書及び図面に記載の方法を適用できる。
【0032】
【非特許文献2】
長尾眞、森信介著、「大規模日本語テキストのnグラム統計の作り方と語句の自動抽出」、情報処理学会研究報告自然言語処理96−1、1993年7月
解析実行時データ格納手段(統計データベース)16は、学習手段15によって作成された解析実行時データを格納するものである。後述する図11は、解析実行時データ格納手段(統計データベース)16に格納された一部の解析実行時データ(Nが3の場合)を示している。なお、解析実行時データの連鎖確率は、例えば、先頭側のN−1文字が同一の複数の文字数Nの拡張文字列の連鎖確率の総和が1になるように定められる。
【0033】
高速形態素解析手段17は、形態素解析対象の未知文書又は未知文章が与えられたときに、各文章に対して、解析実行時データ格納手段16の格納内容を参照して形態素解析を実行し、得られた形態素解析結果を出力するものである。高速形態素解析手段17は、例えば、上述した非特許文献1や、特願平9−68300号明細書及び図面に記載された構成、又はそれに類似した構成により実現される。
【0034】
図示は省略するが、高速形態素解析手段17の詳細構成例を挙げると以下の通りである。すなわち、高速形態素解析手段17は、スコアテーブル17a、拡張文字列生成部17b、連鎖確率計算部17c、及び、最適経路探索部17dを有する。
【0035】
スコアテーブル17aは、解析対象の未知文章の文頭から文末までの全ての拡張文字列の経路と、解析実行時データ格納手段16に格納されている所定文字数の拡張文字列の連鎖確率とに基づき、求められた拡張文字列の経路に対応する連鎖確率を格納するものである。拡張文字列生成部17bは、解析対象の未知文章についての拡張文字を生成し、当該拡張文字の組み合わせ(経路)の全てをスコアテーブル17aに格納させるものである。連鎖確率計算部17cは、解析実行時データ格納手段16に格納されている連鎖確率に基づき、スコアテーブル17aに格納されている拡張文字列の各経路に対する連鎖確率を計算するものである。最適経路探索部17dは、連鎖確率計算部17cにより計算された連鎖確率の中から、最適な条件(例えば最大値の連鎖確率を与えるなど)を満たす拡張文字列を、最適拡張文字列(形態素解析結果)として選択するものである。
【0036】
なお、図1において、未知文書と記載されているブロックは、未知文書の入力手段をも意味しており、形態素解析結果と記載されているブロックは、形態素解析結果の出力手段をも意味している。
【0037】
次に、この第1の実施形態の形態素解析装置10の処理の概要を図2のフローチャートを参照しながら詳述する。なお、第1の実施形態の形態素解析装置10の処理は、未知文書の形態素解析を実行させるための準備段階の処理と、未知文書の形態素解析を実行する処理とに分かれ、図2におけるステップ100〜102が前者の処理に対応し、ステップ103が後者の処理に対応している。
【0038】
学習用文書が当該形態素解析装置10に入力されると、形態素辞書を利用する低速形態素解析手段11によって入力された学習用文書が形態素解析され、その形態素解析結果が低速形態素解析結果格納手段12に書き込まれる(ステップ100)。
【0039】
このとき、格納される形態素解析結果のデータ形式は、当然に、低速形態素解析手段11による出力データ形式である。このような低速形態素解析結果が、変換手段13によって、高速形態素解析手段17が利用する解析実行時データを作成させる元となる学習データのデータ形式に変換され、学習データ格納手段14に格納される(ステップ101)。
【0040】
そして、この学習データが、学習手段15によって処理されて解析実行時データが作成され、作成された解析実行時データが解析実行時データ格納手段16に格納される(ステップ102)。
【0041】
以上のような高速形態素解析処理の準備段階の処理が終了した後において、未知文書が入力されると、その未知文書の各文章に対し、高速形態素解析手段17が、解析実行時データ格納手段16の格納内容を参照しながら形態素解析し、得られた形態素解析結果を出力する(ステップ103)。
【0042】
図3は、低速形態素解析手段11に入力される学習用文書の一例を示している。図3に示すように、学習用文書は、拡張情報やタグを伴うことがない自然言語テキストデータになっている。
【0043】
適用している低速形態素解析手段11の内部構成にもよってその出力データ形式(形態素解析結果データ形式)は異なる。図4は、図3の第1文目を低速形態素解析した結果の出力例(出力データ形式例)を示している。図4の各行は一つの単語の情報を示している。1つの単語の情報は空白で区切られた3つの情報からなり、それぞれ品詞、標準形、出現形である。活用しない名詞などの場合は標準形と活用形は同じになる。
【0044】
図5は、図3に対応した学習データの例を示している。図4に例示したような低速形態素解析結果のデータを、この図5に示すような学習データに変換手段13は変換する。
【0045】
図5に示した例は、解析実行時データが、文字数Nの拡張文字列と、その拡張文字列がコーパス上にどの程度の割合で出現するかを表す連鎖確率のデータとでなり、しかも、拡張文字が、「私」、「は」等の通常の文字に対して形態素区切り情報を拡張情報として付加したものである場合に対応した例である。なお、拡張情報として、形態素区切り情報に加えて品詞情報を含むものは、図5の形式とは異なるものとなる。
【0046】
図5(A)は、前接する文字との間が形態素の区切りになる場合を「1」で、そうでない場合を「0」で表した拡張文字列で、形態素の境界(区切り)を表した例を示している。図5(B)は、図5(A)と同じ内容を、形態素区切りをスラッシュ(/)で表した例である。
【0047】
図6は、変換手段13による変換処理の流れの一例を示すフローチャートである。なお、図6は、変換後のデータ形式が図5(A)に示すような場合に対応したものである。
【0048】
まず、低速形態素解析結果格納手段12に、変換処理が終了していない低速形態素解析結果が残っているか否かを確認する(ステップ200)。残っていないならば、一連の変換処理を終了する。
【0049】
これに対して、低速形態素解析結果格納手段12に、未処理の低速形態素解析結果が残っているならば、未処理の低速形態素解析結果を1文分だけ読み出す(ステップ201)。そして、読み出した低速形態素解析結果から、出現形の項目を抜き出し(ステップ202)、各出現形の文字をそれぞれ拡張文字に変換して拡張文字列を作成する(ステップ203)。そして、得られた拡張文字列を、学習データ格納手段14に格納して上述したステップ200に戻る(ステップ204)。
【0050】
ここで、拡張文字への変換は、出現形の最後の文字だけに形態素区切りであることを表す「1」を付与し、それ以外の文字には、形態素区切りでないことを表す「0」を付与する。例えば、図7に示すように、出現形が「機械翻訳」であれば、それに対する拡張文字列として、<機,0><械,0><翻,0><訳,1>が得られる。
【0051】
上記第1の実施形態によれば、低速形態素解析結果を、高速形態素解析方法が解析時に用いる解析実行時データの作成用学習データに自動的に変換する学習機能を持たせたので、これまで学習データとしていなかった文章を容易に学習データとして使用することができる、基本的に高速形態素解析方法に従っている形態素解析装置を実現できる。その結果、学習データの充実を計ることができ、未知文書に対する高速形態素解析結果の精度向上も期待できる。
【0052】
また、低速形態素解析結果を学習データに自動的に変換する学習機能を持たせたので、利用者は学習用文書を当該装置に入力する操作を行うだけで良く、学習用文書から学習データを作成したり、低速形態素解析結果から学習データを作成したりすることを不要にすることができる。
【0053】
(B)第2の実施形態
次に、本発明による形態素解析装置の第2の実施形態を図面を参照しながら詳述する。
【0054】
この第2の実施形態の形態素解析装置は、高速形態素解析結果の精度の良否を弁別し、良くない場合には、そのことを明らかにした結果を利用者に提示し、利用者に精度が低い場合の判断を委ねるようにしたことを大きな特徴としているものである。
【0055】
図8は、この第2の実施形態の形態素解析装置10Aの機能的構成を示すブロック図であり、上述した第1の実施形態に係る図1との同一、対応部分には同一符号を付して示している。
【0056】
図8において、第2の実施形態の形態素解析装置10Aは、解析実行時データ格納手段16、高速形態素解析手段17、精度判定手段18及び精度・解析結果合成手段19を備える。
【0057】
なお、解析実行時データ格納手段16に格納する解析実行時データの作成方法が第1の実施形態と同様である場合には、図示は省略しているが、低速形態素解析手段11、低速形態素解析結果格納手段12、変換手段13、学習データ格納手段14及び学習手段15も備える(図1参照)。これら構成要素についての説明は省略する。
【0058】
また、解析実行時データ格納手段16及び高速形態素解析手段17は、第1の実施形態のものと同様であるので、その機能説明は省略する。
【0059】
この第2の実施形態で新たに設けられた精度判定手段18は、高速形態素解析手段17が解析実行時データ格納手段16に所望する解析実行時データを検索した際の検索結果に基づいて、高速形態素解析手段17から得られる形態素解析結果における精度が低いと思われる文字列を判定するものである。このような精度判定結果は、精度・解析結果合成手段19に与えられる。
【0060】
解析実行時データは、非特許文献1や、特願平9−68300号明細書及び図面にも記載されているように、また、第1の実施形態で説明したように、学習データから作成される。学習データに現れた文字列に対応した解析実行時データは存在するが、当然に、学習データに現れない文字列に対応した解析実行時データは存在しない。学習データに現れた文字列に対応した解析実行時データであっても、その出現頻度によって、連鎖確率の値は変化する。
【0061】
従って、未知文書を高速形態素解析しようとして解析実行時データ格納手段16をアクセスした場合において、該当文字列が存在しない部分や存在してもその連鎖確率が低い部分等は、高速形態素解析結果におけるその部分の精度は、他の部分より低いということができる。精度判定手段18は、解析実行時データ格納手段16に対するアクセスを通じて、このような低精度部分の判定を行うものである。
【0062】
精度・解析結果合成手段19には、精度判定手段18から精度判定結果が与えられると共に、高速形態素解析手段17から形態素解析結果が与えられる。精度・解析結果合成手段19は、これらの入力情報を合成し、精度判定手段18が精度が不十分であると判断した文字列を明示して形態素解析結果を利用者に提示するものである。
【0063】
以上のように機能ブロック化できる、第2の実施形態の形態素解析装置10Aの全体処理の流れの一例を、図9のフローチャートを参照しながら詳述する。
【0064】
なお、図9は、未知文書中のある1文に対する処理を示している。また、図9の処理例では、低精度文字列部分の特定を、解析実行時データ格納手段16に該当文字列が存在しないことを1要件としている。さらに、精度カウンタを装置10A(精度判定手段18)が内蔵しているとして説明する。この精度カウンタは、初期値が0である一時メモリである。さらにまた、装置10A(精度判定手段18)が、低精度文字列のバッファメモリも内蔵しているとして説明する。
【0065】
入力文における文字位置ポインタを備え、このポインタが示す文字位置から始まるN文字の文字列を読み込む(ステップ300)。そして、この読み込み処理で文字列が読み込めなかったか否かに基づいて、最終番目の文字列の読み込み、それに続く処理が既に終了しているか否かを判定する(ステップ301)。
【0066】
終了していない場合には、読み込んだ文字列に基づいて検索文字列を作成して解析実行時データ格納手段16を検索し、検索文字列が解析実行時データ格納手段16に存在したか否かを判定する(ステップ302、303)。
【0067】
ここで、作成される検索文字列は一般に複数組である。例えば、解析実行時データ格納手段16に図11に示すような拡張文字列の解析実行時データが格納されているので、N(例えば3)文字の読み込み文字列のそれぞれの文字を2種類の拡張文字に置き換え、入力文字列の各文字についての2種類の拡張文字の全ての組み合わせがそれぞれ、検索文字列となるので、作成される検索文字列は一般には、2のN乗組だけ存在する。ステップ303の判定で検索文字列が存在しないとする場合は、「全て」の検索文字列が存在しない場合であり、2のN乗組のうちの1組の検索文字列でも解析実行時データ格納手段16に存在する場合には、ステップ303の判定では存在するとする。
【0068】
ステップ303の判定結果、検索文字列が存在しないという結果を得たときには、精度カウンタの値を1インクリメントし、今回の読み込み文字列を低精度文字列格納領域に格納して後述するステップ309に移行する(ステップ304、305)。
【0069】
一方、ステップ303の判定結果、検索文字列が解析実行時データ格納手段16に存在していた場合には、その時点での精度カウンタの値が閾値以下であるか否かを判定する(ステップ306)。なお、閾値は、Nの値に応じて定められるものであるが、例えば、Nが3であれば1ぐらいが適当である。
【0070】
ここで、肯定結果が得られたときには、精度カウンタの値を0クリアすると共に、低精度文字列格納領域に格納されていた低精度文字列もクリアして後述するステップ309に移行する(ステップ307)。これに対して、検索文字列が解析実行時データ格納手段16に存在しており、しかも、その時点での精度カウンタの値が閾値より大きいときには、その時点で低精度文字列格納領域に格納されていた低精度文字列を、形態素解析結果で明示する部分として認識して、後述するステップ309に移行する(ステップ308)。
【0071】
ステップ309においては、解析実行時データ格納手段16に存在した1又は複数組の検索文字列についての連鎖確率に基づいて、今回読み込んだ文字列までの入力文の文字列についての複数の形態素解析結果候補の評価値(連鎖確率の積)を更新する。なお、検索文字列が存在しない場合での取り扱いは任意であるが、既存の高速形態素解析手段の方法をそのまま採用すれば良い。例えば、解析実行時データ格納手段16に格納されている解析実行時データが文字数Nの拡張文字列に係るものである場合に、それらから文字数N−1や文字数N−2の拡張文字列に係る解析実行時データを形成して処理する。一般に、文字数が長ければ存在しない文字列でも、それより短い文字数の部分ごとに見た場合には、存在することが多い。
【0072】
このようなステップ309の処理が終了すると、文字位置ポインタを1大きくして上述したステップ300に戻り、入力文中の文字数Nの文字列の読み込みを行う。
【0073】
ステップ300〜309でなる処理ループを繰り返すことにより、入力文中の文末側の文字数Nの文字列の読み込み、それに続くステップ302からステップ309に至る処理も終了し、その後、ステップ301に移行してきたときには、最終文字列の処理も終了したと判定される。
【0074】
このとき、入力文中の各文字を拡張文字に置き換えた組み合わせの中で最も連鎖確率が高いものを形態素解析結果とし、この形態素解析結果を低精度文字列を明示して利用者に提示し、一連の処理を終了する(ステップ310)。
【0075】
以上のような第2の実施形態の形態素解析装置10Aの処理を、図10に示す文「給与計算システム蜃気楼の構成を図1に示す。」が入力されたとして具体的に説明する。なお、解析実行時データ格納手段16には、学習データに連続して現れた3文字を一つの単位として値(連鎖確率)が割り当てられているものとし、図11に示す内容が格納されているものとする。図11に示されていない文字列は値が割り当てられていない存在しないものとする。また、説明を簡単にするために、文頭、文末の処理、及び、解析実行時データには3文字未満の文字列の値はないものとして説明する。さらに、精度カウンタの値に対する閾値を1として説明する。
【0076】
精度カウンタと低精度文字列格納領域を初期化してから図9の処理を開始する。
【0077】
まず、ステップ300で最初の3文字「給与計」を読み込み、読み込み終了でないことがステップ301で確認され、その文字列「給与計」について、ステップ302で解析実行時データ格納手段16を検索すると、存在が確認され(連鎖確率0.71が出力されることが存在を表す)、ステップ303、306、307を経てステップ309に至り、その文字列までの拡張文字列候補の評価値(スコア)が計算される。従って、文字列「給与計」に対する処理が終了しても、精度カウンタの値は0であり、低精度文字列格納領域にも何らの文字も格納されない。
【0078】
文字列「与計算」、「計算シ」、「算シス」、「システ」及び「ステム」についても同様な経路の処理が実行される。従って、文字列「ステム」に対する処理が終了した時点では、精度カウンタの値は0であり、低精度文字列格納領域にも何らの文字も格納されない。
【0079】
次に、文字列「テム蜃」が読み込まれると、解析実行時データ格納手段16には対応する解析実行時データがないので、ステップ304で精度カウンタの値が1加算され(これにより「1」となる)、ステップ305で低精度文字列格納領域に「テム蜃」が格納され、その後、ステップ309に移行する。
【0080】
以下、文字列「ム蜃気」、「蜃気楼」、「気楼の」及び「楼の構」についても同様な処理が実行される。その結果、文字列「楼の構」に対する処理が終了したときには、低精度文字列格納領域には文字列「テム蜃気楼の構」が格納され、精度カウンタの値は「5」となっている。
【0081】
次の文字列「の構成」は、解析実行時データ格納手段16に対応する解析実行時データが存在するので、ステップ303からステップ306に移行する。このときの精度カウンタの値「5」は、閾値「1」よりも大きいので、ステップ308で、低精度文字列格納領域に格納されている低精度文字列「テム蜃気楼の構」が精度・解析結果合成手段19に与えられ、その後、ステップ309に移行する。文字列「の構成」に対する処理が終了したときには、その前の文字列「楼の構」に対する処理が終了したときと同様に、低精度文字列格納領域には文字列「テム蜃気楼の構」が格納され、精度カウンタの値は「5」となっている。
【0082】
その次の文字列「構成を」から最終文字列「示す。」までについてはそれぞれ、ステップ303、306、307、309という、対応する解析実行時データが解析実行時データ格納手段16に存在する場合の一般的な経路での処理が実行される。
【0083】
最終文字列「示す。」に対する処理が終了すると、次には文字列がないので、ステップ310に移行し、図12に例示するように、形態素解析結果「給与/計算/システム/蜃気楼の/構成/を/図/1/に/示/す/。」と、システムが精度に自信がない低精度文字列「テム蜃気楼の構」とを対比しやすいように利用者に提示する。
【0084】
上記第2の実施形態によれば、高速形態素解析の精度が良くないと判断された部分文字列に対しては、その結果を利用者に提示するようにしたので、利用者が必要に応じて正しい形態素解析結果を入力することができる形態素解析装置を実現できる。
【0085】
形態素解析装置の解析結果は、次の構文解析装置などの入力になるので、その精度が重要であり、正しくない解析結果を次の装置に渡した場合の悪影響の度合は大きい。正しいか正しくないかが明らかでない部分に対しては、利用者に判断させるので、その結果、正しい形態素解析結果を次の装置に入力させることができる。
【0086】
ここで、精度判定を解析実行時データ格納手段に存在するか否かで行っているので、精度判定機能が処理時間をほとんど長期化させることはない。
【0087】
(C)第3の実施形態
次に、本発明による形態素解析装置の第3の実施形態を図面を参照しながら詳述する。
【0088】
この第3の実施形態の形態素解析装置は、高速形態素解析結果の精度の良否を弁別し、良くない部分に対しては、自動的に低速形態素解析を実行し、常に精度が高い形態素解析結果を出力するようにしたことを大きな特徴としているものである。
【0089】
図13は、この第3の実施形態の形態素解析装置10Bの機能的構成を示すブロック図であり、上述した第1の実施形態に係る図1や第2の実施形態に係る図8との同一、対応部分には同一符号を付して示している。
【0090】
図13において、第3の実施形態の形態素解析装置10Bは、低速形態素解析手段11、解析実行時データ格納手段16、高速形態素解析手段17、精度判定手段18及び解析結果合成手段20を備える。
【0091】
なお、解析実行時データ格納手段16に格納する解析実行時データの作成方法が第1の実施形態と同様である場合には、図示は省略しているが、低速形態素解析手段11、低速形態素解析結果格納手段12、変換手段13、学習データ格納手段14及び学習手段15も備える(図1参照)。これら構成要素についての説明は省略する。この第3の実施形態の場合、解析実行時データ格納手段16に格納する解析実行時データの作成方法が第1の実施形態と同様である場合には、低速形態素解析手段11は、解析実行時データの作成処理のためと、後述する低精度文字列を含む文字列の形態素解析のための双方に利用される。
【0092】
また、低速形態素解析手段11、解析実行時データ格納手段16及び高速形態素解析手段17の機能自体は、第1の実施形態のものと同様であるので、その機能説明は省略する。さらに、精度判定手段18の機能自体は、第2の実施形態のものと同様であるので、その機能説明は省略する。
【0093】
しかし、この第3の実施形態の場合、精度判定手段18が、高速形態素解析方法では精度に自信がないと判定した、入力文中の低精度文字列は低速形態素解析手段11に与えられるようになされている。低速形態素解析手段11は、このような低精度文字列を含む文字列部分に対して低速形態素解析処理を実行する。
【0094】
この第3の実施形態で新たに設けられた解析結果合成手段20は、高速形態素解析手段17からの形態素解析結果における低精度文字列に対応した部分を、低速形態素解析手段11による低速形態素解析結果に置き換えるものである。
【0095】
図14は、第3の実施形態の形態素解析装置10Bの全体処理の流れの一例を示すフローチャートであり、第2の実施形態に係る図9との同一処理ステップには、同一符号を付して示している。
【0096】
第2の実施形態の場合、確定された低精度文字列はステップ308で利用者への提示対象として認識されるが、この第3の実施形態の場合には、確定された低精度文字列は、ステップ308aで低速形態素解析手段11に与えられる。
【0097】
また、第2の実施形態の場合、ステップ310で、低精度文字列を明示した形で高速形態素解析結果を利用者に提示していたが、この第3の実施形態の場合には、高速形態素解析結果における低精度文字列に対応した部分を、低速形態素解析結果に置き換え、置き換え後の形態素解析結果を利用者に提示する。なお、低速形態素解析は、高速形態素解析結果における、低精度文字列の先頭文字より前の形態素区切り位置と、低精度文字列の最終文字より後の形態素区切り位置とに挟まれた文字列に対して実行される。
【0098】
以上の2点を除けば、他の処理は第2の実施形態と同様であり、その説明は省略する。
【0099】
上述した図10に示す文「給与計算システム蜃気楼の構成を図1に示す。」が、この第3の実施形態の形態素解析装置10Bに入力された場合にも、文字列「テム蜃気楼の構」が低精度文字列として認識されるのは、第2の実施形態と同様である。
【0100】
今、低速形態素解析手段11が内蔵する形態素辞書には、「蜃気楼」が一つの形態素(名詞)として登録されているものとする。低速形態素解析手段11は、低精度文字列「テム蜃気楼の構」と、高速形態素解析結果「給与/計算/システム/蜃気楼の/構成/を/図/1/に/示/す/。」とが与えられると、低精度文字列「テム蜃気楼の構」の先頭文字より前の形態素区切り位置と、低精度文字列の最終文字より後の形態素区切り位置とに挟まれた文字列「システム蜃気楼の構成」が低速形態素解析対象部分として解析を実行する。
【0101】
そして、低速形態素解析手段11は、図15に示すように、「システム」、「蜃気楼」、「の」、及び「構成」を別々の形態素として解析結果を出力する。高速形態素解析結果「給与/計算/システム/蜃気楼の/構成/を/図/1/に/示/す/。」の該当部分がこの低速形態素解析結果に置き換えられるので、最終的な形態素解析結果は、図16に示すように、「給与/計算/システム/蜃気楼/の/構成/を/図/1/に/示/す/。」となる。
【0102】
この第3の実施形態での解析結果は、第2の実施形態の解析結果に比べて、「蜃気楼」と「の」を別の形態素として解析しており、精度が向上している。
【0103】
上記第3の実施形態によれば、高速形態素解析の精度が良くないと判断された部分文字列又はその近傍に対しては、自動的に低速形態素解析を実行し、低速形態素解析結果に置き換えるようにしたので、常に精度が良い形態素解析結果を出力する形態素解析装置を実現できる。
【0104】
この第3の実施形態においても、高速形態素解析を基本解析処理としているので、入力文を全て低速形態素解析するよりも短い時間で解析を実行できる。
【0105】
(D)第4の実施形態
次に、本発明による形態素解析装置の第4の実施形態を図面を参照しながら詳述する。
【0106】
この第4の実施形態の形態素解析装置は、高速形態素解析結果の精度の良否を弁別し、良くない部分に対しては、自動的に低速形態素解析を実行し、常に精度が高い形態素解析結果を出力すると共に、低速形態素解析結果を高速形態素解析の解析実行時データに学習、反映させ、学習後には、精度が良くなかった文章と同じ形態素が含まれる文章に対して精度良くかつ高速に形態素解析できるようにしたことを大きな特徴としているものである。
【0107】
図17は、この第4の実施形態の形態素解析装置10Cの機能的構成を示すブロック図であり、既述した各実施形態に係る図1、図8及び図13との同一、対応部分には同一符号を付して示している。
【0108】
図17において、第4の実施形態の形態素解析装置10Cは、低速形態素解析手段11、変換手段13、学習データ格納手段14、学習手段15、解析実行時データ格納手段16、高速形態素解析手段17、精度判定手段18及び解析結果合成手段20を備える。
【0109】
第4の実施形態の形態素解析装置10Cの全ての構成要素はそれぞれ、既述した各実施形態の対応する要素と同一機能を果たすものである。
【0110】
しかし、この第4の実施形態の形態素解析装置10Cにおいては、低精度文字列を含む文字列に対して低速形態素解析手段11が解析して得た結果を、変換手段13に与えている点が第1や第3の実施形態と異なっている。変換手段13から解析実行時データ格納手段16への処理経路上での各手段の機能は、第1の実施形態と同様である。
【0111】
なお、低速形態素解析手段11、変換手段13、学習データ格納手段14、学習手段15及び解析実行時データ格納手段16が、第1の実施形態と同様な外部から入力された学習用文書に対する処理をも担うものであっても良いことは勿論である。
【0112】
図18は、第4の実施形態の形態素解析装置10Cの全体処理の流れの一例を示すフローチャートであり、第3の実施形態に係る図14との同一処理ステップには、同一符号を付して示している。
【0113】
第4の実施形態の形態素解析装置10Cでは、第3の実施形態の最終処理ステップ310aより後にステップ311及び312の処理を設けている。
【0114】
ステップ311は、低速形態素解析結果を、高速形態素解析の学習手段15への入力用データ(学習データ)に変換して追加格納する処理である。ステップ312は、その時点での全ての学習データを用いて、解析実行時データを作成する処理である。
【0115】
低精度文字列を含む文字列に対して、例えば、上述した図15に示すような低速形態素解析結果が得られた場合に、変換手段13が上述した図6に示すような変換方法で学習データを変換すると、図19に示すような拡張文字列(学習データ)が得られる。
【0116】
このような学習データが、既存の学習データに追加され、追加後の学習データ全体に対して、学習手段15が学習すると、低速形態素解析結果に対応した部分の解析実行時データとして図20に示すようなデータが得られて(他の解析実行時データも当然に得られる)、解析実行時データ格納手段16に格納される。すなわち、図11に示すようなデータ(連鎖確率は変化する)に加えて、図20に示すようなデータが新たに加わることになる。
【0117】
その結果、学習したデータによって解析可能な文が解析対象として入力された場合には、例えば、「給与計算システム蜃気楼の値段は2000円です。」が入力された場合には、前回低精度文字列と認定された部分も精度判定手段18で低精度と判定されなくなり、第3の実施形態と同程度の精度の高速形態素解析結果を、毎回、低速形態素解析手段11を起動しないで得られるようになる。
【0118】
上記第4の実施形態によれば、高速形態素解析の精度が良くない場合には自動的に低速形態素解析を実行し、さらにその結果を高速形態素解析の学習のためのデータとして使用し、学習後には、精度が良くなかった文章と同じ形態素が含まれる文章に対して精度良くかつ高速に形態素解析できる形態素解析装置を実現できる。
【0119】
(E)他の実施形態
上記各実施形態においては、解析実行時データが1カテゴリーのものを示したが、分野別などの複数カテゴリーのものを用意し、未知文書の入力時にカテゴリーを指定させるようにしても良い。この場合、第1の実施形態では、学習用文書を入力させる際に、その学習用文書のカテゴリーも指定することを要する。また、第3や第4の実施形態では、低速形態素解析手段が適用する専門辞書があれば、そのカテゴリーのものとなる。さらに、第4の実施形態では、低速形態素解析結果を、未知文書の入力時に指定されたカテゴリーの解析実行時データに反映させることとなる。
【0120】
また、第1の実施形態の説明では、学習データ格納手段14への格納が追加格納か新規格納(前のものをクリアしての格納)かを明確に示さなかったが、いずれであっても良い。また、外部から、格納方法を変換手段13にその都度指示できるようにしても良い。
【0121】
さらに、第1及び第4の実施形態において、学習手段15を以下のようにしても良い。学習データ格納手段14に追加された学習データについてのみ、文字列の出現頻度を計数して解析実行時データを作成する。この場合、解析実行時データ格納手段16には、連鎖確率だけでなく出現頻度も格納しておき、今回の集計結果と、解析実行時データ格納手段16に既に格納されている出現頻度とから、学習手段15は、既存の解析時学習データの文字列や、新規発生の文字列の連鎖確率を決定するようにしても良い。
【0122】
さらにまた、第2〜第4の実施形態においては、解析実行時データ格納手段16に存在しないことを低精度文字列の認定条件にしているものを示したが、存在しても、その値(連鎖確率)が所定閾値より小さいことを低精度文字列の認定条件にするようにしても良い。
【0123】
また、第2〜第4の実施形態において、低精度文字列の範囲を上記のように1文の部分文字列とするのではなく、判定文字列を含む1文全てを低精度文字列として扱うようにしても良い。第2の実施形態であれば、文単位に低精度か否かの情報が付随される。第3の実施形態であれば、低精度認定時にその文全体が低速形態素解析手段11で解析されることになる。第4の実施形態であれば、文全体の低速形態素解析結果が、解析実行時データ格納手段16の格納内容に反映される。このように文全体で精度推測を行う場合には、最適な高速形態素解析結果での連鎖確率を、入力文の文字数などで正規化し、その値を閾値と比較することなどによって、その文の精度を推測するようにしても良い。
【0124】
また、解析実行時データ格納手段16の格納内容を利用しないで精度を判定する方法を単独で採用したり、解析実行時データ格納手段16の格納内容を利用して精度を判定する方法と併用したりしても良い。例えば、解析実行時データ格納手段16の格納内容を利用しないで精度を判定する方法としては、例えば、ひらがなや漢字などのある1種類の文字種が連続して所定文字数以上つながっている部分の中央所定文字数部分を精度が低いと判定するような方法を挙げることができる。また、第2水準の漢字を所定文字数以上含む文の精度を低いと判定するようにしても良い。
【0125】
さらに、第3及び第4の実施形態においては、低精度文字列に対応した低速形態素解析を1文毎に実行するものを示したが、文書全体を高速形態素解析した後でまとめて精度の悪かった部分に対して低速形態素解析を実行するようにしても良い。
【0126】
さらにまた、上記各実施形態の具体的説明においては、解析実行時データを構成する拡張文字の拡張情報が、形態素区切り情報だけのものを示したが、これに加えて、品詞情報や単語の発音情報を含むものであっても良い。この場合、当然に、変換手段や学習手段もそれに応じたものとなる。解析実行時データをこのようにした場合には、単語分割と品詞付与を行なう形態素解析や、単語の発音を決定する形態素解析を高速化することができる。
【0127】
また、上記各実施形態においては、対象とする自然言語が日本語である形態素解析装置を示したが、他の言語の形態素解析装置に対しても本発明を適用することができる。
【0128】
【発明の効果】
以上のように、本発明の形態素解析装置によれば、利用者に負担をかけることなく、形態素解析結果の精度向上や、解析処理時間の短縮化を期待できる。
【図面の簡単な説明】
【図1】第1の実施形態の構成を示すブロック図である。
【図2】第1の実施形態の処理の概要を示すフローチャートである。
【図3】第1の実施形態の学習用文書の一例を示す説明図である。
【図4】図3の第1文目についての低速形態素解析結果を示す説明図である。
【図5】図3の学習用文書に対応した学習データを示す説明図である。
【図6】第1の実施形態の変換手段による詳細処理例を示すフローチャートである。
【図7】図6のステップ206の処理の説明図である。
【図8】第2の実施形態の構成を示すブロック図である。
【図9】第2の実施形態の処理を示すフローチャートである。
【図10】形態素解析対象文を示す説明図である。
【図11】解析実行時データ格納手段16の格納内容例を示す説明図である。
【図12】第2の実施形態で図10の文を解析した出力内容例を示す説明図である。
【図13】第3の実施形態の構成を示すブロック図である。
【図14】第3の実施形態の処理を示すフローチャートである。
【図15】第3の実施形態の低精度文字列に対する低速形態素解析結果例を示す説明図である。
【図16】第3の実施形態で図10の文を解析した最終的な解析結果例を示す説明図である。
【図17】第4の実施形態の構成を示すブロック図である。
【図18】第4の実施形態の処理を示すフローチャートである。
【図19】第4の実施形態での低精度文字列に対する低速形態素解析結果を学習データに変換した例を示す説明図である。
【図20】第4の実施形態での低精度文字列に対応した学習データから形成された解析実行時データの例を示す説明図である。
【符号の説明】
10、10A、10B、10C…形態素解析装置、
11…低速形態素解析手段、
13…変換手段、
15…学習手段、
17…高速形態素解析手段、
18…精度判定手段、
19…精度・解析結果合成手段、
20…解析結果合成手段。
Claims (7)
- 自然言語文に現れる第1の所定文字数でなる部分文字列と、その部分文字列の既存文書における出現割合である連鎖確率と、上記部分文字列の各文字に対して付与されたその文字が形態素の最終文字か否かの区切り位置の情報とを少なくとも含む組データである解析実行時データを多数格納している解析実行時データ格納手段と、未知文章に対して、上記解析実行時データ格納手段の格納内容を参照して形態素解析を実行する第1の形態素解析手段とを有する形態素解析装置において、
上記未知文章に対して上記第1の形態素解析手段が適用した上記解析実行時データ格納手段に格納されている中の上記解析実行時データにおける連鎖確率が閾値より小さいとき、又は、上記解析実行時データ格納手段に格納されている上記解析実行時データを適用し得ない部分を上記未知文章が有するときに、上記第1の形態素解析手段からの、未知文章の全体、又は、連鎖確率が閾値より小さい上記解析実行時データの部分文字列若しくは上記解析実行時データを適用し得ない部分を含む未知文章内の文字列部分についての形態素解析結果の精度を低精度と推測する精度判定手段を有することを特徴とする形態素解析装置。 - 自然言語文に現れる第1の所定文字数でなる部分文字列と、その部分文字列の既存文書における出現割合である連鎖確率と、上記部分文字列の各文字に対して付与されたその文字が形態素の最終文字か否かの区切り位置の情報とを少なくとも含む組データである解析実行時データを多数格納している解析実行時データ格納手段と、未知文章に対して、上記解析実行時データ格納手段の格納内容を参照して形態素解析を実行する第1の形態素解析手段とを有する形態素解析装置において、
上記未知文章の全体又は部分の中で特定文字種の文字が第2の所定文字数以上つながっているときに、上記第1の形態素解析手段からの、未知文章の全体、又は、特定文字種の文字が第2の所定文字数以上つながっている部分を含む未知文章内の文字列部分についての形態素解析結果の精度を低精度と推測する精度判定手段を有することを特徴とする形態素解析装置。 - 自然言語文に現れる第1の所定文字数でなる部分文字列と、その部分文字列の既存文書における出現割合である連鎖確率と、上記部分文字列の各文字に対して付与されたその文字が形態素の最終文字か否かの区切り位置の情報とを少なくとも含む組データである解析実行時データを多数格納している解析実行時データ格納手段と、未知文章に対して、上記解析実行時データ格納手段の格納内容を参照して形態素解析を実行する第1の形態素解析手段とを有する形態素解析装置において、
上記未知文章の全体又は部分の中で特定文字種の文字が第3の所定文字数以上含まれているときに、上記第1の形態素解析手段からの、未知文章の全体、又は、特定文字種の文字が第3の所定文字数以上含まれている部分を含む未知文章内の文字列部分についての形態素解析結果の精度を低精度と推測する精度判定手段を有することを特徴とする形態素解析装置。 - 上記精度判定手段が精度が低いと推測した未知文章又は未知文章内の文字列部分を明示して、上記第1の形態素解析手段からの形態素解析結果を出力する解析結果出力手段を有することを特徴とする請求項1〜3のいずれかに記載の形態素解析装置。
- 上記精度判定手段が精度が低いと推測した未知文章又は未知文章内の文字列部分に対し、形態素辞書を利用した形態素解析を行う第2の形態素解析手段を有することを特徴とする請求項1〜4のいずれかに記載の形態素解析装置。
- 上記第1の形態素解析手段の形態素解析結果における、上記精度判定手段が精度が低いと推測した未知文章又は未知文章内の文字列部分に対応する結果を、上記第2の形態素解析手段の形態素解析結果に置き換える解析結果合成手段を有することを特徴とする請求項5に記載の形態素解析装置。
- 上記第2の形態素解析手段の形態素解析結果から形態素間の区切り位置を認識し、各文字と、その文字が形態素の最終文字であるか否かを表す区切り位置情報との組でなる学習データを作成する変換手段と、
学習データを上記第1の所定文字数毎に切り分けて集計し、第1の所定文字数でなる部分文字列と、連鎖確率と、区切り位置情報とを少なくとも含んだ複数の解析実行時データを作成する学習手段と
を有することを特徴とする請求項5又は6に記載の形態素解析装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003080537A JP3939264B2 (ja) | 2003-03-24 | 2003-03-24 | 形態素解析装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003080537A JP3939264B2 (ja) | 2003-03-24 | 2003-03-24 | 形態素解析装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10052264A Division JPH11250056A (ja) | 1998-03-04 | 1998-03-04 | 形態素解析装置及び解析実行時データ作成装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003296323A JP2003296323A (ja) | 2003-10-17 |
JP3939264B2 true JP3939264B2 (ja) | 2007-07-04 |
Family
ID=29398183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003080537A Expired - Fee Related JP3939264B2 (ja) | 2003-03-24 | 2003-03-24 | 形態素解析装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3939264B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7287012B2 (en) * | 2004-01-09 | 2007-10-23 | Microsoft Corporation | Machine-learned approach to determining document relevance for search over large electronic collections of documents |
JP2013069157A (ja) * | 2011-09-22 | 2013-04-18 | Toshiba Corp | 自然言語処理装置、自然言語処理方法および自然言語処理プログラム |
-
2003
- 2003-03-24 JP JP2003080537A patent/JP3939264B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003296323A (ja) | 2003-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6816830B1 (en) | Finite state data structures with paths representing paired strings of tags and tag combinations | |
CN105095204B (zh) | 同义词的获取方法及装置 | |
JP3429184B2 (ja) | テキスト構造解析装置および抄録装置、並びにプログラム記録媒体 | |
JP4694111B2 (ja) | 用例ベースの機械翻訳システム | |
JP5599662B2 (ja) | 統計的な方法を用いて漢字を自国語の発音列に変換するシステムおよび方法 | |
US20080221863A1 (en) | Search-based word segmentation method and device for language without word boundary tag | |
JP5403696B2 (ja) | 言語モデル生成装置、その方法及びそのプログラム | |
KR101136007B1 (ko) | 문서 감성 분석 시스템 및 그 방법 | |
Mori et al. | A machine learning approach to recipe text processing | |
US6876963B1 (en) | Machine translation method and apparatus capable of automatically switching dictionaries | |
KR20140021838A (ko) | 문법 오류 검출 방법 및 이를 위한 오류검출장치 | |
KR101023209B1 (ko) | 문서 번역 장치 및 그 방법 | |
JPH10326275A (ja) | 形態素解析方法および装置、並びに日本語形態素解析方法および装置 | |
JP4979637B2 (ja) | 複合語の区切り位置を推定する複合語区切り推定装置、方法、およびプログラム | |
JP5097802B2 (ja) | ローマ字変換を用いる日本語自動推薦システムおよび方法 | |
JP4143085B2 (ja) | 同義語獲得方法及び装置及びプログラム及びコンピュータ読み取り可能な記録媒体 | |
JP5447368B2 (ja) | 新規事例生成装置、新規事例生成方法及び新規事例生成用プログラム | |
JP3939264B2 (ja) | 形態素解析装置 | |
JP6623840B2 (ja) | 同義語検出装置、同義語検出方法及び同義語検出用コンピュータプログラム | |
JP2005202924A (ja) | 対訳判断装置、方法及びプログラム | |
JP3952964B2 (ja) | 読み情報決定方法及び装置及びプログラム | |
KR20040018008A (ko) | 품사 태깅 장치 및 태깅 방법 | |
JP2007148630A (ja) | 特許分析装置、特許分析システム、特許分析方法およびプログラム | |
JPH11250056A (ja) | 形態素解析装置及び解析実行時データ作成装置 | |
CN111259159A (zh) | 数据挖掘方法、装置和计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061109 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070327 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |