(57)【要約】【課題】テキストを適切な位置で効率的に分割する。【解決手段】コンピュータは、複数の単語に分割された登録文字列と区分単語数とを対応付けた文字列分割情報から、テキストに含まれる第１の文字列を検索する（ステップ２０１）。そして、コンピュータは、第１の文字列と登録文字列とが対応する場合、第１の文字列のうち、登録文字列に対応付けられた区分単語数の単語を含む第２の文字列を、その区分単語数の単語に分割する（ステップ２０２）。【選択図】図２
2017004127.tif 000002
【特許請求の範囲】
【請求項１】
複数の単語に分割された登録文字列と区分単語数とを対応付けた文字列分割情報から、テキストに含まれる第１の文字列を検索し、
前記第１の文字列と前記登録文字列とが対応する場合、前記第１の文字列のうち、前記登録文字列に対応付けられた前記区分単語数の単語を含む第２の文字列を、前記区分単語数の前記単語に分割する、
処理をコンピュータに実行させるテキスト分割プログラム。
【請求項２】
前記区分単語数は、前記登録文字列の属性に基づいて決定されることを特徴とする請求項１記載のテキスト分割プログラム。
【請求項３】
前記登録文字列の属性は、前記登録文字列の一部又は全部に含まれる文字の個数、前記登録文字列に含まれる前記複数の単語の文字種別、又は前記登録文字列内における所定の品詞の位置のうち少なくとも１つを含むことを特徴とする請求項２記載のテキスト分割プログラム。
【請求項４】
前記文字列分割情報は、前記登録文字列と同じ文字列であって前記登録文字列とは異なる分割位置で複数の単語に分割された文字列を含み、前記区分単語数は、前記登録文字列と、前記異なる分割位置で分割された前記文字列とに共通する単語の個数に基づいて決定されることを特徴とする請求項１乃至３のいずれか１項に記載のテキスト分割プログラム。
【請求項５】
複数の単語に分割された登録文字列と区分単語数とを対応付けた文字列分割情報を記憶する記憶部と、
前記文字列分割情報からテキストに含まれる第１の文字列を検索し、前記第１の文字列と前記登録文字列とが対応する場合、前記第１の文字列のうち、前記登録文字列に対応付けられた前記区分単語数の単語を含む第２の文字列を、前記区分単語数の前記単語に分割する分割部と、
を備えることを特徴とするテキスト分割装置。
【請求項６】
コンピュータが、
複数の単語に分割された登録文字列と区分単語数とを対応付けた文字列分割情報から、テキストに含まれる第１の文字列を検索し、
前記第１の文字列と前記登録文字列とが対応する場合、前記第１の文字列のうち、前記登録文字列に対応付けられた前記区分単語数の単語を含む第２の文字列を、前記区分単語数の前記単語に分割する、
ことを特徴とするテキスト分割方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テキスト分割プログラム、テキスト分割装置、及びテキスト分割方法に関する。
【背景技術】
【０００２】
近年、インターネット上の情報が飛躍的に増大しており、ビッグデータを用いたビジネスが増加しているため、ビッグデータを効率的に処理することが望まれている。日本語、中国語、又は韓国語の文書のように、単語と単語がスペース等の区切り文字で区切られていない表記の文書の場合、単語の出現頻度を計算するために形態素解析が行われる。
【０００３】
形態素解析は、テキストを形態素に分割し、各形態素に対して品詞情報を付与する処理である。形態素解析により得られる形態素は、単語として扱われることもある。このような形態素解析を行うことで、文書中の単語間の関係及び単語の品詞が決定され、文書中のテキストを単語に分割することができる。しかし、形態素解析は処理負荷が大きいため、大量のテキストを処理するには長い時間がかかる。
【０００４】
文を２以上の単語に高速に分割する単語分割装置も知られている（例えば、特許文献１を参照）。この単語分割装置は、１以上の単語と、単語と当該単語を分割した結果である２以上の分割単語の組である１以上の分割情報とを格納し得る単語分割用辞書から、受け付けられた文の先頭である文のポインタから最大長の文字列に一致する単語を取得する。そして、単語分割装置は、取得した単語に対応する２以上の分割単語を有する場合は、一致する単語に代えて２以上の分割単語を取得する分割単語取得処理を行う。単語分割装置は、文のポインタを一致する単語の次の文字に移動した後、分割単語取得処理を文の最後の文字を含む単語まで行い、文を分割して得られる２以上の単語の集合である第一分割結果を取得する。
【０００５】
形態素解析を正確かつ迅速に行うことのできる形態素解析システムも知られている（例えば、特許文献２を参照）。この形態素解析システムの漢字文字列形態素N文字登録辞書には、形態素が、他の任意の文字列を後続して結合するとその形態素の文字列中で区切られる２つ以上の形態素となるものであれば、その形態素に関連づけてその区切れ位置の情報が併せて記録される。漢字文字列形態素解析プログラムは、最長一致法にて第１形態素候補を取得して、それに区切位置情報が記録されていればその位置から再び最長一致法によって第２形態素候補の取得を試みる。ひらがな形態素接合リスト辞書には、複数のひらがな形態素を文法的な接合の正しさを考慮して接合させたものがあらかじめ記録される。ひらがな文字列形態素解析プログラムは、ひらがな形態素接合リスト辞書と文字列データとの照合処理により形態素を取得する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１４−１０６７０７号公報
【特許文献２】特開２００２−３２３６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述した従来の単語分割装置又は形態素解析システムでは、テキストの一部分のみの情報に基づいて分割位置が決定されるため、必ずしも適切な位置でテキストが分割されるとは限らない。
【０００８】
なお、かかる問題は、単語の出現頻度を計算するためにテキストを分割する場合に限らず、他のテキスト解析のためにテキストを分割する場合においても生ずるものである。
【０００９】
１つの側面において、本発明は、テキストを適切な位置で効率的に分割することを目的とする。
【課題を解決するための手段】
【００１０】
１つの案では、テキスト分割プログラムは、以下の処理をコンピュータに実行させる。
（１）コンピュータは、複数の単語に分割された登録文字列と区分単語数とを対応付けた文字列分割情報から、テキストに含まれる第１の文字列を検索する。
（２）コンピュータは、第１の文字列と登録文字列とが対応する場合、第１の文字列のうち、登録文字列に対応付けられた区分単語数の単語を含む第２の文字列を、その区分単語数の単語に分割する。
【発明の効果】
【００１１】
実施形態によれば、テキストを適切な位置で効率的に分割することができる。
【図面の簡単な説明】
【００１２】
【図１】テキスト分割装置の機能的構成図である。
【図２】テキスト分割処理のフローチャートである。
【図３】文字列分割情報を示す図である。
【図４】テキスト分割処理の具体例を示すフローチャートである。
【図５】区分単語数登録処理を行うテキスト分割装置の機能的構成図である。
【図６】区分単語数登録処理のフローチャートである。
【図７】情報処理装置の構成図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照しながら、実施形態を詳細に説明する。
例えば、特許文献１の単語分割装置を用いて、「そうはいってもっと進んでください」というテキストを分割する場合、単語分割用辞書の最長一致検索によりテキストが分割される。このため、正しい分割結果は「そう／はいって／もっと／進んで／ください」であるが、「そう／は／いっても／っと進んでください」のような、意図しない分割結果が得られることがある。
【００１４】
この原因は、ある単語の後に続く単語に応じて分割位置が異なる場合があるにもかかわらず、単語よりも広い範囲の文脈を検出することなく、単純に最長一致検索で分割位置を決定している点にあると考えられる。
【００１５】
また、特許文献２の形態素解析システムを用いて、「自然言語処理技術」という複合語のテキストを分割する場合、Ｎ文字後退した位置から再び最長一致検索が行われ、第２形態素候補の単語が存在した場合、その区切れ位置が採用される。
【００１６】
このため、第１形態素候補に基づいて、「自然言語処理／技術」のような正しい分割結果が得られた場合であっても、第２形態素候補に基づいて、「自然／言語処理技術」のような誤った分割結果が採用されることがある。同様に、「原子力学会」の正しい分割結果は「原子力／学会」であるが、第２形態素候補に基づいて、「原子／力学／会」のような誤った分割結果が採用されることがある。
【００１７】
この原因は、複合語の文脈を検出することなく、局所的な情報に基づいて分割位置を決定している点にあると考えられる。
【００１８】
このように、テキストの一部分のみの情報に基づいて分割位置を決定しても、テキスト全体の文脈を検出していないので、誤った分割結果が生成されることがある。しかし、日本語等の文は無限に存在するため、必ずしもすべての文の分割結果が辞書に登録されるわけではない。
【００１９】
図１は、実施形態のテキスト分割装置の機能的構成例を示している。図１のテキスト分割装置１０１は、記憶部１１１及び分割部１１２を含む。
【００２０】
記憶部１１１は、複数の単語に分割された登録文字列と区分単語数とを対応付けた文字列分割情報１２１を記憶する。分割部１１２は、記憶部１１１が記憶する文字列分割情報１２１を参照して、テキスト分割処理を行う。
【００２１】
図２は、図１のテキスト分割装置１０１が行うテキスト分割処理の例を示すフローチャートである。まず、分割部１１２は、文字列分割情報１２１から、テキストに含まれる第１の文字列を検索する（ステップ２０１）。そして、分割部１１２は、第１の文字列と登録文字列とが対応する場合、第１の文字列のうち、登録文字列に対応付けられた区分単語数の単語を含む第２の文字列を、その区分単語数の単語に分割する（ステップ２０２）。
【００２２】
このようなテキスト分割装置１０１によれば、テキストを適切な位置で効率的に分割することができる。
【００２３】
テキスト分割装置１０１は、大量のテキストを解析するテキスト解析に適用することができる。例えば、テキスト内における各単語の出現頻度を計算する統計処理に対して、テキスト分割装置１０１を適用してもよい。
【００２４】
図３は、日本語テキストに対する文字列分割情報１２１の例を示している。図３の文字列分割情報１２１は、単語単位のｎグラム（ｎ−ｇｒａｍ）が文字列として登録されたｎグラムテーブルであり、テキスト分割処理のための辞書に対応する。このｎグラムテーブルの各エントリは、エントリの識別情報（ＩＤ）と、ｎグラムと、区分単語数と、文字列長と、文字種別と、助詞及び助動詞の位置とを含む。
【００２５】
ｎグラムは、ｎ個の単語を含む文字列を表し、区分単語数は、ｎ個の単語のうち分割結果として採用される単語の個数を表す。区分単語数は１以上ｎ以下の整数であるが、ｎよりも小さい区分単語数を用いることが好ましい。文字列長は、ｎグラムに含まれる文字の個数を表し、文字種別は、ｎグラムに含まれる各単語の文字の種別を表す。文字種別“１”は、単語に含まれる文字がすべてひらがな又はカタカナであることを表し、文字種別“０”は、単語がそれ以外の文字を含むことを表す。助詞及び助動詞の位置は、ｎグラムに含まれる助詞及び助動詞の出現位置を表す。
【００２６】
例えば、ＩＤ“１”の文字列「そうはいっても」は、「そう」、「は」、「いって」、及び「も」からなる４−ｇｒａｍであり、区分単語数は１であり、文字列長は７である。文字種別“１１１１”は、４個の単語の各々がひらがな又はカタカナであることを表し、助詞及び助動詞の位置“２，４”は、４−ｇｒａｍの先頭から２番目の単語と４番目の単語とが、助詞又は助動詞であることを表す。
【００２７】
ＩＤ“５”の文字列「そうはいはいと人」は、「そう」、「はいはい」、「と」、及び「人」からなる４−ｇｒａｍであり、区分単語数は３であり、文字列長は９である。文字種別“１１１０”は、４個の単語のうち１番目〜３番目の単語がひらがな又はカタカナであり、４番目の単語がそれ以外の文字を含むことを表し、助詞及び助動詞の位置“３”は、３番目の単語が助詞又は助動詞であることを表す。
【００２８】
また、ＩＤ“３”等のエントリにおける助詞及び助動詞の位置“−１”は、ｎグラムに助詞又は助動詞が含まれていないことを表す。
【００２９】
図３には、２−ｇｒａｍ〜４−ｇｒａｍの特定の文字列のエントリのみが示されているが、このｎグラムテーブルには、不図示の２−ｇｒａｍ〜４−ｇｒａｍの他の文字列のエントリと５−ｇｒａｍ〜１０−ｇｒａｍのエントリも含まれている。さらに、ｎが１１以上であるｎグラムを登録してもよい。ｎを大きくして比較的長い文字列をｎグラムテーブルに登録することで、単語よりも広い範囲の文脈を検出することが可能になる。
【００３０】
例えば、複数の文書のテキストを高精度の形態素解析処理により解析することで、自動的にｎグラムテーブルを生成することができる。同じ文字列であっても、使用される分野に応じて異なるｎグラムとして登録してもよい。例えば、文字列「原子力学」は、「原子力−学」及び「原子−力学」の２個の２−ｇｒａｍとして登録することができる。各エントリの区分単語数を決定する方法については後述する。
【００３１】
図４は、図２のテキスト分割処理の具体例を示すフローチャートである。まず、分割部１１２は、分割対象のテキストの先頭位置を開始位置として、文字列分割情報１２１に登録された文字列の中から、テキスト内の開始位置から始まる文字列を最長一致検索により検索する（ステップ４０１）。そして、分割部１１２は、開始位置から始まる文字列と、文字列分割情報１２１のいずれかのエントリの文字列とが一致するか否かをチェックする（ステップ４０２）。
【００３２】
開始位置から始まる文字列がいずれのエントリの文字列とも一致しない場合（ステップ４０２，ＮＯ）、分割部１１２は、開始位置を１文字だけ後方へシフトして（ステップ４０６）、ステップ４０１以降の処理を繰り返す。
【００３３】
開始位置から始まる文字列がいずれかのエントリの文字列と一致した場合（ステップ４０２，ＹＥＳ）、分割部１１２は、一致した文字列のうちで最長の文字列に対応するエントリの区分単語数を参照する（ステップ４０３）。そして、分割部１１２は、テキスト内の開始位置からその区分単語数に対応する部分の文字列を、そのエントリに登録された単語に分割する。
【００３４】
次に、分割部１１２は、区分単語数に対応する部分の文字列の文字数だけ、開始位置を後方へシフトして（ステップ４０４）、一致した最長の文字列の末尾がテキストの末尾であるか否かをチェックする（ステップ４０５）。最長の文字列の末尾がテキストの末尾ではない場合（ステップ４０５，ＮＯ）、分割部１１２は、ステップ４０１以降の処理を繰り返す。
【００３５】
最長の文字列の末尾がテキストの末尾である場合（ステップ４０５，ＹＥＳ）、分割部１１２は、開始位置以降の文字列を、最長の文字列に対応するエントリに登録された単語に分割して、処理を終了する。
【００３６】
例えば、分割対象のテキストが「そうはいってもっと進んでください」である場合、先頭の２文字「そう」を検索対象として、図３のｎグラムテーブルを前方一致検索により検索すると、ＩＤ“１”〜ＩＤ“９”の９個のエントリが抽出される。
【００３７】
これらのエントリのうち、最も長い文字列長“１２”に対応するものは、ＩＤ“３”及びＩＤ“４”のエントリである。しかし、ＩＤ“３”の文字列「そうはいってもっとむこう」とＩＤ“４”の文字列「そうはいってずっとむこう」のいずれも、分割対象のテキストとは一致しない。
【００３８】
２番目に長い文字列長“９”に対応するエントリは、ＩＤ“５”、ＩＤ“６”、及びＩＤ“８”のエントリである。このうち、ＩＤ“８”の文字列「そうはいってもっと」のみが分割対象のテキストと一致するため、このエントリに基づいて分割対象のテキストが分割される。この場合、ＩＤ“８”の区分単語数は“１”であるため、文字列に含まれる３個の単語のうち１番目の「そう」と２番目の「はいって」との間の位置で分割対象のテキストが分割され、開始位置がその分割位置にシフトする。
【００３９】
次に、残りの「はいってもっと進んでください」の先頭の２文字「はい」を検索対象として、ｎグラムテーブルを前方一致検索により検索すると、ＩＤ“１０”〜ＩＤ“１９”の１０個のエントリが抽出される。
【００４０】
これらのエントリのうち、最も長い文字列長“１１”に対応するものは、ＩＤ“１１”及びＩＤ“１２”のエントリである。しかし、ＩＤ“１１”の文字列「はいってもっとむこうに」とＩＤ“１２”の文字列「はいってずっとむこうに」のいずれも、残りのテキストとは一致しない。
【００４１】
２番目に長い文字列長“１０”に対応するエントリは、ＩＤ“１６”及びＩＤ“１７”のエントリである。しかし、ＩＤ“１６”の文字列「はいってもっとむこう」とＩＤ“１７”の文字列「はいってずっとむこう」のいずれも、残りのテキストとは一致しない。
【００４２】
３番目に長い文字列長“８”に対応するエントリは、ＩＤ“１４”及びＩＤ“１９”のエントリである。しかし、ＩＤ“１４”の文字列「はいはいと簡単に」とＩＤ“１９”の文字列「はいってください」のいずれも、残りのテキストとは一致しない。
【００４３】
４番目に長い文字列長“７”に対応するエントリは、ＩＤ“１０”、ＩＤ“１３”、及びＩＤ“１８”のエントリである。このうち、ＩＤ“１８”の文字列「はいってもっと」のみが残りのテキストと一致するため、このエントリに基づいて残りのテキストが分割される。この場合、ＩＤ“１８”の区分単語数は“１”であるため、文字列に含まれる２個の単語のうち１番目の「はいって」と２番目の「もっと」との間の位置で残りのテキストが分割され、開始位置がその分割位置にシフトする。
【００４４】
次に、残りの「もっと進んでください」の先頭の２文字「もっ」を検索対象として、ｎグラムテーブルを前方一致検索により検索すると、ＩＤ“２０”及びＩＤ“２１”の２個のエントリが抽出される。
【００４５】
これらのエントリの文字列長はともに“６”であるが、ＩＤ“２０”の文字列「もっと進んで」のみが残りのテキストと一致するため、このエントリに基づいて残りのテキストが分割される。この場合、ＩＤ“２０”の区分単語数は“１”であるため、文字列に含まれる２個の単語のうち１番目の「もっと」と２番目の「進んで」との間の位置で残りのテキストが分割され、開始位置がその分割位置にシフトする。その後、残りの「進んでください」に対して同様の分割処理が繰り返される。
【００４６】
このようなテキスト分割処理によれば、最長一致検索により一致した文字列の全部ではなく一部分のみが分割され、残りの部分を次の最長一致検索の検索対象に含めることができる。このとき、より長い文字列を文字列分割情報１２１に登録することで、広い範囲の文脈に基づいて複数の登録文字列を比較しながら、徐々に分割結果を確定させていくことが可能になる。
【００４７】
例えば、複数の登録文字列の間で共通する部分のように、文脈に基づいて確からしいと判定される部分のみに対して分割結果を確定させ、それ以外の部分に対しては分割結果を確定させないことも可能である。「そうはいってもっと進んでください」の例では、先頭の「そう」が、確からしいと判定される部分に対応し、「はいって」以降の部分が、それ以外の部分に対応する。
【００４８】
図４のテキスト分割処理によれば、文字列分割情報１２１内に単語として存在しない未知語を含む文字列を複数の単語に分割することも可能である。
【００４９】
例えば、「ＸＹ自動車交通（株）の今期の業績は・・・」というテキストが分割対象であり、「ＸＹ」が未知語である場合、まず、先頭の「Ｘ」が開始位置に設定される。しかし、「Ｘ」から始まる文字列が文字列分割情報１２１のいずれのエントリとも一致しないため、次に、開始位置が１文字だけシフトし、「Ｙ」が開始位置に設定される。しかし、「Ｙ」から始まる文字列が文字列分割情報１２１のいずれのエントリとも一致しないため、次に、開始位置が１文字だけシフトし、「自」が開始位置に設定される。
【００５０】
ここで、「自動車−交通−（株）−の」という４−ｇｒａｍが文字列分割情報１２１に登録されており、その区分単語数が“３”であるとすると、文字列「自動車交通（株）」が「自動車」、「交通」、及び「（株）」の３個の単語に分割される。さらに、「自動車交通（株）」よりも前の文字列「ＸＹ」が単語として採用される。これにより、「ＸＹ自動車交通（株）」を「ＸＹ／自動車／交通／（株）」のように４個の単語に分割することができる。
【００５１】
また、文字列分割情報１２１内に単語として存在するが、その単語を含む文字列が登録されていない場合であっても、そのような未登録文字列を複数の単語に分割することが可能である。
【００５２】
例えば、「そんなスリッパの・・・」というテキストが分割対象であり、「そんなスリッパ」が未登録文字列である場合、まず、先頭の「そ」が開始位置に設定される。しかし、「そ」から始まる文字列が文字列分割情報１２１のいずれのエントリとも一致しないため、次に、開始位置が１文字だけシフトし、「ん」が開始位置に設定される。
【００５３】
しかし、「ん」から始まる文字列が文字列分割情報１２１のいずれのエントリとも一致しないため、次に、開始位置が１文字だけシフトし、「な」が開始位置に設定される。しかし、「な」から始まる文字列が文字列分割情報１２１のいずれのエントリとも一致しないため、次に、開始位置が１文字だけシフトし、「ス」が開始位置に設定される。
【００５４】
ここで、「スリッパ−の」という２−ｇｒａｍが文字列分割情報１２１に登録されており、その区分単語数が“１”であるとすると、文字列「スリッパの」が「スリッパ」及び「の」の２個の単語に分割される。さらに、「スリッパの」よりも前の文字列「そんな」が単語として採用される。これにより、「そんなスリッパ」を「そんな／スリッパ」のように２個の単語に分割することができる。
【００５５】
このように、図４のテキスト分割処理によれば、文字列分割情報１２１に登録されていない文字列であっても、適切に分割することが可能である。したがって、あらゆる単語を含む多数の文字列を文字列分割情報１２１に登録する必要はなく、統計的に出現頻度が大きな文字列のみを登録すれば十分である。これにより、文字列分割情報１２１を記憶するための記憶領域の増大を抑止することができる。
【００５６】
図５は、区分単語数登録処理を行うテキスト分割装置の機能的構成例を示している。図５のテキスト分割装置１０１は、図１のテキスト分割装置１０１に区分単語数決定部５０１を追加した構成を有する。区分単語数決定部５０１は、文字列分割情報１２１の各エントリの文字列の属性に基づいて区分単語数を決定し、決定した区分単語数を文字列分割情報１２１に登録する。
【００５７】
図６は、区分単語数決定部５０１が行う区分単語数登録処理の例を示すフローチャートである。まず、区分単語数決定部５０１は、文字列分割情報１２１の１つのエントリに登録された文字列を処理対象として、その文字列の属性を抽出し（ステップ６０１）、抽出した属性に基づいて、処理対象の文字列に対応する区分単語数を決定する（ステップ６０２）。
【００５８】
次に、区分単語数決定部５０１は、他のエントリに処理対象の文字列と同じ文字列が存在するか否かをチェックする（ステップ６０３）。同じ文字列が存在する場合（ステップ６０３，ＹＥＳ）、区分単語数決定部５０１は、決定した区分単語数を、複数の同じ文字列に共通する単語の個数に変更する（ステップ６０４）。そして、区分単語数決定部５０１は、変更後の区分単語数を処理対象の文字列のエントリに登録する（ステップ６０５）。
【００５９】
一方、同じ文字列が存在しない場合（ステップ６０３，ＮＯ）、区分単語数決定部５０１は、決定した区分単語数を処理対象の文字列のエントリに登録する（ステップ６０５）。
【００６０】
次に、区分単語数決定部５０１は、文字列分割情報１２１のすべてのエントリを処理したか否かをチェックする（ステップ６０６）。未処理のエントリが残っている場合（ステップ６０６，ＮＯ）、区分単語数決定部５０１は、次のエントリに登録された文字列を処理対象として、ステップ６０１以降の処理を繰り返す。そして、すべてのエントリを処理した場合（ステップ６０６，ＹＥＳ）、区分単語数決定部５０１は、処理を終了する。
【００６１】
区分単語数決定部５０１は、図４のテキスト分割処理の開始前に、図６の区分単語数登録処理を行ってもよく、テキスト分割処理と並行して区分単語数登録処理を行ってもよい。
【００６２】
図６のステップ６０１において抽出される処理対象の文字列の属性は、文字列の一部又は全部に含まれる文字の個数、文字列に含まれる単語の文字種別、又は文字列内における所定の品詞の位置のうち少なくとも１つを含むことができる。単語の文字種別は、例えば、ひらがな又はカタカナ、それ以外の文字等を表し、所定の品詞としては、例えば、助詞及び助動詞が用いられる。
【００６３】
文字種別がひらがな又はカタカナである単語を含む文字列は、分割位置が一意に決定されないことが多いため、そのような文字列の区分単語数は、ひらがな及びカタカナ以外の単語を含む文字列の区分単語数よりも小さく設定することが好ましい。
【００６４】
また、助詞又は助動詞を含む文字列も、分割位置が一意に決定されないことが多いため、そのような文字列の区分単語数は、助詞及び助動詞を含まない文字列の区分単語数よりも小さく設定することが好ましい。
【００６５】
ステップ６０２において、区分単語数決定部５０１は、例えば、以下の手順で処理対象の文字列の区分単語数ｚを決定することができる。
【００６６】
まず、区分単語数決定部５０１は、文字列の先頭からｎ番目の単語（最後の単語）が句読点（「。」又は「、」）である場合、ｚ＝ｎに設定し、ｎ番目の単語が句読点ではない場合、ｚ＝ｎ−１に設定する。
【００６７】
次に、区分単語数決定部５０１は、ｎ番目の単語の文字種別と、（ｎ−１）番目の単語の品詞とをチェックする。
【００６８】
（ｎ−１）番目の単語が助詞又は助動詞である場合、その単語までの文字列が１つの文節（単語のまとまり）に対応し、（ｎ−１）番目の単語とｎ番目の単語との間に文節の境界が存在する可能性がある。しかし、その次のｎ番目の単語がひらがな又はカタカナである場合は、必ずしも（ｎ−１）番目の単語とｎ番目の単語との間に境界が存在するとは限らない。逆に、ｎ番目の単語がひらがな及びカタカナ以外の文字である場合は、（ｎ−１）番目の単語とｎ番目の単語との間に境界が存在する可能性が高いと言える。
【００６９】
そこで、ｎ番目の単語の文字種別が“０”であり、（ｎ−１）番目の単語が助詞又は助動詞である場合、区分単語数決定部５０１は、ｚを変更しない。
【００７０】
一方、ｎ番目の単語の文字種別が“１”である場合、又は（ｎ−１）番目の単語が助詞及び助動詞以外の品詞である場合、区分単語数決定部５０１は、以下の手順でｚを減少させる。
【００７１】
まず、区分単語数決定部５０１は、文字列の先頭からｚ番目の単語までの範囲の文字の個数ｋを用いて、ｋ＜ｚ＊３であるか否かをチェックする。ｚ＝ｎの場合、ｋは、処理対象の文字列に含まれる文字の総数を表し、ｚ＝ｎ−１の場合、ｋは、処理対象の文字列の１番目〜（ｎ−１）番目の単語に含まれる文字の個数を表す。
【００７２】
文字列に含まれる文字の個数が少ない場合は、分割位置が一意に決定されないことが多いため、ｚを小さくすることが望ましい。そこで、ｋ＜ｚ＊３である場合、区分単語数決定部５０１は、ｚ＝ｚ−１に設定する。
【００７３】
また、文字列に含まれる文字の個数が少なくない場合であっても、文字種別がひらがな又はカタカナである場合は、分割位置が一意に決定されないことが多い。そこで、ｋ≧ｚ＊３であり、１番目〜（ｎ−１）番目の単語の文字種別がすべて“１”である場合も、区分単語数決定部５０１は、ｚ＝ｚ−１に設定する。
【００７４】
なお、区分単語数決定部５０１は、ｋをｚ＊３と比較する代わりに、ｋを他の閾値と比較してもよく、ｚ＝ｚ−１に設定する代わりに、ｚをより小さな値に設定してもよい。
【００７５】
このように、文字列分割情報１２１に登録された文字列の属性に基づいて区分単語数を決定することで、各文字列の文脈に応じて分割結果を確定させる部分が設定される。これにより、処理速度を低下させることなく、高い精度でテキストを分割することができる。
【００７６】
また、ステップ６０４において、区分単語数決定部５０１は、複数のエントリに登録された同じ文字列であって、分割位置が異なる文字列同士を先頭から比較し、共通する単語の個数をｚに設定する。ただし、共通する単語の個数がステップ６０２で決定した区分単語数以上である場合、区分単語数決定部５０１は、決定した区分単語数を変更しなくてもよい。
【００７７】
分割位置が異なる同じ文字列が登録されている場合、それらの文字列の分割結果に共通する単語の個数を区分単語数に設定することで、残りの単語からなる文字列を誤った位置で分割するリスクを低減することができる。
【００７８】
例えば、図３のＩＤ“１”の「そうはいっても」が処理対象の文字列である場合、ｎ＝４であり、４番目の単語「も」が句読点ではないため、ｚ＝ｎ−１＝３に設定される。次に、４番目の単語「も」の文字種別が“１”であるため、ｋ＜ｚ＊３であるか否かがチェックされる。この場合、ｋ＝２＋１＋３＝６であるため、ｋ＜ｚ＊３＝９となり、ｚ＝ｚ−１＝２に決定される（ステップ６０２）。
【００７９】
次に、ＩＤ“９”の「そうはいっても」が同じ文字列であり、ＩＤ“１”の「そう−は−いって−も」とＩＤ“９”の「そう−はいって−も」に共通する単語は「そう」のみであるため、ｚ＝１に変更される（ステップ６０４）。
【００８０】
ＩＤ“２”の「そうはいってた」が処理対象の文字列である場合、同様にして、ｚ＝２に決定される（ステップ６０２）。さらに、他のエントリに「そう−はいって−た」という３−ｇｒａｍが登録されていたと仮定すると、ｚ＝１に変更される（ステップ６０４）。
【００８１】
ＩＤ“３”の「そうはいってもっとむこう」が処理対象の文字列である場合、ｎ＝４であり、４番目の単語「むこう」が句読点ではないため、ｚ＝ｎ−１＝３に設定される。次に、４番目の単語「むこう」の文字種別が“１”であるため、ｋ＜ｚ＊３であるか否かがチェックされる。この場合、ｋ＝２＋４＋３＝９であるため、ｋ＝ｚ＊３となるが、１番目の単語「そう」、２番目の単語「はいって」、及び３番目の単語「もっと」の文字種別がすべて“１”であるため、ｚ＝ｚ−１＝２に決定される（ステップ６０２）。他のエントリには「そうはいってもっとむこう」と同じ文字列が存在しないため、ｚ＝２に確定する。
【００８２】
ＩＤ“５”の「そうはいはいと人」が処理対象の文字列である場合、ｎ＝４であり、４番目の単語「人」が句読点ではないため、ｚ＝ｎ−１＝３に設定される。次に、４番目の単語「人」の文字種別が“０”であり、３番目の単語「と」が助詞であるため、ｚ＝３に決定される（ステップ６０２）。他のエントリには「そうはいはいと人」と同じ文字列が存在しないため、ｚ＝３に確定する。
【００８３】
図１及び図５のテキスト分割装置１０１の構成は一例に過ぎず、テキスト分割装置１０１の用途や条件に応じて一部の構成要素を省略又は変更してもよい。例えば、図５のテキスト分割装置１０１において、テキスト分割処理が外部の装置により行われる場合は、分割部１１２を省略することができる。
【００８４】
図２、図４、及び図６のフローチャートは一例に過ぎず、テキスト分割装置１０１の構成や条件に応じて一部の処理を省略又は変更してもよい。例えば、図４のテキスト分割処理のステップ４０１において、必ずしも最長一致検索を行う必要はなく、前方一致検索により一致した登録文字列のうちいずれか１つの登録文字列を採用してもよい。
【００８５】
図６の区分単語数登録処理のステップ６０１及びステップ６０２において、区分単語数決定部５０１は、文字列に含まれる単語の文字種別として、ひらがな又はカタカナ以外に、漢字、アルファベット、数字、記号等の種別を用いてもよい。また、区分単語数決定部５０１は、文字列内における所定の品詞として、助詞及び助動詞以外に、名詞、動詞、形容詞、副詞等の品詞を用いてもよい。区分単語数決定部５０１は、文字列の一部又は全部に含まれる文字の個数、文字列に含まれる単語の文字種別、又は文字列内における所定の品詞の位置のうち１つの属性のみに基づいて、区分単語数を決定してもよい。
【００８６】
図６の区分単語数登録処理において、文字列の属性に基づいて区分単語数を決定しない場合は、ステップ６０１及びステップ６０２の処理を省略することができる。複数の同じ文字列に共通する単語の個数を区分単語数として登録しない場合は、ステップ６０３及びステップ６０４の処理を省略することができる。
【００８７】
区分単語数決定部５０１は、図６の区分単語数登録処理を行う代わりに、ユーザ又はオペレータから指示された区分単語数を文字列分割情報１２１に登録してもよい。
【００８８】
図３の文字列分割情報１２１は一例に過ぎず、テキスト分割装置１０１の構成や条件に応じて別の文字列分割情報１２１を用いてもよい。例えば、テキスト分割装置１０１が区分単語数登録処理を行わない場合は、図３の文字列長と文字種別と助詞及び助動詞の位置を省略することができる。文字列分割情報１２１に登録される文字列は、必ずしもｎグラムの形式でなくてもよく、単語間の境界位置を示す別の形式であってもよい。日本語以外の言語のテキストを分割する場合は、その言語の文字列が文字列分割情報１２１に登録される。
【００８９】
図１及び図５のテキスト分割装置１０１は、例えば、図７に示すような情報処理装置（コンピュータ）を用いて実現可能である。
【００９０】
図７の情報処理装置は、Central Processing Unit（ＣＰＵ）７０１、メモリ７０２、入力装置７０３、出力装置７０４、補助記憶装置７０５、媒体駆動装置７０６、及びネットワーク接続装置７０７を含む。これらの構成要素はバス７０８により互いに接続されている。
【００９１】
メモリ７０２は、例えば、Read Only Memory（ＲＯＭ）、Random Access Memory（ＲＡＭ）、フラッシュメモリ等の半導体メモリである。メモリ７０２は、テキスト分割処理又は区分単語数登録処理のためのプログラム及びデータを格納する。メモリ７０２は、図１及び図５の記憶部１１１として用いることができる。
【００９２】
ＣＰＵ７０１（プロセッサ）は、例えば、メモリ７０２を利用してプログラムを実行することにより、図１及び図５の分割部１１２及び区分単語数決定部５０１として動作する。
【００９３】
入力装置７０３は、例えば、キーボード、ポインティングデバイス等であり、ユーザ又はオペレータからの指示や情報の入力に用いられる。出力装置７０４は、例えば、表示装置、プリンタ、スピーカ等であり、ユーザ又はオペレータへの問い合わせや処理結果の出力に用いられる。処理結果は、テキストの分割結果であってもよい。
【００９４】
補助記憶装置７０５は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。補助記憶装置７０５は、ハードディスクドライブ又はフラッシュメモリであってもよい。情報処理装置は、補助記憶装置７０５にプログラム及びデータを格納しておき、それらをメモリ７０２にロードして使用することができる。補助記憶装置７０５は、図１及び図５の記憶部１１１として用いることができる。
【００９５】
媒体駆動装置７０６は、可搬型記録媒体７０９を駆動し、その記録内容にアクセスする。可搬型記録媒体７０９は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体７０９は、Compact Disk Read Only Memory（ＣＤ−ＲＯＭ）、Digital Versatile Disk（ＤＶＤ）、Universal Serial Bus（ＵＳＢ）メモリ等であってもよい。ユーザ又はオペレータは、この可搬型記録媒体７０９にプログラム及びデータを格納しておき、それらをメモリ７０２にロードして使用することができる。
【００９６】
このように、プログラム及びデータを格納するコンピュータ読み取り可能な記録媒体は、メモリ７０２、補助記憶装置７０５、及び可搬型記録媒体７０９のような、物理的な（非一時的な）記録媒体である。
【００９７】
ネットワーク接続装置７０７は、Local Area Network（ＬＡＮ）、インターネット等の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェースである。情報処理装置は、ネットワーク接続装置７０７を介して外部の装置からプログラム及びデータを受信し、それらをメモリ７０２にロードして使用することができる。
【００９８】
情報処理装置は、ネットワーク接続装置７０７を介して、ユーザ端末から指示や情報を受信し、テキスト分割処理又は区分単語数登録処理を行って、処理結果をユーザ端末へ送信することもできる。
【００９９】
なお、情報処理装置が図７のすべての構成要素を含む必要はなく、用途や条件に応じて一部の構成要素を省略することも可能である。例えば、ユーザ又はオペレータからの指示や情報の入力を行わない場合は、入力装置７０３を省略してもよく、ユーザ又はオペレータへの問い合わせや処理結果の出力を行わない場合は、出力装置７０４を省略してもよい。情報処理装置が可搬型記録媒体７０９又は通信ネットワークにアクセスしない場合は、媒体駆動装置７０６又はネットワーク接続装置７０７を省略してもよい。
【０１００】
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
【０１０１】
図１乃至図７を参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
（付記１）
複数の単語に分割された登録文字列と区分単語数とを対応付けた文字列分割情報から、テキストに含まれる第１の文字列を検索し、
前記第１の文字列と前記登録文字列とが対応する場合、前記第１の文字列のうち、前記登録文字列に対応付けられた前記区分単語数の区分単語を含む第２の文字列を、前記区分単語数の前記区分単語に分割する、
処理をコンピュータに実行させるテキスト分割プログラム。
（付記２）
前記区分単語数は、前記登録文字列の属性に基づいて決定されることを特徴とする付記１記載のテキスト分割プログラム。
（付記３）
前記登録文字列の属性は、前記登録文字列の一部又は全部に含まれる文字の個数、前記登録文字列に含まれる前記複数の単語の文字種別、又は前記登録文字列内における所定の品詞の位置のうち少なくとも１つを含むことを特徴とする付記２記載のテキスト分割プログラム。
（付記４）
前記文字列分割情報は、前記登録文字列と同じ文字列であって前記登録文字列とは異なる分割位置で複数の単語に分割された文字列を含み、前記区分単語数は、前記登録文字列と、前記異なる分割位置で分割された前記文字列とに共通する単語の個数に基づいて決定されることを特徴とする付記１乃至３のいずれか１項に記載のテキスト分割プログラム。
（付記５）
前記コンピュータは、最長一致検索により前記文字列分割情報から前記第１の文字列を検索することを特徴とする付記１乃至４のいずれか１項に記載のテキスト分割プログラム。
（付記６）
複数の単語に分割された登録文字列と区分単語数とを対応付けた文字列分割情報を記憶する記憶部と、
前記文字列分割情報からテキストに含まれる第１の文字列を検索し、前記第１の文字列と前記登録文字列とが対応する場合、前記第１の文字列のうち、前記登録文字列に対応付けられた前記区分単語数の単語を含む第２の文字列を、前記区分単語数の前記単語に分割する分割部と、
を備えることを特徴とするテキスト分割装置。
（付記７）
前記区分単語数は、前記登録文字列の属性に基づいて決定されることを特徴とする付記６記載のテキスト分割装置。
（付記８）
前記登録文字列の属性は、前記登録文字列の一部又は全部に含まれる文字の個数、前記登録文字列に含まれる前記複数の単語の文字種別、又は前記登録文字列内における所定の品詞の位置のうち少なくとも１つを含むことを特徴とする付記７記載のテキスト分割装置。
（付記９）
前記文字列分割情報は、前記登録文字列と同じ文字列であって前記登録文字列とは異なる分割位置で複数の単語に分割された文字列を含み、前記区分単語数は、前記登録文字列と、前記異なる分割位置で分割された前記文字列とに共通する単語の個数に基づいて決定されることを特徴とする付記６乃至８のいずれか１項に記載のテキスト分割装置。
（付記１０）
前記分割部は、最長一致検索により前記文字列分割情報から前記第１の文字列を検索することを特徴とする付記６乃至９のいずれか１項に記載のテキスト分割装置。
（付記１１）
コンピュータが、
複数の単語に分割された登録文字列と区分単語数とを対応付けた文字列分割情報から、テキストに含まれる第１の文字列を検索し、
前記第１の文字列と前記登録文字列とが対応する場合、前記第１の文字列のうち、前記登録文字列に対応付けられた前記区分単語数の単語を含む第２の文字列を、前記区分単語数の前記単語に分割する、
ことを特徴とするテキスト分割方法。
（付記１２）
前記区分単語数は、前記登録文字列の属性に基づいて決定されることを特徴とする付記１１記載のテキスト分割方法。
（付記１３）
前記登録文字列の属性は、前記登録文字列の一部又は全部に含まれる文字の個数、前記登録文字列に含まれる前記複数の単語の文字種別、又は前記登録文字列内における所定の品詞の位置のうち少なくとも１つを含むことを特徴とする付記１２記載のテキスト分割方法。
（付記１４）
前記文字列分割情報は、前記登録文字列と同じ文字列であって前記登録文字列とは異なる分割位置で複数の単語に分割された文字列を含み、前記区分単語数は、前記登録文字列と、前記異なる分割位置で分割された前記文字列とに共通する単語の個数に基づいて決定されることを特徴とする付記１１乃至１３のいずれか１項に記載のテキスト分割方法。
（付記１５）
前記コンピュータは、最長一致検索により前記文字列分割情報から前記第１の文字列を検索することを特徴とする付記１１乃至１４のいずれか１項に記載のテキスト分割方法。
【符号の説明】
【０１０２】
１０１  テキスト分割装置
１１１  記憶部
１１２  分割部
１２１  文字列分割情報
５０１  区分単語数決定部
７０１  ＣＰＵ
７０２  メモリ
７０３  入力装置
７０４  出力装置
７０５  補助記憶装置
７０６  媒体駆動装置
７０７  ネットワーク接続装置
７０８  バス
７０９  可搬型記録媒体
【図１】
2017004127.tif 000003
【図２】
2017004127.tif 000004
【図３】
2017004127.tif 000005
【図４】
2017004127.tif 000006
【図５】
2017004127.tif 000007
【図６】
2017004127.tif 000008
【図７】
2017004127.tif 000009