【実施例1】
【0040】
次に、本実施の形態に係る文書分類方法で行われる文書分類手順について
図2〜
図5を用いて説明する。本実施の形態における文書分類方法は、学習と分類の2段階で処理を行う。
【0041】
まず、学習の処理手順について
図2を用いて説明する。
【0042】
図2は、文書分類方法の学習手順を示すフロー図である。
【0043】
学習文書データ200に対してはあらかじめ人手により正解となるカテゴリが付与されており、以下では複数の学習文書データを一括で学習する実施例を挙げる。
【0044】
まず、入力処理部110は、学習文書データ200を1件読み込む(ステップS201)。
【0045】
文書解析部121は、読み込まれた学習文書データ200に対し、形態素解析および係り受け解析を実行し、文構造解析結果201を出力する(ステップS202)。例えば、
図6に示す例文は、形態素解析により
図8に示す結果となり、係り受け解析により
図9に示す結果となる。
【0046】
格要素抽出部122は、ステップS202によって抽出した文構造解析結果201から格要素および述語を抽出し、格要素抽出結果202を出力する(ステップS203)。例えば、
図6に示す例文は、格要素抽出により
図10に示す結果となる。
【0047】
また、格要素抽出部122は、格要素抽出結果202から、内容語の品詞(普通名詞、固有名詞、サ変名詞、形容詞的名詞、動詞、形容詞)を選択し、特徴単語抽出結果203を抽出する(ステップS204)。例えば、
図6に示す例文は、特徴単語抽出により
図11に示す結果となる。
図11に示すように、特徴単語抽出結果203は、学習文書データ200に付与されたカテゴリと、格要素及び述語ごとに抽出した特徴単語が出力され、学習文書ごとに作成される。
【0048】
また、格要素抽出部122は、抽出した特徴単語抽出結果203と、当該特徴単語が学習文書データ200に付与されたカテゴリに出現する文書数を重要度計算用学習辞書151の該当する箇所に1つ加算して登録する(ステップS205)。
図14は重要度計算用に用いる学習辞書の例を示したものである。同図に示すように、重要度計算用学習辞書151は、格要素抽出部122によって抽出された特徴単語と、当該特徴単語が出現したカテゴリに対する文書数を保持している。
【0049】
全ての学習文書データを処理したか否かを判断する(ステップS206)。
【0050】
ステップS206において、全ての学習文書データを処理していないと判断した場合(ステップS206:NO)は、ステップS201の処理に戻る。
【0051】
ステップS206において、全ての学習文書データを処理したと判断した場合(ステップS206:YES)、重要度計算部130は、ステップS204によって抽出した特徴単語抽出結果203と重要度計算用学習辞書151を用い、後述の計算式により重要度計算を実行し、特徴単語と、当該特徴単語に対する重要度の組204を出力する(ステップS207)。例えば、
図6に示す例文は、重要度計算により
図12に示す結果となる。このとき、
図12に示す特徴単語と、当該特徴単語に対する重要度の組204は学習文書ごとに作成される。
【0052】
ここで、ステップS207の重要度計算実行処理について、
図4を参照しながら詳細に説明する。
【0053】
図4は、重要度計算の詳細な処理手順を説明するフローチャートである。ここでは特徴単語に対する重要度として、統計指標による重み付けを行う。本実施例では、重要度計算の統計指標として、単語とカテゴリとのカイ2乗値を用いる。
【0054】
まず、特徴単語抽出結果401を1件読み込む(ステップS401)。なお、ここでいう特徴単語抽出結果401はステップS204によって抽出した特徴単語抽出結果203に対応するものを表す。
【0055】
統計指標の計算対象をカテゴリcと呼び、これを選択する。学習文書データはあらかじめ正解のカテゴリが付与されているため、特徴単語抽出結果401に付与された正解のカテゴリを選択する(ステップS402)。
【0056】
重要度計算用学習辞書151から、特徴単語抽出結果401に含まれる特徴単語w
iがカテゴリcに出現した文書数N
11を取得する(ステップS403)。
【0057】
単語w
iを含み、かつカテゴリcに属する文書数N
11と、単語w
iを含み、かつカテゴリcに属さない文書数N
10と、単語w
iを含まず、かつカテゴリcに属する文書数N
01と、単語w
iを含まず、かつカテゴリcに属さない文書数N
00と、全文書数Nにより、単語w
iとカテゴリcとのカイ2乗値χ
2(t,c)を次の式で計算する(ステップS404)。
【0058】
【数1】
【0059】
単語w
iの重要度に、(1)、(2)式で計算した単語w
iとカテゴリcのカイ2乗値χ
2(t,c)を割り当て、特徴単語と、当該特徴単語に対する重要度の組402を出力する(ステップS405)。
【0060】
特徴単語抽出結果401に含まれる全ての特徴単語w
iを処理したか否かを判断する(ステップS406)。
【0061】
ステップS406において、全ての特徴単語w
iを処理していないと判断した場合(ステップS406:NO)は、ステップS403の処理に戻る。
【0062】
ステップS406において、全ての特徴単語w
iを処理したと判断した場合(ステップS406:YES)は、全ての特徴単語抽出結果401を処理したか否かを判断する(ステップS407)。
【0063】
ステップS407において、全ての特徴単語抽出結果401を処理していないと判断した場合(ステップS407:NO)は、ステップS401の処理に戻る。
【0064】
ステップS407において、全ての特徴単語抽出結果401を処理したと判断した場合(ステップS407:YES)は、重要度計算処理を終了する。
【0065】
以上のように、すべての学習文書データから抽出されたすべての特徴単語について重要度を割り当て、特徴単語と、当該特徴単語に対する重要度の組402を出力する。
図14に示すように、同じ単語でもカテゴリによりカイ2乗値、つまり特徴単語の重要度が異なるため、これにより、そのカテゴリと関連の高い単語には、重要度が高くなるように計算される。なお、ここでいう特徴単語と、当該特徴単語に対する重要度の組402はステップS207で出力される特徴単語と、当該特徴単語に対する重要度の組204に対応するものを表す。
【0066】
再び
図2に戻り、学習処理部140は、ステップS207で抽出した特徴単語と、当該特徴単語に対する重要度の組204を用い、格要素および述語ごとに特徴量を構成する(ステップS208)。
【0067】
このとき、前記特徴量は、各行に一つの特徴単語を対応付け、特徴単語の重要度を要素値とする、多次元ベクトルにおける列ベクトルを構成する。
【0068】
しかる後、学習処理部140は、すべての学習文書に現れる格要素および述語ごとに抽出したすべての特徴単語と、当該特徴単語に対する重要度を要素値としたベクトルを学習文書単位で列方向に追加していくことで、学習特徴量として学習文書行列205を構成する(ステップS208)。
【0069】
学習処理部140は、ステップS208によって作成した学習文書行列205を分類計算用学習辞書152に行列形式で登録する(ステップS209)。
【0070】
図15は分類計算用に用いる学習辞書の例を示したものである。同図に示すように、分類計算用学習辞書152は、学習処理部140によって作成された学習特徴量を学習文書単位で保持している。
【0071】
以上、学習の処理手順を説明したが、次に、分類の処理手順について
図3を用いて説明する。
【0072】
図3は、文書分類方法の分類手順を示すフロー図である。
【0073】
未分類文書データ300に対してはカテゴリが付与されておらず、以下では1件の未分類文書データを分類する実施例を挙げる。
【0074】
まず、入力処理部110は、未分類文書データ300を読み込む(ステップS301)。
【0075】
文書解析部121は、入力された未分類文書データ300に対し、形態素解析および係り受け解析を実行し、文構造解析結果301を出力する(ステップS302)。
【0076】
格要素抽出部122は、ステップS302によって抽出した文構造解析結果301から格要素および述語を抽出し、格要素抽出結果302を出力する(ステップS303)。
【0077】
また、格要素抽出部122は、格要素抽出結果302から、内容語の品詞(普通名詞、固有名詞、サ変名詞、形容詞的名詞、動詞、形容詞)を選択し、特徴単語抽出結果303を出力する(ステップS304)。このとき、特徴単語抽出結果303には、格要素及び述語ごとに抽出した特徴単語が出力される。
【0078】
重要度計算部130は、抽出した特徴単語抽出結果303と重要度計算用学習辞書151を用い、重要度計算を実行し、特徴単語と、当該特徴単語に対する重要度の組304を出力する(ステップS305)。
【0079】
ここで、ステップS305の重要度計算実行処理について、
図4〜
図5を参照しながら詳細に説明する。
【0080】
図4は、重要度計算の詳細な処理手順を説明するフローチャートである。
【0081】
まず、特徴単語抽出結果401を読み込む(ステップS401)。なお、ここでいう特徴単語抽出結果401はステップS304によって抽出した特徴単語抽出結果303に対応するものを表す。
【0082】
統計指標の計算対象として、カテゴリcを選択する(ステップS402)。未分類文書データはカテゴリに依存しない指標が必要なため、カテゴリの選択手順について
図5を用いて説明する。
【0083】
図5は、未分類文書の重要度計算におけるカテゴリの選択手順を説明するフローチャートである。
【0084】
まず、特徴単語抽出結果501を読み込む(ステップS501)。なお、ここでいう特徴単語抽出結果501はステップS401によって抽出した特徴単語抽出結果401に対応するものを表す。
【0085】
重要度計算用学習辞書151から、特徴単語抽出結果401に含まれる特徴単語w
iが、あるカテゴリc
jに出現した文書数N
11を取得する(ステップS502)。
【0086】
単語w
iを含み、かつカテゴリc
jに属する文書数N
11と、単語w
iを含み、かつカテゴリc
jに属さない文書数N
10と、単語w
iを含まず、かつカテゴリc
jに属する文書数N
01と、単語w
iを含まず、かつカテゴリc
jに属さない文書数N
00と、全文書数Nにより、単語w
iとカテゴリc
jとの相互情報量I(U,C)を次の式で計算する(ステップS503)。
【0087】
【数2】
【0088】
カテゴリc
jのスコアに、(3)〜(6)式で計算した単語w
iとカテゴリc
jの相互情報量I(U,C)を加算し、特徴単語w
iとカテゴリc
jの依存度502を出力する(ステップS504)。
【0089】
全てのカテゴリc
jを処理したか否かを判断する(ステップS505)。
【0090】
ステップS505において、全てのカテゴリc
jを処理していないと判断した場合(ステップS505:NO)は、ステップS503の処理に戻る。
【0091】
ステップS505において、全てのカテゴリc
jを処理したと判断した場合(ステップS505:YES)は、特徴単語w
iが多岐のカテゴリに渡り出現する単語か否かを判断する(ステップS506)。本実施例では、次の式により得られるV(w
i)の値がある閾値ε(ε≧0)以下となる単語を分類多岐語と呼ぶこととする。
【0092】
【数3】
【0093】
ステップS506において、単語w
iが分類多岐語であると判断した場合(ステップS506:NO)は、ステップS508まで処理を進める。
【0094】
ステップS506において、単語w
iが分類多岐語ではないと判断した場合(ステップS506:YES)は、特徴単語w
iとカテゴリc
jの依存度502のうち、相互情報量の最大値を記録したカテゴリを見付け、カテゴリc
jの最大値観測頻度503にカウントアップして出力する(ステップS507)。
【0095】
このように、すべての単語w
iについて相互情報量が最大となったカテゴリの頻度を計測していく。
【0096】
全ての特徴単語w
iを処理したか否かを判断する(ステップS508)。
【0097】
ステップS508において、全ての特徴単語w
iを処理していないと判断した場合(ステップS508:NO)は、ステップS502の処理に戻る。
【0098】
ステップS508において、全ての特徴単語w
iを処理したと判断した場合(ステップS508:YES)は、カテゴリc
jのスコア×カテゴリc
jの最大値観測頻度が最も大きくなったカテゴリcを未分類文書の予測カテゴリとして出力する(ステップS509)。
【0099】
以上のように、すべてのカテゴリに対する相互情報量を計算した例を
図13に示す。
図13に示すように、相互情報量は単語とカテゴリとの相互依存の度合いを数値化したものとなっており、カテゴリとの依存の度合いが高く、特定のカテゴリに偏って出現する単語が最も多い頻度で現れたカテゴリを、分野未分類の文書データに対する尤もらしいカテゴリとして選択する。
【0100】
図4に戻り、重要度計算用学習辞書151から、特徴単語抽出結果401に含まれる特徴単語w
iがカテゴリcに出現した文書数N
11を取得する(ステップS403)。
【0101】
単語w
iを含み、かつカテゴリcに属する文書数N
11と、単語w
iを含み、かつカテゴリcに属さない文書数N
10と、単語w
iを含まず、かつカテゴリcに属する文書数N
01と、単語w
iを含まず、かつカテゴリcに属さない文書数N
00と、全文書数Nにより、単語w
iとカテゴリcとのカイ2乗値χ
2(t,c)を(1)〜(5)式で計算する(ステップS404)。
【0102】
単語w
iの重要度に、(1)、(2)式で計算した単語w
iとカテゴリcのカイ2乗値χ
2(t,c)を割り当て、特徴単語と、当該特徴単語に対する重要度の組904を出力する(ステップS405)。
【0103】
特徴単語抽出結果401に含まれる全ての特徴単語w
iを処理したか否かを判断する(ステップS406)。
【0104】
ステップS406において、全ての特徴単語w
iを処理していないと判断した場合(ステップS406:NO)は、ステップS403の処理に戻る。
【0105】
ステップS406において、全ての特徴単語w
iを処理したと判断した場合(ステップS406:YES)は、全ての特徴単語抽出結果401を処理したか否かを判断する(ステップS407)。
【0106】
ステップS407において、全ての特徴単語抽出結果401を処理したと判断され(ステップS407:YES)、重要度計算処理を終了する。
【0107】
以上のように、未分類文書から抽出されたすべての特徴単語について重要度を割り当て、特徴単語と、当該特徴単語に対する重要度の組402を出力する。なお、ここでいう特徴単語と、当該特徴単語に対する重要度の組402はステップS305で出力される特徴単語と、当該特徴単語に対する重要度の組204に対応するものを表す。
【0108】
再び
図3に戻り、特徴量作成部161は、ステップS305で抽出した特徴単語と、当該特徴単語に対する重要度の組304に対して、分類計算用学習辞書152から取得した学習文書行列を基に、格要素および述語ごとに特徴量を構成する(ステップS306)。
【0109】
このとき、前記特徴量は、各行に一つの特徴単語を対応付け、特徴単語の重要度を要素値とする、多次元ベクトルにおける列ベクトルを構成する。
【0110】
潜在的意味解析部162は、ステップS306で取得した文書ベクトル及び学習文書行列を基に、特異値分解を利用して学習文書行列を低次元の行列に圧縮することで、単語を上位概念に変換した語彙の辞書を構築し、ステップS306から受け取った文書ベクトル及び学習文書行列を潜在的意味空間における特徴量に変換する(ステップS307)。
【0111】
図16は、単語を上位概念に変換した語彙の辞書の例を示したものである。同図に示すように、単語を上位概念に変換した語彙の辞書は、潜在的意味解析部162によって作成された圧縮済み学習文書行列を保持している。圧縮済み学習文書行列は、特徴単語が潜在的意味空間に畳み込まれた上位概念と各学習文書データにおいて当該上位概念の重みとの関係を表す行列となっている。
【0112】
ここで、ステップS307の学習文書行列の特異値分解を利用して低次元の行列に圧縮する方法を利用し、文書ベクトル及び学習文書行列305を潜在的意味空間における特徴量に変換する処理について詳細に説明する。
【0113】
学習文書行列をm×n行列Dとしたとき、Dを次式のように特異値分解する。
【0114】
【数4】
【0115】
ここで、Uはm×m直交行列、Vはn×n直交行列、Σはm×n行列であり、rank(D)=rとすると、r個の特異値(σ
1≧σ
2≧…≧σ
r>0)を対角成分とする対角行列となる。
【0116】
(8)式に対し、左特異行列Uから最初のk個(k<r)の左特異ベクトルを取り出したm×k行列U
k、右特異行列Vから最初のk個の右特異ベクトルを取り出したn×k行列V
k、特異値行列Σの上位k個の特異値のみから構成されるk×k対角行列Σ
kにより、学習文書行列Dは以下のように低階数行列に近似できる。
【0117】
【数5】
【0118】
m次元の学習文書行列Dをk次元の学習文書行列D
(k)に圧縮するためには、次式の通りU
kの張る空間への射影を考えればよい。
【0119】
【数6】
【0120】
これにより、学習文書行列を低次元に圧縮することができる。圧縮済み文書行列D
(k)は、特徴単語が潜在的意味空間に畳み込まれた上位概念と各学習文書データにおいて当該上位概念の重みとの関係を表す行列となっている。
【0121】
次に、文書ベクトルをm行の列ベクトルqとしたとき、m×k左特異行列U
kを用い、次の式により低次元のベクトルに圧縮する。
【0122】
【数7】
【0123】
以上により、文書ベクトル及び学習文書行列305を潜在的意味空間における特徴量に変換することができる。
【0124】
しかる後、分類処理部163は、ステップS307で変換した文書ベクトル圧縮結果q
(k)及び学習文書行列圧縮結果D
(k)を用いて類似度計算を行い、分類結果307を出力する(ステップS308)。
【0125】
前記類似度計算は、文書ベクトル圧縮結果q
(k)と、学習文書行列圧縮結果D
(k)のカテゴリ毎に線形和を取ったベクトルd
j(k)を用いて、次の式によりコサイン類似度を計算する。
【0126】
【数8】
【0127】
(12)式により最もコサイン類似度が高くなったd
j(k)のカテゴリを分類結果307として出力する。
【0128】
図17は、
図6に示す例文と
図7に示す例文を比較した例である。修飾構造および意味構造の単位で類似性を比較し、
図18に示すように類似度計算される。
【0129】
最後に、出力処理部170は、ステップS308によって得られた分類結果のカテゴリ308を利用者へ出力する(ステップS309)。
【0130】
上述のように、本発明の実施の形態を、図面を参照しながら説明してきたが、本実施の形態における処理は、プログラムで実現しても良い。
【0131】
図19は、本発明の実施形態に係る文書分類プログラムのハードウェア構成を示すブロック図である。同図に示すように、本文書分類プログラムは、バス1910に接続された入力部1920と、出力部1930と、補助記憶部1940と、主記憶部1950と、演算処理部1960と、外部記憶部1970と、通信制御部1980とで構成される情報端末1900に搭載される。
【0132】
バス1910は、各ハードウェア間の制御信号、データ信号等の授受を媒介する経路である。
【0133】
入力部1920は、利用者がデータの入力を行うキーボードやマウス等の入力装置である。
【0134】
出力部1930は、処理結果を出力するプリンタやディスプレイ等の出力装置である。
【0135】
補助記憶部1940は、文書分類プログラム1941や文書分類プログラム1941を実行するために必要なデータを記憶する、HDD(ハードディスクドライブ)等の記憶装置である。
【0136】
主記憶部1950は、補助記憶部1940からロードしたデータやプログラムを記憶するRAM(Random Access Memory)等の記憶装置である。
【0137】
演算処理部1960は、主記憶部1450上のデータやプログラムを読み出して実行するCPU(Central Processing Unit)等の演算処理装置である。
【0138】
外部記憶部1970は、フレキシブルディスク、CD−ROM、DVD−ROM、光磁気ディスク等の記憶媒体である。
【0139】
通信制御部1980は、ネットワーク等に接続するための制御装置である。
【0140】
本発明の機能は、情報端末1900が補助記憶部1940に記憶された文書分類プログラム1941のプログラムコードを読み出し、演算処理部1960によって実行する構成としても達成することができる。
【0141】
また、本発明の機能は、文書分類プログラム1941を外部記憶装置1970の記憶媒体等に記憶しておき、プログラムを読み出し、演算処理装置1960によって実行する構成としても達成することができる。
【0142】
また、本発明の機能は、通信回線を介して通信制御装置1980が文書分類プログラム1941をダウンロードし演算処理装置1960によって実行する構成としても達成することができる。
【0143】
以上、本発明の各実施形態について説明したが、本発明は、上述の実施の形態に限定されるものではなく、種々の変更が可能である。