(57)【要約】【課題】単語抽出対象の文書集合における低頻度語に関しても、偶然性に依らず多種類の単語を抽出できるようにする。【解決手段】部分文字列統計量計算部３３０は作業領域６００から部分文字列に関するデータを読み出して、統計量を計算し、作業領域６００へ格納する。単語候補統計量計算部３４０は作業領域６００から単語候補および部分文字列の統計量を読み出すと共に、別文書統計量ＤＢ７００から単語抽出対象文書とは別の文書集合から事前に計算しておいた部分文字列の統計量を読み出し、両文書集合の部分文字列の統計量を足し合わせて単語候補の統計量を計算し、作業領域６００へ格納する。単語候補選別部３５０は作業領域６００から単語候補の統計量データを読み出し、各単語候補を統計量に基づいて単語候補を選別して単語と定め、その定めた単語のデータを作業領域６００へ格納する。【選択図】    図１
2004272639.tif 000002
【特許請求の範囲】
【請求項１】
文書集合から単語を抽出する方法であって、
単語抽出対象である第１の文書集合から単語候補データを作成する単語候補データ作成ステップと、
第１の文書集合から統計量である第１の統計量を計算する部分文字列統計量計算ステップと、
第１の統計量と、第１の文書集合とは別の第２の文書集合から事前に求めた統計量である第２の統計量を用いて、単語候補の統計量を計算する単語候補統計量計算ステップと、
単語候補の統計量を基に単語候補を絞り込む単語候補選別ステップを有する単語抽出方法。
【請求項２】
文書集合から単語を抽出する装置であって、
単語抽出対象である第１の文書集合から、単語候補の抽出および統計量の計算に用いる部分文字列のデータを作成する部分文字列データ作成手段と、
第１の文書集合の部分文字列データから単語候補データを作成する単語候補データ作成手段と、
第１の文書集合の部分文字列データから第１の統計量を計算する部分文字列統計量計算手段と、
第１の統計量と、別文書統計量データベースに納められている第１の文書集合とは別の第２の文書集合から事前に求めた統計量である第２の統計量を用いて、単語候補の統計量を計算する単語候補統計量計算手段と、
単語候補の統計量を基に単語候補を絞り込む単語候補選別手段を有する単語抽出装置。
【請求項３】
請求項１に記載の単語抽出方法をコンピュータに実行させるための単語抽出プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、文書集合における文字列の統計量を用いて、文書集合にある単語を抽出する方法および装置に関するものである。
【０００２】
【従来の技術】
近年、ＣＤ−ＲＯＭやインターネットなどから電子的文書を容易に入手できるようになった。そこで、利用者の要求を満たす文書集合から単語を抽出すること、例えば、ある一定の期間に作成された文書集合から単語を抽出することなど、が考えられる。
【０００３】
文書集合から単語を抽出する技術としては、従来、例えば、単語抽出対象の文書集合から、その文書集合における文字列の出現頻度や文字列を含む文書数（文書頻度）を計算し、計算された文字列の出現頻度や文書頻度から統計量を計算して、その統計量を基に単語抽出対象の文書集合中の単語を抽出するものが知られている（例えば、非特許文献１参照）。
【０００４】
【非特許文献１】
Ｍｉｋｉｏ  Ｙａｍａｍｏｔｏ，他１名，「Ｕｓｉｎｇ  Ｓｕｆｆｉｘ  Ａｒｒａｙｓ  ｔｏ  Ｃｏｍｐｕｔｅ  Ｔｅｒｍ  Ｆｒｅｑｕｅｎｃｙ  ａｎｄ  Ｄｏｃｕｍｅｎｔ  Ｆｒｅｑｕｅｎｃｙ  ｆｏｒ  Ａｌｌ  Ｓｕｂｓｔｒｉｎｇｓ  ｉｎ  Ｃｏｒｐｕｓ」，Ｃｏｍｐｕｔａｔｉｏｎａｌ  Ｌｉｎｇｕｉｓｔｉｃｓ，  Ｖｏｌ２７，  Ｎｏ．１，  ２００１，  ｐ．１−３０
【０００５】
【発明が解決しようとする課題】
しかしながら、上述した従来技術によって求められた低頻度の単語は偶然に低頻度となった可能性が高いので、例えば、一定頻度以上の単語に限定するなどして低頻度の単語を抽出対象外としていた。
【０００６】
一方、ＣＤ−ＲＯＭやインターネットなどにある単語抽出対象とは別の文書集合の中には、従来技術では抽出対象外となってしまう低頻度語がある程度存在する可能性がある。
【０００７】
本発明の目的は、単語抽出対象の文書集合における低頻度語に関しても、偶然性に依らず多種類の単語を抽出できる単語抽出方法および装置を提供することにある。
【０００８】
【課題を解決するための手段】
上記目的を達成するために、本発明の単語抽出装置は、
単語抽出対象である第１の文書集合から、単語候補の抽出や統計量の計算に用いる部分文字列のデータを作成する部分文字列データ作成手段と、
第１の文書集合の部分文字列データから単語候補データを作成する単語候補データ作成手段と、
第１の文書集合の部分文字列データから第１の統計量を計算する部分文字列統計量計算手段と、
第１の統計量および別文書統計量データベースに納められている第１の文書集合とは別の第２の文書集合から事前に求めた統計量である第２の統計量を用いて、単語候補の統計量を計算する単語候補統計量計算手段と、
単語候補の統計量などを基に単語候補を絞り込む単語候補選別手段を有する。
【０００９】
本発明は、ＣＤ−ＲＯＭやハードディスクなどの記録媒体、もしくは、インターネットなどのネットワーク上の記録媒体にある文書を収集して、単語抽出対象の文書集合（第１の文書集合）のデータを作成し、また、単語抽出対象とは別の文書集合（第２の文書集合）から計算した統計量（第２の統計量）を事前に準備しておき、第１の文書集合から単語候補を抽出し、第１の文書集合から計算した統計量（第１の統計量）と第２の統計量を用いて単語候補に関する統計量を計算し、その単語候補の統計量を基に単語を抽出することで、単語抽出対象の文書集合における低頻度語に関しても、偶然性に依らず多種類の単語を抽出できる。
【００１０】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して説明する。
【００１１】
図１は本発明の一実施形態の単語抽出装置のブロック図、図２はその処理手順を示すフローチャートである。
【００１２】
本実施形態の単語抽出装置は文書収集・加工部１００と文書集合データ作成部２００と文書集合単語抽出部３００と単語表示部４００と文書ＤＢ５００と作業領域６００と別文書統計量ＤＢ７００から構成される。各処理部１００、２００、３００、４００はＣＰＵ等の制御手段で実行される。文書ＤＢ５００、作業領域６００、別文書統計量ＤＢ７００はいずれも記憶装置に記憶されている。
【００１３】
文書収集・加工部１００はＣＤ−ＲＯＭやハードディスクなどの記録媒体もしくは、インターネットなどのネットワーク上の記録媒体にある文書を収集し、収集した文書中に現れる不要箇所を削除するなどの加工を行い、加工した文書を文書ＤＢ（データベース）５００へ格納する（ステップ１０００）。文書集合データ作成部２００は文書ＤＢ５００から複数の加工文書を読み出して、単語抽出対象の文書集合のデータを作成し、作業領域６００へ格納する（ステップ２０００）。文書集合単語抽出部３００は作業領域６００から単語抽出対象の文書集合のデータを読み出して、単語候補を抽出し、別文書統計量ＤＢ（データベース）７００も用いて単語候補に対する統計量を計算し、その統計量を基に単語候補を絞り込み、単語を抽出して作業領域６００へ格納する（ステップ３０００）。単語表示部４００は作業領域６００から最終的に抽出した単語を読み出して、単語をディスプレイ等に可視表示する（ステップ４０００）。
【００１４】
文書集合語抽出部３００は部分文字列データ作成部３１０と単語候補データ作成部３２０と部分文字列統計量計算部３３０と単語候補統計量計算部３４０と単語候補選別部３５０から構成される。
【００１５】
部分文字列データ作成部３１０は作業領域６００から単語抽出対象の文書集合のデータを読み出して、文書集合の中の任意の部分文字列に関するデータを作成し、作業領域６００へ格納する。単語候補データ作成部３２０は作業領域６００から部分文字列に関するデータを読み出して、任意の部分文字列から単語候補を抽出してその単語候補データを作成し、作業領域６００へ格納する。部分文字列統計量計算部３３０は作業領域６００から部分文字列に関するデータを読み出して、部分文字列の出現頻度や文書頻度といった統計量を計算し、作業領域６００へ格納する。単語候補統計量計算部３４０は作業領域６００から単語候補、および部分文字列の統計量を読み出すと共に、別文書統計量ＤＢ７００から単語抽出対象文書とは別の文書集合から事前に計算しておいた部分文字列の統計量を読み出し、両文書集合の部分文字列の統計量を足し合わせて単語候補の統計量を計算し、作業領域６００へ格納する。単語候補選別部３５０は作業領域６００から単語候補の統計量データを読み出し、各単語候補を統計量に基づいて単語候補を選別して単語と定め、その定めた単語のデータを作業領域６００へ格納する。
【００１６】
図３は図１に示した部分文字列データ作成部３１０の構成を示すブロック図である。部分文字列データ作成部３１０は文書集合データ加工部３１１と文書先頭位置調査部３１２と部分文字列作成部３１３と先頭共通文字数調査部３１４から構成される。
【００１７】
文書集合データ加工部３１１は作業領域６００から単語抽出の対象となる複数の文書を１つに連結したデータである対象文書集合データ６０１を読み出し、文字列置換ルール３１５を用いて、対象文書集合データ６０１における文字列の置換処理などの加工を行って、加工済み対象文書集合データ６０２を作業領域６００へ格納する。文書先頭位置調査部３１２は作業領域６００から加工済み対象文書集合データ６０２を読み出し、各文書の先頭文字の位置番号を記載した文書先頭位置データ６０３を作業領域６００へ格納する。部分文字列作成部３１３は、作業領域６００から加工済み対象文書集合データ６０２を読み出し、加工済み対象文書集合データ６０２中の任意の位置から始まる部分文字列について、先頭文字の位置番号を加工済み対象文書集合データ６０２の先頭から順に格納した配列（ｓｕｆｆｉｘ  ａｒｒａｙ）を作り、その配列に格納された位置番号から始まる部分文字列（実体は加工済み対象文書集合データ６０２にある）に対して文字コードを基に並び替え、その並び替えに合わせて配列に格納された位置番号も並び替えたｓｕｆｆｉｘ  ａｒｒａｙ６０４を作業領域６００へ格納する。先頭共通文字数調査部３１４は作業領域６００から加工済み対象文書集合データ６０２とｓｕｆｆｉｘ  ａｒｒａｙ６０４を読み出し、ｓｕｆｆｉｘ  ａｒｒａｙ６０４に格納された位置番号から始まる部分文字列（実体は加工済み対象文書集合データ６０２にある）について、ｓｕｆｆｉｘ  ａｒｒａｙ６０４の先頭から順に、現在見ている文字列と次に見る文字列の先頭の共通文字列の文字数を調べ、その共通する文字数を現在見ているｓｕｆｆｉｘ  ａｒｒａｙ６０４の位置番号と対応付けて別の配列へ格納した先頭共通文字数データ６０５を作業領域６００へ格納する。
【００１８】
図４は、図１に示した単語候補データ作成部３２０の構成を示すブロック図である。単語候補データ作成部３２０は抽出文字数調査部３２１と入れ子文字列処理部３２２と単語候補抽出部３２３と単語候補選別部３２４から構成される。
【００１９】
抽出文字数調査部３２１は、作業領域６００から加工済み対象文書集合データ６０２とｓｕｆｆｉｘ  ａｒｒａｙ６０４と先頭共通文字数データ６０５を読み出し、ｓｕｆｆｉｘ  ａｒｒａｙ６０４の先頭から順に調べ、現在見ている位置番号から始まる部分文字列（実体は加工済み対象文書集合データ６０２にある）について、先頭から最長一致する部分文字列が他に出現していれば、その一致文字数をこの部分文字列の抽出文字数とする抽出文字数データ６０６を作業領域６００へ格納する。入れ子文字列処理部３２２は、作業領域６００からｓｕｆｆｉｘ  ａｒｒａｙ６０４と抽出文字数データ６０６を読み出し、ｓｕｆｆｉｘ  ａｒｒａｙ６０４の位置番号の値で並び替え、並び替えたｓｕｆｆｉｘ  ａｒｒａｙにおける位置番号と位置番号に対応する抽出文字数の関係から、その位置番号から始まり、長さが抽出文字数である部分文字列について、同様に求めた他の部分文字列の入れ子となれば除外し、その除外にあわせてｓｕｆｆｉｘ  ａｒｒａｙ６０４を新ｓｕｆｆｉｘ  ａｒｒａｙ６０７へ更新し、また、抽出文字数データ６０６を新抽出文字数データ６０８へ更新して作業領域６００へ格納する。単語候補抽出部３２３は、作業領域６００から加工済み対象文書集合データ６０２と新ｓｕｆｆｉｘ  ａｒｒａｙ６０７と新抽出文字数データ６０８を読み出し、各抽出文字数の値が大きい順に抽出文字数に対応する新ｓｕｆｆｉｘ  ａｒｒａｙ６０７の位置番号を並び替えて、位置番号から始まり、長さが抽出文字数である部分文字列（実体は加工済み対象文書集合データ６０２にある）を単語候補とした単語候補データ６０９を作業領域６００へ格納する。単語候補選別部３２４は、作業領域６００から単語候補データ６０９を読み出し、単語候補の形態素解析結果に対して形態素解析結果絞込みパターン３２５を用いたり、単語候補に対して文字列絞込みパターン３２６を用いたりして、単語候補を選別した選別単語候補データ６１０を作業領域６００へ格納する。
【００２０】
図５は、図１に示した部分文字列統計量計算部３３０と作業領域６００の関係を示す図である。部分文字列統計量計算部３３０は、作業領域６００から加工済み対象文書集合データ６０２と文書先頭位置データ６０３とｓｕｆｆｉｘ  ａｒｒａｙ６０４と先頭共通文字数データ６０５を読み出し、ｓｕｆｆｉｘ  ａｒｒａｙ６０４の位置番号から始まる部分文字列（実体は加工済み対象文書集合データにある）について、ｓｕｆｆｉｘ  ａｒｒａｙ６０４の位置番号から始まる各部分文字列間の関係と先頭共通文字数データ６０５によって部分文字列の出現頻度を計算し、さらに、加工済み対象文書集合データ６０２における部分文字列の出現位置と、文書先頭位置データ６０３によって、加工済み対象文書集合データ６０２における部分文字列を含む文書数（文書頻度）を計算し、出現頻度・文書頻度データ６１１を作業領域６００へ格納する。
【００２１】
図６は、図１に示した単語候補統計量計算部３４０と作業領域６００、別文書統計量ＤＢ７００との関係を示す図である。単語候補統計量計算部３４０は、作業領域６００から文書先頭位置データ６０３と選別単語候補データ６１０と出現頻度・文書頻度データ６１１を読み出し、また、別文書統計量ＤＢ７００から別文書文書先頭位置データ７０１と加工済み別文書集合データ７０２と別文書ｓｕｆｆｉｘ  ａｒｒａｙ７０３と別文書出現頻度・文書頻度データ７０４を読み出し、選別単語候補データ６１０の単語候補の出現頻度と文書頻度を、出現頻度・文書頻度データ６１１および別文書出現頻度・文書頻度データ７０４の出現頻度と文書頻度をそれぞれ足し合わせたものとする。なお、別文書出現頻度・文書頻度データ７０４は、出現頻度が２以上のものしかないため、さらに別文書で出現頻度および文書頻度が１のものも考慮する場合は、別文書ｓｕｆｆｉｘ  ａｒｒａｙ７０３の位置番号から始まる部分文字列（実体は加工済み別文書集合データ７０２にある）を検索し、単語候補と同じ文字列で始まる部分文字列が存在すれば、その単語候補の出現頻度および文書頻度を１とする。次に、文書先頭位置データ６０３と別文書文書先頭位置データ７０１から総文書数を計算する。そして、単語候補の出現頻度と文書頻度と総文書数から単語候補の統計量を計算する。統計量の計算方法としては、単語として順序付けできるものであれば特に限定しない。最終的に、単語候補とそれらの統計量からなる単語候補統計量データ６１２を作業領域６００へ格納する。
【００２２】
図７は、図１に示した単語候補選別部３５０と既知語辞書３５１、作業領域６００との関係を示す図である。単語候補選別部３５０は、作業領域６００から単語候補統計量データ６１２を読み出し、統計量を基に単語候補を限定する。なお、最近の対象文書集合と過去の別文書集合を用いて最近の話題語を抽出したい場合は、統計量を基に限定された単語候補に対して、対象文書集合および別文書集合での各出現確率を計算し、対象文書集合の出現確率の方が別文書集合の出現確率より高いものに限定することによって可能となる。例えば、対象文書集合中の出現確率は、出現頻度・文書頻度データ６１１から求めた対象文書集合中の出現頻度と、加工済み対象文書集合データ６０２から求めた対象文書集合中の任意の文字列総数の割合を計算する。別文書集合中の出現確率は、別文書出現頻度・文書頻度データ７０４から求めた別文書集合中の出現頻度と、加工済み別文書集合データ７０２から求めた別文書集合中の任意の文字列総数の割合を計算する。さらに、必要であれば既知語辞書３５１に未記載な単語に限定する。選別した単語候補を単語と定めた選別単語候補データ６１３を作業領域６００へ格納する。
【００２３】
以下、本実施形態の具体例を説明する。なお、この例では対象を日本語として説明するが、言語はこれに限定されない。
【００２４】
まず、図１の文書収集・加工部１００では、ＣＤ−ＲＯＭやハードディスクなどの記録媒体もしくは、インターネットなどのネットワーク上の記録媒体にある文書のうち、あらかじめ定められた文書およびそれを起点としてあらかじめ定められた方法によって得ることが可能な文書を収集し、文書ＤＢ５００へ格納する。例えば、図８（Ａ）の文書がインターネット上のＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）“ｈｔｔｐ：／／ｗｗｗ．ｘｘｘ／０．ｈｔｍｌ”にあり、文書収集・加工部１００でそのＵＲＬの文書を収集するように定めておいたならば、その文書を収集し、同時に、図８（Ａ）に関する付随データとして図８（Ｂ）を作成し、文書ＤＢ５００へ格納する。付随データにはＵＲＬ、ファイル名、更新日時、分野が格納されているが、他にあればこれに限定されない。なお、上記の収集に関する文書や方法は、文書収集・加工部１００で利用可能な設定データによってあらかじめ定めておく。例えば、あらかじめ定められた文書とは、ＵＲＬのような文書の参照情報などであるが、参照可能であればＵＲＬに限定されない。また、あらかじめ定められた文書を起点としてあらかじめ定められた方法で得るとは、定められた文書内に他の文書の参照情報があれば、その情報に基づいて参照可能な文書も得ることである。なお、参照可能な他の文書の情報は連鎖的に続く場合があるので、その連鎖数、収集する文書数、参照場所などを設定データに定めて制限することも可能である。その他のあらかじめ定められた方法としては、収集開始時刻や収集間隔、同じ参照場所にあっても更新日時などが異なれば、違う文書として扱うなどの条件に基づいて処理することである。さらに、設定データを文書の種類（分野）ごとに分けておけば、図８（Ｂ）に分野の情報を記録することも可能である。なお、分野情報の記録は、上記の方法の他に、図８（Ａ）もしくは次の処理で作成された図８（Ｃ）から分野を推定する手段によって求めてもよい。
【００２５】
次に、図８（Ａ）についてタグなどを除くといった加工を施した図８（Ｃ）を作成し、文書ＤＢ５００へ格納する。同時に、図８（Ｂ）に図８（Ｃ）が格納されている場所（加工ファイル名）を追加し、文書ＤＢ５００の図８（Ｂ）から図８（Ｄ）へ更新する。同様に、図８（Ｅ）の文書を収集し、図８（Ｅ）に関する付随データ（図８（Ｆ））を作成し、図８（Ｅ）を加工して図８（Ｇ）の加工文書を作成し、図８（Ｅ）に関する付随データ（図８（Ｆ））から図８（Ｈ）へ更新して文書ＤＢ５００へ格納する。同様な処理を収集した全文書に対して行う。
【００２６】
次に、図１の文書集合データ作成部２００では、文書ＤＢ５００から複数の文書をまとめて文書集合のデータを作成する。例えば、更新日時を条件にして、今日（２００３年１月２日とする）から過去１日の文書を単語抽出対象とする場合、文書ＤＢ５００から更新日時が２００３年１月１日および２日の文書を集めて、図９（Ａ）の文書集合のデータを作成する。図９（Ａ）は、各文書を１行で表したデータを連結したものであり、“￥ｎ”は改行文字を表している。なお、文書集合データ作成に用いる文書の条件はあらかじめ文書集合データ作成部２００で設定されている。その条件は、更新日時だけでなく、分野や、更新日時と分野の組合せなどでもよい。
【００２７】
次に、図１の文書集合単語抽出部３００について説明する。以下、部分文字列データ作成部３１０について図３に基づいて説明する。まず、図３の文書集合データ加工部３１１では、作業領域６００から対象文書集合データ６０１（図９（Ａ））を読み出し、文字列置換ルール３１５によって、以後の処理で抽出語に含めない文字をあらかじめ定めた文字に統一させるなどの加工をして、加工済み対象文書集合データ６０２（図９（Ｂ））を作成し、作業領域６００へ格納する。例えば、図９（Ｃ）の文字列置換ルールによって、図９（Ａ）の“、”（読点）や“。”（句点）を“＿”（アンダーバー）に置換して図９（Ｂ）とする。なお、図９（Ｂ）は以後の説明のために便宜的に各文字の上部に、先頭からの位置番号を付与している。
【００２８】
次に、図３の文書先頭位置調査部３１２では、作業領域６００から加工済み対象文書集合データ６０２（図９（Ｂ））を読み出し、加工済み文書集合中の文書の先頭位置を格納した文書先頭位置データ６０３（図１０（Ａ））を作成し、作業領域６００へ格納する。例えば、図１０（Ａ）の“０”は、図９（Ｂ）における最初の文書の先頭位置番号であり、“４３”は、２番目の文書の先頭位置番号を表す。
【００２９】
次に、図３の部分文字列作成部３１３では、作業領域６００から加工済み対象文書集合データ６０２（図９（Ｂ））を読み出し、文書集合中の任意の部分文字列について、先頭文字の位置番号を文書集合の先頭から順に配列に格納したｓｕｆｆｉｘ  ａｒｒａｙ６０４（図１０（Ｂ））を作成する。この際、先頭文字が空白や改行やアンダーバーであった場合は対象外としている。例えば、図１０（Ｂ）では、空白や改行やアンダーバーを部分文字列の対象外としているため、図９（Ｂ）における文字の位置番号“１４”のアンダーバーや位置番号“４２”の改行から始まる位置番号は載っていない。その後、図１０（Ｂ）の位置番号に対応する部分文字列（実体は図９（Ｂ）にある）を文字コード順に並び替えて、その並び替えに合わせて図１０（Ｂ）の位置番号も並び替えたｓｕｆｆｉｘ  ａｒｒａｙ６０４（図１０（Ｃ））を作業領域６００に格納する。例えば、図１０（Ｃ）では、位置番号“１９”と位置番号“４３”から始まる文字列の先頭は共に“行政改革”のように先頭文字列が共通するものがあれば隣接している。なお、図１０（Ｂ）には記されている位置番号が図１０（Ｃ）には記されていないが、図１０（Ｂ）の説明のために便宜的に記されていただけであり、処理によって削除されるということではない。
【００３０】
次に、図３の先頭共通文字数調査部３１４では、作業領域から加工済み対象文書集合データ６０２（図９（Ｂ））とｓｕｆｆｉｘ  ａｒｒａｙ６０４（図１０（Ｃ））を読み出し、図１０（Ｃ）の先頭から順に位置番号に対応する部分文字列（実体は図９（Ｂ）にある）を調べ、現在見ている部分文字列と次に見る部分文字列を比べて、先頭が共通な文字列の文字数を調べて、先頭共通文字数データ６０５（図１０（Ｄ））として作業領域６００へ格納する。例えば、現在、位置番号“１９”から始まる部分文字列を見ている場合は、次に見る位置番号“４３”から始まる部分文字列と先頭が共通である文字列“行政改革”の文字数は４文字となる。なお、文字列の途中に空白や改行やアンダーバーが含まれないものとしている。この結果、図１０（Ｄ）の位置番号“１９”に対応して“４”が格納される。以上で部分文字列データ作成部３１０の処理が終了する。
【００３１】
次に、図１の単語候補データ作成部３２０について図４に基づいて説明する。まず、図４の抽出文字数調査部３２１では、作業領域６００から加工済み対象文書集合データ６０２（図９（Ｂ））、ｓｕｆｆｉｘ  ａｒｒａｙ６０４（図１０（Ｃ））、先頭共通文字数データ６０５（図１０（Ｄ））を読み出し、図１０（Ｃ）の先頭から順に調べ、現在見ている位置番号に対応する部分文字列（実体は図９（Ｂ）にある）のうち、先頭から最長一致する部分文字列が他にも現れれば、その一致文字数をその部分文字列の抽出文字数とし、抽出文字数データ６０６（図１１）を作業領域６００へ格納する。具体的には、現在見ている位置番号から始まる部分文字列（実体は図９（Ｂ）にある）に対応する先頭共通文字数と１つ前の位置番号から始まる部分文字列（実体は図９（Ｂ）にある）に対応する先頭共通文字数を比べ、１つ前の先頭共通文字数の方が大きければ、その値を現在見ている部分文字列の抽出文字数とし、そうでなければ、現在見ている先頭共通文字数をそのまま抽出文字数とする。例えば、図１０（Ｄ）において、現在見ている位置番号が“４３”とすると、１つ前の先頭共通文字数が“４”で現在の先頭共通文字数が“０”なので、現在見ている位置番号の部分文字列の抽出文字数は“４”となる。
【００３２】
次に、図４の入れ子文字列処理部３２２では、作業領域６００からｓｕｆｆｉｘ  ａｒｒａｙ６０４（図１０（Ｃ））、抽出文字数データ６０６（図１１）を読み出し、ｓｕｆｆｉｘ  ａｒｒａｙ６０４（図１０（Ｃ））を位置番号の順に並び替えて（図１０（Ｂ））、図１０（Ｂ）の先頭から順番に対応する抽出文字数を調べ、現在の位置番号と次の位置番号が連続した場合に、現在の位置番号に対応する抽出文字数が、次の位置番号に対応する抽出文字数より大きい場合は、次の位置番号から始まる部分文字列は現在の位置番号から始まる部分文字列の入れ子になるので、それを対象外とするための印付けした図１２（Ａ）を作成する。例えば、図１２（Ａ）において、位置番号“１９”では抽出文字数は“４”、位置番号は“２０”では抽出文字数は“３”であるので、位置番号“２０”から始まる部分文字列は位置番号“１９”から始まる部分文字列の入れ子となり、図１２（Ａ）の位置番号“２０”には対象外を表す“０”が入る。その後、図１２（Ａ）から対象となるｓｕｆｆｉｘ  ａｒｒａｙの位置番号およびそれに対応する抽出文字数データを新たに作成し、ｓｕｆｆｉｘ  ａｒｒａｙの位置番号から始まる部分文字列を文字コード順に並べ替えた新ｓｕｆｆｉｘ  ａｒｒａｙ６０７（図１２（Ｂ））と、新ｓｕｆｆｉｘ  ａｒｒａｙ６０７の位置番号に対応する抽出文字数のデータである新抽出文字数データ６０８（図１２（Ｃ））が作業領域６００へ格納される。
【００３３】
次に、図４の単語候補抽出部３２３では、作業領域６００から加工済み対象文書集合データ６０２（図９（Ｂ））、新ｓｕｆｆｉｘ  ａｒｒａｙ６０７（図１２（Ｂ））、新抽出文字数データ６０８（図１２（Ｃ））を読み出し、図１２（Ｂ）を、その位置番号に対応する抽出文字数の値が大きい順に並び替え、並び替えたものについて先頭から順に、位置番号から始まり長さが抽出文字数である部分文字列（実体は加工済み対象文書集合データ６０２にある）を単語候補として抽出する。抽出する際には、既に抽出したものとは異なるもののみ抽出する。例えば、図１２（Ｂ）と図１２（Ｃ）から、位置番号“１９”では“行政改革”が４文字で抽出される。次の位置番号“４３”では“行政改革”が既に抽出されているので抽出しない。その結果、単語候補データ６０９（図１２（Ｄ））が作業領域６００へ格納される。
【００３４】
次に、図４の単語候補選別部３２４では、作業領域６００から単語候補データ６０９（図１２（Ｄ））を読み出し、単語候補を形態素解析した結果（図１３（Ａ））について、形態素解析結果絞込みパターン３２５（図１３（Ｂ））に該当するものを除き、絞り込まれた単語候補（図１３（Ｃ））が文字列絞込みパターン３２６（図１３（Ｄ））に該当するものを除いて、選別単語候補データ６１０（図１３（Ｅ））を作業領域６００へ格納する。なお、図１３（Ａ）の書式は、“表記／品詞名”もしくは空白を区切りとして“表記／品詞名”を並べたものである。また、図１３（Ｂ）のパターンも、形態素解析結果と同じ書式であるが記述に正規表現を許している。例えば、図１３（Ｂ）の“＊”は任意の文字列を意味し、“（助詞｜補助動詞）は”助詞または補助動詞を意味するので、パターン“＊／＊（助詞｜補助動詞）”は、“表記は任意／品詞名の末尾が助詞もしくは補助動詞となるもの”を意味している。これを用いて、図１３（Ａ）から該当するものを調べると、“課題／名詞  は／連用助詞”における“は／連用助詞”の部分が該当するので、単語候補“課題は”は除かれ、図１３（Ｃ）となる。また、図１３（Ｄ）も文字列だけでなく正規表現を許している。例えば、図１３（Ｄ）のパターンは、最初の“＾”で先頭を意味し、“［］”に囲まれる文字列でその文字列中の任意の一文字を意味するので、全体として、先頭文字が“［］”に囲まれる任意の文字であることを意味している。これを用いて、図１３（Ｃ）から該当する文字列を調べると、“ント”が“ン”から始まる文字列で該当するので、単語候補“ント”は除かれ、図１３（Ｅ）となる。以上で単語候補データ作成部３２０の処理を終了する。
【００３５】
次に、図１の部分文字列統計量計算部３３０について図５に基づいて説明する。まず、図５の部分文字列統計量計算部３３０では、作業領域６００から加工済み対象文書集合データ６０２（図９（Ｂ））、文書先頭位置データ６０３（図１０（Ａ））、ｓｕｆｆｉｘ  ａｒｒａｙ６０４（図１０（Ｃ））、先頭共通文字数データ６０５（図１０（Ｄ））を読み出し、ｓｕｆｆｉｘ  ａｒｒａｙの各位置番号から始まる部分文字列（実体は図９（Ｂ）にある）について、各位置番号に対応した先頭共通文字数データ６０５とｓｕｆｆｉｘ  ａｒｒａｙ６０４の隣接する部分文字列の関係から出現頻度（ｔｆ）を求め、また、その部分文字列の図９（Ｂ）中の出現位置と図１０（Ａ）から、その部分文字列が含まれる文書数（文書頻度（ｄｆ））を計算し、各文字列の出現頻度とそれを含んだ文書数を出現頻度・文書頻度データ６１１（図１４（Ａ））として作業領域６００へ格納する。例えば、図１０（Ｃ）の現在の位置番号が“１９”であり、その１つ前の位置番号“３０”に対応する図１０（Ｄ）の先頭共通文字数が“０”であった場合、位置番号“１９”とその１つ前の位置番号“３０”との先頭が共通な文字列は存在しない。一方、位置番号“１９”に対応する図１０（Ｄ）の先頭共通文字数が“４”であった場合、位置番号“１９”と次の位置番号“４３”との先頭が共通な文字列は存在する。さらに、次の位置番号“４３”に対応する図１０（Ｄ）の先頭共通文字数が“０”であった場合、次の位置番号“４３”と次の次の位置番号との先頭が共通な文字列は存在しない。以上のような関係から、位置番号“１９”と“４３”で先頭が共通な１〜４文字（対象文字範囲）からなる文字列“行”、“行政”、“行政改”、“行政改革”は出現頻度２となる。一方、“行”、“行政”、“行政改”、“行政改革”の文書頻度は、図１０（Ａ）から、図１０（Ｃ）の位置番号が“１９”は、位置番号０〜４２の範囲にある最初の文書に表れ、位置番号“４３”は位置番号４３〜５９の範囲にある２番目の文書に現れることが分かるので、文書頻度２となる。以上で、部分文字列統計量計算部３３０の処理を終了する。
【００３６】
次に、図１の単語候補統計量計算部３４０について図６に基づいて説明する。まず、単語抽出対象の文書集合（図３の対象文書集合データ６０１）の代わりに単語抽出対象とは別の文書集合に対して、あらかじめ図２の文書集合単語抽出部３００の部分文字列データ作成部３１０と部分文字列統計量計算部３３０の処理を同様に行って、図３における文書先頭位置データ６０３に代わる別文書文書先頭位置データ７０１、加工済み対象文書集合データ６０２に代わる加工済み別文書集合データ７０２、ｓｕｆｆｉｘ  ａｒｒａｙ６０４に代わる別文書ｓｕｆｆｉｘ  ａｒｒａｙ７０３、図５における出現頻度・文書頻度データ６１１に代わる別文書出現頻度・文書頻度データ７０４を格納した別文書統計量ＤＢ７００が準備されているとする。
【００３７】
図６の単語候補統計量計算部３４０では、作業領域６００から文書先頭位置データ６０３（図１０（Ａ））、選別単語候補データ６１０（図１３（Ｅ））、出現頻度・文書頻度データ６１１（図１４（Ａ））を読み出す。また、別文書統計量ＤＢ７００から別文書文書先頭位置データ７０１、加工済み別文書集合データ７０２、別文書ｓｕｆｆｉｘ  ａｒｒａｙ７０３、別文書出現頻度・文書頻度データ７０４（図１４（Ｃ））を読み出す。なお、別文書統計量ＤＢ７００にある、別文書文書先頭位置データ７０１、加工済み別文書集合データ７０２、別文書ｓｕｆｆｉｘ  ａｒｒａｙ７０３は単語抽出対象のものと同様に処理して求められたとして、ここでは、図示を省略している。次に、図１３（Ｅ）に対して、図１４（Ａ）および図１４（Ｃ）から出現頻度と文書頻度をそれぞれ足し合わせる。例えば、図１３（Ｅ）の“行政改革”の出現頻度は、図１４（Ａ）の“行政改革”のｔｆ＝２と図１４（Ｃ）の“行政改革”のｔｆ＝８００から図１４（Ｅ）の“行政改革”のｔｆ＝８０２となる。また、図１３（Ｅ）の“行政改革”の文書頻度は、図１４（Ａ）の“行政改革”のｄｆ＝２と図１４（Ｃ）の“行政改革”のｄｆ＝５５０から図１４（Ｅ）の“行政改革”のｄｆ＝５５２となる。なお、図１４（Ｃ）は、出現頻度が２以上のものであるため、別文書で出現頻度および文書頻度が１のものも考慮する場合については、別文書ｓｕｆｆｉｘ  ａｒｒａｙ７０３の位置番号から始まる部分文字列（実体は別文書加工済み対象文書集合データ７０２にある）を検索して単語候補と同じ文字列が存在するかどうかで求める。次に、図１０（Ａ）と別文書文書先頭位置データ７０１から総文書数を計算する。例えば、図１４（Ｂ）の文書数が５であり、図１４（Ｄ）の文書数が１０００００であれば、総文書数（Ｄｎｕｍ）は１００００５となる。次に、単語候補の出現頻度（ｔｆ）と文書頻度（ｄｆ）と総文書数（Ｄｎｕｍ）から単語候補の統計量を計算する。統計量の計算方法としては、単語として順序付けできるものであれば特に限定しない。例えば、「北研二、外２名、「情報検索アルゴリズム」、２００２、ｐ．４３−４５」に開示されている。総文書数に対する文書頻度の比が出現頻度の分布から計算される推定値よりも大きいものを特徴的な値とする、残差ＩＤＦ（ｒｉｄｆ）が考えられる。残差ＩＤＦは、ｒｉｄｆ＝−ｌｏｇ（ｄｆ／Ｄｎｕｍ）＋ｌｏｇ（１−ｅｘｐ（−ｔｆ／Ｄｎｕｍ））の式で計算される。例えば、図１４（Ｅ）の“行政改革”は、ｔｆ＝８０２、ｄｆ＝５５２、Ｄｎｕｍ＝１００００５としてｒｉｄｆを計算すると、０．５３となる。最終的に、単語候補とそれらの統計量からなる単語候補統計量データ６１２（図１４（Ｅ））を作業領域６００へ格納する。以上で、単語候補統計量計算部３４０の処理を終了する。
【００３８】
次に、図１の単語候補選別部３５０について図７に基づいて説明する。まず、単語候補選別部３５０は作業領域６００から単語候補統計量データ６１２（図１４（Ｅ））を読み出し、統計量の閾値以上のものを選択する。例えば、図１４（Ｅ）のうちｒｉｄｆが０．２以上のものを選択する場合、図１５が得られ、これが選別単語候補データ６１３として作業領域６００へ格納される。
【００３９】
なお、最近の対象文書集合と過去の別文書集合を用いて最近の話題語を抽出したい場合は、統計量の闘値によって選択された単語候補に対して、対象文書集合および別文書集合での各出現確率を計算し、対象文書集合の出現確率の方が別文書集合の出現確率より高いものに限定することによって可能となる。単語候補の文書集合中での出現確率を、例えば、（単語候補の文書集合中の出現回数）／（文書集合中の任意の文字列総数）で求めたとする。加工済み対象文書集合データ６０２から、対象文書集合中の任意の文字列総数が１０００００、別文書加工済み対象文書集合データ７０２から、別文書集合中の任意の文字列総数が１００００００００であったとする。対象文書集合における“行政改革”の出現頻度は出現頻度・文書頻度データ６１１（図１４（Ａ））から２であるので、出現確率は２／１０００００＝０．００００２である。また、別文書集合における“行政改革”の出現頻度は別文書出現頻度・文書頻度データ７０４（図１４（Ｃ））から８００であるので、出現確率は８００／１００００００００＝０．０００００８となる。その結果、対象文書集合での出現確率の方が高くなるので、“行政改革”は話題語として抽出される。そして、選別単語候補データ６１３（図１５）に、各文書集合での出現確率を格納する。また、既知語辞書３５１を用意しておき、図１５の単語のうち、既知語辞書３５１の見出しには載っていない単語のみからなるものを選別単語候補データ６１３とすることも可能である。上記の話題語や既知語の処理は単語候補選別部３５０で利用可能な設定データによってあらかじめ定めておく。以上で、単語候補選別部３５０の処理を終了する。以上により、文書集合単語抽出部３００の全ての処理を終了する。
【００４０】
次に、図１の単語表示部４００では、作業領域６００から選別単語候補データ６１３（図１５）を読み出し、表示装置（不図示）へ表示する。また、ユーザが取得可能な記録媒体へ格納しても構わない。なお、最近の対象文書集合と過去の別文書集合を用いて、各文書集合での出現確率が求められている場合は、選別単語候補データ６１３（図１５）を読み出した後、各文書集合での単語の出現確率から話題の強さ（話題度）を計算して、その話題度の大きい順に並び替えて表示することができる。例えば、話題度を（対象文書集合での出現確率−別文書集合での出現確率）で求めたとする。“行政改革”の話題度は、選別単語候補データ６１３（図１５）から、０．０００２−０．０００００８＝０．０００１９２となる。また、“大統領官邸”の話題度は、０．０００２−０．０００００１６＝０．０００１９８４となるので、“大統領官邸”、“行政改革”の順に表示される。
【００４１】
ところで、本発明との比較として、図１の単語候補統計量計算部３４０で、別文書統計量ＤＢ７００を使用しなかった場合（従来技術）、図６の単語候補統計量データ６１２は、図１６のようになる。従来技術では偶然に単語抽出されるのを避けるために、出現頻度が閾値以上の単語に限定している。例えば、出現頻度の閾値を１０以上とすると、図１６の出現頻度２のものは抽出対象外となってしまう。一方、本発明では、“行政改革”のように、図１４（Ａ）から単語抽出対象の文書集合での出現頻度が２であっても、図１５にあるように、単語抽出対象とは別の文書集合の出現頻度を足し合わせた値（８０２）を利用しているため、単語抽出対象の文書集合において低頻度となる単語も偶然性に依らず単語抽出が可能である。
【００４２】
なお、本発明は専用のハードウェアにより実現されるもの以外に、その機能を実現するためのプログラムを、コンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行するものであってもよい。コンピュータ読み取り可能な記録媒体とは、フロッピーディスク、光磁気ディスク、ＣＤ−ＲＯＭ等の記録媒体、コンピュータシステムに内蔵されるハードディスク装置等の記憶装置を指す。さらに、コンピュータ読み取り可能な記録媒体は、インターネットを介してプログラムを送信する場合のように、短時間の間、動的にプログラムを保持するもの（伝送媒体もしくは伝送波）、その場合のサーバとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含む。
【００４３】
【発明の効果】
以上説明したように、本発明によれば、ＣＤ−ＲＯＭやハードディスクなどの記録媒体、もしくは、インターネットなどのネットワーク上の記録媒体にある文書を収集して、単語抽出対象の文書集合（第１の文書集合）を作成し、また、単語抽出対象とは別の文書集合（第２の文書集合）から計算した統計量（第２の統計量）を事前に準備しておき、第１の文書集合から単語候補を抽出し、第１の文書集合から計算した統計量（第１の統計量）と第２の統計量を用いて単語候補に関する統計量を計算し、その単語候補の統計量を基に単語を抽出することで、単語抽出対象の文書集合における低頻度語に関しても、偶然性に依らず多種類の単語を抽出できる。
【図面の簡単な説明】
【図１】本発明の一実施形態の単語抽出装置の構成を示すブロック図である。
【図２】図１の単語抽出装置の全体の処理の流れを示すフローチャートである。
【図３】部分文字列データ作成部３１０の構成を示すブロック図である。
【図４】単語候補データ作成部３２０の構成を示すブロック図である。
【図５】部分文字列統計量計算部３３０の構成を示すブロック図である。
【図６】単語候補統計量計算部３４０の構成を示すブロック図である。
【図７】単語候補選別部３５０の構成を示すブロック図である。
【図８】文書収集・加工部１００で用いるデータの例を示す図である。
【図９】文書集合データ作成部２００、文書集合データ加工部３１１で作成されるデータの例を示す図である。
【図１０】部分文字列データ作成部３１０で作成されるデータの例を示す図である。
【図１１】抽出文字数調査部３２１で作成されるデータの例を示す図である。
【図１２】入れ子文字列処理部３２２、単語候補抽出部３２３で作成されるデータの例を示す図である。
【図１３】単語候補選別部３２４で作成されるデータの例を示す図である。
【図１４】部分文字列統計量計算部３３０、単語候補統計量計算部３４０で作成されるデータの例を示す図である。
【図１５】単語候補選別部３５０で作成されるデータの例を示す図である。
【図１６】別文書統計量データを用いない場合の単語候補統計量計算部３４０で作成されるデータの例を示す図である。
【符号の説明】
１００    文書収集・加工部
２００    文書集合データ作成部
３００    文書集合単語抽出部
３１０    部分文字列データ作成部
３１１    文書集合データ加工部
３１２    文書先頭位置調査部
３１３    部分文字列作成部
３１４    先頭共通文字数調査部
３１５    文字列置換テーブル
３２０    単語候補データ作成部
３２１    抽出文字数調査部
３２２    入れ子文字列処理部
３２３    単語候補抽出部
３２４    単語候補選別部
３２５    形態素解析結果絞込みパターン
３２６    文字列絞込みパターン
３３０    部分文字列統計量計算部
３４０    単語候補統計量計算部
３５０    単語候補選別部
３５１    既知語辞書
４００    語表示部
５００    文書ＤＢ
６００    作業領域
６０１    対象文書集合データ
６０２    加工済み対象文書集合データ
６０３    文書先頭位置データ
６０４    ｓｕｆｆｉｘ  ａｒｒａｙ
６０５    先頭共通文字数データ
６０６    抽出文字数データ
６０７    新ｓｕｆｆｉｘ  ａｒｒａｙ
６０８    新抽出文字数データ
６０９    単語候補データ
６１０    選別単語候補データ
６１１    出現頻度・文書頻度データ
６１２    単語候補統計量データ
６１３    選別単語候補データ
７００    別文書統計量ＤＢ
７０１    別文書文書先頭位置データ
７０２    加工済み別文書集合データ
７０３    別文書ｓｕｆｆｉｘ  ａｒｒａｙ
７０４    別文書出現頻度・文書頻度データ
１０００，２０００，３０００，４０００    ステップ
【図１】
2004272639.tif 000003
【図２】
2004272639.tif 000004
【図３】
2004272639.tif 000005
【図４】
2004272639.tif 000006
【図５】
2004272639.tif 000007
【図６】
2004272639.tif 000008
【図７】
2004272639.tif 000009
【図８】
2004272639.tif 000010
【図９】
2004272639.tif 000011
【図１０】
2004272639.tif 000012
【図１１】
2004272639.tif 000013
【図１２】
2004272639.tif 000014
【図１３】
2004272639.tif 000015
【図１４】
2004272639.tif 000016
【図１５】
2004272639.tif 000017
【図１６】
2004272639.tif 000018