JP6300601B2 - 辞書装置、形態素解析装置、データ構造ならびに形態素解析の方法およびプログラム - Google Patents

辞書装置、形態素解析装置、データ構造ならびに形態素解析の方法およびプログラム Download PDF

Info

Publication number
JP6300601B2
JP6300601B2 JP2014071155A JP2014071155A JP6300601B2 JP 6300601 B2 JP6300601 B2 JP 6300601B2 JP 2014071155 A JP2014071155 A JP 2014071155A JP 2014071155 A JP2014071155 A JP 2014071155A JP 6300601 B2 JP6300601 B2 JP 6300601B2
Authority
JP
Japan
Prior art keywords
character string
morpheme
partial character
information
partial
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.)
Active
Application number
JP2014071155A
Other languages
English (en)
Other versions
JP2015194801A (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.)
KDDI Corp
Original Assignee
KDDI Corp
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 KDDI Corp filed Critical KDDI Corp
Priority to JP2014071155A priority Critical patent/JP6300601B2/ja
Publication of JP2015194801A publication Critical patent/JP2015194801A/ja
Application granted granted Critical
Publication of JP6300601B2 publication Critical patent/JP6300601B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Machine Translation (AREA)

Description

本発明は、トライに基づく構造で文字列のデータを格納する形態素解析用の辞書装置、形態素解析装置、データ構造ならびに形態素解析の方法およびプログラムに関する。
音声合成技術の代表的な利用形態にテキスト音声変換(Text−To−Speech、TTS)がある。テキスト音声変換は、入力されたテキストに対応する音声波形を合成する処理である。以下では、この一連の処理は、入力されたテキストを解析してテキストの読み方に関する情報を生成する処理と、読み方に関する情報から音声波形を合成する処理の、大きく2つに分ける。また、入力は日本語の漢字仮名交じり文であるとする。
以下では、読み方に関する情報を表現するために用いる記号を、音声合成用記号と呼ぶ。音声合成用記号には様々な形式があり得るが、ここでは、一連の音声を構成する音韻的情報と、主としてポーズや声の高さとして表現される韻律的情報を同時に表記したものを想定する。そのような音声合成用記号の例として、JEITA(電子情報技術産業協会)規格IT−4006「日本語テキスト音声合成用記号」がある(非特許文献1参照)。この記号だけで音声の感情表現等まで表現することは困難だが、少なくとも通常の読み上げ音声の言語的特徴を記述するために必要な情報は含まれている。
一方、音声波形を合成する処理は、音声合成用記号の通りの波形が合成されるように行われる。したがって、日本語テキストの正確な読み上げを実現するためには、日本語の漢字仮名交じり文に対応した、正確な音声合成用記号を作成すればよい。
任意の日本語テキストから音声合成用記号を生成する処理は、日本語漢字仮名交じり文を形態素と呼ばれる言語表現上意味を持つ最小の単位に区切り、形態素ごとの読みを付与し、形態素列等を参照し形態素の情報を適切に変形し、必要に応じ、ポーズ等の韻律的境界を挿入し、それらを接続することで実現できる。この際、各形態素の読みは、形態素辞書情報として予め作成し格納しておく。
ただし、形態素は、言語学的な定義の通りである必要はなく、一連の処理を行なう上で適当に区切られた単位でもよい。例えば、形態素の並びをより適切に処理するために、複数の形態素で構成される句(複合名詞句等)を便宜的に1つの形態素と見なして処理することがある。よって以下においては、形態素とは、その用途の観点から処理上の最小単位となるべく適当に設定された文字の並び(文字列)をいい、また、全ての文は、この文字列を連結することで構成できるものとする。また、ある文に対して、それを形態素に分割する処理は、一般に形態素解析処理と呼ばれ、音声合成処理に限らず、文の構成要素の抽出等で用いられている。
形態素解析の方法として、以下では、最小コスト法に基づく方法を説明する。最小コスト法による形態素解析では、まず、各形態素の出現頻度を反映させた生起コスト関数と、連続する形態素の繋がりやすさを表す連接コスト関数を予め定義しておく。そして、形態素辞書に登録された形態素から、入力テキストに一致し、かつ文全体のコストが最小となるような形態素列を探すことで、適切な形態素列を得る。通常、生起コスト関数は出現頻度が高い形態素ほど、連接コスト関数は繋がりやすい形態素列ほど、その値が小さくなるよう定義される。
すなわち形態素列をM=(m1,…,mn)、生成コスト関数をCt(m)、連接コスト関数をCc(m(i−k+1),…,mi)とするとき、コストの総和Σ Ct +Σ Ccが最小となる形態素列M、すなわちargmin (Σ Ct +Σ Cc)を求めることで形態素解析処理が行われる。ただし、ここで連接コスト関数はk個の形態素の並びで決定されるものとする。
このようにコスト関数を定義すると、コスト的な最適な全体系列を構成する部分系列は、その部分系列だけを見てもコスト的には最適となる。したがって、コスト的に最適でない部分系列は、最適な全体系列の構成要素にはならないので、探索において考慮する必要がなくなる。このように、最適系列を構成する可能性がない部分系列を考慮しないように進めて行く最適系列の探索法は一般に動的計画法と呼ばれ、効率よく最適系列の探索を行なうことができる。
コスト関数の構成要素のうち、生起コストに関する情報は形態素辞書の内容として保持することができる。一方、連接コストについては連接表と呼ばれるテーブルを予め作成しておき、その表の値を使うことで求めることができる。ただし、全ての形態素列の組み合わせの表を作ることは難しいので、例えば形態素の品詞型だけに注目した表を用いることも行われる。なお、これらの関数は値が大きいほど好ましいものとして定義される場合もある。その場合は、文全体の値が最も大きくなる形態素系列を探すことになる。
形態素解析における形態素列の探索処理では可能な形態素の並び全てを調べることが好ましい。そのため、通常の形態素解析では、形態素の候補を得るために、文中の任意の位置から始まる部分文字列を検索のキーとして、形態素辞書に登録された形態素のうち、キーの先頭部分文字列に等しい形態素全てを取り出す、という処理が繰り返し行われる。このような探索は、一般にCommon prefix search(共通接頭辞探索)と呼ばれる。これを比較的効率よく表現するデータ構造として、trie(トライ)やPatricia tree(パトリシア木)が知られている。
ここで、トライは複数の文字列を格納するための多分木構造で、ここでは、各文字列の先頭文字から順に各文字を木の枝として格納していくことで構築されものとする。トライでは、文字列間の共通な接頭辞が木構造上で共有されるので、検索対処の文字列の接頭辞となる全ての登録語は、木構造の1つのパス上に配置される。つまり、トライのルート(根)から検索キーに沿って木をリーフ(葉)方向にたどって行くことで、common prefix searchを実現できる。
またパトリシア木とは、先述のトライにおいて、子が1つしかないノードを、さらにその子ノードと結合させたものをいう。この結合によって、1つの枝には1文字だけでなく、連続する複数の文字が格納されることもある。
トライの実現については、簡潔データ構造(succinct data structure)の1つとして挙げられるLOUDS(Level-Order Unary Degree Sequence)により省メモリで実現できることが知られている。(非特許文献2参照)
「日本語テキスト音声合成用記号」JEITA規格 IT−4006、2010年3月 「Space-efficient static trees and graphs」Jacobson, G、Foundations of Computer Science, 1989., 30th Annual Symposium、pp. 549-554、1989年10月
日本語やその他の多くの言語では、文字表記と読み情報の間に強い関係性がある。しかし、従来の形態素解析システムは読み情報を各形態素の付加的な情報として扱っており、文字表記と、読み情報の間の関係性をデータ表現上は利用していない。この結果、例えば、読み情報は各形態素で全く独立に符号化されており、形態素辞書のサイズが大きくなる、という問題がある。ハフマン符号化のように、読み情報を記述する記号の出現頻度を考慮する等の方法により、読み情報のサイズを圧縮することも可能であるものの、この場合、圧縮された読み情報を復号する処理が必要となり、必要な処理量が増えることになる。
また、木構造に基づく形態素辞書を用いた場合、読み情報は木のリーフにのみ結び付けられているため、木をルートから辿って行きリーフノードに達するまで、辿った部分までの部分的な読み情報も得ることができず、木構造辞書のアクセスの途中で処理を打ち切るといったアルゴリズムを用いる際に、読み情報を打ち切りの判断基準として考慮することができていない。
本発明は、このような事情に鑑みてなされたものであり、辞書のデータサイズを小さくでき、かつ形態素解析時の処理を効率化できる辞書装置、形態素解析装置、データ構造ならびに形態素解析の方法およびプログラムを提供することを目的とする。
(1)上記の目的を達成するため、本発明の辞書装置は、トライに基づく構造で文字列のデータを格納する形態素解析用の辞書装置であって、文字列のデータを区分した部分文字列および前記部分文字列に関する情報を、文字列に沿って交互に並べて格納することを特徴としている。
これにより、部分文字列に関する情報についても、部分文字列と同様にその先頭の共通部分が木構造上で共有されるので、形態素解析のために記憶する文字列に関するデータサイズを小さくできる。また、採用されない部分文字列に関する情報を共通接頭辞探索の早い段階で判別できるため、効率よく形態素解析の処理ができる。また、部分文字列に関する情報を容易に参照できるため、部分文字列に関する情報の制約を考慮した形態素解析処理を実現できる。
(2)また、本発明の辞書装置は、前記部分文字列に関する情報が、部分文字列の読みに関する情報を含むことを特徴としている。これにより、文字列の読みに関する情報を利用して辞書のデータサイズを小さくできる。また、読みに関する情報を利用して効率的に形態素解析の処理を行なうことができる。
(3)また、本発明の形態素解析装置は、文字列をもとに、これを構成する形態素列に関する情報を出力する形態素解析装置であって、上記の辞書装置と、入力された文字列から部分文字列を切り出し、文字列の順に沿って部分文字列ごとに前記切り出された部分文字列を前記辞書装置に照合し、前記切り出された部分文字列の先頭の部分文字列と一致する形態素に関する情報の候補を出力する照合部と、を備えることを特徴としている。これにより、採用されない部分文字列に関する情報を早い段階で判定し、効率よく形態素解析の処理ができる。
(4)また、本発明の形態素解析装置は、文字列をもとに、これを構成する形態素列に関する情報を出力する形態素解析装置であって、上記の辞書装置と、入力された文字列から部分文字列を切り出し、文字列の順に沿って部分文字列ごとに前記切り出された部分文字列を前記辞書装置に照合し、前記切り出された部分文字列の先頭の部分文字列と一致する形態素に関する情報の候補を出力する照合部と、前記入力された文字列を構成する一部の文字に対する読みに関する情報を制約として参照し、前記照合の結果として出力された候補のうち前記制約を満たす候補を出力する制約参照部と、を備えることを特徴としている。これにより、形態素解析の処理中に、形態素の読みに関する情報を容易に参照することができ、読みの情報の制約を考慮した形態素解析処理を実現できる。
(5)また、本発明のデータ構造は、コンピュータ内の記憶部にトライに基づいて構成される形態素解析用の辞書のデータ構造であって、文字列のデータを区分した部分文字列および前記部分文字列に関する情報が、文字列に沿って交互に並べて格納されることを特徴としている。これにより、効率的なデータ表現により文字列のデータを小さくすることができる。また、効率よく形態素解析の処理ができる。
(6)また、本発明の方法は、文字列をもとに、これを構成する形態素列に関する情報を出力する形態素解析の方法であって、入力された文字列から部分文字列を切り出すステップと、文字列の順に沿って部分文字列ごとに前記切り出された部分文字列を上記のデータ構造を有する文字列のデータと照合するステップと、をコンピュータを用いて実行することを特徴としている。これにより、採用されない部分文字列に関する情報を早い段階で判定し、効率よく形態素解析の処理ができる。
(7)また、本発明の方法は、文字列をもとに、これを構成する形態素列に関する情報を出力する形態素解析の方法であって、入力された文字列から部分文字列を切り出すステップと、文字列の順に沿って部分文字列ごとに前記切り出された部分文字列を、上記のデータ構造を有し、前記部分文字列に関する情報は部分文字列の読みに関する情報を含む、文字列のデータと照合するステップと、前記入力された文字列を構成する一部の文字に対する読みの情報を制約として参照し、前記照合の結果として出力された候補のうち前記制約を満たす候補を出力するステップと、をコンピュータを用いて実行することを特徴としている。これにより、形態素解析の処理中に、形態素の読みに関する情報を容易に参照することができ、読みの情報の制約を考慮した形態素解析処理を実現できる。
(8)また、本発明のプログラムは、文字列をもとに、これを構成する形態素列に関する情報を出力する形態素解析のプログラムであって、入力された文字列から部分文字列を切り出す処理と、文字列の順に沿って部分文字列ごとに前記切り出された部分文字列を上記のデータ構造を有する文字列のデータと照合する処理と、を含む一連の処理をコンピュータに実行させることを特徴としている。これにより、採用されない部分文字列に関する情報を早い段階で判定し、効率よく形態素解析の処理ができる。
(9)また、本発明のプログラムは、文字列をもとに、これを構成する形態素列に関する情報を出力する形態素解析のプログラムであって、入力された文字列から部分文字列を切り出す処理と、文字列の順に沿って部分文字列ごとに前記切り出された部分文字列を、上記のデータ構造を有し、前記部分文字列に関する情報は部分文字列の読みに関する情報を含む、文字列のデータと照合する処理と、前記入力された文字列を構成する一部の文字に対する読みの情報を制約として参照し、前記照合の結果として出力された候補のうち前記制約を満たす候補を出力する処理と、を含む一連の処理をコンピュータに実行させることを特徴としている。これにより、形態素解析の処理中に、形態素の読みに関する情報を容易に参照することができ、読みの情報の制約を考慮した形態素解析処理を実現できる。
本発明によれば、効率的なデータ表現が可能となり、形態素解析のため記憶する文字列のデータサイズを小さくできる。また、採用されない部分文字列に関する情報を早い段階で判定できるため、効率よく形態素解析の処理ができる。また、部分文字列に関する情報を容易に参照できるため、部分文字列に関する情報の制約を考慮した形態素解析処理を実現できる。
本発明の形態素解析装置を示すブロック図である。 従来のデータ構造の一例を示す図である。 本発明のデータ構造の一例を示す図である。 本発明の形態素解析装置の動作を示すフローチャートである。 本発明の形態素解析装置の動作を示すフローチャートである。 本発明の形態素解析装置の動作を示すフローチャートである。 従来のデータ構造の一例を示す図である。 本発明のデータ構造の一例を示す図である。 本発明のデータ構造の一例を示す図である。
次に、本発明の実施の形態について、図面を参照しながら説明する。以下の説明において表記文字列が同じであっても読みが異なる形態素は、異なる形態素として扱う。
[第1の実施形態]
(形態素解析装置の構成)
図1は、形態素解析装置100を示すブロック図である。図1に示すように、形態素解析装置100は、照合部110、辞書装置120、制約参照部130、決定部140および連接表記憶部150を備え、入力された文字列をもとに、これに関する情報のうち適したものを決定し出力する。
照合部110は、入力された文字列(漢字仮名交じり文)から部分文字列を切り出し、文字列の順に沿って部分文字列ごとに切り出された部分文字列を辞書装置120に照合し、切り出された部分文字列のさらにその先頭部分の部分文字列と一致する形態素に関する情報の候補を出力する。これにより、採用されない形態素に関する情報を早い段階で判定し、効率よく形態素解析の処理ができる。なお、辞書装置120内のデータは格納された文字列に沿った順で照合される。
辞書装置120は、文字列のデータおよびこれに関する情報を格納する。辞書装置120は、文字列のデータを区分した部分文字列および部分文字列に関する情報を、文字列に沿って交互に並べて格納している。なお、通常、文字列のデータは複数の部分文字列に区分される。辞書装置120に格納されたデータは、トライに基づく構造を有している。すなわち、一端(先頭または末尾)から途中までのデータが共通する複数の文字列のデータに対して、共通する部分のデータを単一のデータで代表させるとともに、途中から他端までの共通しない部分文字列を複数のデータで枝分かれさせている。
このように文字と発音の関係性を利用することで効率的なデータ表現が可能となり、読み情報付きの形態素解析を、より小さいデータサイズで実現できる。また、採用されない部分文字列に関する情報を早い段階で判別できるため、効率よく形態素解析の処理ができる。
部分文字列に関する情報は、部分文字列の読みに関する情報を含むことが好ましい。これにより、文字列の読みに関する情報を利用して辞書のデータサイズを小さくできる。また、読みに関する情報を利用して効率的に形態素解析の処理を行なうことができる。
制約参照部130は、入力された文字列を構成する一部の文字に対する読みに関する情報を制約として参照し、照合の結果として出力された候補のうち制約を満たす候補を出力する。辞書装置120のデータ構造を利用することで、形態素解析の処理中に、形態素の読みに関する情報を容易に参照することができるため、読みの情報の制約を考慮した形態素解析処理を実現できる。
決定部140は、連接表を参照して形態素候補列のコストを算出し、候補列のうち最も適した系列を決定し、形態素解析結果の形態素列として出力する。連接表記憶部150は、部分文字列とその読みが連続したものと対応する各コストを表す連接表を記憶している。
(辞書装置のデータ構造)
辞書装置120は、そのインデックスに発音情報を埋め込んでいる。図2は、従来のデータ構造の一例を示す図である。図3は、本発明のデータ構造を示す図である。
図2に示すように、従来の発音情報をインデックスに含めない方法では、形態素末を表すノードに読みに関する情報が結び付けられる。この場合、インデックスの「会」の文字はトライ構造で共有されるが、読みに関する「カイシャ」「カイギ」の共通部分は直接的には共有されていない。
これに対し、図3に示す例では、「会社(カイシャ)」という形態素のインデックスに、「会/カイ/社/シャ」という文字列を使う。ここで文字「/」は表記の文字と読み情報を区切る区切り文字である。これにより、辞書構造にトライ(パトリシア木を含む)を使うことで、発音情報も含めて部分情報が木構造の同じノードに共有されるため、全体のサイズを抑えることができる。例えば形態素辞書に「会議(カイギ)」という形態素も存在する場合、インデックスのうち「会/カイ/社/シャ」と「会/カイ/議/ギ」の「/会/カイ/」の部分が共有される。
(トライに基づく特有のデータ構造)
トライにより構成された辞書装置120を用いて形態素解析処理を行なう場合、共通接頭辞探索として、トライのルートノードからリーフノード方向に木をたどり、ノード上の形態素を候補して出力する。
ただし、読み情報をインデックスに含む形態素解析辞書構造を形態素解析装置100で用いる場合は、辞書のインデックスのうち、葉方向「/」で囲まれた区間にある読み情報は探索において無視して、その子ノードに遷移すればよい。ただし、ある文字に対して複数種類の発音情報が存在する場合には、発音情報に対応する部分のノードで複数の可能性が生じ、探索結果となり得る複数の子ノードが存在することになる。その場合、それらの全ての子ノードを候補として考える必要がある。
従来の方法では、共通接頭辞探索により列挙される形態素の候補は、トライの1つの経路上にしか存在しないが、本発明では、このように、異なる複数の経路上に形態素の候補が存在する可能性があるため、探索においては、このことを考慮する必要がある。具体的には、ルートからリーフまでのノードのリストを複数保持するためのリストを作成する必要がある。
(形態素解析装置の動作)
図4〜図6は、それぞれ形態素解析装置100における照合部110の動作の一例を示すフローチャートである。図4は、照合部全体の処理を示している。図4に示すように、まず、それらの共通接頭辞探索の結果が入力された文字列に含まれる可能性のある形態素候補を列挙するように、入力された文字列から部分文字列に区切り、それらを列挙する(ステップS101)。ここでの部分文字列の列挙は、例えば、1文字目から最後の文字まで、2文字目から最後の文字まで、という処理を繰り返せばよい。次に、ひとつの部分文字列をを探索キーに設定する(ステップS102)。そして、サブルーチンG(ルートノード、0)を呼び出し、辞書に格納されたデータと探索キーと照合を行なう(ステップS103)。
図5は、文字列と探索キーとを照合するサブルーチン(G(N,k))の処理を示している。G(N,k)は、辞書データのノードNと探索キーのk番目の文字との文字列の照合を意味している。図5に示すように、Nの子ノードを全て列挙し、ノードリストLに格納し(ステップS201)、iに初期値0を設定する(ステップS202)。
次に、L[i]への枝に結び付けられた文字が検索キーのk番目の文字と一致するかを判定する(ステップS203)。一致する場合には、G(L[i]、k+1)を呼び出し(ステップS204)、ステップS207へ進む。
一致しない場合には、L[i]への枝に結び付けられた文字が区切り文字か否かを判定する(ステップS205)。文字が区切り文字である場合には、サブルーチンP(L[i]、k)を呼び出し(ステップS206)、ステップS207に進む。一方、文字が区切り文字でない場合には、ステップS207に進む。
そして、iを1増加させ(ステップS207)、iがL[i]の大きさ未満か否かを判定し(ステップS208)、未満である場合には、ステップS203に進む。iがL[i]の大きさ以上である場合には、サブルーチンを終了し、もとの処理に戻る。
図6は、読み情報の照合のサブルーチン(P(N,k))の処理を示している。サブルーチンP(N,k)は、辞書データのノードNと探索キーのk番目の文字との読みの照合を意味している。図6に示すように、Nの子ノードを全て列挙し、ノードリストLに格納し(ステップS301)、iに初期値0を設定する(ステップS302)。
次に、L[i]が形態素末か否かを判定する(ステップS303)。形態素末である場合には、ルートからL[i]までの文字列を結果として出力し(ステップS304)、ステップS308へ進む。
形態素末でない場合には、L[i]への枝に結び付けられた文字が区切り文字か否かを判定する(ステップS305)。文字が区切り文字である場合には、サブルーチンG(L[i]、k)を呼び出し(ステップS306)、ステップS308に進む。一方、文字が区切り文字でない場合には、サブルーチンP(L[i]、k)を呼び出し(ステップS307)、ステップS308に進む。
そして、iを1増加させ(ステップS308)、iがL[i]の大きさ未満か否かを判定し(ステップS309)、未満である場合には、ステップS303に進む。iがL[i]の大きさ以上である場合には、サブルーチンを終了し、もとの処理に戻る。なお、以上の処理は、コンピュータに処理を実行させることで行なうことができる。
(形態素解析処理の一例)
以下に処理の例を説明する。図7は、従来のデータ構造の一例を示す図である。図8は、本発明のデータ構造の一例を示す図である。
「秋葉原に行く」という文を形態素解析する場合、まず「秋葉原に行く」をキーとして共通接頭辞探索を行なう。この時、辞書に「秋(アキ)」「秋葉(アキバ)」「秋葉原(アキハバラ)」の3語が登録されている場合、形態素の候補としてこれらを列挙することになる。
しかし、図7に示すような従来の読み情報を含めないインデックスを用いた場合は、トライ上で、これら3語がルートノードから見て同じ経路上に存在する。つまり共通接頭辞探索において、トライ上の単一のパスのみを考慮すればよい。
これに対し、図8にしめすような本発明の方法では、「秋葉」と「秋葉原」は「葉」の部分の読みが異なるため、「秋葉原」に至るパス上に単語「秋葉」は存在しない。「秋/アキ/葉/」までが同じパス上にあり、それ以後は異なる枝に情報がそれぞれ格納される。
この処理では、親ノードがその全ての子ノードを高速に列挙できる必要がある。従来の形態素解析では、ある特定の文字が結び付けられた枝に連なる子ノードがあるか否かだけを高速に判定できれば良く、この部分が従来とは異なる。
しかし、そのようなデータ構造の実現は比較的容易であり、例えば親ノードは複数の子ノードのうちの1つの子ノードへのリンクだけを持ち、その子ノードを先頭に、全ての兄弟ノードに対するリスト構造を構築すればよい。あるいは、省メモリなトライの実装に使われるデータ構造であるLOUDSは、読み情報をインデックスに含めない従来の方法であっても、木をリーフ方向にたどる際に子ノードを列挙するため、トライのデータ構造にLOUDSを用いた実用なシステムは、本発明が要求する先述の条件を満たしている。
(制約が入力される場合の処理)
従来の辞書構造では、トライのノードに形態素情報が結び付けられていた。このため、読み情報に関する制約つき探索を行なう場合、共通接頭辞探索により形態素候補の全てを列挙してから、各形態素情報を調べて、読み制約を満たさない形態素候補を捨てる、といった処理が必要となる。
これに対し、本発明の形態素辞書構造を読み情報付で構築した場合、発音情報を単に読み飛ばすのではなく、発音情報が、与えられた読み情報に関する制約を満たすか否かをトライの探索の段階でチェックできる。そして、読み情報の制約条件を満たさない形態素を、より早い時点で形態素候補の列挙対象から除外することができる。これにより、列挙対象の形態素候補数が減り、処理量やメモリ使用量を減らすことができる。この場合、図6示したフローチャートに基づく処理を行なう場合においては、S303の直前に読み情報の制約条件を満たすかどうかのチェックを行ない、満たす場合はS303に、満たさない場合はS308に進むようにすればよい。
(その他の処理例)
図9は、本発明のデータ構造の一例を示す図である。例えば、「上(ウエ)」「上る(アガ・ル)」「上る(ノボ・ル)」の3語が辞書登録されているケースで、解析対象のテキストが「上る」、解析対象テキストのうち、「上」の読みとして、「ノボ」が指定されている場合、従来の辞書構造では、「上る」に対する共通接頭辞探索の結果、この3語を候補として得られるため、それぞれ読み情報を調べて、「上る(ノボ・ル)」以外の形態素を捨てる処理が必要となる。
これに対して本発明の方法では、探索において、「上/ノボ/る/*」(ここで「*」は「/」以外の文字で構成される全ての文字列を示す)をキーとしてcommon prefix searchを行えばよく、インデックスが「上/ノボ/る/ル」となる「上る(ノボ・ル)」のみが共通接頭辞探索の結果として得られる。
この処理の際、読み方に対する揺らぎを考慮するために、先述のような読み情報の完全一致ではなく、別の選択基準を用いることもできる。例えば、指定された読み情報に対して編集距離がある値以下(一致文字数がある文字数以上)のみの形態素を形態素辞書の探索結果として列挙する、といったような曖昧性を認めた制約条件設定も可能である。
上記の説明では、表記文字列を構成する部分文字列と、それに対応する発音記号の間に、区切り記号「/」を入れるが、表記文字列1文字毎に発音情報が付与されることが規則化されている場合は、表記文字列の文字と発音情報の間に、区切り記号「/」を書かない形態も可能である。
あるいは、区切り記号を定義するのではなく、各ノードにおいて、その直前の枝に格納された文字が、表記文字列を表す文字か、読み情報を表す文字かを示す1ビットの情報を格納し、これを用いてもよい。これにより辞書のサイズをより抑えることができる。
また、これまでの説明では読み情報を片仮名だけで構成される文字列として例示しているが、これに限らない。例えば、JEITA IT−4006のように韻律情報を含む記号を用いてもよい。また、表記文字から読み情報が規則的に決まるケースについては、「規則的に決める」という意味を持つ符号を読み情報の1つとして定義し、読み情報の長さを削減する方法を用いることもできる。規則的に決まる読みの例としては、1種類の音読みしかない漢字が挙げられる。
また、本発明の方法では、読み情報以外の情報を格納してもよい。例えば形態素の生起コストが、文字表記における各文字の生起コストの和で定義されるような形態素解析システムにおいては、文字生起コストを表す記号を定義し、文字とこの記号の組を並べてトライのインデックスを構成することで、トライの木構造そのものに、形態素の生起コストに関する情報を直接埋め込むことができる。
この構造では、トライをたどる過程で生起コストの値が得られるので、形態素する候補を列挙する過程で形態素生成コストが大きい候補を捨てるといったような、形態素の生起コストを考慮した候補の列挙を行なうことができる。また、格納する情報は、読み情報と文字生起コストの組み合わせ等、様々な情報の組み合わせでもよい。
また、全ての表記文字列を前後逆順にした形での辞書構成も可能である。たとえば、文字列を前後逆にした形態素辞書を構築しておき、文の形態素解析では、逆順にした文の先頭から、すなわち元の文の末尾から先頭方向に向かって形態素候補を列挙する方法が考えられる。この場合、最終的に得られる最適な形態素列が、文頭から文末に向かって確定していくが、多くの装置では、形態素解析結果も文頭から文末方向に向かって出力するため、形態素解析結果を文末から文頭方向に確定させていく場合と異なり、形態素解析結果を一時的に保存する必要がなくなる、といった利点がある。
100 形態素解析装置
110 照合部
120 辞書装置
130 制約参照部
140 決定部
150 連接表記憶部

Claims (3)

  1. 文字列をもとに、これを構成する形態素列に関する情報を出力する形態素解析装置であって、
    トライに基づく構造で文字列のデータを格納する形態素解析用の辞書装置であって、文字列のデータを区分した部分文字列および前記区分した部分文字列の読みに関する情報を、文字列に沿って交互に並べて格納する辞書装置と、
    入力された文字列から部分文字列を切り出し、文字列の順に沿って部分文字列ごとに前記切り出された部分文字列を前記辞書装置に照合する照合部と、
    前記入力された文字列を構成する一部の文字に対する読みに関する情報を制約として参照する制約参照部と、を備え
    前記照合部は、前記格納された文字列のデータが構成するトライのルートノードからリーフノード方向に前記トライをたどり、前記切り出された部分文字列の先頭部分の部分文字列と前記格納された文字列とが一致し、かつ前記部分文字列の読みに関する情報が前記制約を満たす場合にはノード上の形態素を候補として出力し、前記切り出された部分文字列の先頭部分の部分文字列と前記格納された文字列とが一致しない、または前記部分文字列の読みに関する情報が前記制約を満たさない場合には、ノード上の形態素を破棄することを特徴とする形態素解析装置。
  2. 文字列をもとに、これを構成する形態素列に関する情報を出力する形態素解析の方法であって、
    入力された文字列から部分文字列を切り出すステップと、
    文字列の順に沿って部分文字列ごとに前記切り出された部分文字列を、コンピュータ内の記憶部にトライに基づいて構成される形態素解析用の辞書のデータ構造であって、文字列のデータを区分した部分文字列および前記部分文字列の読みに関する情報が、文字列に沿って交互に並べて格納されたデータ構造を有し、前記部分文字列に関する情報は部分文字列の読みに関する情報を含む、文字列のデータと照合するステップと、をコンピュータを用いて実行し、
    前記照合のステップでは、前記格納された文字列のデータが構成するトライのルートノードからリーフノード方向に前記トライをたどり、
    前記切り出された部分文字列の先頭部分の部分文字列と前記格納された文字列とが一致しかつ、前記入力された文字列を構成する一部の文字に対する読みの情報を制約として参照したときに前記部分文字列の読みに関する情報が前記制約を満たす場合にはノード上の形態素を候補として出力し、
    前記切り出された部分文字列の先頭部分の部分文字列と前記格納された文字列とが一致しない、または、前記入力された文字列を構成する一部の文字に対する読みの情報を制約として参照したときに、前記部分文字列の読みに関する情報が前記制約を満たさない場合にはノード上の形態素を破棄することを特徴とする方法。
  3. 文字列をもとに、これを構成する形態素列に関する情報を出力する形態素解析のプログラムであって、
    入力された文字列から部分文字列を切り出す処理と、
    文字列の順に沿って部分文字列ごとに前記切り出された部分文字列を、コンピュータ内の記憶部にトライに基づいて構成される形態素解析用の辞書のデータ構造であって、文字列のデータを区分した部分文字列および前記部分文字列の読みに関する情報が、文字列に沿って交互に並べて格納されたデータ構造を有し、前記部分文字列に関する情報は部分文字列の読みに関する情報を含む、文字列のデータと照合する処理と、を含む一連の処理をコンピュータに実行させ、
    前記格納された文字列のデータが構成するトライのルートノードからリーフノード方向に前記トライをたどり、
    前記切り出された部分文字列の先頭部分の部分文字列と前記格納された文字列とが一致しかつ前記入力された文字列を構成する一部の文字に対する読みの情報を制約として参照したときに前記部分文字列の読みに関する情報が前記制約を満たす場合にはノード上の形態素を候補として出力し、
    前記切り出された部分文字列の先頭部分の部分文字列と前記格納された文字列とが一致しない、または前記入力された文字列を構成する一部の文字に対する読みの情報を制約として参照したときに、前記部分文字列の読みに関する情報が前記制約を満たさない場合にはノード上の形態素を破棄することを特徴とするプログラム。
JP2014071155A 2014-03-31 2014-03-31 辞書装置、形態素解析装置、データ構造ならびに形態素解析の方法およびプログラム Active JP6300601B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014071155A JP6300601B2 (ja) 2014-03-31 2014-03-31 辞書装置、形態素解析装置、データ構造ならびに形態素解析の方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014071155A JP6300601B2 (ja) 2014-03-31 2014-03-31 辞書装置、形態素解析装置、データ構造ならびに形態素解析の方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2015194801A JP2015194801A (ja) 2015-11-05
JP6300601B2 true JP6300601B2 (ja) 2018-03-28

Family

ID=54433785

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014071155A Active JP6300601B2 (ja) 2014-03-31 2014-03-31 辞書装置、形態素解析装置、データ構造ならびに形態素解析の方法およびプログラム

Country Status (1)

Country Link
JP (1) JP6300601B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016126498A (ja) * 2014-12-26 2016-07-11 Kddi株式会社 形態素解析装置およびプログラム

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6972653B2 (ja) * 2017-05-16 2021-11-24 富士通株式会社 解析プログラム、解析方法および解析装置
JP2019016162A (ja) * 2017-07-06 2019-01-31 富士通株式会社 形態素解析プログラム、形態素解析装置、および形態素解析方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH035877A (ja) * 1989-06-01 1991-01-11 Nec Software Ltd データ操作方式
JP3452353B2 (ja) * 2000-07-04 2003-09-29 株式会社ジャストシステム 辞書データ構造を記録した記録媒体、辞書引き方法、語句取得方法、辞書引き装置、語句取得装置、プログラムを記録した記録媒体
JP2007058509A (ja) * 2005-08-24 2007-03-08 Toshiba Corp 言語処理システム
JP4640983B2 (ja) * 2005-12-02 2011-03-02 シャープ株式会社 文書処理装置、文書表示装置、文書処理方法、文書処理プログラムおよび文書処理プログラムを記録した記録媒体
JP5224953B2 (ja) * 2008-07-17 2013-07-03 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、情報処理方法およびプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016126498A (ja) * 2014-12-26 2016-07-11 Kddi株式会社 形態素解析装置およびプログラム

Also Published As

Publication number Publication date
JP2015194801A (ja) 2015-11-05

Similar Documents

Publication Publication Date Title
US6928448B1 (en) System and method to match linguistic structures using thesaurus information
JP4931958B2 (ja) テキスト要約方法、その装置およびプログラム
EP2950306A1 (en) A method and system for building a language model
Graliński et al. PSI-toolkit: A natural language processing pipeline
JP3372532B2 (ja) 感情情報抽出方法および感情情報抽出プログラムの計算機読み取り可能な記録媒体
JP2006301446A (ja) 読み生成装置、読み生成方法及びコンピュータプログラム
JP6680126B2 (ja) 符号化プログラム、符号化装置、符号化方法、及び検索方法
JP6300601B2 (ja) 辞書装置、形態素解析装置、データ構造ならびに形態素解析の方法およびプログラム
US11842152B2 (en) Sentence structure vectorization device, sentence structure vectorization method, and storage medium storing sentence structure vectorization program
JP5623380B2 (ja) 誤り文修正装置、誤り文修正方法およびプログラム
JP5447368B2 (ja) 新規事例生成装置、新規事例生成方法及び新規事例生成用プログラム
JP6619932B2 (ja) 形態素解析装置およびプログラム
JP6300596B2 (ja) 辞書装置、形態素解析装置、データ構造ならびに形態素解析の方法およびプログラム
JP2019159743A (ja) 対応関係生成プログラム、対応関係生成装置、対応関係生成方法、及び翻訳プログラム
Skurzok et al. Ortfon2-tool for orthographic to phonetic transcription
JP5380566B2 (ja) 言語処理装置、プログラムおよび方法
KR20040018008A (ko) 품사 태깅 장치 및 태깅 방법
JP6565262B2 (ja) 短縮文生成装置、方法、及びプログラム
KR102278288B1 (ko) 음소 기반 텍스트 검색 장치 및 방법
JP6003127B2 (ja) 言語モデル作成プログラム及び言語モデル作成装置
JP2004206659A (ja) 読み情報決定方法及び装置及びプログラム
Bisazza Designing a NooJ Module for Turkish Inflectional Analysis: an Example of Highly Productive Morphology
Strunk Information retrieval for languages that lack a fixed orthography
JP6569543B2 (ja) 短縮文生成装置、方法およびプログラム。
Morgan Grapheme to Phoneme Conversion: Using Input Strictly Local Finite State Transducers

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170620

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170623

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170818

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: 20180206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180227

R150 Certificate of patent or registration of utility model

Ref document number: 6300601

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150