(57)【要約】【課題】文書に出現する単語の頻度を利用して文書の特徴を解析する際に、文書のスタイルに相当する単語の出現頻度の影響を抑える。【解決手段】文書解析装置１００の文書特徴抽出部１１は、文書データにおける各単語の出現頻度を表す特徴量を生成し、第一因子分解部１２は、複数の文書データそれぞれについて生成された特徴量を並べた文書行列に非負値行列因子分解を行い、機能語の出現頻度分布を表す基底が各文書データに寄与している度合いを取得する。重み付け処理部１５は、基底の寄与の度合いに基づいて文書データをスタイル別にカテゴリ分けし、文書データの特徴量が表す機能語の出現頻度を、当該文書データが属するスタイルにおける機能語の出現頻度に応じて低減させる。分類部１９は、機能語の出現頻度が低減された特徴量を用いて文書データを分類する。【選択図】図１
2014170377.tif 000002
【特許請求の範囲】
【請求項１】
複数の文書データそれぞれにおける各単語の出現頻度を表す特徴量を並べた文書行列に因子分解を行い、機能語の出現頻度分布を表す基底が前記文書データそれぞれに寄与している度合いを取得する因子分解部と、
前記因子分解部が取得した前記基底の寄与の度合いに基づいて前記文書データをスタイル別にカテゴリ分けし、前記文書データの前記特徴量が表す前記機能語の出現頻度を、当該文書データが属する前記スタイルにおける前記機能語の出現頻度に応じて低減させる重み付け処理部と、
前記重み付け処理部により前記機能語の出現頻度が低減された前記特徴量を用いて前記文書データの特徴を解析する解析部と、
を備えることを特徴とする文書解析装置。
【請求項２】
探索文書データにおける各単語の出現頻度を表す特徴量を生成する探索文書特徴抽出部と、
前記スタイルにおける前記機能語の出現頻度に応じて、前記探索文書特徴抽出部が生成した前記特徴量が表す前記機能語の出現頻度を低減する探索文書重み付け処理部と、
前記探索文書重み付け処理部により前記機能語の出現頻度が低減された前記特徴量と、前記解析部による前記文書データの特徴の解析結果とに基づいて、前記探索文書データに類似する前記文書データを探索する類似文書探索部とをさらに備える、
ことを特徴とする請求項１に記載の文書解析装置。
【請求項３】
前記重み付け処理部は、前記因子分解部が取得した前記基底の寄与の度合いに基づいて前記文書データをスタイル別にカテゴリ分けし、前記文書データの前記特徴量が表す前記機能語の出現頻度を、当該文書データが属する前記スタイルに最も寄与の度合いが大きな前記基底が示す前記機能語の出現頻度分布に応じて低減する、
ことを特徴とする請求項１または請求項２に記載の文書解析装置。
【請求項４】
前記重み付け処理部は、前記因子分解部が取得した前記基底の寄与の度合いに基づいて前記文書データをスタイル別にカテゴリ分けし、前記スタイル別に、当該スタイルに属する前記文書データのうち各単語が出現する文書データの割合を算出し、算出した割合が多いほど重みが小さくなるように各単語の重みを決定し、前記文書データの前記特徴量が表す各単語の出現頻度に、当該文書データが属する前記スタイルについて決定した各単語の前記重みを適用する、
ことを特徴とする請求項１または請求項２に記載の文書解析装置。
【請求項５】
コンピュータを、
複数の文書データそれぞれにおける各単語の出現頻度を表す特徴量を並べた文書行列に因子分解を行い、機能語の出現頻度分布を表す基底が前記文書データそれぞれに寄与している度合いを取得する因子分解手段と、
前記因子分解手段が取得した前記基底の寄与の度合いに基づいて前記文書データをスタイル別にカテゴリ分けし、前記文書データの前記特徴量が表す前記機能語の出現頻度を、当該文書データが属する前記スタイルにおける前記機能語の出現頻度に応じて低減させる重み付け処理手段と、
前記重み付け処理手段により前記機能語の出現頻度が低減された前記特徴量を用いて前記文書データの特徴を解析する解析手段と、
を具備する文書解析装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書解析装置、及びプログラムに関する。
【背景技術】
【０００２】
記憶装置に保存された大量の文書データの中から、同じ話題について書かれた異なる文書データを、コンピュータによって自動的に同じカテゴリに帰属させる自動文書分類技術がある。この自動文書分類技術は、例えば、類似文書の探索等において有用である。
自動文書分類についてはいくつかの手法が知られているが、ここでは特に潜在話題解析と呼ばれる手法について取り上げる。潜在話題解析では、各々の文書データをある特徴ベクトルに変換し、その特徴ベクトルを並べた行列に対して因子分解を行う。これにより、ある特定の話題の文書データに現れる特徴ベクトルの共通パターンを抽出し、抽出された共通パターンに基づいて、同じ話題について書かれた異なる文書データを同じカテゴリに帰属させる。
【０００３】
特徴ベクトルとしては一般に、ＢＯＷ（Ｂａｇ−ｏｆ−Ｗｏｒｄｓ）特徴ベクトルを用いることが多い。ＢＯＷ特徴ベクトルとは、文書における各単語の出現回数を要素として並べたベクトルである。例えば、ｊ＝｛１，…，Ｄ｝番目の文書において、ある単語ｗｉ（ｉ＝｛１，…，Ｍ｝）が出現する回数をｎｉｊとする。この場合、ｊ番目の文書のＢＯＷ特徴ベクトルｘｊは、以下の式（１）のように定義される。なお、右肩の「Ｔ」は、行列あるいはベクトルの転置を表わす。
【０００４】
【数１】
2014170377.tif 000003
【０００５】
特徴ベクトルの共通パターンを抽出するために、ｊが１番目からＤ番目までの文書のＢＯＷ特徴ベクトルｘｊを並べた文書行列Ｘに対し、例えば非負値行列因子分解（ＮＭＦ：Nonnegative Matrix Factorization）のような行列因子分解を施す。非負値行列因子分解では、この文書行列Ｘに対し、ある距離尺度Ｄ（Ｘ｜ＵＨ）が最小となる様な基底行列Ｕと係数行列Ｈを反復演算により求める。つまり、以下の式（２）となるように、基底行列Ｕと係数行列Ｈを推定する。
【０００６】
【数２】
2014170377.tif 000004
【０００７】
上記の式（２）において、基底行列Ｕを構成する列ベクトルｕｒ（ｒ＝｛１，…，Ｒ｝）は、（ｕ１ｒ，…，ｕＭｒ）Ｔで表される基底ベクトルであり、各要素ｕｉｒ（ｉ＝｛１，…，Ｍ｝）は単語ｗｉに対応する。また、係数行列Ｈを構成する列ベクトルｈｊ（ｊ＝｛１，…，Ｄ｝）は、（ｈ１ｊ，…，ｈＲｊ）Ｔであり、各要素ｈｒｊは基底ベクトルｕｒがｊ番目の文書に寄与している度合いを表す。
【０００８】
基底行列Ｕの列数Ｒは基底の数であり、この列数Ｒを観測数Ｄより小さくするため、上記演算は近似計算となる。また、誤差を少なくするように元の文書行列Ｘを再構成することから、基底行列Ｕには、必然的に文書行列Ｘに頻出する単語のパターンが基底（基底ベクトルｕｒ）として現れることになる。例えば、非特許文献１のｆｉｇ．１に掲載されている顔画像の例では、目や鼻といった顔画像に頻出するパターンが基底として現れている。また、非特許文献１のｆｉｇ．４に掲載されている文書行列に対する例では、特定の話題において頻出する単語(ニュースの話題の場合、「ｐｒｅｓｉｄｅｎｔ（大統領）」という単語)に高い値を有する基底が複数得られている。
この性質により、例えばある文書の特徴ベクトルを再構成する際に、一番寄与が大きい基底ベクトルが共通の文書は同じ話題の異なる文書であるとみなし、同一カテゴリに帰属させることができる。
【０００９】
一方、ＢＯＷ特徴ベクトルでは、文書の性質上、助詞、助動詞、接続詞といった機能語のカウント値が、話題の特徴を表す単語のカウント値と比較して大きくなることが知られている。この様な単語の分布傾向をもってその文書のスタイル（例えば、です、ます調、だ、である調など)と呼ぶ。このスタイルが、分類しようとする文書の中である程度統一されている場合、非負値行列因子分解の性質として、その様な機能語の頻度分布が１つの頻出パターンとして、基底行列Ｕのある列に現れる。しかし、スタイルが統一されていない場合、スタイルの頻度分布が複数の頻出パターンとして基底行列Ｕに学習されてしまう場合がある。つまりこの場合、話題による分類ではなく、スタイルによる分類となってしまい、話題による分類を目的とした場合は不適切な分類結果となってしまう。
【００１０】
この問題に対して、ＢＯＷ特徴量にＴＦ−ＩＤＦ（term frequency - inverse document frequency）重み付けを行うことによる対処が知られている。ＴＦ−ＩＤＦ重み付けとは、ｊ番目の文書における単語ｗｉの出現回数ｎｉｊに、次式（３）で定義されるＩＤＦ値ｉｄｆ（ｉ）を乗じるものである。
【００１１】
【数３】
2014170377.tif 000005
【００１２】
ただし、ｄｆ（ｉ）は、文書数Ｄの文書のうち単語ｗｉが出現する文書の数である。式（３）の定義から明らかな様に、このＴＦ−ＩＤＦ重み付けを施すことで、ＢＯＷ特徴ベクトルは、多くの文書に共通して出現する機能語のカウント値が小さくなり、ある特定の話題において偏って出現する内容語のカウント値が大きくなる。
【００１３】
一方、特許文献１には、予めカテゴリ分けされた文書を用意しておき、文書のキーワードとなる単語の重要度重みの計算に、文書のカテゴリ情報を反映する方法が開示されている。また、特許文献２には、特定の分野の文書を特徴付ける適切なキーワードを特定するための単語重要度重み計算法が開示されている。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特許第４００８５５１号公報
【特許文献２】特許第４６３９３８８号公報
【非特許文献】
【００１５】
【非特許文献１】Daniel D. Lee，H. Sebastian Seung，“Learning the parts of objects by non-negative-matrix-factorization.”，Nature，Vol.401，pp.788-791，1999年
【発明の概要】
【発明が解決しようとする課題】
【００１６】
しかしながら、ＴＦ−ＩＤＦ重み付けで先述の課題が全て解決されるわけではない。たとえば、Ｄｌ本の文書に共通して現れる機能語と、Ｄｎ＝Ｄｌ（ｎ≠ｌ）本の文書に共通して現れる内容語は、ＩＤＦ値の定義に従えば同じ重みが与えられる。言い換えれば、内容を表す単語のように、出現頻度は小さいがある程度偏った文書に出現する単語と、スタイルに寄与する単語のように、出現頻度が大きく、ある程度偏った文書に出現する機能語とに、同様の重みを与える。文書分類の目的からは、内容（話題）を表す単語については重みを大きくし、スタイルに相当する様な機能語に対しては小さな重みを与えることが望ましい。
また、特許文献１、特許文献２とも、各文書のキーワード抽出に関する技術であり、単語の出現頻度を利用して文書の特徴を解析する際に、スタイルを表す機能語の影響を抑えるものではない。
【００１７】
本発明はこの様な課題を鑑みてなされたものであり、文書に出現する単語の頻度を利用して文書の特徴を解析する際に、スタイルに相当する単語の出現頻度の影響を抑えることができる文書解析装置、及びプログラムを提供する。
【課題を解決するための手段】
【００１８】
［１］  本発明の一態様は、複数の文書データそれぞれにおける各単語の出現頻度を表す特徴量を並べた文書行列に因子分解を行い、機能語の出現頻度分布を表す基底が前記文書データそれぞれに寄与している度合いを取得する因子分解部と、前記因子分解部が取得した前記基底の寄与の度合いに基づいて前記文書データをスタイル別にカテゴリ分けし、前記文書データの前記特徴量が表す前記機能語の出現頻度を、当該文書データが属する前記スタイルにおける前記機能語の出現頻度に応じて低減させる重み付け処理部と、前記重み付け処理部により前記機能語の出現頻度が低減された前記特徴量を用いて前記文書データの特徴を解析する解析部と、を備えることを特徴とする文書解析装置である。
この発明によれば、文書解析装置は、複数の文書データそれぞれについて生成した特徴量を並べて文書行列を生成し、因子分解する。特徴量は、文書データにおいて各単語が出現する頻度を表し、因子分解には、例えば、非負値行列因子分解が用いられる。文書のスタイルに寄与する機能語は、話題を表す単語よりも出現頻度が多いため、文書解析装置は、非負値行列因子分解によって、機能語の出現頻度分布を表す基底と、その基底が各文書データそれぞれに寄与している度合いを得る。機能語の出現頻度分布は文書のスタイルを表していることから、文書解析装置は、各基底が各文書データに寄与している度合いに基づいて文書データをスタイル別にカテゴリ分けする。文書解析装置は、文書データの特徴量が表す機能語の出現頻度を、当該文書データが属するスタイルにおける機能語の出現頻度に応じて低減するよう重み付けを行い、重み付け後の特徴量を用いて文書データの特徴を解析する。
これにより、文書解析装置は、文書に出現する単語の出現頻度で表される特徴量を用いて文書の特徴を解析する際に、その解析に用いる特徴量に対してスタイルに相当する機能語の出現頻度を抑制する重み付けを行う。この重み付けを行った特徴量を用いて文書の特徴を解析することにより、話題に関する単語の出現頻度に基づいた文書解析の精度が向上する。
【００１９】
［２］  本発明の一態様は、上述する文書解析装置であって、探索文書データにおける各単語の出現頻度を表す特徴量を生成する探索文書特徴抽出部と、前記スタイルにおける前記機能語の出現頻度に応じて、前記探索文書特徴抽出部が生成した前記特徴量が表す前記機能語の出現頻度を低減する探索文書重み付け処理部と、前記探索文書重み付け処理部により前記機能語の出現頻度が低減された前記特徴量と、前記解析部による前記文書データの特徴の解析結果とに基づいて、前記探索文書データに類似する前記文書データを探索する類似文書探索部とをさらに備える、ことを特徴とする。
この発明によれば、文書解析装置は、探索文書データにおいて各単語が出現する頻度をカウントし、そのカウント値を表す特徴量を生成する。文書解析装置は、探索文書データの特徴量が表す機能語の出現頻度を、解析済みの文書データにおける機能語の出現頻度に応じて低減するよう重み付けを行う。文書解析装置は、重み付け後の探索文書データの特徴量を用いて、解析済みの複数の文書データの中から類似する文書データを探索する。
これにより、文書解析装置は、探索文書に出現する単語の出現頻度を表す特徴量を用いて解析済みの文書の中からこの探索文書に類似した文書を探索する際に、探索文書の特徴量に対してスタイルに相当する機能語の出現頻度を抑制する重み付けを行う。文書解析装置は、機能語の出現頻度を抑制した特徴量を用いて類似する文書を探索するため、類似文書の検出精度が向上する。
【００２０】
［３］  本発明の一態様は、上述する文書解析装置であって、前記重み付け処理部は、前記因子分解部が取得した前記基底の寄与の度合いに基づいて前記文書データをスタイル別にカテゴリ分けし、前記文書データの前記特徴量が表す前記機能語の出現頻度を、当該文書データが属する前記スタイルに最も寄与の度合いが大きな前記基底が示す前記機能語の出現頻度分布に応じて低減する、ことを特徴とする。
この発明によれば、文書解析装置は、文書データの特徴量が表す機能語の出現頻度を、当該文書データのスタイルを表す基底が示す機能語の出現頻度分布に応じて低減するよう重み付けを行う。
これにより、文書解析装置は、出現頻度が大きい機能語ほど基底において大きな値を有することを利用して、文書データの特徴量に対し、機能語の出現頻度を低減するように重み付けを行うことができる。
【００２１】
［４］  本発明の一態様は、上述する文書解析装置であって、前記重み付け処理部は、前記因子分解部が取得した前記基底の寄与の度合いに基づいて前記文書データをスタイル別にカテゴリ分けし、前記スタイル別に、当該スタイルに属する前記文書データのうち各単語が出現する文書データの割合を算出し、算出した割合が多いほど重みが小さくなるように各単語の重みを決定し、前記文書データの前記特徴量が表す各単語の出現頻度に、当該文書データが属する前記スタイルについて決定した各単語の前記重みを適用する、ことを特徴とする。
この発明によれば、文書解析装置は、スタイル別に、各単語が出現する文書の割合が多いほど重みが小さくなるようにそれら各単語の重みを決定し、文書データの特徴量が表す各単語の出現頻度に、当該文書データのスタイルについて決定した各単語の重みを適用する。
これにより、文書解析装置は、同じスタイルに属する文書の中ではそのスタイルに依存した機能語が出現する文書の割合が高いことを利用して、文書データの特徴量に対し、機能語の出現頻度を低減するように重み付けを行うことができる。
【００２２】
［５］  本発明の一態様は、コンピュータを、複数の文書データそれぞれにおける各単語の出現頻度を表す特徴量を並べた文書行列に因子分解を行い、機能語の出現頻度分布を表す基底が前記文書データそれぞれに寄与している度合いを取得する因子分解手段と、前記因子分解手段が取得した前記基底の寄与の度合いに基づいて前記文書データをスタイル別にカテゴリ分けし、前記文書データの前記特徴量が表す前記機能語の出現頻度を、当該文書データが属する前記スタイルにおける前記機能語の出現頻度に応じて低減させる重み付け処理手段と、前記重み付け処理手段により前記機能語の出現頻度が低減された前記特徴量を用いて前記文書データの特徴を解析する解析手段と、を具備する文書解析装置として機能させるためのプログラムである。
【発明の効果】
【００２３】
本発明によれば、文書に出現する単語の頻度を利用して文書の特徴を解析する際に、スタイルに相当する単語の出現頻度の影響を抑えることができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の一実施形態における文書解析装置の機能ブロック図である。
【図２】同実施形態による文書分類部の処理フローである。
【図３】同実施形態による文書探索部の処理フローである。
【図４】同実施形態による文書データベースが記憶する文書データの例を示す図である。
【図５】同実施形態による第一単語重みデータベースが記憶するデータの例を示す図である。
【図６】同実施形態による第一文書重みデータベースが記憶するデータの例を示す図である。
【図７】同実施形態による第二単語重みデータベースが記憶するデータの例を示す図である。
【図８】同実施形態による第二文書重みデータベースが記憶するデータの例を示す図である。
【図９】同実施形態による分類結果データベースが記憶するデータの例を示す図である。
【発明を実施するための形態】
【００２５】
以下、図面を参照しながら本発明の一実施形態を詳細に説明する。なお、本明細書において、以下のような行列、ベクトル、または要素を便宜上、「（Ａｂ）−１」、「（ａｂｃ）Ｔ」、「ａｂｃ＿ｄ」、「ａｂ（ｃ＿ｄ）（ｅ＿ｆ）」のように記載する。なお、右肩の「Ｔ」は、行列またはベクトルの転置を示す。
【００２６】
【数４】
2014170377.tif 000006
【００２７】
[概要]
本発明の一実施形態による文書解析装置は、コンピュータに保存された大量の文書データから、同じ話題について書かれた異なる文書データを同じクラスタに分類する。この分類を行うために、本実施形態による文書解析装置は、各文書データのＢＯＷ（Ｂａｇ−ｏｆ−Ｗｏｒｄｓ）特徴ベクトルを並べた文書行列に対して行列因子分解を施し、文書データの特徴を解析する。ＢＯＷ特徴ベクトルは、文書データにおける各単語の出現回数を要素とするベクトルである。本実施形態による文書解析装置は、行列因子分解を行う際、ＢＯＷ特徴ベクトルに対して、スタイルを表す機能語（助詞、副詞など）の出現頻度を、非負値行列因子分解を用いて抑制する。スタイルを表す機能語は、文書データを話題別に分類するために行う際の文書データの特徴解析に悪影響を及ぼすが、本実施形態では、機能語の出現頻度を抑制することによりその悪影響を低減させ、文書分類精度を向上させる。
【００２８】
機能語の出現頻度の抑制のため、本実施形態による文書解析装置は、文書データの特徴解析を行う前に、文書行列に非負値行列因子分解を行う。これにより、スタイルに相当する機能語の出現頻度の分布を明示的に抽出し、ＢＯＷ特徴ベクトルにおける単語出現頻度の重み付けに利用する。非負値行列因子分解の頻出パターン抽出の考え方によれば、非特許文献１では顔画像において目に相当する様なパーツが抽出された様に、ＢＯＷ特徴量の場合では、ある文書集合に共通して現れ、かつ、出現頻度の高い機能語の分布をよく近似する様に学習が進む。従って、基底の数を十分小さくとることで、基底としてスタイルが抽出される。スタイルとは、ある文書集合に共通して現れる、出現頻度の高い機能語の頻度分布であり、スタイルとして抽出された基底を利用することで、各文書データのＢＯＷ特徴ベクトルに対してスタイルの抑制が可能となる。本実施形態による文書解析装置は、ｊ＝｛１，…，Ｄ｝番目の各文書データから得られたＢＯＷ特徴ベクトルｘｊを並べて文書行列Ｘとし、非負値行列因子分解により、文書行列Ｘを基底行列Ｕと係数行列Ｈに分解する。これにより、文書行列Ｘに頻出するパターンが基底行列Ｕに現れることになる。
【００２９】
一般的に、文書のＢＯＷ特徴量では、話題に依存する内容語より、スタイルに相当する機能語の出現頻度が大きく現れる。非負値行列因子分解の頻出パターンを抽出する性質から、基底行列Ｕを構成する列ベクトルの数（基底数）Ｒを、文書データの数Ｄより非常に小さくとる（例えば、１０００分の１程度）と、スタイルに相当する単語が高い値を持つ基底行列Ｕが得られる。本実施形態の文書解析装置は、ＢＯＷ特徴ベクトルが示す各単語の出現頻度のうち、スタイルに相当する単語の出現頻度を抑制するために、この基底行列Ｕの列ベクトル（基底ベクトル）を用いてＢＯＷ特徴ベクトルに重み付けを施す。
【００３０】
具体的な重み付けの手順を説明する。まず、係数行列Ｈの列ベクトルｈｊ＝（ｈ１ｊ，…，ｈＲｊ）Ｔに含まれる要素の中で最大の値を示す要素のインデックスをｋ（ｋ＝｛１，…，Ｒ｝）とする。つまり、ｋを、以下の式（４）のように定義する。
【００３１】
【数５】
2014170377.tif 000007
【００３２】
このｋに対応する基底ベクトルｕｋが、ｊ番目の文書データのスタイルを近似的に表していると考えられる。従って、本実施形態による文書解析装置は、以下のいずれかの方法でスタイルの影響を抑える重み付け処理を行う。
【００３３】
（１）学習したスタイル依存分布である基底ベクトルｕｋを直接利用する。基底ベクトルｕｋは、各単語ｗｉに対応した要素ｕｉｋ（ｉ＝｛１，…，Ｍ｝）により表される。本実施形態による文書解析装置は、ダイナミックレンジを調整する指数関数などの関数ｆ（・）を、基底ベクトルｕｋの各要素ｕｉｋに作用させ、その算出結果の逆数を重みとする。本実施形態による文書解析装置は、要素ｕｉｋから算出した重みを、ＢＯＷ特徴ベクトルｘｊにおいて単語ｗｉの出現頻度を表す要素ｘｉｊに乗算し、スタイルの影響を低減する。
【００３４】
（２）本実施形態による文書解析装置は、ｋが同値の文書データを集めてサブコーパスを構成し、そのサブコーパス内で各単語ｗｉのＩＤＦ値を算出する。本実施形態による文書解析装置は、ｊ番目の文書データから得られたＢＯＷ特徴ベクトルｘｊの要素ｘｉｊに、このｊ番目の文書データが属するサブコーパスについて算出した単語ｗｉのＩＤＦ値を乗算することにより、ＴＦ−ＩＤＦ重み付けを施す。
【００３５】
本実施形態の文書解析装置は、上述の（１）または（２）の重み付け方法により重み付けしたＢＯＷ特徴ベクトルを並べた文書行列に対して非負値行列因子分解を行い、得られた係数行列により文書を分類する。
【００３６】
[文書解析装置の構成]
図１は、本発明の一実施形態による文書解析装置１００の機能ブロック図である。同図に示すように、文書解析装置１００は、文書分類部１、及び文書探索部３を備えて構成される。
【００３７】
文書分類部１は、文書データベース１０（以下、「データベース」を「ＤＢ」と記載する。）、文書特徴抽出部１１、第一因子分解部１２（因子分解部）、第一単語重みＤＢ１３、第一文書重みＤＢ１４、重み付け処理部１５、第二因子分解部１６(解析部）、第二単語重みＤＢ１７、第二文書重みＤＢ１８、分類部１９(解析部）、及び分類結果ＤＢ２０を備えて構成される。
【００３８】
文書ＤＢ１０は、多種多様な話題やスタイルで構成される大量の文書データを記憶する。文書特徴抽出部１１は、文書ＤＢ１０に記憶されている各文書データの特徴量を抽出する。本実施形態で抽出する特徴量は、ＢＯＷ特徴量であり、文書データにおける各単語の出現回数を並べたベクトル（ＢＯＷ特徴ベクトル）である。第一因子分解部１２は、文書特徴抽出部１１により各文書データから抽出された特徴量を並べた文書行列に対して非負値行列因子分解を実行し、その結果として基底行列と係数行列を得る。第一単語重みＤＢ１３は、第一因子分解部１２により得られた基底行列を示す単語の重み係数を記憶する。第一文書重みＤＢ１４は、第一因子分解部１２により得られた係数行列を示す文書重み係数を保存する。
【００３９】
重み付け処理部１５は、文書特徴抽出部１１により抽出された文書データの特徴量に対し、第一単語重みＤＢ１３に記憶されている単語重み係数の値、及び第一文書重みＤＢ１４に記憶されている文書重み係数の値に基づいて重み付け処理を施す。第二因子分解部１６は、重み付け処理部１５により重み付け処理された後の特徴量を並べた文書行列に対し、非負値行列因子分解を実行し、その結果として基底行列と係数行列を得る。第二単語重みＤＢ１７は、第二因子分解部１６により得られた基底行列を示す単語重み係数を記憶する。第二文書重みＤＢ１８は、第二因子分解部１６により得られた係数行列を示す文書重み係数を記憶する。分類部１９は、第二単語重みＤＢ１７に記憶されている単語重み係数の値、及び第二文書重みＤＢ１８に記憶されている文書重み係数の値に基づいて、文書ＤＢ１０に格納されている文書データの分類を行う。分類結果ＤＢ２０は、分類部１９による分類結果を保存する。
【００４０】
文書探索部３は、探索文書特徴抽出部３１、探索文書重み付け処理部３２、及び類似文書探索部３３を備えて構成される。
文書探索部３に、探索のキーとなる文書データである探索文書データが入力されると、探索文書特徴抽出部３１は、入力された探索文書データの特徴量を抽出する。この特徴量は、文書特徴抽出部１１により抽出される特徴量と同様、ＢＯＷ特徴量である。探索文書重み付け処理部３２は、探索文書特徴抽出部３１が抽出した特徴量に対し、文書分類部１の第一単語重みＤＢ１３に記憶されている単語重み係数の値、及び第一文書重みＤＢ１４に記憶されている文書重み係数の値に基づいて重み付け処理を施す。類似文書探索部３３は、探索文書重み付け処理部３２により重み付けされた特徴量と、第二単語重みＤＢ１７に記憶されている単語重み係数の値、及び第二文書重みＤＢ１８に記憶されている文書重み係数の値とに基づいて類似する文書データを探索し、出力する。
【００４１】
[文書解析装置の動作]
続いて、図１に示す文書解析装置１００の具体的な動作について説明する。文書ＤＢ１０には予め、大量の文書データが記憶されている。
図4は、文書ＤＢ１０に記憶されている文書データの例を示す図である。同図に示すように、文書データは、文書を特定する文書ＩＤと、文書名と、文書内容のテキストとを対応付けたデータである。
【００４２】
≪文書分類部１の動作≫
図２は、文書分類部１の処理フローを示す図である。同図を参照しながら、文書分類部１の動作について詳細に説明する。
【００４３】
＜ステップＳ１１０：文書特徴抽出処理＞
文書特徴抽出部１１は、文書ＤＢ１０に記憶されている各文書データの文書内容が示すテキストに対し、文を形態素に分ち書きする形態素解析を施す。この形態素解析には、既存の技術を用いることができ、例えば、和布蕪（http://mecab.googlecode.com/svn/trunk/mecab/doc/index.html）というソフトウェアを用いることで実現可能である。文書特徴抽出部１１は、文書データ毎に、分かち書きされたテキスト内における各形態素の出現回数をカウントし、それら各形態素の出現回数を要素として並べて特徴ベクトルを生成する。以下に、この操作を数式で表現する。
【００４４】
まず、文書特徴抽出部１１は、文書ＤＢ１０に記憶されている全ての文書データそれぞれに出現する形態素を取得すると、取得した形態素から異なる表記の形態素を抽出し、これら抽出した形態素の集合を語彙として得る。文書特徴抽出部１１は、得られた語彙に含まれる各形態素を、単語ｗｉ（ｉ＝１，…，Ｍ）とする。これにより、例えば、ｗ１＝“こんにちは”、ｗ２＝“サバ”、ｗ３＝“ああ”、…のような語彙が得られる。文書特徴抽出部１１は、文書ＤＢ１０に記憶されている文書データのインデックスをｊ＝｛１，…，Ｄ｝とおくと、文書データの文書ＩＤとインデックスｊとの対応付けを記憶しておく。なお、本実施形態では、文書データの文書ＩＤ、及びインデックスがともにｊであるとし、文書ＩＤとインデックスｊとの対応付けの記憶を省略する。インデックスｊの文書データを文書ｊとすると、文書特徴抽出部１１は、以下の式（５）のように各文書ｊのＢＯＷ特徴量である特徴ベクトルｘｊを生成する。
【００４５】
【数６】
2014170377.tif 000008
【００４６】
ここで、ｎｉｊは、単語ｗｉが文書ｊに出現した回数である。
【００４７】
＜ステップＳ１２０：第一因子分解処理＞
第一因子分解部１２は、以下の式（６）に示すように、全ての文書ｊの特徴ベクトルｘｊを並べた文書行列Ｘを生成する。つまり、文書行列Ｘのｊ列は、文書ｊの特徴ベクトルｘｊである。
【００４８】
【数７】
2014170377.tif 000009
【００４９】
第一因子分解部１２は、生成した文書行列Ｘに対し、例えば、非負値行列因子分解などの行列因子分解手法を適用する。行列因子分解とは一般に、ある観測における特徴ベクトルを並べた行列を、観測数より少ない基底ベクトルの線形和で近似する手法であり、非負値行列因子分解や、特異値分解などが知られている。ここでは、特に非負値行列因子分解を用いる場合について述べる。
【００５０】
第一因子分解部１２は、以下の式（７）、及び式（８）に示すように、文書行列Ｘを非負値行列因子分解し、基底行列Ｕと係数行列Ｈを求める。
【００５１】
【数８】
2014170377.tif 000010
【００５２】
ここで、基底行列Ｕのｒ列目（ｒ＝｛１，…，Ｒ｝）の列ベクトルであるｕｒは、（ｕ１ｒ，…，ｕＭｒ）Ｔで表される基底ベクトルであり、各要素ｕｉｒ（ｉ＝｛１，…，Ｍ｝）は単語ｗｉに対応する。また、係数行列Ｈのｊ列目（ｊ＝｛１，…，Ｄ｝）の列ベクトルｈｊは、（ｈ１ｊ，…，ｈＲｊ）Ｔであり、各要素ｈｒｊは基底ベクトルｕｒが文書ｊに寄与する度合いを表す。
【００５３】
非負値行列因子分解を行うため、第一因子分解部１２は、文書行列Ｘに対し、ＸとＵＨとの間のある距離尺度Ｄ（Ｘ｜ＵＨ）が最小となる様な基底行列Ｕと係数行列Ｈを反復演算により求める。具体的には、第一因子分解部１２は、以下の式（９）に示すＥｕｃｌｉｄノルム、または、以下の式（１０）に示すＫＬ−Ｄｉｖｅｒｇｅｎｃｅを最小化する基底行列Ｕと係数行列Ｈを求める。なお、ｘｉｊは、文書ｊの特徴ベクトルｘｊにおける単語ｗｉに対応した要素ｎｉｊである。
【００５４】
【数９】
2014170377.tif 000011
【００５５】
【数１０】
2014170377.tif 000012
【００５６】
基底行列Ｕの列数Ｒは基底の数であり、この列数Ｒを観測数Ｄより小さくするため、式（７）に示す演算は近似計算となり、元の文書行列Ｘとの誤差を少なく再構成するため、必然的に文書行列Ｘに頻出するパターンが基底行列Ｕに現れることになる。
一般的に文書のＢＯＷ特徴量では、話題に依存する様な単語である内容語より、助詞、副詞の様な機能語が高い頻度を持つ。この機能語の出現頻度分布をスタイルと呼ぶ。非負値行列因子分解の頻出パターンを抽出する性質から、列数（基底の数）Ｒを文書データ数Ｄより非常に小さくとる（例えば、１０００分の１程度）と、スタイルに相当する単語が高い値を持つ基底行列Ｕが得られる。
【００５７】
第一因子分解部１２は、得られた基底行列Ｕの要素ｕｉｒに対し、以下の式（１１）に示す正規化を施す。
【００５８】
【数１１】
2014170377.tif 000013
【００５９】
式（１１）に示す正規化を施すことにより、基底ベクトルｕｒは、単語出現確率ベクトルと見なすことができる。この正規化を施すため、第一因子分解部１２は、ｒ行ｒ列目の要素ｓｒｒが、以下の式（１２）にように、基底行列Ｕのｒ列目の要素を全て加算した値であり、他の要素が０である対角行列Ｓを生成する。
【００６０】
【数１２】
2014170377.tif 000014
【００６１】
対角行列Ｓを用いて、以下の式（１３）が成立する。
【００６２】
【数１３】
2014170377.tif 000015
【００６３】
第一因子分解部１２は、ＵＳ−１を正規化した基底行列Ｕとして第一単語重みＤＢ１３に書き込み、ＳＨを係数行列Ｈとして第一文書重みＤＢ１４に書き込む。以下、正規化した基底行列Ｕのｋ列目を、スタイル分布ｕｋと記載する。
【００６４】
図５は、第一単語重みＤＢ１３に記憶されるデータの例を示す図である。同図に示すように、第一単語重みＤＢ１３は、単語ｗｉを識別する単語ＩＤ、単語名、基底ＩＤ、及び単語重み係数を対応付けたデータを記憶する。同図では、単語ＩＤ＝ｉは、単語ｗｉを表し、基底ＩＤ＝ｒは、基底行列Ｕにおけるｒ列目のスタイル分布ｕｒを表す。単語重み係数は、スタイル分布ｕｒの要素ｕｉｒの値であり、スタイル分布ｕｒにおける単語ｗｉの出現確率を示す。
【００６５】
図６は、第一文書重みＤＢ１４に記憶されるデータの例を示す図である。同図に示すように、第一文書重みＤＢ１４は、文書ＩＤ、基底ＩＤ、及び文書重み係数を対応付けたデータを記憶する。同図では、文書ＩＤ＝ｊは、文書ｊを表し、基底ＩＤ＝ｒは、基底行列Ｕにおけるｒ列目のスタイル分布ｕｒを表す。文書重み係数は、係数行列Ｈのｊ列目の列ベクトルｈｊの要素ｈｒｊの値であり、スタイル分布ｕｒが文書ｊに寄与している度合いを示す。
【００６６】
＜ステップＳ１３０：重み係数処理＞
次に、重み付け処理部１５は、第一単語重みＤＢ１３に記憶されている単語重み係数の値、及び第一文書重みＤＢ１４に記憶されている文書重み係数の値を用いて、各文書ｊのＢＯＷ特徴量である特徴ベクトルｘｊに重み付けを施す。そこでまず、重み付け処理部１５は、文書ｊに対応して第一文書重みＤＢ１４に保存されている列ベクトルｈｊの要素ｈｒｊのうち最大の値である要素を、その文書ｊのスタイルと定義する。つまり、重み付け処理部１５は、文書ｊが属するスタイルカテゴリをｃｊとおくと、以下の式（１４）により、各文書ｊのスタイルカテゴリｃｊを求める。
【００６７】
【数１４】
2014170377.tif 000016
【００６８】
重み付け処理部１５は、スタイルカテゴリｃｊ＝ｋ（ｋ＝｛１，…，Ｒ｝）である文書ｊの集合をサブコーパスとする。重み付け処理部１５は、ｋ番目のサブコーパスに含まれる文書ｊに、当該サブコーパス内において文書データを特定する番号ｊｋ＝｛１，…，Ｄｋ｝を付与する。以下、ｋ番目のサブコーパスのｊｋ番目の文書データを文書ｊｋと記載する。Ｄｋは、ｋ番目のサブコーパスに含まれる文書ｊｋの数であり、ΣｋＤｋ＝Ｄを満たす。
【００６９】
以上の手順から明らかな様に、ｋ番目のサブコーパスには、正規化した基底行列Ｕに含まれるスタイル分布ｕｋの寄与が大きな文書データが集まる。
なお、重み付け処理部１５は、文書ｊの文書ＩＤを示すインデックスｊと、文書ｊが属するサブコーパス内におけるインデックスｊｋとを対応付けて記憶するとともに、第二文書重みＤＢ１８に書き込んでおく。
【００７０】
重み付け処理部１５は、ｋ番目のサブコーパス内の文書ｊｋにおける単語ｗｉの出現回数をｎｉ（ｊ＿ｋ）とし、ｉ行ｊｋ列目の要素ｘｋｉ（ｊ＿ｋ）＝ｎｉ（ｊ＿ｋ）である文書行列Ｘｋを構築する。つまり、文書行列Ｘｋのｊｋ番目の列ベクトルは、インデックスｊｋに対応したインデックスｊの文書ｊについて、文書特徴抽出部１１がステップＳ１１０において抽出した特徴ベクトルｘｊである。
重み付け処理部１５は、構築した文書行列Ｘｋに対し、スタイルの影響を抑制する様な重み付け演算処理を行う。重み付け演算として、以下の２つの例を示す。
【００７１】
（１）重み付け演算に先に学習したスタイル依存分布ｕｋを利用する。重み付け処理部１５は、ダイナミックレンジを調整する指数関数などの関数ｆ（・）をスタイル依存分布ｕｋの各要素ｕｉｋに作用させ、要素ｕｉｋについての算出結果の逆数を、各文書ｊｋの単語ｗｉの出現回数ｎｉ（ｊ＿ｋ）に乗算し、スタイルの影響を低減する。つまり、重み付け処理部１５は、ｉ行ｉ列目の要素ｔｋｉｉ＝ｆ（ｕｉｋ）であり、他の要素が０である対角行列Ｔｋを生成し、（Ｔｋ）−１Ｘｋという処理を行って特徴量行列を生成する。例えば、ｆ（・）には、ｆ（ｘ）＝１０ａｘ（ａ＞０）等を用いることができる。
出現頻度が大きい単語ほど、スタイル依存分布ｕｋにおいて大きな値を持つ。そこで、ｆ（・）として、例えば、上記のような指数関数ｆ（ｘ）＝１０ａｘなどを用いることで、１／ｆ（ｕｉｋ）は、出現頻度の大きい単語、つまり、スタイルに相当する様な機能語ほど出現頻度の低減の効果が大きくなるように、より小さな重みとすることができる。
【００７２】
（２）重み付け処理部１５は、サブコーパスごとにＴＦ−ＩＤＦ値による重み付けを行う。つまり、重み付け処理部１５は、ｋ番目のサブコーパスに含まれる文書データのうち各単語ｗｉが出現する文書の数ｄｆ（ｉｋ）をカウントし、以下の式（１５）により各単語ｗｉのＩＤＦ値ｉｄｆ（ｉｋ）を算出する。
【００７３】
【数１５】
2014170377.tif 000017
【００７４】
重み付け処理部１５は、ｋ番目のサブコーパスについて算出した各単語ｗｉのＩＤＦ値ｉｄｆ（ｉｋ）を、各文書ｊｋにおける単語ｗｉの出現回数を表す要素ｘｉ（ｊ＿ｋ）に乗算する。つまり、重み付け処理部１５は、ｉ行ｉ列目の要素ｑｋｉｉ＝ｉｄｆ（ｉｋ）であり、他の要素が０である対角行列Ｑｋを生成し、ＱｋＸｋという処理を行って特徴量行列を生成する。
非負値行列因子分解の頻出パターン抽出の性質より、サブコーパス内では、スタイルに相当する様な機能語の出現頻度はある程度類似していると考えられる。従って、そのサブコーパス内でＩＤＦ値を計算すると、サブコーパス内で共通に現れる単語に対しては小さな値となるので、スタイルに相当する機能語の出現頻度を抑制する効果がある。
【００７５】
なお、重み付け処理は必須ではなく、同じスタイルを持つ文書集合を特定すること、およびそのスタイル分布を抽出することが本実施形態の本質である。
【００７６】
＜ステップＳ１４０：第二因子分解処理＞
続いて、第二因子分解部１６は、ステップＳ１３０において重み付け処理部１５が重み付け処理を行った特徴量行列を用いて、再び非負値行列因子分解を行う。以下では、ステップＳ１３０の（１）に示す重み付け演算により算出された特徴量行列（Ｔｋ）−１Ｘｋを用いる場合を例に説明する。ステップＳ１３０の（２）に示す重み付け演算により算出された特徴量行列を用いる場合、（Ｔｋ）−１Ｘｋに代えてＱｋＸｋを用いればよい。因子分解の方法として、サブコーパス毎に実施する場合と、サブコーパスを統合して実施する場合がある。
【００７７】
（サブコーパス毎に実施する場合）
第二因子分解部１６は、サブコーパスそれぞれについて、例えば、式（１６）のＫＬ−Ｄｉｖｅｒｇｅｎｃｅを最小化する基底行列Ｕｋと係数行列Ｈｋを求める。
【００７８】
【数１６】
2014170377.tif 000018
【００７９】
ここで、基底行列Ｕｋのｒｋ列目（ｒｋ＝｛１，…，Ｒｋ｝）の列ベクトルであるｕｋｒ＿ｋは、（ｕｋ１（ｒ＿ｋ），…，ｕｋＭ（ｒ＿ｋ））Ｔで表される基底ベクトルであり、各要素ｕｋｉ（ｒ＿ｋ）（ｉ＝｛１，…，Ｍ｝）は単語ｗｉに対応する。また、係数行列Ｈｋのｊｋ列目（ｊｋ＝｛１，…，Ｄｋ｝）の列ベクトルｈｋｊ＿ｋは、（ｈｋ１（ｊ＿ｋ），…，ｈｋ（Ｒ＿ｋ）（ｊ＿ｋ））Ｔであり、各要素ｈｋ（ｒ＿ｋ）（ｊ＿ｋ）は、基底ベクトルｕｋｒ＿ｋが文書ｊｋに寄与する度合いを表す。なお、各サブコーパスの基底数（列数）Ｒｋは異なっていてもよい。基底行列Ｕｋにおいてはスタイルを表す基底の影響が低減されるため、基底行列Ｕｋの基底数（列数）Ｒｋは、スタイルの影響を抑制せずに非負値行列因子分解を行う従来技術よりも少ない基底数とすることができる。
第二因子分解部１６は、求めた基底行列Ｕｋをそれぞれ第二単語重みＤＢ１７に書き込み、係数行列Ｈｋを第二文書重みＤＢ１８に書き込む。
【００８０】
図７は、第二単語重みＤＢ１７に記憶されるデータの例を示す図である。同図に示すように、第二単語重みＤＢ１７は、単語ＩＤ、単語名、サブコーパスＩＤ、基底ＩＤ、及び単語重み係数を対応付けたデータを記憶する。同図では、単語ＩＤ＝ｉは、単語ｗｉを表し、サブコーパスＩＤ＝ｋは、ｋ番目のサブコーパスを表し、基底ＩＤ＝ｒｋは、基底行列Ｕｋにおけるｒｋ列目の基底ベクトル（列ベクトル）ｕｋｒ＿ｋを表す。単語重み係数は、基底ベクトルｕｋｒ＿ｋの要素ｕｋｉ（ｒ＿ｋ）の値であり、基底ベクトルｕｋｒ＿ｋにおける単語ｗｉの出現確率を示す。
【００８１】
図８は、第二文書重みＤＢ１８に記憶されるデータの例を示す図である。同図に示すように、第二文書重みＤＢ１８は、文書ＩＤ、サブコーパスＩＤ、サブコーパス内において文書データを識別するサブコーパス内文書ＩＤ、基底ＩＤ、及び文書重み係数を対応付けたデータを記憶する。同図では、文書ＩＤ＝ｊは、文書ｊを表し、サブコーパスＩＤ＝ｋは、ｋ番目のサブコーパスを表し、サブコーパス内文書ＩＤ＝ｊｋは、文書ｊｋを表し、基底ＩＤ＝ｒｋは、基底行列Ｕｋにおけるｒｋ列目の基底ベクトルｕｋｒ＿ｋを表す。文書重み係数は、係数行列Ｈｋのｊｋ列目の列ベクトルｈｋｊ＿ｋの要素ｈｋ（ｒ＿ｋ）（ｊ＿ｋ）の値であり、基底ベクトルｕｋｒ＿ｋが文書ｊｋに寄与している度合いを表す。
【００８２】
（サブコーパスを統合する場合）
第二因子分解部１６は、以下の式（１７）に示すように、各サブコーパスについて重み付け処理を行った特徴量行列を並べ、統合特徴量行列ＸＣを生成する。
【００８３】
【数１７】
2014170377.tif 000019
【００８４】
第二因子分解部１６は、統合特徴量行列ＸＣの非負値行列因子分解を行う。例えば、第二因子分解部１６は、以下の式（１８）のＫＬ−Ｄｉｖｅｒｇｅｎｃｅを最小化する基底行列ＵＣと係数行列ＨＣを求める。
【００８５】
【数１８】
2014170377.tif 000020
【００８６】
ここで、基底行列ＵＣのｒＣ列目（ｒＣ＝｛１，…，ＲＣ｝）の列ベクトルである（ｕＣ）ｒ＿Ｃは、（（ｕＣ）１（ｒ＿Ｃ），…，（ｕＣ）Ｍ（ｒ＿Ｃ））Ｔで表される基底ベクトルであり、各要素（ｕＣ）ｉ（ｒ＿Ｃ）（ｉ＝｛１，…，Ｍ｝）は単語ｗｉに対応する。また、係数行列ＨＣのＣｌ列目（Ｃｌ＝｛１，…，Ｄ｝）の列ベクトル（ｈＣ）Ｃｌは、（（ｈＣ）１Ｃｌ，…，（ｈＣ）（Ｒ＿Ｃ）Ｃｌ）Ｔであり、各要素（ｈＣ）（ｒ＿Ｃ）Ｃｌは基底ベクトル（ｕＣ）ｒ＿ＣがＣｌ列目に対応した文書データに寄与する度合いを表す。なお、基底行列ＵＣの基底数（列数）ＲＣは、基底行列Ｕの基底数Ｒと異なっていてもよい。基底行列ＵＣの基底数（列数）ＲＣは、スタイルの影響を抑制せずに非負値行列因子分解を行う従来技術の場合よりも少ない基底数とすることができる。
第二因子分解部１６は、求めた基底行列ＵＣが示す単語重み係数を第二単語重みＤＢ１７に書き込み、係数行列ＨＣが示す文書重み係数を第二文書重みＤＢ１８に書き込む。
【００８７】
＜ステップＳ１５０：分類処理＞
続いて、分類部１９は、第二単語重みＤＢ１７に記憶されている単語重みの値、及び、第二文書重みＤＢ１８に記憶されている文書重みの値を用いて、文書データを分類する。
【００８８】
（ステップＳ１４０においてサブコーパス毎に因子分解を行った場合）
分類部１９は、まず、サブコーパス毎に文書データの分類を行う。すなわち、分類部１９は、第二文書重みＤＢ１８からｋ番目のサブコーパスの係数行列Ｈｋを読み出し、係数行列Ｈｋの各列ベクトルｈｋｊ＿ｋのうち、最大値を示す要素の行のインデックスが同じ列に対応した文書データを同じカテゴリと判断する。
【００８９】
さらに、分類部１９は、サブコーパス間で文書データの分類を行う。分類部１９は、サブコーパス間の関連性を見るために、まず、第二文書重みＤＢ１８からｋ番目のサブコーパスの係数行列Ｈｋを読み出し、係数行列Ｈｋの各列ベクトルｈｋｊ＿ｋ毎に以下の処理を行う。
分類部１９は、列ベクトルｈｋｊ＿ｋから最大値を示す要素の行のインデックスｒｋを取得し、第二単語重みＤＢ１７に記憶されている基底行列Ｕｋからインデックスｒｋに対応した基底ベクトルｕｋｒ＿ｋを読み出す。続いて、分類部１９は、第二単語重みＤＢ１７に記憶されているｍ番目（ｋ≠ｍ）のサブコーパスの基底行列Ｕｍから各列ｎｍの基底ベクトルｕｍｎ＿ｍを読み出す。分類部１９は、（ｕｋｒ＿ｋ）Ｔｕｍｎ＿ｍを算出し、算出結果が一定値以上の基底ベクトルｕｍｎ＿ｍを特定する。分類部１９は、第二文書重みＤＢ１８に記憶されているｍ番目のサブコーパスの係数行列Ｈｍから、特定した基底ベクトルｕｍｎ＿ｍへの寄与が大きい列ベクトルｈｍｊ＿ｍを特定する。分類部１９は、特定した列ベクトルｈｍｊ＿ｍに対応した文書ｊｍと、インデックスｒｋが得られた係数行列Ｈｋの列ベクトルｈｋｊ＿ｋに対応した文書ｊｋとを同じカテゴリと判断する。
【００９０】
このように、分類部１９は、ｋ番目のサブコーパスの文書ｊｋについて係数行列Ｈｋの列ベクトルｈｋｊ＿ｋからインデックスｒｋが得られた場合、（ｕｋｒ＿ｋ）Ｔｕｍｎ＿ｍ（ｋ≠ｍ）が一定値以上の基底ベクトルｕｍｎ＿ｍへの寄与が大きいｍ番目のサブコーパスの文書ｊｍを同じカテゴリと判断する。
分類部１９は、同じカテゴリと判断した文書データ（文書ｊｋ及び文書ｊｍ）の文書ＩＤを対応付けて分類結果ＤＢ２０に書き込む。
【００９１】
（ステップＳ１４０において統合特徴量行列に因子分解を行った場合）
分類部１９は、第二文書重みＤＢ１８に記憶した係数行列ＨＣの各列ベクトルｈＣｌのうち、最大値を示す要素の行のインデックスが同じ文書データを同じカテゴリと判断する。分類部１９は、同じカテゴリと判断した文書データの文書ＩＤを対応付けて分類結果ＤＢ２０に書き込む。
【００９２】
図１０は、分類結果ＤＢ２０に記憶されるデータの例を示す図である。同図に示すように、分類結果ＤＢ２０は、文書ＩＤと、その文書ＩＤにより特定される文書データが属するカテゴリのカテゴリＩＤとを対応付けて記憶する。分類部１９は、同じカテゴリと判断した文書データの文書ＩＤに、それら文書ＩＤが属するカテゴリのカテゴリＩＤを対応付けて分類結果ＤＢ２０に書き込む。
【００９３】
≪文書探索部３の動作≫
図３は、文書探索部３の処理フローを示す図である。同図を参照しながら、図２に示す処理において保存された分類結果を用いて、キーとなる探索文書データと類似した話題の文書データを探す文書探索部３の動作について詳細に説明する。
【００９４】
＜ステップＳ２１０：文書特徴抽出処理＞
まず、探索文書特徴抽出部３１は、文書分類部１の文書特徴抽出部１１と同様の処理を行い、探索文書データから文書特徴量である特徴ベクトルｘ’＝（ｎ１’，…，ｎｉ’，…，ｎＭ’）Ｔを生成する。なお、ｎｉ’は、探索文書データが示すテキストに単語ｗｉが出現した回数である。
【００９５】
＜ステップＳ２２０：重み係数処理＞
続いて、探索文書重み付け処理部３２は、ステップＳ２１０において探索文書特徴抽出部３１が生成した特徴ベクトルｘ’に、文書分類部１の重み付け処理部１５と同様の処理により重み処理を施す。ただし、これは必須の処理ではない。探索文書重み付け処理部３２は、サブコーパスの重み（Ｔｋ）−１を特徴ベクトルｘ’にかけて、特徴ベクトル（Ｔｋ）−１ｘ’を算出する。なお、サブコーパスの重み（Ｔｋ）−１として、いずれかのサブコーパスの重みのみを用いてもよく、全てのサブコーパスの重みの平均値を用いてもよい。また、異なるサブコーパスの重みをそれぞれ特徴ベクトルｘ’にかけて複数の特徴ベクトルに変換してもよい。
【００９６】
＜ステップＳ２３０：類似文書抽出処理＞
類似文書探索部３３は、ステップＳ２２０において重み処理が施された特徴ベクトル（Ｔｋ）−１ｘ’と、第二単語重みＤＢ１７及び第二文書重みＤＢ１８に保存された単語重み係数、文書重み係数の値を用い、類似する文書データを探索して出力する。
【００９７】
（図２のステップＳ１４０においてサブコーパス毎に因子分解を行った場合）
類似文書探索部３３は、ｋが１番目からＲ番目のまでのサブコーパスのそれぞれについて、以下の処理を行う。
まず、類似文書探索部３３は、第二単語重みＤＢ１７に記憶されている単語重み係数で示される基底行列Ｕｋを用いて、以下の式（１９）により係数ベクトル（ｈ’）ｋを求める。
【００９８】
【数１９】
2014170377.tif 000021
【００９９】
類似文書探索部３３は、第二文書重みＤＢ１８に記憶されている文書重み係数で示される行列Ｈｋを読み出す。類似文書探索部３３は、以下の式（２０）を満たす係数行列Ｈｋの列ベクトルｈｋｊ＿ｋを全て特定し、特定した列ベクトルｈｋｊ＿ｋに対応した文書ｊｋを、探索文書データに類似する文書データであると判断する。つまり、類似文書探索部３３は、式（２０）の左辺により係数行列Ｈｋの各列ベクトルｈｋｊ＿ｋと、算出した係数ベクトル（ｈ’）ｋとのコサイン類似度を求め、算出したコサイン類似度が閾値τ以上である場合に、その列ベクトルｈｋｊ＿ｋに対応した文書ｊｋを、探索文書データに類似する文書データであると判断する。
【０１００】
【数２０】
2014170377.tif 000022
【０１０１】
類似文書探索部３３は、全てのサブコーパスについて式（２０）により探索文書データに類似すると判断した文書データ全てを文書ＤＢ１０から読み出して出力する。なお、文書データの全て（文書ＩＤ、文書名、文書内容）を出力してもよく、一部のみを出力してもよい。
【０１０２】
（図２のステップＳ１４０において統合特徴量行列に因子分解を行った場合）
類似文書探索部３３は、第二単語重みＤＢ１７に記憶されている単語重み係数で示される基底行列ＵＣを用いて、以下の式（２１）により係数ベクトルｈ’を求める。
【０１０３】
【数２１】
2014170377.tif 000023
【０１０４】
類似文書探索部３３は、第二文書重みＤＢ１８に記憶されている文書重み係数で示される係数行列ＨＣを読み出す。類似文書探索部３３は、上述した式（２０）の左辺と同様の計算により、係数行列ＨＣの各列ベクトル（ｈＣ）Ｃｌと、算出した係数ベクトルｈ’とのコサイン類似度を求める。類似文書探索部３３は、算出したコサイン類似度が所定の閾値以上である場合に、その列ベクトル（ｈＣ）Ｃｌに対応した文書ｊを、探索文書データに類似する文書データであると判断する。類似文書探索部３３は、探索文書データに類似すると判断した文書データ全てを文書ＤＢ１０から読み出して出力する。
【０１０５】
以上説明した実施形態の文書解析装置１００によれば、文書に出現する単語の出現頻度を特徴量として用いて文書の特徴を解析する際に、その特徴量に対してスタイルに相当する機能語の出現頻度を抑制する重み付けを行うことが可能となる。
【０１０６】
[その他]
なお、上述の文書解析装置１００は、内部にコンピュータシステムを有している。そして、文書解析装置１００の各機能部の動作の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータシステムが読み出して実行することによって、上記処理が行われる。ここでいうコンピュータシステムとは、ＣＰＵ及び各種メモリやＯＳ、周辺機器等のハードウェアを含むものである。
【０１０７】
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【符号の説明】
【０１０８】
１  文書分類部
１０  文書ＤＢ
１１  文書特徴抽出部
１２  第一因子分解部（因子分解部）
１３  第一単語重みＤＢ
１４  第一文書重みＤＢ
１５  重み付け処理部
１６  第二因子分解部(解析部）
１７  第二単語重みＤＢ
１８  第二文書重みＤＢ
１９  分類部(解析部）
２０  分類結果ＤＢ
３  文書探索部
３１  探索文書特徴抽出部
３２  探索文書重み付け処理部
３３  類似文書探索部
１００  文書解析装置
【図１】
2014170377.tif 000024
【図２】
2014170377.tif 000025
【図３】
2014170377.tif 000026
【図４】
2014170377.tif 000027
【図５】
2014170377.tif 000028
【図６】
2014170377.tif 000029
【図７】
2014170377.tif 000030
【図８】
2014170377.tif 000031
【図９】
2014170377.tif 000032