(57)【特許請求の範囲】
【請求項１】
着目している単語が初めて出現した初出時に、単語出現量を０に初期化し、上記初出時における文書のうちで、着目している単語が含まれている文書の数に重みを乗算せずに、上記文書の数を加算し、この加算結果を単語出現量とし、更新の度に、前回更新時から今回更新するまでの経過時間に対応する重みを、前回更新時における単語出現量に乗算し、新たに入力された文書のうちで、上記着目している単語が含まれている文書の数を、上記乗算された結果に加算して演算し、新たな単語出現量として更新する単語出現量演算・更新手段と；
上記単語出現量演算・更新手段が演算した単語出現量を記録し、更新する単語出現量記録手段と；
文書を最初に入力した初回入力時に、総文書量を０に初期化し、上記初回入力時における文書の数に重みを乗算せずに、上記文書の数を加算し、この加算結果を総文書量とし、更新の度に、前回更新時から今回更新するまでの経過時間に対応する重みを、前回更新時における総文書量に乗算し、新たに入力された文書の数を、上記乗算された結果に加算して演算し、新たな総文書量として更新する総文書量演算・更新手段と；
上記総文書量演算・更新手段が演算した総文書量を記録し、更新する総文書量記録手段と；
上記総文書量と各単語の単語出現量とに基づいて、各単語の話題度を演算する単語の話題度演算手段と；
上記演算された各単語の話題度に基づいて、文書間距離を演算し、更新する文書間距離演算・更新手段と；
上記文書間距離演算・更新手段が演算した文書間距離を記録し、更新する文書間距離記録手段と；
を有することを特徴とする文書間距離演算装置。
【請求項２】
請求項１において、
上記単語出現量記録手段と単語出現量演算・更新手段とによって構成される組を複数、有し、
各単語出現量演算・更新手段は、対応する単語出現量記録手段に保持されている単語出現量を演算・更新する手段であり、
上記単語の話題度演算手段は、上記総文書量と、上記複数の単語出現量記録手段が保持している単語出現量とに基づいて、各単語の話題度を演算する手段であることを特徴とする文書間距離演算装置。
【請求項３】
請求項１または請求項２に記載の文書間距離演算装置を構成する各手段としてコンピュータを機能させるためのプログラム。
【請求項４】
請求項３に記載のプログラムを記録したコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、出現頻度が時間的に増加傾向にある単語に注目し、相互の文書間の距離を演算する技術に関する。
【背景技術】
【０００２】
膨大な文書を効率的に閲覧するために、文書群中での話題に着目し、文書を分類する方法が知られている（たとえば、特許文献１、非特許文献１参照）。
【０００３】
特許文献１記載の方法は、不特定多数が書き込むことのできるインターネット上の掲示板等に蓄積され、時刻情報が付加されている多数のメッセージから、話題を表す単語やフレーズを抽出する技術である。抽出した話題情報に基づいて、メッセージ群を分類・整理すれば、閲覧を高速化することができる。
【０００４】
特許文献１記載の方法では、単語やフレーズの出現密度（単位時間当たりの出現回数）やメッセージの新しさを考慮し、任意の時刻における単語やフレーズの話題スコアを演算することができる。
【０００５】
しかし、各単語やフレーズについて、話題スコアの演算に必要な統計量を、各時刻（メッセージの出現時刻）毎に保持する必要があるので、時間が経過してメッセージが増加するにつれ、記憶に要する記憶領域の量が増加する。新しくメッセージが入力されると、この入力されたメッセージに含まれている単語やフレーズに対し、各時刻毎に保持している統計量を、それぞれ演算する必要があり、インデクスを予め構築しておくことによって、これらの演算を高速に行う工夫をしている。しかし、メッセージの増加に伴い、ひとつひとつの単語やフレーズに対して、演算すべき統計量の数が増加するので、いずれは処理速度の低下を免れないという問題がある。
【０００６】
非特許文献１記載の発明は、文書間の類似度を演算し、類似度が高い２文書の文書間距離は、小さく、類似度が低い２文書の文書間距離は、大きいとみなし、距離の近い文書同士を集約することによって、類似文書を分類する技術である。特に、類似度演算に必要な単語出現回数等の統計量の演算を高速に行う技術である。文書が古くなるほど、徐々に文書自体の重要度を下げるので、古い文書は自然に、重要度が０になり、影響力がなくなるので、特許文献１記載の発明のように、文書の増加に伴って、明示的に文書を破棄する必要がない。言い換えれば、古くなった文書を自然に消滅させる技術である。一度集計した統計量を保持し、これを演算し、管理するので、文書集合が増加した場合にも、新着文書に対してのみ、単語を集計すればよく、文書が逐次増加する状況において、特に有効な技術である。
【特許文献１】特開２００６−１７２４２４号公報
【非特許文献１】石川佳治、北川博之著「忘却の概念に基づくインクリメンタルな文書クラスタリング手法」電子情報通信学会技術研究報告資料、Vol.101、No.192、DE2001-55、pp.145-152、2001年7月。情報処理学会研究報資料、2001-DBS-125(I)、Vol.2001、No.71、125-41、pp.313-320、2001年7月。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記特許文献１記載の発明では、文書が増加すると、計算量が増加するという問題がある。
【０００８】
上記非特許文献１記載の発明では、文書間の類似度が、話題の変化を反映していないという問題がある。つまり、時間の経過に従って変化する文書の傾向（文書の主題の変化）を反映した類似度にならず、人間の感覚とはあまり合致しない類似度が得られる場合が多い。
【０００９】
これには、原因が２点ある。古くなった文書は、他の文書との類似度が小さくなる傾向があることが、１番目の原因である。内容によらず、時間が経過するだけで、他の文書との類似度が低くなるので、人間の感覚とは必ずしも合致しない。このために、非特許文献１記載の発明によって計算された文書間の類似度を用いて、類似文書を分類すると、互いに類似する新しい文書を集約することができるが、古い文書は、どの文書ともあまり類似しないので、古い文書も含めて全てを適切に分類することはできない。
【００１０】
２番目の原因は、非特許文献１記載の発明によって計算された文書間の類似度に、話題性の大きさが反映されていないことである。文書群中での単語の出現頻度が増加傾向にあると、「最近目にする機会が増えてきた」という感覚を覚えるが、非特許文献１記載の発明では、その感覚を反映した類似度が得られない。すなわち、たとえば実世界で、ある事象が話題になると、この話題に関連する単語が、出現する文書が多くなり、所定の文書数に占める上記単語出現文書の率が増加する傾向にある。この場合、話題と関連のある単語を特に重視して文書間の類似度を演算するわけではないので、人間の感覚とはあまり合致しない類似度が得られる場合が多い。
【００１１】
本発明は、古い文書も含めた文書集合全体を適切に分類することができ、また、文書が増加した場合でも、更新処理が迅速である文書間距離演算装置、文書間距離演算方法、プログラムおよび記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明は、着目している単語が初めて出現した初出時に、単語出現量を０に初期化し、上記初出時における文書のうちで、着目している単語が含まれている文書の数に重みを乗算せずに、上記文書の数を加算し、この加算結果を単語出現量とし、更新の度に、前回更新時から今回更新するまでの経過時間に対応する重みを、前回更新時における単語出現量に乗算し、新たに入力された文書のうちで、上記着目している単語が含まれている文書の数を、上記乗算された結果に加算して演算し、新たな単語出現量として更新する単語出現量演算・更新手段と、上記単語出現量演算・更新手段が演算した単語出現量を記録し、更新する単語出現量記録手段と、文書を最初に入力した初回入力時に、総文書量を０に初期化し、上記初回入力時における文書の数に重みを乗算せずに、上記文書の数を加算し、この加算結果を総文書量とし、更新の度に、前回更新時から今回更新するまでの経過時間に対応する重みを、前回更新時における総文書量に乗算し、新たに入力された文書の数を、上記乗算された結果に加算して演算し、新たな総文書量として更新する総文書量演算・更新手段と、上記総文書量演算・更新手段が演算した総文書量を記録し、更新する総文書量記録手段と、上記総文書量と各単語の単語出現量とに基づいて、各単語の話題度を演算する単語の話題度演算手段と、上記演算された各単語の話題度に基づいて、文書間距離を演算し、更新する文書間距離演算・更新手段と、上記文書間距離演算・更新手段が演算した文書間距離を記録し、更新する文書間距離記録手段とを有することを特徴とする文書間距離演算装置である。
【発明の効果】
【００１３】
本発明によれば、単語の話題度を演算するに際し、単語の出現頻度等を演算する場合、前回演算した出現量を保持するので、新たな計算量は僅かであり、したがって、文書が増加した場合でも、更新処理が迅速であるという効果を奏する。
【００１４】
また、本発明によれば、話題度を加味して文書間距離を判断することができ、この話題度を用いて文書間距離を演算するので、各文書が文書データベースに入力された時点における話題を考慮した文書間距離を得ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１５】
発明を実施するための最良の形態は、以下の実施例である。
【実施例１】
【００１６】
図１は、本発明の実施例１である文書間距離演算装置１００のシステム構成例を示す図である。
【００１７】
文書間距離演算装置１００は、文書データベース１と、単語出現量演算・更新手段２と、単語出現量記録手段３と、総文書量演算・更新手段４と、総文書量記録手段５と、単語の話題度演算手段６と、文書間距離演算・更新手段７と、文書間距離記録部８とを有する。
【００１８】
文書間距離演算装置１００は、文書データを蓄積する記憶部である文書データベース１に対し、文書を逐次入力し、蓄積し、１日に１回、以下の一連の処理を実行する実施例である。
【００１９】
図２は、文書データベース１に記録されている文書データの例を示す図である。
【００２０】
文書データベース１は、図２に示すように、文書を一意に識別する文書ＩＤと、各文書中に出現する単語の一覧とを記録する。
【００２１】
単語出現量演算・更新手段２は、着目している単語が初めて出現した初出時に、単語出現量を０に初期化し、上記初出時における文書のうちで、着目している単語が含まれている文書の数に重みを乗算せずに、上記文書の数を加算し、この加算結果を単語出現量とし、更新の度に、前回更新時から今回更新するまでの経過時間に対応する重みを、前回更新時における単語出現量に乗算し、新たに入力された文書のうちで、上記着目している単語が含まれている文書の数を、上記乗算された結果に加算して演算し、新たな単語出現量として更新する単語出現量演算・更新手段の例である。
【００２２】
単語出現量記録手段３は、上記単語出現量演算・更新手段が演算した単語出現量を記録し、更新する単語出現量記録手段の例である。
【００２３】
総文書量演算・更新手段４は、文書を最初に入力した初回入力時に、総文書量を０に初期化し、上記初回入力時における文書の数に重みを乗算せずに、上記文書の数を加算し、この加算結果を総文書量とし、更新の度に、前回更新時から今回更新するまでの経過時間に対応する重みを、前回更新時における総文書量に乗算し、新たに入力された文書の数を、上記乗算された結果に加算して演算し、新たな総文書量として更新する総文書量演算・更新手段の例である。
【００２４】
総文書量記録手段５は、上記総文書量演算・更新手段が演算した総文書量を記録し、更新する総文書量記録手段の例である。
【００２５】
単語の話題度演算手段６は、上記総文書量と各単語の単語出現量とに基づいて、各単語の話題度を演算する単語の話題度演算手段の例である。
【００２６】
文書間距離演算・更新手段７は、上記演算された各単語の話題度に基づいて、文書間距離を演算し、更新する文書間距離演算・更新手段の例である。
【００２７】
文書間距離記録手段８は、上記文書間距離演算・更新手段が演算した文書間距離を記録し、更新する文書間距離記録手段の例である。
【００２８】
実施例１では、各文書から名詞のみを取得し、図２に示すように、文書データベース１に、記録する。また、初期状態では、話題度がまだ計算されていないので、文書データベース１における話題度の欄は、空の状態である。文書ＩＤは、０００１、０００２、０００３のように、後に入力する文書ほど大きな数字を付与し、これによって、入力した順序が分かるようにする。
【００２９】
図３は、単語出現量演算・更新手段２が行う単語出現量演算・更新処理を示すフローチャートである。
【００３０】
単語出現量演算・更新手段２は、まず、単語出現量記録手段３を参照し、既に１以上の単語が記録されているか否かを調べ、初期状態（つまり単語が記録されていない状態）であれば（Ｓ１のＮＯ）、Ｓ３に進む。
【００３１】
Ｓ３で、文書データベース１を参照し、話題度が未設定である文書について、文書ＩＤ一覧を取得する。図２に示す例の場合、文書ＩＤ０００１、０００２、０００３を取得する。
【００３２】
Ｓ４では、Ｓ３で取得した文書ＩＤ一覧のうちで、１文書について、上記文書中に出現する単語の一覧を取得する。第１の文書である文書ＩＤ０００１については、「週末」「遊園地」「天気」「ジェットコースター」等を取得する。
【００３３】
Ｓ５では、単語出現量記録手段３に記録されている各単語の単語出現量のうちで、Ｓ４で取得した単語の単語出現量に、それぞれ１を加算し、更新する。上記「単語出現量」は、単語出現数に、重みが乗じられた値である。なお、上記「重み」については、後述する。
【００３４】
また、Ｓ４で取得した単語が、単語出現量記録手段３に記録されていなければ、単語出現量として新たに１を設定し、単語出現量記録手段３に記録する。初期状態では、Ｓ４で取得した単語は、いずれも単語出現量記録手段３に記録されていないので、「週末」「遊園地」「天気」「ジェットコースター」等の各単語に対し、単語出現量として１を設定する。
【００３５】
Ｓ３で取得したそれぞれの文書ＩＤに、Ｓ４〜Ｓ５の処理を実行し終わると（Ｓ６のＹＥＳ）、単語出現量演算・更新手段２は処理を終える。
【００３６】
図４は、着目している単語が初めて出現し、単語出現量記録手段３に初めて記録された単語と、単語出現量との例を示す図である。
【００３７】
着目している単語が初めて出現すると、単語出現量を０に初期化し、文書を最初に入力した文書のうちで、着目している単語が含まれている文書の数に重みを乗算せずに、上記文書の数を加算し、この加算結果を単語出現量として、単語出現量記録手段３に記録する。
【００３８】
図３に示す処理の結果、単語出現量記録手段３には、図４に示すように、文書ＩＤ０００２と０００３との両方に出現している単語「消費税」の単語出現量が「２」であり、他は全て単語出現量が「１」である状態で、単語と単語出現量とが記録されている。
【００３９】
一方、単語出現量記録手段３に単語が記録されていれば、Ｓ２で、単語出現量記録手段３に記録されている各単語の単語出現量に、１未満の係数（重み）を乗じて、単語出現量を減衰させ、単語出現量を演算・更新する。
【００４０】
図５は、実施例１において、減衰のための係数である重みを決定する曲線の例を示す図である。
【００４１】
時刻が０（つまり現在時刻）のときに、重みが１であり、現在時刻からｔ日前、すなわち時刻が−ｔであるときに、上記重みがｅｘｐ（−ｔ／Ｔ）である。なお、Ｔは、定数である。
【００４２】
単語出現量演算・更新手段２は、前回単語出現量を演算・更新してからの経過時刻に応じて、重みを決定するが、実施例１では、１日に１回、減衰のための係数を決定するので、前回実行時からの経過時刻は１日である。したがって、ｔ＝１であり、重みは、ｅｘｐ（−１／Ｔ）である。
【００４３】
定数Ｔは、１日経過後に単語出現量を減衰させる割合を決定する定数であり、定数Ｔの値が大きければ、減衰の程度は緩やかであり、定数Ｔの値が小さければ、１日経過後の減衰が大きい。説明を簡単にするために、定数Ｔ＝１０を設定したとし、重みｅｘｐ（−１／１０）＝０．９０４８……の値を０．９とみなす。
【００４４】
図６は、単語出現量記録手段３に記録されている単語と、前日に演算した単語出現量に重みを乗じた新たな単語出現量の例を示す図である。
【００４５】
単語出現量記録手段３に、図４に示すように単語を記録した状態で、単語出現量を減衰させると（Ｓ２）、各単語の単語出現量に係数０．９を乗じ、図６に示すように、単語出現量の減衰によって単語出現量が変化する。その後に、新規追加分の文書中に出現した単語の出現回数を加算し、単語出現量を演算・更新する（Ｓ３〜Ｓ６）。
【００４６】
図３に示すフローチャートに従って、単語出現量を演算、更新する処理は、文書データベース１に記録した文書群における各単語の出現度数を、図５に示す曲線に基づいて決定する重みを使用し、加算集計する処理と等価である。
【００４７】
図７は、単語出現量の概念を示す図である。
【００４８】
ｔ日前の係数を、ｅｘｐ（−ｔ／Ｔ）で表すと、２ｔ（ｔの２倍の期間）日前の重みは、ｅｘｐ（一２ｔ／Ｔ）＝｛ｅｘｐ（−ｔ／Ｔ）｝２であり、これと同様に、３ｔ日前の重みは、｛ｅｘｐ（−ｔ／Ｔ）｝３である。したがって、上記のように、１日前の重みが０．９であれば、２日前の重みは、０．９２＝０．８１であり、３日前の重みは、０．９３＝０．７２９である。
【００４９】
たとえば、５月１１日に文書データベース１に入力した文書、１日前の５月１０日に入力した２文書、２日前の５月９日に入力した１文書、３日前の５月８日に入力した１文書に出現する単語について５月１１日時点における単語出現量は、各日の重みに文書数を乗じた値の総和である。
【００５０】
つまり、５月１１日時点での単語出現量は、１×１＋０．９×２＋０．８１×１＋０．７２９×１＝４．３３９である。この値は、図３に示す単語出現量演算・更新処理を１日毎に実行し、単語出現量を減衰させながら加算した結果と等しい。
【００５１】
図８は、実施例１において、総文書量演算・更新手段４が実行する動作を示すフローチャートである。
【００５２】
たとえば、５月１１日に文書データベース１に１文書を入力し、１日前の５月１０日に２文書を入力し、２日前の５月９日に１文書を入力し、３日前の５月８日に１文書を入力した場合、５月１１日時点における総文書量は、各日の重みに文書数を乗じた値の総和である。つまり、５月１１日時点での総文書量は、１×１＋０．９×２＋０．８１×１＋０．７２９×１＝４．３３９である。
【００５３】
Ｓ１１で、総文書量記録手段５に、総文書量が既に記録されているか否かを調べ、記録されていなければ（Ｓ１１のＮＯ）、Ｓ１３で、文書データベース１において、話題度が未設定である文書数を取得する。図２に示す例では、文書ＩＤ０００１、０００２、０００３のいずれにも、文書中の各単語の話題度が設定されていないので、文書数として３を取得する。
【００５４】
Ｓ１４では、Ｓ１３で取得した文書数「３」を、総文書量記録手段５に記録されている文書数に、加算することによって、総文書量の値を演算・更新し、処理を終了する。総文書量記録手段５に値が存在しなければ、Ｓ１３で取得した値「３」を、総文書量として記録する。
【００５５】
一方、総文書量記録手段５に、総文書量が記録されていれば（Ｓ１１）、Ｓ１２で、総文書量記録手段５に既に記録されている総文書量に、１未満の重みを乗じて、総文書量を減衰させ、値を演算・更新する。総文書量の減衰の概念は、上記単語出現量の減衰の概念と全く同等であり、１日、１回処理する度に、図５に示す曲線と同様の曲線に対応する重みｅｘｐ（−ｔ／Ｔｄ）を乗じて、総文書量を減衰させる。なお、定数Ｔｄは、総文書量を減衰させる場合に使用する定数である。
【００５６】
実施例１では、定数Ｔｄの値を、単語出現量の演算時に使用する定数Ｔの値と同じく、１０に設定する。
【００５７】
図９は、実施例１において、単語の話題度演算手段６が実行する動作を示すフローチャートである。
【００５８】
単語の話題度演算手段６は、図９に示す手順に従って、文書データベース１に記録されている文書に出現する各単語の話題度を演算する。
【００５９】
これによって、文書中に出現する単語ｗ１、ｗ２、ｗ３，……に対して、ｗ１＝０．５，ｗ２＝０．３，ｗ３＝０．９，……のように、それぞれ話題度が算出される。
【００６０】
まず、Ｓ２１で、総文書量記録手段５に記録されている総文書量を取得する。Ｓ２２で、文書データベース１に記録されている各単語のうちで、話題度が未設定である単語を１語取得する。Ｓ２３では、Ｓ２２で取得した単語の単語出現量を、単語出現量記録手段３を参照して取得する。
【００６１】
Ｓ２４では、Ｓ２１で取得した総文書量と、Ｓ２３で取得した単語出現量とを用い、Ｓ２２で取得した単語の話題度を演算し、上記単語の話題度として、文書データベース１に記録する。このときに、上記単語の話題度が既に設定されていれば、値を演算・更新せず、話題度が未設定の場合にのみ、話題度を記録する。また、複数の文書において、上記単語の話題度が未設定であれば、その全てについて、Ｓ２４で演算した話題度を記録する。
【００６２】
Ｓ２１で取得した総文書量を、Ｄとし、Ｓ２３で取得した単語ｗの単語出現量を、ｄ（ｗ）とし、次の式（１）に基づいて、単語ｗの話題度Ｔｏｐｉｃ（ｗ）を演算する。
【００６３】
Ｔｏｐｉｃ（ｗ）＝ｌｏｇ｛Ｄ／ｄ（ｗ）｝＋１  ……  式（１）
単語出現量の演算時に用いる定数Ｔと、総文書量の演算時に用いる定数Ｔｄの値とを、いずれも１０に設定すると、全ての文書に出現するような単語ｗでは、総文書量Ｄと単語ｗの単語出現量ｄ（ｗ）とが、互いに同じ値になるので、単語ｗの話題度Ｔｏｐｉｃ（ｗ）は、１になる。また、単語出現量ｄ（ｗ）が、総文書量Ｄを超えることがないので、単語ｗの話題度Ｔｏｐｉｃ（ｗ）の値が１未満になることはない。
【００６４】
文書データベース１に記録した全ての単語の話題度を設定し終えるまで、Ｓ２２〜Ｓ２４を、繰り返し（Ｓ２５のＹＥＳ）、処理を終了する。
【００６５】
図１０は、文書データベース１に記録されている文書データと、各単語と、各単語の話題度との例を示す図である。
【００６６】
図９に示す処理によって、話題度が未設定であった単語の全てについて、図１０に示すように、新たに話題度が演算され、記録される。また、過去に話題度を設定した単語については、話題度の演算・更新を行わない、同一の単語であっても、話題度の演算タイミングによって、話題度の値が異なる。
【００６７】
文書間距離は、あらゆる組み合わせの２文書に対して演算することができるが、実施例１における文書間距離演算・更新手段７は、ある１文書に対し、それ以前に入力された文書（すなわち、上記ある１文書の文書ＩＤよりも小さな文書ＩＤを持つ文書）までの距離をそれぞれ演算し、文書間距離記録部８に記録する。
【００６８】
図１１は、文書間距離を既に計算し、文書間距離記録部８に記録した例を示す図である。
【００６９】
文書ＩＤ０００１の文書については、より小さな文書ＩＤを持つ文書が存在しないので、いずれの文書との距離も演算しない。文書ＩＤ０００２の文書と、以前に入力された文書ＩＤ０００１の文書との間の距離０．９８と、文書ＩＤ０００２、００００１とを対にして記録する。その他の文書についても、上記と同様に、より小さな文書ＩＤを持つ文書との距離とを対にして記録する。
【００７０】
図１２は、文書間距離演算・更新手段７が行う処理の流れを示すフローチャートである。
【００７１】
Ｓ３１で、文書データベース１と文書間距離記録部８とを参照し、文書データベース１に記録した文書のうちで、文書間距離記録部８には記録されていない文書（つまり文書間距離記録部８に、他の文書との文書間距離が登録されていない文書）が存在するかどうかを調べる。存在しなければ（Ｓ３１のＮＯ）、処理を終了する。存在する場合（Ｓ３１のＹＥＳ）、Ｓ３２のステップに進む。たとえば、文書データベース１には、文書ＩＤ０００１〜０００６の６文書が登録され、文書間距離記録部８には、図１１に示すように、文書ＩＤ０００１〜０００５の５文書が登録されているとすると、文書ＩＤ０００６の文書は、文書データベース１にあって文書間距離記録部８にないので、Ｓ３２で、文書間距離を演算する基準となる文書を決定する。この１文書とは、文書データベース１に記録されている文書のうちで、文書間距離記録部８には記録されていない文書であり、かつ、最も小さい番号の文書ＩＤを持つ文書である。文書間距離記録部８に、図１１に示すように、文書ＩＤが０００５までの文書が記録され、文書データベース１には、文書ＩＤが０００６以降の文書も記録されていれば、文書ＩＤ０００６の文書を選択する。
【００７２】
Ｓ３３では、Ｓ３２で選択した文書ＩＤ０００６の文書と、それよりも小さな（若い）文書ＩＤを持つ文書それぞれとの間の文書間距離を、文書データベース１に記録した各文書のベクトルを参照して演算する。文書ＩＤ０００６の文書に対しては、文書ＩＤ０００５、０００４、０００３、０００２、０００１の５文書が該当し、文書ＩＤ０００６の文書と、これら５文書との間の文書問距離をそれぞれ演算する。
【００７３】
文書間距離は、ベクトル間のユークリッド距離等、文書の内容が類似している２文書ほど大きな値が与えられる方法で演算する距離である。
【００７４】
図１０に示す例において、文書ＩＤ０００２と文書ＩＤ０００３との間の文書間距離を演算する場合、文書ＩＤ０００２の文書の第１の単語「こと」が、文書ＩＤ０００３の文書には出現しなければ、文書ＩＤ０００３の文書の単語「こと」に対する話題度は、初めて出てきたから０であるとみなす。これによって、文書ＩＤ０００２の文書に含まれている単語数と、文書ＩＤ０００３に含まれている単語数とが同じであるとみなすことができ、同次元のベクトル（話題度列）同士の距離を演算することになる。
【００７５】
Ｓ３４では、Ｓ３２で決定した１文書の文書ＩＤ（たとえば０００６）に対して、Ｓ３２で選択した文書ＩＤ０００１〜０００５と、文書ＩＤ０００６とそれらの文書との間の文書間距離を、それぞれ対応付けて、文書間距離記録部８に記録する。
【００７６】
図１１に示す例は、文書ＩＤ０００５までを記録した例であるが、文書ＩＤ０００６に対しても、同様に、文書ＩＤと文書間距離とを対応付けたデータを記録する。
【００７７】
Ｓ３２〜Ｓ３４の処理を繰り返すことによって、文書データベース１に記録されている文書ＩＤ０００１を除く全ての文書に対して、より小さな文書ＩＤを持つ文書との間の文書間距離を演算し、記録する。
【００７８】
実施例１によれば、古い文書も含めた文書集合全体を適切に分類することができ、また、文書が増加した場合に必要になる統計量演算の量を削減することができる。
【実施例２】
【００７９】
図１３は、本発明の実施例２である文書間類似度演算装置２００の構成例を示す図である。
【００８０】
実施例２は、実施例１において、単語出現量演算・更新手段２、単語出現量記録手段３の代わりに、第１の単語出現量演算・更新手段２ａ、第１の単語出現量記録手段３ａ、第２の単語出現量演算・更新手段２ｂ、第２の単語出現量記録手段３ｂを設け、単語出現文書量更新手段９、単語出現量記録手段１０が設けられている。
【００８１】
なお、実施例２は、文書データを蓄積する記憶部である文書データベース１に、文書を逐次入力し、蓄積し、以下の一連の処理を、１文書入力毎、１時間毎、１日毎等、定期的に、または随時、実行する実施例である。
【００８２】
つまり、実施例１は、１日毎に、更新する実施例であり、実施例２は、１日に限定せずに、１分毎、１時間毎、または文書の入力毎に、更新する実施例である。言い換えれば、実施例２における更新間隔を１日に設定した例が、実施例１である。
【００８３】
図１４は、実施例２において、文書データベース１に記録されている文書データの例を示す図である。
【００８４】
文書データベース１は、図１４に示すように、文書を一意に識別する文書ＩＤと、文書の作成時刻や取得時刻、文書中の事象の発生時刻等、文書に関わる日時と、各文書中に出現する単語の一覧とを記録する。図１４に示す例は、各文書から名詞のみを取得し、記録した例である。また、話題度は、初期状態では計算されていないので、空の状態である。
【００８５】
図１５は、実施例２において、第１の単語出現量演算・更新手段９が行う処理を示すフローチャートである。
【００８６】
第１の単語出現量演算・更新手段９は、図１５に示す処理を行う。実施例１における単語出現量演算・更新手段２が行う処理（図３）と同様に、第１の単語出現量記録手段３ａに既に記録されている第１の単語出現量の減衰と加算とを行う。
【００８７】
図１６は、第１の単語出現量記録手段３ａに、初めて記録された単語と、単語出現量との例を示す図である。
【００８８】
最終演算・更新時刻欄に時刻が既に記録され、複数の単語と、それぞれの第１の単語出現量の値とが記録されているが、初期状態ではいずれも空欄である。
【００８９】
最初に、Ｓ４１で、第１の単語出現量記録手段３ａを参照し、既に１以上の単語が記録されているか否かを調べ、初期状態（単語が記録されていない状態）（Ｓ４１のＮＯ）であれば、Ｓ４２に進む。
【００９０】
Ｓ４２で、文書データベース１を参照し、最も古い時刻を持つ文書について、時刻と単語一覧とを取得する。その後、Ｓ４７に進む。
【００９１】
一方、第１の単語出現量記録手段３ａに単語が存在する場合（Ｓ４１のＹＥＳ）、Ｓ４３で、第１の単語出現量記録手段３ａに記録されている最終演算・更新時刻を取得する。第１の単語出現量演算・更新手段９は、第１の単語出現量記録手段３ａに最初に単語を記録する際に、最終演算・更新時刻も記録するので、第１の単語出現量記録手段３ａに単語が存在すれば、最終演算・更新時刻も必ず存在する。
【００９２】
Ｓ４４で、文書データベース１を参照し、Ｓ４３で取得した最終演算・更新時刻以降の時刻を持つ文書が存在するかどうかを調べ、存在すれば（Ｓ４４のＹＥＳ）、Ｓ４５に進む。存在しなければ（Ｓ４４のＮＯ）、処理を終る。
【００９３】
Ｓ４５では、文書データベース１に記録されている文書のうちで、Ｓ４３で取得した最終演算・更新時刻以降の時刻を持ち、かつ一番古い文書について、時刻と単語一覧とを取得する。
【００９４】
Ｓ４６では、Ｓ４３で取得した最終演算・更新時刻とＳ４５で取得した時刻との差を演算し、この演算された差の時刻に応じて、重みを決定する。さらに、第１の単語出現量記録手段３ａに記録されている全単語の第１の単語出現量に、ここで決定した重みを乗じ、単語出現量を減衰させ、新たな単語出現量を演算・更新する。
【００９５】
ここでの単語出現量の減衰の概念は、実施例１の場合と全く同様である。時刻差がｔであれば、重みｅｘｐ（−ｔ／Ｔｐ）を決定する。たとえば、定数Ｔｐの値が３（日）で、上記時刻の差が１２時間、すなわち０．５日であれば、重みｅｘｐ（−０．５／３）＝ｅｘｐ（−１／６）≒０．８４６である。
【００９６】
Ｓ４７では、第１の単語出現量記録手段３ａに記録されている各単語の第１の単語出現量のうちで、Ｓ４２またはＳ４５で取得した単語の第１の単語出現量に、それぞれ１を加算して演算・更新する。なお、Ｓ４２またはＳ４５で取得した単語のうちで、第１の単語出現量記録手段３ａに記録されていない単語については、第１の単語出現量として、新たに１を設定し、記録する。また、同時に、Ｓ４２またはＳ４５で取得した時刻を、最終演算・更新時刻として記録する。
【００９７】
Ｓ４７を実行すると、Ｓ４３以降の処理を、再度繰り返す。
【００９８】
上記処理によって、直前に処理した文書との時刻の差に基づいて、時刻差が大きいほど第１の単語出現量を大きく減衰させながら、文書中に出現した単語の出現量を加算し、第１の単語出現量を演算する。
【００９９】
実施例１の動作は、実施例２において、Ｓ４６で演算する時刻差が常に１日である場合の動作と同じである。
【０１００】
第２の単語出現量演算・更新手段１１が、各単語の第２の単語出現量を演算し、第２の単語出現量記録手段３ｂに記録する処理は、第１の単語出現量演算・更新手段２ａが行う処理と全く同じであり、ｅｘｐ（−ｔ／Ｔｍ）で決定する。定数Ｔｍの値として、第１の単語出現量更新手段３ａにおけるＴｐの値よりも大きな値、たとえば１５（日）等に設定する。
【０１０１】
なお、第１の単語出現量は、第２の単語出現量よりも減衰が早い単語出現量である。すなわち、単語出現量が複数種類存在する場合、そのうちの１つを、「第１の単語出現量」、別の１つを、「第２の単語出現量」と呼んで区別し、たとえば、単語「参院選」に着目した場合、単語「参院選」の第１の単語出現量がたとえば４．２であり、単語「参院選」の第２の単語出現量がたとえば６．９であるとする。そして、これら２種類の単語出現量を演算、更新する。また、たとえば１日経過した後に、上記第１の単語出現量４．２がどの程度減衰するのか、また、上記第２の単語出現量６．９がどの程度減衰するのかを決定する場合に使用する式が、それぞれｅｘｐ（−ｔ／Ｔｐ）、ｅｘｐ（−ｔ／Ｔｍ）である。定数ＴｐとＴｍとの値が異なる他は、第１の単語出現量と第２の単語出現量とは同じである。実施例２では、「Ｔｍの値は、Ｔｐの値よりも大きくする」ことにしているので、同じ時間だけ経過した後に減衰する割合は、第１の単語出現量の方が大きく（減衰が速く）、第２の単語出現量の方が小さく（減衰が遅く）なる。
【０１０２】
また、単語出現文書量演算・更新手段１３が、各単語の単語出現文書量を演算し、単語出現文書量記録手段１０に記録する処理も、第１の単語出現量演算・更新手段２ａが行う処理と全く同じで、ｅｘｐ（−ｔ／Ｔｄ）で決定する。定数Ｔｄの値は、正文書出現量演算・更新手段２ａにおけるＴｐの値よりも極端に大きな値、たとえば１０００等に設定する。これによって、第１の単語出現量、第２の単語出現量の減衰の速度に比べて、単語出現文書量が減衰する速度が極端に遅くなる。したがって、単語出現文書量は、第１の単語出現量や第２の単語出現量に比べると、減衰なしで単純に文書数を集計するのとほぼ等しいとみなすことができる。
【０１０３】
第１の単語出現量、第２の単語出現量、単語出現文書量は、いずれも、各単語を含む文書数を、経過時間に基づいて決定する重みを乗じながら加算した値である。
【０１０４】
次に、総文書量演算・更新手段４が行う処理の流れについて説明する。
【０１０５】
図１７は、実施例２において、総文書量演算・更新手段４が行う処理を示すフローチャートである。
【０１０６】
なお、総文書量記録手段５には、総文書量と、最終演算・更新時刻とを記録する。
【０１０７】
Ｓ５１で、総文書量記録手段５に、総文書量が既に記録されているかどうかを調べる。総文書量が既に記録されていれば、Ｓ５３に進み、記録されていなければ、Ｓ５２に進む。
【０１０８】
Ｓ５２で、文書データベース１を参照し、最も古い時刻を持つ文書の時刻を取得し、Ｓ５７に進む。
【０１０９】
一方、Ｓ５３で、総文書量記録手段５に記録されている最終演算・更新時刻を取得する。総文書量演算・更新手段４は、総文書量記録手段５に最初に値を記録する際に、最終演算・更新時刻も記録するので、総文書量記録手段５に総文書量が記録されていれば、最終演算・更新時刻も必ず存在する。
【０１１０】
Ｓ５４では、文書データベース１を参照し、Ｓ５３で取得した最終演算・更新時刻以降の時刻を持つ文書が存在するかどうかを調べ、存在すれば（Ｓ５４のＹＥＳ）、Ｓ５５に進む。存在しなければ、（Ｓ５４のＮＯ）、処理を終了する。
【０１１１】
Ｓ５５で、文書データベース１に記録されている文書のうちで、Ｓ５３で取得した最終演算・更新時刻以降の時刻を持ち、かつ、一番古い文書について、時刻を取得する。
【０１１２】
Ｓ５６では、Ｓ５３で取得した最終演算・更新時刻とＳ５５で取得した時刻との差から、総文書量を減衰するための重みを決定し、総文書量記録手段５に記録されている総文書量に、この重みを乗じ、総文書量を減衰させ、総文書量の値を演算・更新する。
【０１１３】
Ｓ５７で、総文書量記録手段５に記録されている総文書量に１を加算する。総文書量の値が存在しなければ、新たに１を設定する。これと同時に、Ｓ５２またはＳ５５で取得した時刻を記録し、最終演算・更新時刻も演算・更新する。
【０１１４】
Ｓ５７を終了すると、Ｓ５３以降の処理を、再度繰り返す。
【０１１５】
総文書量を減衰するための重みを決定する際の定数Ｔｄの値は、単語出現文書量の演算時と同じ値（１０００）を用いる。総文書量が、Ｔｐ＝３やＴｍ＝１５よりも極端に大きいので、総文書量は、第１の単語出現量や第２の単語出現量に比べると、文書データベース１に記録されている文書数を単純に集計するのとほほ等しいとみなすことができる。
【０１１６】
図１８は、実施例２における単語の話題度演算手段６が実行する処理を示すフローチャートである。
【０１１７】
単語の話題度演算手段６は、図１８に示すように、文書データベース１に記録されている文書に出現する各単語の話題度を演算する。これによって、文書中に出現する単語ｗ１，ｗ２，ｗ３，……に対し、ｗ１＝０．５、ｗ２＝０．３、ｗ３＝０．９、……のように、それぞれ話題度が算出される。
【０１１８】
まず、Ｓ６１で、総文書量記録手段５に記録されている総文書量を取得する。Ｓ６２で、文書データベース１に記録されている各単語のうちで、話題度が未設定である単語を１語取得し、保持する。
【０１１９】
Ｓ６３では、Ｓ６２で取得した単語の第１の単語出現量を、第１の単語出現量記録手段３ａから、取得し、第２の単語出現量を、第２の単語出現量記録手段３ｂから、取得し、単語出現文書量を、単語出現文書量記録手段１０から、取得し、保持する。
【０１２０】
Ｓ６４では、Ｓ６１で取得した総文書量と、Ｓ６３で取得した第１の単語出現量と、第２の単語出現量と、単語出現文書量とを用い、Ｓ６２で取得した単語の話題度を演算し、文書データベース１中の、上記単語の話題度として記録する。このときに、話題度が未設定である場合にのみ、話題度を記録し、上記単語の話題度が既に設定されていれば、値を演算・更新しない。また、複数の文書において、上記単語の話題度が未設定であれば、その全てに対して、Ｓ６４で演算した話題度を記録する。
【０１２１】
全ての単語の話題度を演算し終わるまで（Ｓ６５のＹＥＳ）、Ｓ６２〜Ｓ６４を繰り返す。
【０１２２】
次に、Ｓ６４における単語の話題度演算方法について説明する。
【０１２３】
Ｓ６１で取得した総文書量を、Ｄとし、Ｓ６３で取得した単語ｗの第１の単語出現量を、ｆｉｒｓｔ（ｗ）とし、第２の単語出現量を、ｓｅｃｏｎｄ（ｗ）とし、単語出現文書量を、ｄ（ｗ）とすると、単語ｗの話題度Ｔｏｐｉｃ（ｗ）を、次の式（２）〜式（５）に基づいて演算する。
【０１２４】
Ｔｏｐｉｃ１（ｗ）＝ｌｏｇ｛Ｄ／ｄ（ｗ）｝＋１  ……  式（２）
Ｉ（ｗ）＝Ｔｍ／（Ｔｍ−Ｔｐ）×ｆｉｒｓｔ（ｗ）
−Ｔｐ／（Ｔｍ−Ｔｐ）×ｓｅｃｏｎｄ（ｗ）  ……  式（３）
Ｔｏｐｉｃ２（ｗ）＝Ｍａｘｏｆ（Ｉ（ｗ），１）  ……  式（４）
Ｔｏｐｉｃ（ｗ）＝Ｔｏｐｉｃ１（ｗ）×Ｔｏｐｉｃ２（ｗ）  ……  式（５）
Ｉ（ｗ）は、上記式（３）に示すように、Ｔｍ／（Ｔｍ−Ｔｐ）×ｆｉｒｓｔ（ｗ）と、Ｔｐ／（Ｔｍ−Ｔｐ）×ｓｅｃｏｎｄ（ｗ）との差である。また、Ｉ（ｗ）は、意外性を示す指標であり、過去に出現していた単語が現在、出現しなければ、Ｉ（ｗ）が負であり、逆に、過去に出現していない単語が現在、出現すれば、Ｉ（ｗ）が正になる。
【０１２５】
式（２）におけるＴｏｐｉｃ１（ｗ）について、単語出現文書量ｄ（ｗ）、総文書量０の演算時に用いる減衰のための定数は、いずれも同じ値Ｔｄであるので、全ての文書に出現するような単語ｗでは、Ｄとｄ（ｗ）とが同じ値になり、Ｔｏｐｉｃ１（ｗ）の値は、「１」になる。
【０１２６】
また、単語出現文書量ｄ（ｗ）が総文書量Ｄを超えることがないので、Ｔｏｐｉｃ１（ｗ）の値が１未満になることはない。単語ｗを含む文書数が少なければ少ないほど、Ｔｏｐｉｃ１（ｗ）の値は大きくなる。
【０１２７】
上記式（３）におけるＩ（ｗ）は、単語ｗの第１の単語出現量ｆｉｒｓｔ（ｗ）、単語ｗの第２の単語出現量ｓｅｃｏｎｄ（ｗ）に、それぞれ定数Ｔｐ、Ｔｍで決まる係数を乗じて引いた値である。
【０１２８】
図１９は、式（３）におけるＩ（ｗ）の演算の概念を説明する図である。
【０１２９】
図１９の実線は、Ｉ（ｗ）をグラフ化した図である。Ｔｍ／（Ｔｍ−Ｔｐ）×ｆｉｒｓｔ（ｗ）からＴｐ／（Ｔｍ−Ｔｐ）×ｓｅｃｏｎｄ（ｗ）を引くことによって、ある時刻に正負が反転する曲線になる。なお、図１９では、Ｔｍ／（Ｔｍ−Ｔｐ）×ｆｉｒｓｔ（ｗ）とＴｐ／（Ｔｍ−Ｔｐ）×ｓｅｃｏｎｄ（ｗ）との差を求める場合、理解を容易にするために、Ｔｍ／（Ｔｍ−Ｔｐ）×ｆｉｒｓｔ（ｗ）に、−Ｔｐ／（Ｔｍ−Ｔｐ）×ｓｅｃｏｎｄ（ｗ）を加算することによって、Ｉ（ｗ）を求める場合を記載してある。
【０１３０】
つまり、Ｔｍ／（Ｔｍ−Ｔｐ）×ｆｉｒｓｔ（ｗ）からＴｐ／（Ｔｍ−Ｔｐ）×ｓｅｃｏｎｄ（ｗ）を引くことによって、ある時刻に、横軸を跨ぐ曲線になる。ｆｉｒｓｔ（ｗ）とｓｅｃｏｎｄ（ｗ）とに乗じた各係数であるＴｍ／（Ｔｍ−Ｔｐ）と、Ｔｐ／（Ｔｍ−Ｔｐ）とは、切片（時刻が０のときの値）を１にし、かつ、値が正となる区間の面積と値が負となる区間の面積とを等しくして、全区間の積分値を０にするための係数である。
【０１３１】
実施例１において、図３に示す流れに従って、単語出現量を演算する処理が、概念的には、図７に示す曲線に基づいて決定する重み付きで、単語の出現度数を加算集計する処理と等価であったのと同様に、Ｉ（ｗ）は、図１９に示す曲線に基づいて決定する重み付きで、単語の出現度数を加算集計することで演算できる。
【０１３２】
すなわち、図１９において、値が正となる区間（以下、「正区間」という）の時刻を持つ文書中に出現した場合、正の値を加算するために、また、値が負となる区間（以下、「負区間」という）の時刻を持つ文書中に出現した場合、負の値を加算するために、相対的に負区間よりも正区間の文書中に多く出現する単語のＩ（ｗ）の値は、正の値となり、相対的に負区間に多く出現する単語のＩ（ｗ）の値は、負の値となる。また、時間によらず、常に一定の頻度で出現する単語の場合は、Ｉ（ｗ）の値は０となる。
【０１３３】
式（４）におけるＴｏｐｉｃ２（ｗ）について、Ｍａｘｏｆ（ａ，ｂ）は、ａとｂのうちの小さくないほうの値を表す。
【０１３４】
したがって、Ｉ（ｗ）が１を下回るときは、Ｔｏｐｉｃ２（ｗ）の値は「１」となる。Ｔｏｐｉｃ２（ｗ）は、時間的な盛り上がりの度合いを数値化するための指標である。話題性があり、出現頻度が増加傾向にある単語である場合、Ｉ（ｗ）の値は、正の大きな値となるので、Ｔｏｐｉｃ２（ｗ）も正の大きな値となる。
【０１３５】
一方で、すたれた話題に関する単語で、出現頻度が減少傾向にある単語である場合、Ｉ（ｗ）の値は、「０」またはそれ以下の値になるので、Ｔｏｐｉｃ２（ｗ）の値は、最小値「１」となる。
【０１３６】
単語の話題度演算手段６が処理を行うと、文書データベース１中の全ての単語について、話題度が記録される。
【０１３７】
以後、文書間距離演算・更新手段７が、文書データベース１を参照し、異なる２文書の文書間距離を演算し、文書間距離記録部８に記録する処理は、実施例１と同一である。
【０１３８】
文書間距離記録部８には、文書間距離を演算する基準となる文書に対し、より小さな文書ＩＤを持つ全ての文書との距離をそれぞれ記録するのではなく、最も距離が近い文書から順に最大Ｎ文書までの文書についてのみ、距離を記録するようにしてもよい。
【０１３９】
すなわち、上記実施例における単語の話題度は、単語出現量と総文書量とに基づいて算出するものである。単語出現量とは、現在までにおける単語の総出現文書数と似た概念のものであるが、図５に示す曲線に従って算出する点に特徴がある。たとえば、ある単語ｗが、現在までに３文書に出現している場合、単純に文書数を数えると３（すなわち、総出現文書数が３）となるが、単語出現量は、これら３文書の持つ時刻情報（文書データベース１へ入力した時刻）と、図５に示す曲線とから、重みを決定し、この決定された重みを、それまでの単語出現量に乗じた値である。図５に示す曲線のように、過去になるほど、重みが小さくなる曲線を用いれば、３文書に出現する場合でも、それら３文書が古ければ古いほど、単語出現量は小さくなる。簡単に言えば、「現在から見て０日前（つまり現在）、１日前、３日前の３文書に出現する単語の単語出現量は、０日前の重み１、１日前の重み０．９、３日前の重み０．７２９を、各単語出現量に乗じた値を合計した値」である。これら１、０．９、０．７２９の各重みを、図５に示すような曲線を用いて決定する。
【０１４０】
総文書量は、単語出現量とほぼ同じように説明することができる。総文書量は、現在までにおける総文書数と似た概念であるが、図５に示す曲線に従って算出する点に特徴がある。たとえば、現在までに３文書が存在する場合、総文書数は３であると言えるが、総文書量は、文書の持つ時刻情報に応じて、重みを決定し、この決定された重みを、それまでの総文書量に乗じた値を合計した値である。図５に示すように、過去になるほど、値が小さくなる曲線を用いる場合、単純に加算した「３」よりも、小さな値になる。
【０１４１】
以下では、単語出現量のみについて説明するが、総文書量についても、同様である。
【０１４２】
単語出現量を演算する場合、入力した文書が次々と増加する場合、ある時点で計算した単語出現量を保持し、この保持した単語出現量を、逐次（実施例１では１日後、実施例２では次の文書入力時）、読み出しながら更新する。ある単語の単語出現量を得るのに、前回算出した値を利用できるので、計算が速くなるというメリットがある。
【０１４３】
ある単語の単語出現量を前回計算したのが２日前でありし、また、本日の時刻情報を持つ１文書中にも、その単語が出現したとする。この場合、２日前に算出し、保持している単語出現量に対し、そこからの経過時刻である２日という時間幅に基づいて、重みを決定し、この決定された重みを、それまでの単語出現量に乗じ、この乗算結果に、本日入力した１文書の「１」を加える。この加算結果が、上記単語に関する現在時刻における単語出現量である。
【０１４４】
つまり、上記実施例は、着目している単語が初めて出現した初出時に、単語出現量を０に初期化し、上記初出時における文書のうちで、着目している単語が含まれている文書の数に重みを乗算せずに、上記文書の数を加算し、この加算結果を単語出現量とし、更新の度に、前回更新時から今回更新するまでの経過時間に対応する重みを、前回更新時における単語出現量に乗算し、新たに入力された文書のうちで、上記着目している単語が含まれている文書の数を、上記乗算された結果に加算して演算し、新たな単語出現量として更新する単語出現量演算・更新手段と、上記単語出現量演算・更新手段が演算した単語出現量を記録し、更新する単語出現量記録手段と、文書を最初に入力した初回入力時に、総文書量を０に初期化し、上記初回入力時における文書の数に重みを乗算せずに、上記文書の数を加算し、この加算結果を総文書量とし、更新の度に、前回更新時から今回更新するまでの経過時間に対応する重みを、前回更新時における総文書量に乗算し、新たに入力された文書の数を、上記乗算された結果に加算して演算し、新たな総文書量として更新する総文書量演算・更新手段と、上記総文書量演算・更新手段が演算した総文書量を記録し、更新する総文書量記録手段と、上記総文書量と各単語の単語出現量とに基づいて、各単語の話題度を演算する単語の話題度演算手段と、上記演算された各単語の話題度に基づいて、文書間距離を演算し、更新する文書間距離演算・更新手段と、上記文書間距離演算・更新手段が演算した文書間距離を記録し、更新する文書間距離記録手段とを有することを特徴とする文書間距離演算装置の例である。
【０１４５】
この場合、上記単語出現量記録手段と単語出現量演算・更新手段とによって構成される組を複数、有し、各単語出現量演算・更新手段は、対応する単語出現量記録手段に保持されている単語出現量を演算・更新する手段であり、上記単語の話題度演算手段は、上記総文書量と、上記複数の単語出現量記録手段が保持している単語出現量とに基づいて、各単語の話題度を演算する手段である。
【０１４６】
また、上記実施例を、方法の発明として把握することができる。つまり、上記実施例は、着目している単語が初めて出現した初出時に、単語出現量を０に初期化し、上記初出時における文書のうちで、着目している単語が含まれている文書の数に重みを乗算せずに、上記文書の数を加算し、この加算結果を単語出現量とし、更新の度に、前回更新時から今回更新するまでの経過時間に対応する重みを、前回更新時における単語出現量に乗算し、新たに入力された文書のうちで、上記着目している単語が含まれている文書の数を、上記乗算された結果に加算して演算し、新たな単語出現量として更新する単語出現量演算・更新工程と、上記単語出現量演算・更新工程で演算した単語出現量を記憶装置に記録し、更新する単語出現量記録工程と、文書を最初に入力した初回入力時に、総文書量を０に初期化し、上記初回入力時における文書の数に重みを乗算せずに、上記文書の数を加算し、この加算結果を総文書量とし、更新の度に、前回更新時から今回更新するまでの経過時間に対応する重みを、前回更新時における総文書量に乗算し、新たに入力された文書の数を、上記乗算された結果に加算して演算し、新たな総文書量として更新する総文書量演算・更新工程と、上記総文書量演算・更新工程が演算した総文書量を記憶装置に記録し、更新する総文書量記録工程と、上記総文書量と各単語の単語出現量とに基づいて、各単語の話題度を演算し、記憶装置に記憶する単語の話題度演算工程と、上記演算された各単語の話題度に基づいて、文書間距離を演算し、更新する文書間距離演算・更新工程と、上記文書間距離演算・更新工程が演算した文書間距離を記憶装置に記録し、更新する文書間距離記録工程とを有することを特徴とする文書間距離演算方法の例である。
【０１４７】
また、上記文書間距離演算方法をコンピュータに実行させるプログラムを作成するようにしてもよい。さらに、上記文書間距離演算方法をコンピュータに実行させるプログラムを記録媒体に記録するようにしてもよい。この記録媒体として、ＣＤ、ＤＶＤ、光ディスク、光磁気ディスク、半導体メモリ等が考えられる。
【図面の簡単な説明】
【０１４８】
【図１】本発明の実施例１である文書間距離演算装置１００のシステム構成例を示す図である。
【図２】文書データベース１に記録されている文書データの例を示す図である。
【図３】単語出現量演算・更新手段２が行う単語出現量演算・更新処理を示すフローチャートである。
【図４】着目している単語が初めて出現し、単語出現量記録手段３に初めて記録された単語と、単語出現量との例を示す図である。
【図５】実施例１において、減衰のための係数である重みを決定する曲線の例を示す図である。
【図６】単語出現量記録手段３に記録されている単語と、前日に演算した単語出現量に重みを乗じた新たな単語出現量の例を示す図である。
【図７】単語出現量の概念を示す図である。
【図８】実施例１において、総文書量演算・更新手段４が実行する動作を示すフローチャートである。
【図９】実施例１において、単語の話題度演算手段６が実行する動作を示すフローチャートである。
【図１０】文書データベース１に記録されている文書データと、各単語と、各単語の話題度との例を示す図である。
【図１１】文書間距離を既に計算し、文書間距離記録部８に記録した例を示す図である。
【図１２】文書間距離演算・更新手段７が行う処理の流れを示すフローチャートである。
【図１３】本発明の実施例２である文書間類似度演算装置２００の構成例を示す図である。
【図１４】実施例２において、文書データベース１に記録されている文書データの例を示す図である。
【図１５】実施例２において、第１の単語出現量演算・更新手段９が行う処理を示すフローチャートである。
【図１６】第１の単語出現量記録手段３ａに、初めて記録された単語と、単語出現量との例を示す図である。
【図１７】実施例２において、総文書量演算・更新手段４が行う処理を示すフローチャートである。
【図１８】実施例２における単語の話題度演算手段６が実行する処理を示すフローチャートである。
【図１９】式（３）におけるＩ（ｗ）の演算の概念を説明する図である。
【符号の説明】
【０１４９】
１００…文書間距離演算装置、
１…文書データベース、
２…単語出現量演算・更新手段、
３…単語出現量記録手段、
４…総文書量演算・更新手段、
５…総文書量記録手段、
６…単語の話題度演算手段、
７…文書間距離演算・更新手段、
８…文書間距離記録手段、
２００…文書間距離演算装置、
２ａ…第１の単語出現量演算・更新手段、
３ａ…第１の単語出現量記録手段、
２ｂ…第２の単語出現量演算・更新手段、
３ｂ…第２の単語出現量記録手段、
９…単語出現文書量演算・更新手段、
１０…単語出現文書量記録手段。
【図１】
0004771485.tif 000002
【図２】
0004771485.tif 000003
【図３】
0004771485.tif 000004
【図４】
0004771485.tif 000005
【図５】
0004771485.tif 000006
【図６】
0004771485.tif 000007
【図７】
0004771485.tif 000008
【図８】
0004771485.tif 000009
【図９】
0004771485.tif 000010
【図１０】
0004771485.tif 000011
【図１１】
0004771485.tif 000012
【図１２】
0004771485.tif 000013
【図１３】
0004771485.tif 000014
【図１４】
0004771485.tif 000015
【図１５】
0004771485.tif 000016
【図１６】
0004771485.tif 000017
【図１７】
0004771485.tif 000018
【図１８】
0004771485.tif 000019
【図１９】
0004771485.tif 000020