(57)【要約】  コンピュータは、形態素の区分に用いられる形態素区分情報に基づいて、符号化対象テキストを解析する（ステップ６０１）。形態素区分情報は、登録文字列と符号とを対応付けたレコードを複数有する文字列符号化情報に含まれる各レコードの登録文字列の先頭形態素を複数のレコード各々に含む。次に、コンピュータは、ある登録文字列に対応した形態素区分情報のレコードに含まれるある形態素の識別に応じて、符号化対象テキストに含まれるある形態素から始まる符号化対象文字列を文字列符号化情報において探索する（ステップ６０２）。そして、コンピュータは、符号化対象文字列がある登録文字列に対応する場合、符号化対象文字列を文字列符号化情報においてある登録文字列に対応付けられた符号に変換し（ステップ６０３）、変換後の符号を含む符号化テキストを出力する（ステップ６０４）。
2017017738.tif 000002
【特許請求の範囲】
【請求項１】
形態素の区分に用いられ、登録文字列と符号とを対応付けたレコードを複数有する文字列符号化情報に含まれる各レコードの登録文字列の先頭形態素を複数のレコード各々に含む形態素区分情報に基づいて、符号化対象テキストを解析し、
前記形態素区分情報に含まれる前記複数のレコードのうち、ある登録文字列に対応したレコードに含まれる、ある形態素の識別に応じて、前記符号化対象テキストに含まれる前記ある形態素から始まる符号化対象文字列を前記文字列符号化情報において探索し、
前記符号化対象文字列が前記ある登録文字列に対応する場合、前記符号化対象文字列を前記文字列符号化情報において前記ある登録文字列に対応付けられた符号に変換し、
前記符号を含む符号化テキストを出力する、
処理をコンピュータに実行させる符号化プログラム。
【請求項２】
前記文字列符号化情報は、前記ある形態素を含む複数の先頭形態素それぞれに対応する複数のブロックを含み、前記複数のブロックの各々は、前記複数の先頭形態素の各々から始まる複数の登録文字列と前記複数の登録文字列それぞれに対応付けられた複数の符号とを含み、前記コンピュータは、前記複数のブロックのうち前記ある形態素に対応するブロックに含まれる前記複数の登録文字列の中から、前記符号化対象文字列を探索することを特徴とする請求項１記載の符号化プログラム。
【請求項３】
前記コンピュータは、各ブロックに含まれる各登録文字列内の複数の形態素それぞれの各登録文字列内における位置を示す形態素位置情報に基づいて、前記ある登録文字列を含むブロックを特定し、特定したブロックに含まれる前記複数の登録文字列の中から前記符号化対象文字列を探索することを特徴とする請求項２記載の符号化プログラム。
【請求項４】
前記形態素位置情報は、形態素と登録文字列内における位置との組み合わせ毎に、前記複数のブロックそれぞれが前記組み合わせに対応する登録文字列を含むか否かを示す情報を含み、前記コンピュータは、前記符号化対象文字列に含まれる各形態素と前記符号化対象文字列内における各形態素の位置とに基づいて、前記形態素位置情報を参照することで、前記ある登録文字列を含む前記ブロックを特定することを特徴とする請求項３記載の符号化プログラム。
【請求項５】
登録文字列と符号とを対応付けたレコードを複数有する文字列符号化情報と、形態素の区分に用いられ、前記文字列符号化情報に含まれる各レコードの登録文字列の先頭形態素を複数のレコード各々に含む形態素区分情報とを記憶する記憶部と、
前記形態素区分情報に基づいて符号化対象テキストを解析し、前記形態素区分情報に含まれる前記複数のレコードのうち、ある登録文字列に対応したレコードに含まれる、ある形態素の識別に応じて、前記符号化対象テキストに含まれる前記ある形態素から始まる符号化対象文字列を前記文字列符号化情報において探索し、前記符号化対象文字列が前記ある登録文字列に対応する場合、前記符号化対象文字列を前記文字列符号化情報において前記ある登録文字列に対応付けられた符号に変換する符号化部と、
前記符号を含む符号化テキストを出力する出力部と、
を備えることを特徴とする符号化装置。
【請求項６】
前記文字列符号化情報は、前記ある形態素を含む複数の先頭形態素それぞれに対応する複数のブロックを含み、前記複数のブロックの各々は、前記複数の先頭形態素の各々から始まる複数の登録文字列と前記複数の登録文字列それぞれに対応付けられた複数の符号とを含み、前記符号化部は、前記複数のブロックのうち前記ある形態素に対応するブロックに含まれる前記複数の登録文字列の中から、前記符号化対象文字列を探索することを特徴とする請求項５記載の符号化装置。
【請求項７】
前記記憶部は、各ブロックに含まれる各登録文字列内の複数の形態素それぞれの各登録文字列内における位置を示す形態素位置情報を記憶し、前記符号化部は、前記形態素位置情報に基づいて、前記ある登録文字列を含むブロックを特定し、特定したブロックに含まれる前記複数の登録文字列の中から前記符号化対象文字列を探索することを特徴とする請求項６記載の符号化装置。
【請求項８】
前記形態素位置情報は、形態素と登録文字列内における位置との組み合わせ毎に、前記複数のブロックそれぞれが前記組み合わせに対応する登録文字列を含むか否かを示す情報を含み、前記符号化部は、前記符号化対象文字列に含まれる各形態素と前記符号化対象文字列内における各形態素の位置とに基づいて、前記形態素位置情報を参照することで、前記ある登録文字列を含む前記ブロックを特定することを特徴とする請求項７記載の符号化装置。
【請求項９】
コンピュータが、
形態素の区分に用いられ、登録文字列と符号とを対応付けたレコードを複数有する文字列符号化情報に含まれる各レコードの登録文字列の先頭形態素を複数のレコード各々に含む形態素区分情報に基づいて、符号化対象テキストを解析し、
前記形態素区分情報に含まれる前記複数のレコードのうち、ある登録文字列に対応したレコードに含まれる、ある形態素の識別に応じて、前記符号化対象テキストに含まれる前記ある形態素から始まる符号化対象文字列を前記文字列符号化情報において探索し、
前記符号化対象文字列が前記ある登録文字列に対応する場合、前記符号化対象文字列を前記文字列符号化情報において前記ある登録文字列に対応付けられた符号に変換し、
前記符号を含む符号化テキストを出力する、
ことを特徴とする符号化方法。
【請求項１０】
前記文字列符号化情報は、前記ある形態素を含む複数の先頭形態素それぞれに対応する複数のブロックを含み、前記複数のブロックの各々は、前記複数の先頭形態素の各々から始まる複数の登録文字列と前記複数の登録文字列それぞれに対応付けられた複数の符号とを含み、前記コンピュータは、前記複数のブロックのうち前記ある形態素に対応するブロックに含まれる前記複数の登録文字列の中から、前記符号化対象文字列を探索することを特徴とする請求項９記載の符号化方法。
【請求項１１】
前記コンピュータは、各ブロックに含まれる各登録文字列内の複数の形態素それぞれの各登録文字列内における位置を示す形態素位置情報に基づいて、前記ある登録文字列を含むブロックを特定し、特定したブロックに含まれる前記複数の登録文字列の中から前記符号化対象文字列を探索することを特徴とする請求項１０記載の符号化方法。
【請求項１２】
前記形態素位置情報は、形態素と登録文字列内における位置との組み合わせ毎に、前記複数のブロックそれぞれが前記組み合わせに対応する登録文字列を含むか否かを示す情報を含み、前記コンピュータは、前記符号化対象文字列に含まれる各形態素と前記符号化対象文字列内における各形態素の位置とに基づいて、前記形態素位置情報を参照することで、前記ある登録文字列を含む前記ブロックを特定することを特徴とする請求項１１記載の符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化プログラム、符号化装置、及び符号化方法に関する。
【背景技術】
【０００２】
形態素解析は、テキストを形態素に分割し、各形態素に対して品詞情報を付与する処理である。形態素解析により得られる形態素は、単語として扱われることもある。【０００３】
文書情報から抽出した形態素を符号化して格納する文書情報格納装置も知られている（例えば、特許文献１を参照）。この文書情報格納装置は、形態素解析処理を施すことにより、入力された文書情報から文書情報構成要素としての形態素を抽出し、抽出された形態素を符号化し、符号化された形態素に圧縮処理を施し、圧縮された符号化形態素を記憶部に格納する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−８５７９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述した従来の符号化処理では、圧縮率を向上させるために２種類の辞書を用いて２段階の符号化処理が行われる場合、処理時間が長くなることがある。【０００６】
１つの側面において、本発明は、符号化対象テキストに対する２段階の符号化処理を効率化することを目的とする。
【課題を解決するための手段】
【０００７】
１つの案では、符号化プログラムは、以下の処理をコンピュータに実行させる。
（１）コンピュータは、形態素の区分に用いられ、登録文字列と符号とを対応付けたレコードを複数有する文字列符号化情報に含まれる各レコードの登録文字列の先頭形態素を複数のレコード各々に含む形態素区分情報に基づいて、符号化対象テキストを解析する。
（２）コンピュータは、形態素区分情報に含まれる複数のレコードのうち、ある登録文字列に対応したレコードに含まれる、ある形態素の識別に応じて、符号化対象テキストに含まれるある形態素から始まる符号化対象文字列を文字列符号化情報において探索する。
（３）コンピュータは、符号化対象文字列がある登録文字列に対応する場合、符号化対象文字列を文字列符号化情報においてある登録文字列に対応付けられた符号に変換する。
（４）コンピュータは、変換後の符号を含む符号化テキストを出力する。
【発明の効果】
【０００８】
実施形態によれば、符号化対象テキストに対する２段階の符号化処理を効率化することができる。
【図面の簡単な説明】
【０００９】
【図１】形態素解析辞書を示す図である。
【図２】郵便番号辞書を示す図である。
【図３】形態素解析辞書及び郵便番号辞書を用いた符号化処理を示す図である。
【図４】郵便番号辞書の符号を追加した形態素解析辞書を示す図である。
【図５】符号化装置の機能的構成図である。
【図６】符号化処理のフローチャートである。
【図７】符号化装置の具体例を示す機能的構成図である。
【図８】切り替え情報を含む形態素解析辞書を示す図である。
【図９】住所辞書を示す図である。
【図１０】切り替え情報設定処理のフローチャートである。
【図１１】符号化処理の具体例を示すフローチャートである。
【図１２】登録されていない文字列の探索を省略する符号化装置の機能的構成図である。
【図１３】都道府県を複数のブロックに分割した住所辞書を示す図である。
【図１４】形態素位置情報を示す図である。
【図１５】登録されていない文字列の探索を省略する符号化処理のフローチャートである。
【図１６】ブロック絞り込み処理のフローチャートである。
【図１７】作業領域に格納されるフィルタ情報を示す図である。
【図１８】エラーメッセージ辞書を示す図である。
【図１９】情報処理装置の構成図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら、実施形態を詳細に説明する。
特許文献１の文書情報格納装置は、文書から形態素解析により抽出した１つ以上の形態素に対して、郵便番号辞書、同義語辞書等に登録された符号を割り当てることで、文書を符号化する。
【００１１】
図１は、形態素解析で用いられる形態素解析辞書の例を示している。図１の形態素解析辞書は、形態素、品詞、及び符号を含む。品詞は、各形態素の品詞を表し、符号は、各形態素に対応付けられた符号を表す。
【００１２】
図２は、郵便番号辞書の例を示している。図２の郵便番号辞書は、文字列及び符号を含む。文字列は、郵便番号が付与された住所を表す複数の形態素を含み、符号は、各文字列に対応付けられた郵便番号を表す。
【００１３】
図３は、図１の形態素解析辞書及び図２の郵便番号辞書を用いた符号化処理の例を示している。「神奈川県川崎市中原区上小田中に住む」という符号化対象テキスト３０１が入力された場合、まず、第１パスの形態素解析により符号化対象テキスト３０１が複数の形態素に分割される。そして、それぞれの形態素が形態素解析辞書に登録された符号に変換され、符号化テキスト３０２が生成される。例えば、符号化対象テキスト３０１の先頭の形態素「神奈川」は、１６進数の符号０ｘ０１０５に変換されている。
【００１４】
次に、第２パスの符号化により符号化テキスト３０２に含まれる文字列が郵便番号辞書に登録された文字列と比較され、２つの文字列が一致する場合、その文字列が郵便番号辞書に登録された符号に変換されて、符号化テキスト３０３が生成される。この例では、「神奈川県川崎市中原区上小田中」という文字列が符号２１１−００５３に変換されている。このように、第２パスの符号化を行うことで、住所を表す複数の形態素が１つの符号に置き換えられるため、第１パスの符号化結果をさらに圧縮することができる。
【００１５】
第１パスの形態素解析では、品詞又は意味を持つ最小の単位である形態素を高速に抽出するために形態素解析辞書が採用される。形態素解析辞書では、１つの形態素に対して１つの符号が割り当てられる。一方、第２パスの符号化では、住所を表す文字列を高速に抽出するために郵便番号辞書が採用される。郵便番号辞書では、複数の形態素に対して１つの符号が割り当てられる。
【００１６】
このように、２つの辞書の間で符号が割り当てられる形態素の個数が異なるため、第１パス及び第２パスの２パス（２段階）に分けて符号化処理が行われる。２パスの符号化処理は、１パスの符号化処理よりも時間がかかるとともに、記憶領域等の計算資源をより多く使用する。
【００１７】
図４は、２パスの符号化処理と同等の処理を１パスで行うために、郵便番号辞書の符号を追加した形態素解析辞書の例を示している。図４の形態素解析辞書では、「神奈川県川崎市中原区上小田中」という文字列が形態素として登録されており、符号２１１−００５３と対応付けられている。
【００１８】
しかし、テキスト中における住所を表す文字列の出現頻度は、その住所に含まれる個々の地名を表す形態素の出現頻度よりも低いため、形態素解析において統計的出現頻度の高い順に形態素を抽出する場合、住所を表す文字列が抽出される可能性は極めて低い。このため、図４の形態素解析辞書を用いたとしても、符号化対象テキスト３０１から符号化テキスト３０３が生成されることはなく、符号化テキスト３０２が生成される。結果的に、郵便番号辞書の符号が使用されず、圧縮率が向上しない。
【００１９】
また、第２パスの符号化において、住所を表す文字列に対して郵便番号辞書の符号を割り当てるために、形態素解析結果のすべての形態素に対して、完全最長一致法により郵便番号辞書が探索される。この場合、形態素の個数と同じ回数だけ、郵便番号辞書を参照して完全最長一致検索が行われるため、膨大な時間がかかる。
【００２０】
なお、かかる問題は、第２パスの符号化において郵便番号辞書を用いる場合に限らず、住所以外の他の文字列を登録した辞書を用いる場合においても生ずるものである。
【００２１】
図５は、実施形態の符号化装置の機能的構成例を示している。図５の符号化装置５０１は、記憶部５１１、符号化部５１２、及び出力部５１３を含む。
【００２２】
記憶部５１１は、形態素区分情報５２１及び文字列符号化情報５２２を記憶する。文字列符号化情報５２２は、複数のレコードを有し、各レコードには、登録文字列とその登録文字列に対応付けられた符号とが登録される。形態素区分情報５２１は、複数の形態素それぞれを含む複数のレコードを有し、形態素の区分に用いられる。形態素区分情報５２１には、文字列符号化情報５２２に含まれる各レコードの登録文字列の先頭形態素を含むレコードが含まれる。
【００２３】
符号化部５１２は、形態素区分情報５２１及び文字列符号化情報５２２に基づいて符号化対象テキストを符号化して、符号化テキストを生成し、出力部５１３は、符号化テキストを出力する。
【００２４】
図６は、図５の符号化装置５０１が行う符号化処理の例を示すフローチャートである。まず、符号化部５１２は、形態素区分情報５２１に基づいて符号化対象テキストを解析する（ステップ６０１）。そして、符号化部５１２は、形態素区分情報５２１に含まれる複数のレコードのうち、ある登録文字列に対応したレコードに含まれる、ある形態素の識別に応じて、符号化対象テキストに含まれるその形態素から始まる符号化対象文字列を文字列符号化情報内で探索する（ステップ６０２）。
【００２５】
符号化対象文字列がある登録文字列に対応する場合、符号化部５１２は、符号化対象文字列をその登録文字列に対応付けられた符号に変換する（ステップ６０３）。そして、出力部５１３は、変換後の符号を含む符号化テキストを出力する（ステップ６０４）。
【００２６】
このような符号化装置５０１によれば、符号化対象テキストに対する２段階の符号化処理を効率化することができる。
【００２７】
図７は、図５の符号化装置５０１の具体例を示している。図７の符号化部５１２は、解析部７１１、判定部７１２、変換部７１３、及び変換部７１４を含み、記憶部５１１は、形態素解析辞書７２１及び住所辞書７２２を記憶する。形態素解析辞書７２１及び住所辞書７２２は、図５の形態素区分情報５２１及び文字列符号化情報５２２にそれぞれ対応する。
【００２８】
図８は、形態素解析辞書７２１の例を示している。図８の形態素解析辞書７２１は、形態素、品詞、符号、及びフラグを含む。品詞は、各形態素の品詞を表し、符号は、各形態素に対応付けられた符号を表す。フラグは、形態素解析辞書７２１から住所辞書７２２への切り替えを行うか否かを示す切り替え情報であり、フラグが論理“１”のとき、切り替えを行うことを示し、フラグが論理“０”のとき、切り替えを行わないことを示す。
【００２９】
この例では、都道府県を表す文字列の先頭の形態素に対応するフラグが論理“１”に設定されている。例えば、「東京」の品詞は名詞であり、符号はＣ１であり、フラグは論理“１”である。一方、「川崎」の品詞は名詞であり、符号はＣ４であり、フラグは論理“０”である。
【００３０】
図９は、住所辞書７２２の例を示している。図９の住所辞書７２２は、文字列及び符号を含む。文字列は、住所を表す複数の形態素を含み、符号は、各文字列に対応付けられた符号を表す。符号は、郵便番号であってもよい。住所辞書７２２に登録された複数の文字列は、都道府県に対応する複数のブロックに分割されている。セパレータ９０１は、「東京都」のブロックの開始位置を表し、セパレータ９０２は、「神奈川県」のブロックの開始位置を表す。例えば、「東京都杉並区」の符号はＤ１であり、「神奈川県川崎市中原区」の符号はＤ３である。
【００３１】
解析部７１１は、形態素解析辞書７２１に切り替え情報を設定するとともに、形態素解析辞書７２１に基づいて符号化対象テキストに対する形態素解析を行い、符号化対象テキストを複数の形態素に分割する。判定部７１２は、解析部７１１が生成した形態素毎に住所辞書７２２への切り替えを行うか否かを判定する。変換部７１３は、形態素を形態素解析辞書７２１の符号に変換し、変換部７１４は、住所を表す複数の形態素を住所辞書７２２の符号に変換する。
【００３２】
図１０は、解析部７１１が行う切り替え情報設定処理の例を示すフローチャートである。切り替え情報設定処理の開始時には、形態素解析辞書７２１内のすべての形態素のフラグが論理“０”に設定されている。まず、解析部７１１は、形態素解析辞書７２１に基づいて、住所辞書７２２に登録されている各文字列に対する形態素解析を行い、各文字列を複数の形態素に分割する（ステップ１００１）。そして、解析部７１１は、形態素解析辞書７２１内の形態素の中から各文字列の先頭の形態素を選択し、選択した形態素のフラグを論理“１”に変更することで切り替え情報を設定する（ステップ１００２）。
【００３３】
解析部７１１は、フラグの代わりに住所辞書７２２のブロックの開始位置を指すポインタを、切り替え情報として設定してもよい。この場合、「東京」の切り替え情報としては、セパレータ９０１の位置を指すポインタが設定され、「神奈川」の切り替え情報としては、セパレータ９０２の位置を指すポインタが設定される。
【００３４】
図１１は、図７の符号化装置５０１が行う符号化処理の具体例を示すフローチャートである。まず、解析部７１１は、形態素解析辞書７２１に基づいて符号化対象テキストに対する形態素解析を行い（ステップ１１０１）、符号化対象テキストの先頭から順に形態素を抽出する（ステップ１１０２）。次に、判定部７１２は、形態素解析辞書７２１において、解析部７１１が抽出した形態素の切り替え情報が切り替えを示しているか否かを判定する（ステップ１１０３）。
【００３５】
切り替え情報が切り替えを示している場合（ステップ１１０３，ＹＥＳ）、判定部７１２は、符号化対象テキストに含まれる、抽出された形態素から始まる符号化対象文字列（形態素群）を、住所辞書７２２内で探索する（ステップ１１０４）。このとき、判定部７１２は、切り替え情報が示すブロック内で符号化対象文字列を探索し、符号化対象文字列がそのブロックに登録されているか否かをチェックする。判定部７１２は、例えば、完全最長一致検索により符号化対象文字列とブロック内の各登録文字列とを比較することで、符号化対象文字列がそのブロックに登録されているか否かをチェックすることができる。
【００３６】
符号化対象文字列が住所辞書７２２に登録されている場合（ステップ１１０４，ＹＥＳ）、変換部７１４は、その符号化対象文字列を住所辞書７２２に登録された符号に変換する（ステップ１１０５）。そして、判定部７１２は、符号化対象テキストの最後の形態素が符号に変換されたか否かをチェックする（ステップ１１０６）。最後の形態素が符号に変換されていない場合（ステップ１１０６，ＮＯ）、判定部７１２は、残りのテキストに対して、ステップ１１０１以降の処理を繰り返す。
【００３７】
一方、切り替え情報が切り替えを示していない場合（ステップ１１０３，ＮＯ）、変換部７１３は、解析部７１１が抽出した形態素を、形態素解析辞書７２１に登録された符号に変換する（ステップ１１０８）。そして、符号化部５１２は、ステップ１１０６以降の処理を行う。また、符号化対象文字列が住所辞書７２２に登録されていない場合（ステップ１１０４，ＮＯ）、符号化部５１２は、ステップ１１０８以降の処理を行う。
【００３８】
そして、最後の形態素が符号に変換された場合（ステップ１１０６，ＹＥＳ）、出力部５１３は、符号列を含む符号化テキストを出力する（ステップ１１０７）。
【００３９】
例えば、「神奈川県川崎市中原区に住む」という符号化対象テキストは、「神奈川／県／川崎／市／中原／区／に／住む」のように分割される。図８の形態素解析辞書７２１では、「神奈川」のフラグ“１”が切り替えを示しているため、「神奈川」から始まる文字列が図９の住所辞書７２２の「神奈川」のブロック内で探索され、「神奈川県川崎市中原区」という登録文字列が検出される。そこで、「神奈川／県／川崎／市／中原／区」が対応する符号Ｄ３に変換され、後続する「に」及び「住む」は形態素解析辞書７２１の符号に変換される。
【００４０】
形態素解析辞書７２１においてフラグの代わりにポインタが用いられる場合、形態素に対応するポインタが存在すれば、切り替え情報が切り替えを示していると判定され、ポインタが存在しなければ、切り替え情報が切り替えを示していないと判定される。
【００４１】
このような符号化処理によれば、住所辞書７２２の登録文字列が出現した時点で形態素解析辞書７２１から住所辞書７２２へ切り替えられるため、２パスの符号化処理を１パスで行うことが可能になる。これにより、２段階の符号化処理が高速化されるとともに、符号化処理に使用する記憶領域等の計算資源が削減される。
【００４２】
また、複数の登録文字列を先頭の形態素に対応する複数のブロックに分割して住所辞書７２２に登録することで、符号化対象文字列の先頭の形態素に対応するブロックのみを探索対象にすることが可能になる。これにより、探索対象ブロックが限定され、探索処理が効率化される。
【００４３】
しかし、図１１の符号化処理では、切り替えを示す切り替え情報が検出される度に、符号化対象テキストに含まれる符号化対象文字列と、住所辞書７２２の対応するブロック内のすべての登録文字列とが、完全最長一致検索により比較される。このため、１ブロックに多数の登録文字列が含まれている場合、ステップ１１０４の探索処理に長い時間がかかる。
【００４４】
例えば、「神奈川に行く」という符号化対象テキストは、「神奈川／に／行く」のように分割される。図８の形態素解析辞書７２１では、「神奈川」のフラグ“１”が切り替えを示しているため、「神奈川」から始まる文字列が住所辞書７２２内で探索されるが、「に」は住所辞書７２２内のいずれの登録文字列にも含まれていない。このため、「神奈川」は形態素解析辞書７２１の符号に変換される。
【００４５】
このように、符号化対象テキスト内の形態素が住所辞書７２２の登録文字列の先頭の形態素と一致しているが、その形態素から始まる符号化対象文字列が住所辞書７２２内のいずれの登録文字列とも一致しない場合は、探索時間が無駄になってしまう。そこで、住所辞書７２２に登録されていない文字列の探索を省略して、符号化処理をさらに高速化することが望ましい。
【００４６】
図１２は、住所辞書７２２に登録されていない文字列の探索を省略する符号化装置５０１の具体例を示している。図１２の符号化装置５０１の構成は、図７の符号化装置５０１と同様である。記憶部５１１は、形態素解析辞書７２１及び住所辞書７２２に加えて形態素位置情報１２１１を記憶し、作業領域１２１２を含む。形態素位置情報１２１１は、住所辞書７２２の各登録文字列に含まれる各形態素について、登録文字列内における形態素の位置を示す情報である。作業領域１２１２は、形態素位置情報１２１１を用いて文字列が住所辞書７２２に登録されているか否かを判定するために用いられ、スタックであってもよい。
【００４７】
図１３は、各都道府県の住所を複数のブロックに分割した住所辞書７２２の例を示している。「東京１」及び「東京２」は、「東京都」の住所のブロック名を表し、「神奈川１」〜「神奈川５」は、「神奈川県」の住所のブロック名を表す。
【００４８】
図１４は、図１３の住所辞書７２２に対する形態素位置情報１２１１の例を示している。図１４の形態素位置情報１２１１は、形態素、オフセット、及び都道府県のブロックに対するフィルタ情報を含む。形態素は、住所辞書７２２の各登録文字列に含まれる各形態素を表し、オフセットは、登録文字列内における形態素の位置を表す。例えば、「東京」とオフセット“１”との組み合わせは、登録文字列の先頭の形態素が「東京」であることを表し、「多摩」とオフセット“３”との組み合わせは、登録文字列の３番目の形態素が「多摩」であることを表す。
【００４９】
フィルタ情報は、ブロックの個数だけのビット値を含むビット列で表される。あるブロックのビット値が論理“１”のとき、そのブロックに含まれるいずれかの登録文字列内において、オフセットが示す位置に形態素が存在することを示す。一方、あるブロックのビット値が論理“０”のとき、そのブロックに含まれるすべての登録文字列内において、オフセットが示す位置には形態素が存在しないことを表す。
【００５０】
例えば、「東京」とオフセット“１”との組み合わせに対応する「東京１」のビット値“１”は、「東京１」のブロックには、先頭の形態素が「東京」である登録文字列が存在することを示す。また、「東京」とオフセット“１”との組み合わせに対応する「神奈川１」のビット値“０”は、「神奈川１」のブロックには、先頭の形態素が「東京」である登録文字列が存在しないことを示す。
【００５１】
「多摩」とオフセット“３”との組み合わせに対応する「東京１」のビット値“１”は、「東京１」のブロックには、３番目の形態素が「多摩」である登録文字列が存在することを示す。また、「多摩」とオフセット“５”との組み合わせに対応する「神奈川３」のビット値“１”は、「神奈川３」のブロックには、５番目の形態素が「多摩」である登録文字列が存在することを示す。
【００５２】
このような形態素位置情報１２１１を用いることで、符号化対象文字列と登録文字列とを比較しなくても、その符号化対象文字列が住所辞書７２２に登録されているか否かを判定することが可能になる。さらに、符号化対象文字列が住所辞書７２２に登録されている場合、同じ先頭の形態素に対応する複数のブロックの中から、その符号化対象文字列を含むブロックを絞り込むことも可能になる。
【００５３】
図１５は、図１２の符号化装置５０１が行う符号化処理の具体例を示すフローチャートである。ステップ１５０１〜ステップ１５０３及びステップ１５０６〜ステップ１５０９の処理は、図１１のステップ１１０１〜ステップ１１０３及びステップ１１０５〜ステップ１１０８の処理と同様である。
【００５４】
切り替え情報が切り替えを示している場合（ステップ１５０３，ＹＥＳ）、判定部７１２は、形態素位置情報１２１１を用いてブロックを絞り込むことで、住所辞書７２２内の探索対象ブロックを特定する（ステップ１５０４）。そして、判定部７１２は、符号化対象文字列を探索対象ブロック内で探索する（ステップ１５０５）。探索対象ブロックが存在する場合は、符号化対象文字列が探索対象ブロックに登録されているため（ステップ１５０５，ＹＥＳ）、符号化部５１２は、ステップ１５０６以降の処理を行う。
【００５５】
一方、探索対象ブロックが存在しない場合は、符号化対象文字列が住所辞書７２２に登録されていないため（ステップ１５０５，ＮＯ）、符号化部５１２は、ステップ１５０９以降の処理を行う。この場合、住所辞書７２２から符号化対象文字列を探索する処理は行われない。
【００５６】
図１６は、図１５のステップ１５０４で行われるブロック絞り込み処理の例を示すフローチャートである。まず、判定部７１２は、オフセットを表す変数Ｘに１を設定し（ステップ１６０１）、形態素を表す変数Ｗにステップ１５０２で抽出された形態素を設定する（ステップ１６０２）。
【００５７】
次に、判定部７１２は、形態素位置情報１２１１からＸ及びＷに対応するフィルタ情報のビット列を検索し（ステップ１６０３）、対応するフィルタ情報が存在するか否かをチェックする（ステップ１６０４）。対応するフィルタ情報が存在する場合（ステップ１６０４，ＹＥＳ）、判定部７１２は、そのフィルタ情報を作業領域１２１２に追加し（ステップ１６０７）、Ｘを１だけインクリメントする（ステップ１６０８）。そして、判定部７１２は、符号化対象テキスト内の次の形態素をＷに設定し（ステップ１６０２）、ステップ１６０３以降の処理を繰り返す。
【００５８】
一方、対応するフィルタ情報が存在しない場合（ステップ１６０４，ＮＯ）、判定部７１２は、作業領域１２１２に格納されたフィルタ情報を参照して、すべての形態素に対してビット値“１”を含むブロックを特定する（ステップ１６０５）。そして、判定部７１２は、特定したブロックの個数をチェックする（ステップ１６０６）。
【００５９】
特定したブロックの個数が１個である場合（ステップ１６０６，ＹＥＳ）、判定部７１２は、そのブロックを探索対象ブロックに決定する（ステップ１６０７）。一方、特定したブロックの個数が２個以上である場合（ステップ１６０６，ＮＯ）、判定部７１２は、符号化対象文字列が住所辞書７２２に登録されていないと判定して、処理を終了する。
【００６０】
図１７は、作業領域１２１２に格納されるフィルタ情報の例を示している。例えば、「神奈川県川崎市多摩区登戸に住む」という符号化対象テキストは、「神奈川／県／川崎／市／多摩／区／登戸／に／住む」のように分割される。
【００６１】
図８の形態素解析辞書７２１では、先頭の「神奈川」のフラグ“１”が切り替えを示しているため、図１４の形態素位置情報１２１１から、「神奈川」とオフセット“１”との組み合わせに対応するフィルタ情報が検索される。そして、対応するフィルタ情報のビット列は、「神奈川１」〜「神奈川５」のブロックにビット値“１”を含んでいるため、このビット列が作業領域１２１２に追加される。
【００６２】
同様にして、以下のような形態素及びオフセットの組み合わせに対応するフィルタ情報が形態素位置情報１２１１から検索されて、作業領域１２１２に追加される。
「県」及び“２”
「川崎」及び“３”
「市」及び“４”
「多摩」及び“５”
「区」及び“６”
「登戸」及び“７”
【００６３】
しかし、次の形態素「に」とオフセット“８”との組み合わせに対応するフィルタ情報は形態素位置情報１２１１に存在しないため、図１７の７個のフィルタ情報を参照して、すべての形態素に対してビット値“１”を含むブロックが特定される。このとき、判定部７１２は、図１７の各ブロックに対応する７個のビット値を含む縦方向のビット列と、７個のビット値“１”を含むビット列との論理積を求めることで、すべての形態素に対してビット値“１”を含むブロックを特定してもよい。
【００６４】
この場合、すべての形態素に対してビット値“１”を含むブロックは、「神奈川３」のブロックのみであるため、そのブロックが探索対象ブロックに決定される。次に、図１３の住所辞書７２２における「神奈川３」のブロック内で、「神奈川／県／川崎／市／多摩／区／登戸」という符号化対象文字列が探索される。そして、「神奈川／県／川崎／市／多摩／区／登戸」が対応する符号に変換され、後続する「に」及び「住む」は形態素解析辞書７２１の符号に変換される。
【００６５】
また、「東京都多摩市一ノ宮に住む」という符号化対象テキストは、「東京／都／多摩／市／一ノ宮／に／住む」のように分割される。図８の形態素解析辞書７２１では、先頭の「東京」のフラグ“１”が切り替えを示しているため、図１４の形態素位置情報１２１１から、「東京」とオフセット“１”との組み合わせに対応するフィルタ情報が検索される。そして、対応するフィルタ情報のビット列は、「東京１」及び「東京２」のブロックにビット値“１”を含んでいるため、このビット列が作業領域１２１２に追加される。
【００６６】
同様にして、以下のような形態素及びオフセットの組み合わせに対応するフィルタ情報が形態素位置情報１２１１から検索されて、作業領域１２１２に追加される。
「都」及び“２”
「多摩」及び“３”
「市」及び“４”
「一ノ宮」及び“５”
【００６７】
しかし、次の形態素「に」とオフセット“６”との組み合わせに対応するフィルタ情報は形態素位置情報１２１１に存在しないため、５個のフィルタ情報を参照して、すべての形態素に対してビット値“１”を含むブロックが特定される。そして、該当するブロックが「東京１」のブロックのみである場合、そのブロックが探索対象ブロックに決定される。
【００６８】
次に、図１３の住所辞書７２２における「東京１」のブロック内で、「東京／都／多摩／市／一ノ宮」という符号化対象文字列が探索される。そして、「東京／都／多摩／市／一ノ宮」が対応する符号に変換され、後続する「に」及び「住む」は形態素解析辞書７２１の符号に変換される。
【００６９】
一方、「神奈川に行く」という符号化対象テキストは、「神奈川／に／行く」のように分割される。図８の形態素解析辞書７２１では、先頭の「神奈川」のフラグ“１”が切り替えを示しているため、図１４の形態素位置情報１２１１から、「神奈川」とオフセット“１”との組み合わせに対応するフィルタ情報が検索される。そして、対応するフィルタ情報のビット列は、「神奈川１」〜「神奈川５」のブロックにビット値“１”を含んでいるため、このビット列が作業領域１２１２に追加される。
【００７０】
しかし、次の形態素「に」とオフセット“２”との組み合わせに対応するフィルタ情報は形態素位置情報１２１１に存在しないため、「神奈川」のフィルタ情報のみを参照してビット値“１”を含むブロックが特定される。この場合、「神奈川１」〜「神奈川５」の５個のブロックが該当するため、「神奈川」から始まる文字列が住所辞書７２２に登録されていないと判定される。したがって、住所辞書７２２内で「神奈川」が探索されることはなく、「神奈川」は形態素解析辞書７２１の符号に変換される。
【００７１】
このように、図１２の符号化装置５０１によれば、符号化対象テキスト内の形態素が住所辞書７２２の登録文字列の先頭の形態素と一致しているが、その形態素から始まる符号化対象文字列がいずれの登録文字列とも一致しない場合は、住所辞書７２２の探索が省略される。これにより、不要な探索処理が削減されるため、符号化処理がさらに高速化される。
【００７２】
ところで、第２パスの符号化において、住所辞書７２２の代わりに、住所以外の他の文字列を登録した辞書を用いることも可能である。例えば、固有名詞の文字列を登録した固有名詞辞書、成句の文字列を登録した成句辞書、慣用句の文字列を登録した慣用句辞書、エラーメッセージの文字列を登録したエラーメッセージ辞書等を住所辞書７２２の代わりに用いてもよい。
【００７３】
図１８は、エラーメッセージ辞書の例を示している。図１８のエラーメッセージ辞書は、エラーメッセージ及び符号を含む。エラーメッセージは、エラーメッセージを表す複数の形態素を含み、符号は、各エラーメッセージに対応付けられた符号を表す。例えば、“Ｆｉｌｅ  Ｄｅｌｉｖｅｒ  Ｓｔａｒｔ”の符号は０ｘｅ００１であり、“Ｍｅｍｏｒｙ  Ａｌｌｏｃａｔｅ  Ｅｒｒｏｒ”の符号は０ｘｅ００２である。図９の住所辞書７２２と同様に、複数のエラーメッセージを先頭の形態素に対応する複数のブロックに分割して、エラーメッセージ辞書に登録してもよい。
【００７４】
図５、図７、及び図１２の符号化装置５０１の構成は一例に過ぎず、符号化装置５０１の用途や条件に応じて一部の構成要素を省略又は変更してもよい。
【００７５】
図６、図１０、図１１、図１５、及び図１６のフローチャートは一例に過ぎず、符号化装置５０１の構成や条件に応じて一部の処理を省略又は変更してもよい。例えば、形態素解析辞書７２１にあらかじめ切り替え情報が設定されている場合は、図１０の切り替え情報設定処理を省略することができる。
【００７６】
図８の形態素解析辞書、図９及び図１３の住所辞書、図１４の形態素位置情報、及び図１８のエラーメッセージ辞書は一例に過ぎず、符号化装置５０１の構成や条件に応じて別の形態素解析辞書、住所辞書、形態素位置情報、又はエラーメッセージ辞書を用いてもよい。例えば、図１２の符号化装置５０１において、図１３の住所辞書の代わりに図９の住所辞書を用いてもよい。
【００７７】
図５、図７、及び図１２の符号化装置５０１は、例えば、図１９に示すような情報処理装置（コンピュータ）を用いて実現可能である。図１９の情報処理装置は、Central Processing Unit（ＣＰＵ）１９０１、メモリ１９０２、入力装置１９０３、出力装置１９０４、補助記憶装置１９０５、媒体駆動装置１９０６、及びネットワーク接続装置１９０７を含む。これらの構成要素はバス１９０８により互いに接続されている。
【００７８】
メモリ１９０２は、例えば、Read Only Memory（ＲＯＭ）、Random Access Memory（ＲＡＭ）、フラッシュメモリ等の半導体メモリである。メモリ１９０２は、符号化処理のためのプログラム及びデータを格納する。メモリ１９０２は、図５、図７、及び図１２の記憶部５１１として用いることができる。
【００７９】
ＣＰＵ１９０１（プロセッサ）は、例えば、メモリ１９０２を利用してプログラムを実行することにより、図５、図７、及び図１２の符号化部５１２、解析部７１１、判定部７１２、変換部７１３、及び変換部７１４として動作し、符号化処理を行う。
【００８０】
入力装置１９０３は、例えば、キーボード、ポインティングデバイス等であり、ユーザ又はオペレータからの指示や情報の入力に用いられる。出力装置１９０４は、例えば、表示装置、プリンタ、スピーカ等であり、ユーザ又はオペレータへの問い合わせや処理結果の出力に用いられる。
【００８１】
補助記憶装置１９０５は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。補助記憶装置１９０５は、ハードディスクドライブ又はフラッシュメモリであってもよい。情報処理装置は、補助記憶装置１９０５にプログラム及びデータを格納しておき、それらをメモリ１９０２にロードして使用することができる。補助記憶装置１９０５は、図５、図７、及び図１２の記憶部５１１として用いることができる。
【００８２】
媒体駆動装置１９０６は、可搬型記録媒体１９０９を駆動し、その記録内容にアクセスする。可搬型記録媒体１９０９は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体１９０９は、Compact Disk Read Only Memory（ＣＤ−ＲＯＭ）、Digital Versatile Disk（ＤＶＤ）、Universal Serial Bus（ＵＳＢ）メモリ等であってもよい。ユーザ又はオペレータは、この可搬型記録媒体１９０９にプログラム及びデータを格納しておき、それらをメモリ１９０２にロードして使用することができる。
【００８３】
このように、プログラム及びデータを格納するコンピュータ読み取り可能な記録媒体は、メモリ１９０２、補助記憶装置１９０５、及び可搬型記録媒体１９０９のような、物理的な（非一時的な）記録媒体である。
【００８４】
ネットワーク接続装置１９０７は、Local Area Network（ＬＡＮ）、インターネット等の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェースである。情報処理装置は、ネットワーク接続装置１９０７を介して外部の装置からプログラム及びデータを受信し、それらをメモリ１９０２にロードして使用することができる。ネットワーク接続装置１９０７は、図５、図７、及び図１２の出力部５１３として用いることができる。
【００８５】
なお、情報処理装置が図１９のすべての構成要素を含む必要はなく、用途や条件に応じて一部の構成要素を省略することも可能である。例えば、ユーザ又はオペレータからの指示や情報の入力を行わない場合は、入力装置１９０３を省略してもよく、ユーザ又はオペレータへの問い合わせや処理結果の出力を行わない場合は、出力装置１９０４を省略してもよい。情報処理装置が可搬型記録媒体１９０９又は通信ネットワークにアクセスしない場合は、媒体駆動装置１９０６又はネットワーク接続装置１９０７を省略してもよい。
【００８６】
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
【図１】
2017017738.tif 000003
【図２】
2017017738.tif 000004
【図３】
2017017738.tif 000005
【図４】
2017017738.tif 000006
【図５】
2017017738.tif 000007
【図６】
2017017738.tif 000008
【図７】
2017017738.tif 000009
【図８】
2017017738.tif 000010
【図９】
2017017738.tif 000011
【図１０】
2017017738.tif 000012
【図１１】
2017017738.tif 000013
【図１２】
2017017738.tif 000014
【図１３】
2017017738.tif 000015
【図１４】
2017017738.tif 000016
【図１５】
2017017738.tif 000017
【図１６】
2017017738.tif 000018
【図１７】
2017017738.tif 000019
【図１８】
2017017738.tif 000020
【図１９】
2017017738.tif 000021
【手続補正書】
【提出日】平成30年1月12日(2018.1.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
形態素の区分に用いられ、登録文字列と符号とを対応付けたレコードを複数有する文字列符号化情報に含まれる各レコードの登録文字列の先頭形態素を複数のレコード各々に含む形態素区分情報に基づいて、符号化対象テキストを解析し、
前記形態素区分情報に含まれる前記複数のレコードのうち、ある登録文字列に対応したレコードに含まれる、ある形態素の識別に応じて、前記符号化対象テキストに含まれる前記ある形態素から始まる符号化対象文字列を前記文字列符号化情報において探索し、
前記符号化対象文字列が前記ある登録文字列に対応する場合、前記符号化対象文字列を前記文字列符号化情報において前記ある登録文字列に対応付けられた符号に変換し、
前記符号を含む符号化テキストを出力する、
処理をコンピュータに実行させる符号化プログラム。
【請求項２】
前記文字列符号化情報は、前記ある形態素を含む複数の先頭形態素それぞれに対応する複数のブロックを含み、前記複数のブロックの各々は、前記複数の先頭形態素の各々から始まる複数の登録文字列と前記複数の登録文字列それぞれに対応付けられた複数の符号とを含み、前記コンピュータは、前記複数のブロックのうち前記ある形態素に対応するブロックに含まれる前記複数の登録文字列の中から、前記符号化対象文字列を探索することを特徴とする請求項１記載の符号化プログラム。
【請求項３】
前記コンピュータは、各ブロックに含まれる各登録文字列内の複数の形態素それぞれの各登録文字列内における位置を示す形態素位置情報に基づいて、前記ある登録文字列を含むブロックを特定し、特定したブロックに含まれる前記複数の登録文字列の中から前記符号化対象文字列を探索することを特徴とする請求項２記載の符号化プログラム。
【請求項４】
登録文字列と符号とを対応付けたレコードを複数有する文字列符号化情報と、形態素の区分に用いられ、前記文字列符号化情報に含まれる各レコードの登録文字列の先頭形態素を複数のレコード各々に含む形態素区分情報とを記憶する記憶部と、
前記形態素区分情報に基づいて符号化対象テキストを解析し、前記形態素区分情報に含まれる前記複数のレコードのうち、ある登録文字列に対応したレコードに含まれる、ある形態素の識別に応じて、前記符号化対象テキストに含まれる前記ある形態素から始まる符号化対象文字列を前記文字列符号化情報において探索し、前記符号化対象文字列が前記ある登録文字列に対応する場合、前記符号化対象文字列を前記文字列符号化情報において前記ある登録文字列に対応付けられた符号に変換する符号化部と、
前記符号を含む符号化テキストを出力する出力部と、
を備えることを特徴とする符号化装置。
【請求項５】
コンピュータが、
形態素の区分に用いられ、登録文字列と符号とを対応付けたレコードを複数有する文字列符号化情報に含まれる各レコードの登録文字列の先頭形態素を複数のレコード各々に含む形態素区分情報に基づいて、符号化対象テキストを解析し、
前記形態素区分情報に含まれる前記複数のレコードのうち、ある登録文字列に対応したレコードに含まれる、ある形態素の識別に応じて、前記符号化対象テキストに含まれる前記ある形態素から始まる符号化対象文字列を前記文字列符号化情報において探索し、
前記符号化対象文字列が前記ある登録文字列に対応する場合、前記符号化対象文字列を前記文字列符号化情報において前記ある登録文字列に対応付けられた符号に変換し、
前記符号を含む符号化テキストを出力する、
ことを特徴とする符号化方法。
【国際調査報告】
2017017738.tif 000022
2017017738.tif 000023