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

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

Info

Publication number
JP2015191317A
JP2015191317A JP2014066673A JP2014066673A JP2015191317A JP 2015191317 A JP2015191317 A JP 2015191317A JP 2014066673 A JP2014066673 A JP 2014066673A JP 2014066673 A JP2014066673 A JP 2014066673A JP 2015191317 A JP2015191317 A JP 2015191317A
Authority
JP
Japan
Prior art keywords
reading
information
morpheme
node
character string
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.)
Granted
Application number
JP2014066673A
Other languages
English (en)
Other versions
JP6300596B2 (ja
Inventor
信行 西澤
Nobuyuki Nishizawa
信行 西澤
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 JP2014066673A priority Critical patent/JP6300596B2/ja
Publication of JP2015191317A publication Critical patent/JP2015191317A/ja
Application granted granted Critical
Publication of JP6300596B2 publication Critical patent/JP6300596B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Machine Translation (AREA)

Abstract

【課題】形態素解析の際に各ノードで条件を満たさない候補を破棄することができ、処理を効率化することができる辞書装置、形態素解析装置、データ構造ならびに形態素解析の方法およびプログラムを提供する。
【解決手段】ルートからリーフへ枝分かれするトライに基づく構造で文字列のデータを格納する形態素解析用の辞書装置120であって、形態素を構成する文字または部分文字列は、枝に対応付けられて格納され、少なくとも枝を接続するノードのルート側最近接の枝に対応付けられた文字または部分文字列に関する情報が、すべてのノードに対応付けられて格納されている。これにより、形態素解析装置は、共通接頭辞探索の途中で、登録形態素の先頭から途中までの読みに関する情報を参照できる。
【選択図】図1

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文字だけでなく、連続する複数の文字が格納されることもある。以下ではパトリシア木の様なものも含めて、共通接頭辞がデータ構造上で共有され、全体として木構造となっているものをまとめてトライと呼ぶ。
「日本語テキスト音声合成用記号」JEITA規格 IT−4006、2010年3月
日本語に限らず、多くの言語では、文字表記からその読み方が規則的に決まらないことがある。あるいは規則があっても複雑なため、規則的に決めることが現実的でない場合がある。例えば「行った」という文字列に対して、それを「いった」と読むべきなのか「おこなった」と読むべきなのかは、その前後の文脈で決まるが、一般にその文脈までを考慮した自動処理は困難である。そこで、例えば日本語テキストにおいては、例えばルビのように読みに関する付加的な情報を付与し、その読み方・意味を示すことがある。
しかし、多くのケースでそのような情報は部分的にのみ与えられる。さらに、ルビのような情報が付与されている場合であっても、アクセント等に関する情報は通常付与されてないため、音声合成処理を行うためには何らかの形でアクセント型等を決定する必要がある。
このことを踏まえ、音声合成処理で高い読み・アクセント精度を実現するためには、例えば、ルビのような情報が与えられた場合でも、それを直接読み情報として使うのではなく、通常の音声合成処理と同様の形態素解析処理を行い、形態素情報に予め結び付けておいた読み情報に基づき、そのアクセント型等を決定する方法が考えられる。この場合のルビ情報は、形態素に付与された複数の読み情報から正解を選択するための情報として使われる。
しかし、形態素解析の段階から読みを考慮することで、より正確な形態素解析を実現できる。具体的には表記文字列が同じでも読みが異なる形態素は異なる形態素として扱い、それぞれの形態素の生成コストや連結コストにそれぞれ適切な値を設定することで、最小コスト法に基づく形態素解析をより高精度に行うことができる。この場合、ルビのような情報がある場合は、形態素候補としてルビに合致する形態素のみを候補として列挙し、一方、ルビがなければ、表記文字列が一致する全ての形態素を候補として列挙し、それらの最適な系列を探索することになる。
このような処理を効率的に実施するためには、形態素解析における形態素辞書参照段階で、形態素に関する読み情報を効率的に取得できる必要がある。このような処理においては、ルビ等を通じて与えられる、形態素の読みに関する制約条件にはマッチしない形態素候補を、形態素候補列挙のできるだけ処理の早い段階で捨てることができれば、その処理を効率化できる。
しかし、例えば木構造に基づく形態素辞書を用いた場合、読み情報は木のリーフにのみ結び付けられていたため、木をルートから辿って行きリーフノードに達するまで、辿った部分までの部分的な読み情報も得ることができない。つまり、読みに関する制約条件にマッチしない形態素候補についても、木構造辞書のリーフノードまで辿る必要がある。
共通接頭辞探索を行うための従来のトライに基づく形態素辞書構造では、形態素終端の位置にあるノード、すなわちルートノードからリーフノード方向に木を辿った場合に、表記の最後の文字に対応する枝の直後のノードに、読みに関する情報も含め、形態素に関する情報を全て結び付けていた。あるいは、形態素辞書上で文字列終端を示す符号を定義した場合は、対応する形態素に関する全ての情報を終端文字の枝の直下のリーフノードに結び付けていた。
つまり、形態素終端に対応するノードまで木を辿って初めてその形態素の情報を得られていた。このため、読みに関する制約の付きの形態素解析処理を行う場合、共通接頭辞探索により辞書登録された形態素を表記文字列情報だけを使ってまず取り出してから、読み制約に合わない形態素候補を仮説から捨てる操作を行う必要がある。
本発明は、このような事情に鑑みてなされたものであり、形態素解析の際に各ノードで条件を満たさない候補を破棄することができ、処理を効率化することができる辞書装置、形態素解析装置、データ構造ならびに形態素解析の方法およびプログラムを提供することを目的とする。
(1)上記の目的を達成するため、本発明の辞書装置は、ルートからリーフへ枝分かれするトライに基づく構造で文字列のデータを格納する形態素解析用の辞書装置であって、形態素を構成する文字または部分文字列は、枝に対応付けられて格納され、少なくとも前記枝を接続するノードのルート側最近接の枝に対応付けられた文字または部分文字列に関する情報が、すべてのノードに対応付けられて格納されていることを特徴としている。
これにより、形態素解析装置は、共通接頭辞探索の途中で、登録形態素の先頭から途中までの読みに関する情報を参照できる。例えば、先頭一文字に読みが読み制約を満たさない場合には、その時点で、その文字と読みから始まる登録形態素全てが、形態素解析の正解にならないことが確定する。そして、それ以上トライ構造の辞書を辿る必要がなくなり、処理を効率化できる。これにより、形態素解析の際に各ノードで条件を満たさない候補を破棄することができ、処理を効率化することができる。
(2)また、本発明の辞書装置は、前記ノードに、ルート側最近接の枝に対応付けられた文字または部分文字列の読みに関する情報および前記読みに関する情報の識別情報と、前記読みに関する情報に対してルート側際近接のノードに対応付けられて読み情報の識別情報が格納されていることを特徴としている。これにより、ルートから続く読みのうち複数の読みが生じるノードで条件を満たさない候補を破棄できる。
(3)また、本発明の辞書装置は、前記ノードに、ルートから前記ノードに至る経路の枝に対応付けられた文字または部分文字列を順に連結して構成した文字列の読みに関する情報が対応付けられて格納されていることを特徴としている。これにより、ルートから続く読みのうち複数の読みが生じるノードで条件を満たさない候補を破棄できる。
(4)また、本発明の形態素解析装置は、文字列をもとに、これに関する読みの情報を出力する形態素解析装置であって、(1)から(3)のいずれかに記載の辞書装置と、入力された文字列を形態素に区切り、文字列の順に沿って前記形態素ごとに前記入力された文字列を前記辞書装置に照合し、前記形態素ごとに読みに関する情報の候補を出力する照合部と、前記入力された文字列に付随する所定の制約を参照し、前記ノードごとに読みに関する情報が前記所定の制約を満たすか否かを判定し、前記所定の制約を満たさない候補を破棄する制約参照部と、を備えることを特徴としている。これにより、形態素の読みを照合していく処理において条件を満たさない候補を早い段階で破棄できるため、処理を効率化できる。
(5)また、本発明のデータ構造は、コンピュータ内の記憶部に、ルートからリーフへ枝分かれするトライに基づいて構成される形態素解析用の辞書のデータ構造であって、形態素を構成する文字または部分文字列は、枝に対応付けられて格納され、少なくとも前記枝を接続するノードのルート側最近接の枝に対応付けられた文字または部分文字列に関する情報が、すべてのノードに対応付けられて格納されていることを特徴としている。これにより、形態素解析の際に各ノードで条件を満たさない候補を破棄することができ、処理を効率化することができる。
(6)また、本発明の方法は、文字列をもとに、これに関する読みの情報を出力する形態素解析の方法であって、入力された文字列を形態素に区切り、文字列の順に沿って前記形態素ごとに前記入力された文字列を(1)から(3)のいずれかに記載の辞書装置に照合し、前記形態素ごとに読みに関する情報の候補を出力するステップと、前記入力された文字列に付随する所定の制約を参照し、前記ノードごとに読みに関する情報が前記所定の制約を満たすか否かを判定し、前記所定の制約を満たさない候補を破棄するステップと、をコンピュータを用いて実行することを特徴としている。これにより、形態素の読みを照合していく処理において条件を満たさない候補を早い段階で破棄できるため、処理を効率化できる。これにより、形態素の読みを照合していく処理において条件を満たさない候補を早い段階で破棄できるため、処理を効率化できる。
(7)また、本発明のプログラムは、文字列をもとに、これに関する読みの情報を出力する形態素解析のプログラムであって、入力された文字列を形態素に区切り、文字列の順に沿って前記形態素ごとに前記入力された文字列を(1)から(3)のいずれかに記載の辞書装置に照合し、前記形態素ごとに読みに関する情報の候補を出力する処理と、前記入力された文字列に付随する所定の制約を参照し、前記ノードごとに読みに関する情報が前記所定の制約を満たすか否かを判定し、前記所定の制約を満たさない候補を破棄する処理と、を含む一連の処理をコンピュータに実行させることを特徴としている。これにより、形態素の読みを照合していく処理において条件を満たさない候補を早い段階で破棄できるため、処理を効率化できる。
本発明によれば、形態素解析の際に各ノードで条件を満たさない候補を破棄することができ、処理を効率化することができる。
本発明の形態素解析装置を示すブロック図である。 本発明の形態素解析装置の動作を示すフローチャートである。 従来のデータ構造の一例を示す図である。 本発明のデータ構造の一例を示す図である。 本発明のデータ構造の一例を示す図である。
次に、本発明の実施の形態について、図面を参照しながら説明する。以下の説明において表記文字列が同じであっても読みが異なる形態素は、異なる形態素として扱う。
[第1の実施形態]
(形態素解析装置の構成)
図1は、形態素解析装置100を示すブロック図である。図1に示すように、形態素解析装置100は、照合部110、辞書装置120、制約参照部130、決定部140および連接表記憶部150を備え、入力された文字列をもとに、読みに関する情報のうち適したものを決定し出力する。
照合部110は、入力された文字列(漢字仮名交じり文)を形態素に区切り、文字列の順に沿って形態素ごとに入力された文字列を辞書装置120に照合し、読みに関する情報の候補を出力する。辞書装置120内のデータは格納された文字列に沿った順で照合される。
辞書装置120は、文字列のデータおよび文字列のデータに関する情報を格納する。辞書装置120は、ルートからリーフへ枝分かれするトライに基づく構造で文字列のデータを格納する。辞書装置120は、そのインデックスに発音情報を埋め込んだデータ構造のデータを有している事が好ましい。
例えば、辞書装置120において、形態素を構成する文字または部分文字列は枝に対応付けられて格納される。少なくとも枝を接続するノードのルート側最近接の枝に対応付けられた文字または部分文字列に関する情報が、すべてのノードに対応付けられて格納されている。ノードには、ルートからノードに至る経路の枝に対応付けられた文字または部分文字列を順に連結して構成した文字列の読みに関する情報が対応付けられて格納されていることが好ましい。これにより、ルートから続く読みのうち複数の読みが生じるノードで条件を満たさない候補を破棄できる。
そのノードまでの部分文字列と一致する形態素が辞書登録されている場合は、そのフラグを1に、ない場合は0とする。また、フラグが1となっている読み関する情報に対応する形態素の生成コスト情報は仮に読み情報毎に設定する。なお、形態素の生成コスト情報は形態素の品詞型等、生成コスト関数のパラメータとなる情報も含む。
トライにより構成されたデータ構造を用いて形態素解析処理を行う場合、共通接頭辞探索として、トライのルートノードからリーフノード方向に木をたどり、ノード上の形態素を候補して出力する。
制約参照部130は、入力された文字列に付随する所定の制約を参照し、ノードごとに読みに関する情報が所定の制約を満たすか否かを判定し、所定の制約を満たさない候補を破棄する。これにより、形態素の読みを照合していく処理において条件を満たさない候補を早い段階で破棄できるため、処理を効率化できる。
制約参照部130は、入力された文字列に付随する読みに関する情報を制約として参照し、照合の結果として出力された候補のうち制約を満たす候補を出力する。辞書装置120のデータ構造を利用することで、形態素ごとに読みに関する情報を容易に参照することができるため、読みの情報の制約を考慮した形態素解析処理を実現できる。
決定部140は、照合参照部130が出力した形態素候補の最適な並びをコストに基づき決定し、形態素解析結果の形態素列として出力する。連接表記憶部150は、部分文字列とその読みが連続したものと対応する各コストを表す連接表を記憶している。
(トライに基づく特有のデータ構造)
辞書装置120では、トライに基づく形態素辞書のリーフノードを含む各ノードにおいて、ルートから各ノードまでに対応する部分文字列の読みに関する情報(部分文字列に関する情報)が格納されている。ただし、読みに関する情報は、複数種類登録される場合もある。また、形態素終端を表す符号は表記文字列側には設けず、各読み情報に対して、その読み情報に直接対応する形態素があるか否かを示す符号(ここでは終端フラグと呼ぶ)を設定する。
(形態素解析装置の動作)
形態素解析装置100による共通接頭辞探索の動作例を説明する。図2は、形態素解析装置の動作を示すフローチャートである。まず、変数iを1に、トライのノードを表す変数nにトライのルートノードを設定する(ステップS1)。次に、探索文字列sのi番目の文字と一致するトライのノードnの枝があるか否かを判定し(ステップS2)、あると判定された場合にはステップS3に進み、ないと判定された場合には処理を終了する。
ステップS3では探索文字列sのi番目の文字と一致するnの枝のリーフ側最近接のノードを新たに変数nに設定して、ステップS4に進む。ステップS4では、探索文字列sのi番目の文字までに対応する読み情報が読み制約を満たすか否かを判定し、満たす場合にはステップS5に進み、満たさない場合には処理を終了する。このようにして、音声合成等で必要とされる制約付きの形態素解析処理を、より効率的に実現できる。
ステップS5では、ノードnを終端とする形態素があるか否かを判定し、ある場合にはステップS6へ進み、ない場合にはステップS7へ進む。ステップS6では、ノードnを終端とする形態素のうち、読み制約を満たす形態素候補を形態素候補リストに追加し、ステップS7へ進む。ステップS7ではiを1増加させて、ステップ2へ戻る。以上のような動作は、コンピュータにプログラムを実行させることで実現可能である。
(具体例)
図3は、従来のデータ構造の一例を示す図である。従来の形態素辞書構造では、トライのノードに、そのノードを終端とする形態素に対応する形態素情報が結び付けられている。このため、読み情報に関する制約つき探索を行う場合、共通接頭辞探索により形態素候補の全てを列挙してから、各形態素情報を調べて、読み制約を満たさない候補を捨てる処理が必要となる。
これに対し、形態素辞書構造をルートノードから当該ノードに対応する文字までの読み情報付で構築した場合、発音情報を単に読み飛ばすのではなく、発音情報が、与えられた読み情報に関する制約を満たすか否かをトライの探索の段階でチェックできる。
このようにして読み情報の制約条件を満たさない形態素を、より早い時点で形態素候補の列挙対象から除外することができる。その結果、列挙対象の形態素の候補数が減り、処理量やメモリ使用量を減らすことができる。
以下では表記文字列「三田」に関する例を考える。まず、本例では、「三田」について読みの異なる、「ミタ」「サンダ」「サンタ」「ミツダ」の4つの形態素が辞書登録されている。さらに「三田図書館」に対する読みを一意に確定させるために、「ミタトショカン」という読みで「三田図書館」が形態素として登録されているとする。また、形態素辞書には「図書館」、「に」(助詞)、「行く」という形態素が登録されているとする。さらに、ここでは説明を簡単にするため、形態素辞書にそれ以外の形態素は登録されていないとする。
ここで、「三田図書館に行く」を形態素解析すると、結果として、「三田」「図書館」「に」「行く」あるいは、「三田図書館」「に」「行く」の2つの可能性がある。先述のように「三田図書館」という形態素を登録するのは、この文字列に対する読みを確定させるためなので、多くの場合で、後者が形態素解析結果となるように生成コストや連結コストが設定される。
しかし、その結果として「三田図書館に行く」は「ミタトショカンニイク」と読まれ、正解が「サンダトショカンニイク」であってもそのように読ませることはできない。また、仮に「さんだ図書館に行く」と読みを制約した個所を仮名表記に変えためた形で入力されると「さんだ」の部分は辞書登録されていないため、形態素解析結果上は候補がない。そこで通常の形態素解析では、「さんだ」の部分を未知語の形態素として一時的に捉え、文頭から文末までの形態素列を強制的に作成する。
しかし、そのような形態素解析では解析誤りが生じやすく、さらに「さんだ」は形態素辞書登録された語ではないため、アクセント型等の読みに関する正確な情報を得ることができない。これはアクセント型誤り等の不自然な読みの原因となる。
これに対し、「三田<サンダ>図書館に行く」(<>はルビ等の情報に基づく読み制約指定を表す)という入力を受け付けることができれば、先述の「三田」「図書館」「に」「行く」と、「三田図書館」「に」「行く」の2つの候補から、後者が正解にならないことがまず分かり、「三田」の読みとして「サンダ」を選択すれば良いことが分かる。ただし、この方法では可能な形態素列の全ての組み合わせをまず列挙した上で、読み制約を満たす候補を選ぶ、という処理が必要になる。
ところで、形態素解析処理では「三田図書館に行く」、「田図書館に行く」、「図書館に行く」、といったような入力文字列に対する各部分文字列に対して共通接頭辞探索を行い、形態素候補をそれぞれ列挙することになる。
最初の「三田図書館に行く」に対する共通接頭辞探索の時点で読み制約を満たさない「三田図書館」を候補から除外できれば、列挙する形態素候補数が減り、より少ない消費メモリと計算量で正解となる形態素列を得ることができる。本発明ではそのためにトライ構造を有する辞書の中間ノードにおいても、そこまでの読みに関する情報を含めることで、読み制約を満たさない形態素候補を候補として列挙しないようできる。
(具体例への適用)
上記の例は、第1の実施形態のデータ構造で表すことができる。図4は、第1の実施形態のデータ構造の一例を示す図である。図4に示す例では、中間ノードまでの表記文字列に対応する読み情報すべてを中間ノードに登録する。読み制約が与えられた共通接頭辞探索において、ルートノードからトライをたどっていく際、読み制約を満たす読みがなくなった時点で、読み制約を満たす形態素候補がないことが分かり、それ以上トライをたどって形態素候補を探す処理を行う必要がなくなり、処理量を削減できる。
この場合、例えば「三田」(ミタ)、「三田」(サンダ)、「三田」(サンタ)、「三田」(ミツダ)および「三田図書館」(ミタトショカン)という5単語で構成される辞書において、その構造は図3のようになる。このような例では、「三田図書館に行く」に対する共通接頭辞探索で、「図」の文字までトライをたどった段階で、「三田」の部分の読みが「サンダ」となる形態素が、トライをこれ以上たどっても存在しないことが分かる。
[第2の実施形態]
上記の実施形態では、ノードにルートからそのノードに至るまでの読みに関する情報が格納されているが、ノードにノードごとの差分の情報が格納されていてもよい。すなわち、ノードには、ルート側最近接の枝に対応付けられた文字または部分文字列の読みに関する情報および読みに関する情報の識別情報と、読みに関する情報に対してルート側際近接のノードに対応付けられて読み情報の識別情報が格納されている。これにより、ルートから続く読みのうち複数の読みが生じるノードで条件を満たさない候補を破棄できる。
上記の実施形態では各ノードごとに読み情報を配置しているが、各ノードにおける読み情報は、親(ルートノード側)ノードからの追加差分情報として格納してもよい。この場合、各ノードに複数の読み情報が格納されている場合を考えると、どの情報からの差分なのかを決定するための情報が必要となる。
これには、各ノードのそれぞれの読み情報に対しID番号を設定し、それぞれの読み情報に対して、親ノードにおけるどのIDの読み情報からの差分なのかを表す情報を追加すればよい。この方法により、複数形態素間で読み情報の共通部分が共有されるので、形態素辞書における読み情報の合計サイズを小さくすることができる。したがって、それぞれの情報は、当該ノードにおける読みを識別する「読みID」、親ノードで用いた読みIDを示す「前の読みID」、読み情報、終端フラグの4つで構築される。
(具体例への適用)
上記の例を第2の実施形態のデータ構造で表すことができる。図5は、第2の実施形態のデータ構造の一例を示す図である。第2の実施形態では、中間ノードに、前の(トライのおけるルートノード側の)中間ノードまで読みに対する差分情報を格納する。差分のみを格納することで、各ノードに結びつけるデータのサイズは小さくなるが、それぞれのノードには複数の読みが格納される場合があるため、前のノードのいずれの読みに対する差分なのかを示す識別子も合わせて格納する。
この場合、共通接頭辞探索処理において、各ノードで、読み制約を満たす読みに対する識別子のリストを作成する必要がある。あるノードにおいて、その前の中間ノードにおいて読み制約を満たした読みに対する差分のみが有効である。
この場合、例えば「三田」(ミタ)、「三田」(サンダ)、「三田」(サンタ)、「三田」(ミツダ)および「三田図書館」(ミタトショカン)という5単語で構成される辞書において、その構造は図5のようになる。この構造により共通接頭辞探索におけるトライの探索の途中において、読み制約を満たす候補の有無を判定でき、無い場合には共通接頭辞探索を打ち切ることができるのは第1の実施形態と同様であり、処理も同様となる。
(バリエーションなど)
これまでの説明では、形態素の表記文字列の側に終端符号を設定せず、読み情報の側に終端フラグを設定していたが、表記文字列側に終端符号文字を定義してもよい。この場合、終端符号文字に対応する枝の直下のノードの全ての読み情報は、先の説明における終端フラグが1になっていることに相当し、一方それ以外のノードの全ての読み情報は、終端フラグが0になっていることに相当する。
なお、読み情報を考慮した共通接頭辞探索において読み情報の制約は、完全一致条件に限らない。ルビでは拗音を例えば「きゃ」ではなく「きや」と記載することが多いが、このような事例に対応するために、曖昧性を認めた判断基準とする方法も可能である。この場合、例えば編集距離を用い、読み情報に関し、一定文字数まで置換・挿入・脱落を認める、といった方法が可能である。実際、JEITA IT−4006の仮名レベル表記で定義されているような、アクセント型情報や韻律境界情報(アクセント句境界情報など)を読み制約として記述することは容易ではないので、このような曖昧性を持たせることは有効である。
また、読み情報についても、JEITA IT−4006のような直接的な記法だけでなく、例えば、読みの揺らぎに対する付加情報として「読み記号表記上で2記号まで置換を許容する」「読み情報先頭において濁音化を認める」といった規則をそれを表す符号の形で読み情報に追加し、それを曖昧性を認めた判断基準で考慮してもよい。これにより、例えば連濁(2形態素が連結した場合の読みで、主として後続形態素の先頭が濁音化する現象)等の影響で生じる読み指示の揺らぎを、処理において考慮することができる。
また、本発明の方法において、読み情報以外の以外を格納し、形態素候補列挙の際の、列挙判定の有無にその情報を用いてもよい。 例えば形態素の生起コストが、文字表記における各文字の生起コストの和で定義されるような形態素解析システムにおいては、文字生起コストを表す記号を定義し、文字とこの記号の組を並べてトライのインデックスを構成することで、トライの木構造そのものに、形態素の生起コストに関する情報を直接埋め込むことができる。
この構造では、トライをたどる過程で生起コストの値が得られるので、形態素する候補を列挙する過程で形態素生成コストが大きい候補を捨てといったような、形態素の生起コストを考慮した候補の列挙を行うことができる。また、格納する情報は、読み情報と文字生起コストの組み合わせ等、様々な情報の組み合わせでもよい。
また、上記の説明で、ノードに結び付けられる表は3種類の情報で構成されていたが、表に含める情報の構成はこれに限定されない。例えば、読みの揺らぎに対する付加情報として「読み記号表記上で2記号まで置換を許容する」「読み情報先頭において濁音化を認める」といった情報を加えてもよい。これにより、例えば連濁(2形態素が連結した場合の読みで、主として後続形態素の先頭が濁音化する現象)等の影響で生じる読み指示の揺らぎを、処理において考慮することができる。なおこの場合、辞書登録されている読み情報を形態素情報として出力するのではなく、読みに関する制約情報を強い読み指定と見なして、指定された読みをそのまま形態素情報として出力する方法も可能である。
さらに、全ての表記文字列を前後逆順にした形での辞書構成も可能である。例えば、文字列を前後逆にした形態素辞書を構築しておき、文の形態素解析では、文の末尾から先頭方向に向かって形態素候補を列挙する方法が考えられる。この場合、最終的に得られる最適な形態素列が、文頭から文末に向かって確定していくが、多くの装置では、形態素解析結果も文頭から文末方向に向かって出力するため、形態素解析結果を文末から文頭方向に確定させていく場合と異なり、形態素解析結果を一時的に保存する必要がなくなる、といった利点がある。
100 形態素解析装置
110 照合部
120 辞書装置
130 制約参照部
140 決定部
150 連接表記憶部
n トライのノード
s 探索文字列

Claims (7)

  1. ルートからリーフへ枝分かれするトライに基づく構造で文字列のデータを格納する形態素解析用の辞書装置であって、
    形態素を構成する文字または部分文字列は、枝に対応付けられて格納され、
    少なくとも前記枝を接続するノードのルート側最近接の枝に対応付けられた文字または部分文字列に関する情報が、すべてのノードに対応付けられて格納されていることを特徴とする辞書装置。
  2. 前記ノードには、ルート側最近接の枝に対応付けられた文字または部分文字列の読みに関する情報および前記読みに関する情報の識別情報と、前記読みに関する情報に対してルート側最近接のノードに対応付けられて読み情報の識別情報が格納されていることを特徴とする請求項1記載の辞書装置。
  3. 前記ノードには、ルートから前記ノードに至る経路の枝に対応付けられた文字または部分文字列を順に連結して構成した文字列の読みに関する情報が対応付けられて格納されていることを特徴とする請求項1記載の辞書装置。
  4. 文字列をもとに、これに関する読みの情報を出力する形態素解析装置であって、
    請求項1から請求項3のいずれかに記載の辞書装置と、
    入力された文字列を形態素に区切り、文字列の順に沿って前記形態素ごとに前記入力された文字列を前記辞書装置に照合し、前記形態素ごとに読みに関する情報の候補を出力する照合部と、
    前記入力された文字列に付随する所定の制約を参照し、前記ノードごとに読みに関する情報が前記所定の制約を満たすか否かを判定し、前記所定の制約を満たさない候補を破棄する制約参照部と、を備えることを特徴とする形態素解析装置。
  5. コンピュータ内の記憶部に、ルートからリーフへ枝分かれするトライに基づいて構成される形態素解析用の辞書のデータ構造であって、
    形態素を構成する文字または部分文字列は、枝に対応付けられて格納され、
    少なくとも前記枝を接続するノードのルート側最近接の枝に対応付けられた文字または部分文字列に関する情報が、すべてのノードに対応付けられて格納されていることを特徴とするデータ構造。
  6. 文字列をもとに、これに関する読みの情報を出力する形態素解析の方法であって、
    入力された文字列を形態素に区切り、文字列の順に沿って前記形態素ごとに前記入力された文字列を請求項1から請求項3のいずれかに記載の辞書装置に照合し、前記形態素ごとに読みに関する情報の候補を出力するステップと、
    前記入力された文字列に付随する所定の制約を参照し、前記ノードごとに読みに関する情報が前記所定の制約を満たすか否かを判定し、前記所定の制約を満たさない候補を破棄するステップと、をコンピュータを用いて実行することを特徴とする方法。
  7. 文字列をもとに、これに関する読みの情報を出力する形態素解析のプログラムであって、
    入力された文字列を形態素に区切り、文字列の順に沿って前記形態素ごとに前記入力された文字列を請求項1から請求項3のいずれかに記載の辞書装置に照合し、前記形態素ごとに読みに関する情報の候補を出力する処理と、
    前記入力された文字列に付随する所定の制約を参照し、前記ノードごとに読みに関する情報が前記所定の制約を満たすか否かを判定し、前記所定の制約を満たさない候補を破棄する処理と、を含む一連の処理をコンピュータに実行させることを特徴とするプログラム。
JP2014066673A 2014-03-27 2014-03-27 辞書装置、形態素解析装置、データ構造ならびに形態素解析の方法およびプログラム Active JP6300596B2 (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2015191317A true JP2015191317A (ja) 2015-11-02
JP6300596B2 JP6300596B2 (ja) 2018-03-28

Family

ID=54425784

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP6300596B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112352251A (zh) * 2018-06-25 2021-02-09 株式会社工程师论坛 不足能力提取装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09245045A (ja) * 1996-03-14 1997-09-19 Fuji Xerox Co Ltd 鍵検索方法および装置
JP2002024233A (ja) * 2000-07-04 2002-01-25 Just Syst Corp 辞書データ構造を記録した記録媒体、辞書引き方法、語句取得方法、辞書引き装置、語句取得装置、プログラムを記録した記録媒体
US20070055496A1 (en) * 2005-08-24 2007-03-08 Kabushiki Kaisha Toshiba Language processing system
JP2010026689A (ja) * 2008-07-17 2010-02-04 Internatl Business Mach Corp <Ibm> 情報処理装置、情報処理方法およびプログラム
JP2011076257A (ja) * 2009-09-29 2011-04-14 Toshiba Corp 候補提示装置、候補提示方法、候補提示プログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09245045A (ja) * 1996-03-14 1997-09-19 Fuji Xerox Co Ltd 鍵検索方法および装置
JP2002024233A (ja) * 2000-07-04 2002-01-25 Just Syst Corp 辞書データ構造を記録した記録媒体、辞書引き方法、語句取得方法、辞書引き装置、語句取得装置、プログラムを記録した記録媒体
US20070055496A1 (en) * 2005-08-24 2007-03-08 Kabushiki Kaisha Toshiba Language processing system
JP2007058509A (ja) * 2005-08-24 2007-03-08 Toshiba Corp 言語処理システム
JP2010026689A (ja) * 2008-07-17 2010-02-04 Internatl Business Mach Corp <Ibm> 情報処理装置、情報処理方法およびプログラム
JP2011076257A (ja) * 2009-09-29 2011-04-14 Toshiba Corp 候補提示装置、候補提示方法、候補提示プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112352251A (zh) * 2018-06-25 2021-02-09 株式会社工程师论坛 不足能力提取装置

Also Published As

Publication number Publication date
JP6300596B2 (ja) 2018-03-28

Similar Documents

Publication Publication Date Title
US20110238412A1 (en) Method for Constructing Pronunciation Dictionaries
JP4931958B2 (ja) テキスト要約方法、その装置およびプログラム
US20110320464A1 (en) Retrieval device
AU2022263497A1 (en) Systems and methods for adaptive proper name entity recognition and understanding
Goldberg et al. A single generative model for joint morphological segmentation and syntactic parsing
US8868422B2 (en) Storing a representative speech unit waveform for speech synthesis based on searching for similar speech units
JP2017097062A (ja) 読み付与装置、音声認識装置、読み付与方法、音声認識方法、およびプログラム
JP2006338261A (ja) 翻訳装置、翻訳方法及び翻訳プログラム
JP6300601B2 (ja) 辞書装置、形態素解析装置、データ構造ならびに形態素解析の方法およびプログラム
JP5623380B2 (ja) 誤り文修正装置、誤り文修正方法およびプログラム
KR100542757B1 (ko) 음운변이 규칙을 이용한 외래어 음차표기 자동 확장 방법및 그 장치
KR20120052591A (ko) 연속어 음성인식 시스템에서 오류수정 장치 및 방법
JP5853595B2 (ja) 形態素解析装置、方法、プログラム、音声合成装置、方法、プログラム
JP6300596B2 (ja) 辞書装置、形態素解析装置、データ構造ならびに形態素解析の方法およびプログラム
KR20120045906A (ko) 코퍼스 오류 교정 장치 및 그 방법
CN111971744A (zh) 处理语音到文本的转换
JP2011175046A (ja) 音声検索装置および音声検索方法
JP6619932B2 (ja) 形態素解析装置およびプログラム
JP2008059389A (ja) 語彙候補出力システム、語彙候補出力方法及び語彙候補出力プログラム
JP4478088B2 (ja) 記号列変換方法、音声認識方法、記号列変換装置とプログラム、記録媒体
KR101982490B1 (ko) 문자 데이터 변환에 기초한 키워드 검색 방법 및 그 장치
JP2004294542A (ja) 音声認識装置及びそのプログラム
JP2009199434A (ja) アルファベット文字列日本語読み変換装置及びアルファベット文字列日本語読み変換プログラム
KR20160053587A (ko) 엔-그램 언어 모델의 데이터베이스 사이즈 최소화 방법
JP2006343405A (ja) 音声理解装置、音声理解方法、単語・意味表現組データベースの作成方法、そのプログラムおよび記憶媒体

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 Request for written amendment filed

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

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150