図1は、文書分類システム構成図であり、本発明の文書分類システムの構成を示す。文書分類システムは、3個のサブシステム、即ち、辞書編集装置1、文書分類装置2、強化学習装置3からなる。これらの間は、例えばLAN(Local Area Network)により相互に接続される。この例では、文書分類装置2は、例えばメール解析装置2からなる。従って、以下の例においては、分類(解析)対象である前記入力された文書は例えば電子メール8であり、前記カテゴリは文書を分配すべき担当者(回答者)であり、前記文書分類装置2は入力された文書を当該分類された担当者に配信(分配)する。
辞書編集装置1は、文書ファイル6に基づいて辞書を作成する辞書編集装置であって、当該担当者において出現した単語毎に、単語単独の重要度を表すtf・idf 値を格納する重要性辞書(tf・idf辞書)41を作成し、また、当該担当者において出現した単語についての複数の単語の組み合わせ毎に、当該単語間の共起性を表すidf/conf値を格納する同時出現性辞書(idf/conf辞書)42を作成する。文書ファイル6は、各担当者が日常業務で作成した文書である(文書を格納している)ので、属するカテゴリ即ちその担当者の判っている文書である。従って、当該担当者において出現した単語とは、当該担当者の作成した文書ファイル6に出現した単語である。この例では、同時出現性辞書42は、当該担当者において出現した単語についての第1単語と第2単語の組み合わせ毎に2単語間の共起性を表すidf/conf値を格納する。従って、辞書4は、複数の担当者の各々について設けられる複数の担当者(の)辞書40からなり、各々の担当者辞書40が重要性辞書41と同時出現性辞書42とからなる。
辞書編集装置1は、実際には、文書ファイル(担当者毎のフォルダ)6に保存された各種の文書を変換して得たテキストファイルを読み込み、読み込んだテキストデータから改行とスペースを取り除いた後に、周知の形態素解析処理により単語に分割することにより抽出した単語を、担当者毎の辞書40に登録する。抽出した単語において、品詞が助詞、助動詞、接続詞、接頭詞、副詞、連体詞、感動詞、記号は不要語と考えられるので、辞書4には登録しない。
即ち、本発明では、辞書4の作成及び編集において、単語単独の重要度であるtf・idf 値を用い、更に、単語間の共起性をidf/conf値(idf divided by confidence)をも用いる。ここで、tf値は文書中に現れた単語の頻度(即ち、単語の重要性)を示し、idf 値は単語がどの程度特定の分類に現れるか(即ち、単語の特定性)を示し、tf・idf 値は文書分類の研究で用いられているものであり単語の重要性と特定性とを加味した重み(即ち、単語単独の重要度)を示し、conf値は単語の共起性を示す確信度を示し、idf/conf値は特定性の高い単語間の共起性を示す。
図2(A)はtf・idf 値の辞書(重要性辞書)41の一例を示す。重要性辞書41は、その担当者が使用した単語a1、a2、a3、・・毎に、そのtf値、idf 値、tf・idf 値を格納する。tf値、idf 値、tf・idf 値の算出については後述する。図2(B)はidf/conf値の辞書(同時出現性辞書)42の一例を示す。同時出現性辞書42は、その担当者が使用した単語b1、b2、b3、・・における第1単語と第2単語の組み合わせ毎に、当該第1単語のidf 値、第1単語と第2単語間のconf値、第1単語と第2単語間のidf/conf値を格納する。前述のように、この例におけるidf/conf値は、当該2単語間の特定性を考慮した共起性を示す。conf値、idf/conf値の算出については後述する。
メール解析装置2は、入力された文書である問い合わせの電子メール(問い合わせメール)8に出現する単語を用いて辞書4で当該単語を照合して、辞書4の単語毎のtf・idf 値とidf/conf値とを求め、これらに基づいて所定の演算を行って単語毎のスコアを算出し、単語毎のスコアに基づいて担当者毎のスコアを算出し、これに基づいて入力された文書を複数の担当者のいずれかに分類する。この例では、メール解析装置2は、前記所定の演算として、辞書4の単語毎のtf・idf 値とidf/conf値と入力された文書に出現する単語との一致率との積を算出して、単語毎のスコアを算出する。また、メール解析装置2は、担当者毎のスコアに基づいて、入力された文書である問い合わせメール(以下、単にメール)8を、当該スコアが上位から所定の数の担当者に分類する。
メール解析装置2は、辞書編集装置1と同様に、入力されたメール8の本文について、改行とスペースを取り除いた後に周知の形態素解析処理を行って、単語に分割することにより得られた単語と辞書4とを照合する。この時、メール解析装置2は、マッチした(照合できた)単語又は単語の組み合わせに関するtf・idf 値とidf/conf値と単語の一致率とから、当該メール8に対する全ての担当者のスコアを算出して、最後にスコアの高い一人又は複数の担当者を当該メール8への回答者(当該メール8に回答すべき担当者)として推定し、図3に示すように、その結果を例えばメール解析装置2に表示する。即ち、質問者からのメール8を入力として、これに回答すべき担当者の候補(即ち、図3)を出力として得る。また、この例では、メール解析装置2は、この分類の結果(スコア)に従って、図3において「〇」の付された担当者の担当者(回答者)端末5に、当該入力されたメール8を分配する(配信する)。
図3は、メール解析結果の一例を示す。当該結果は、担当者d毎に、回答者とするか否かの結果、スコアScore(d)、メール8と辞書とで照合できた単語t、当該単語毎のスコア(d,t)からなる。担当者d及び照合単語tはスコアの高い順に表示される。最もスコアの高いもの(第1(i)位)を第1(i)位照合単語という。図3において、「〇」の付された担当者が回答者とされる。この例では上位2人が回答者として推定される。入力された(受信された)メール8は、回答者とされた担当者にメール8として分類(送信)される。一方、「×」の付された担当者は回答者と推定されない。人間の分類者を介在させる場合や分類を受けた担当者が他の担当者に再分類する場合は、図3に示す推定結果を参照して分類を行うようにすれば良い。
なお、図示はしないが、メール解析装置2は、例えばLANを介して回答者端末5に接続され、また、メールサーバに接続される。メールサーバは、インターネットに接続され、外部からのメール8を受信し、これを内部の各端末5に配信するために、メール解析装置2に送る。メール8は、例えば質問者が周知のWebブラウザを用いて、問い合わせ内容、氏名、返信用電子メールアドレス等を入力することにより作成(入力)する。
本発明では、2個の辞書41、42に基づいて得た2個の重みをそのまま用いるのではなく、マッチした(照合できた)単語の一致率をも考慮してスコアを算出する。即ち、処理対象であるメール8に出現する単語と辞書の単語との照合を、完全一致ではなく、部分一致で行うと共に、当該部分一致の割合(単語の一致率)をスコアの算出に用いる。これにより、同一の用語についての僅少な個人差の影響等を排除することができる。
強化学習装置3は、所定の文書(即ち、別文書ファイル7)をメール解析装置2により複数の担当者のいずれかに分類した結果に基づいて、一旦作成した重要性辞書41におけるtf・idf 値を更新し、同時出現性辞書42におけるidf/conf値を更新する(強化する)。即ち、強化学習装置3は、重要語学習、特定語学習、不要語学習を行う。重要語学習処理は、所定の文書が真の担当者に分類された場合、前記所定の文書に出現する単語であって当該真の担当者の辞書40で照合された単語を重要語として、その重みを大きくする。特定語学習の処理は、所定の文書が真の担当者に分類されなかった場合、前記所定の文書に出現する単語の中で当該真の担当者について特定性の高い単語を再評価することにより、当該真の担当者の特定語の重みを大きくする。不要語学習は、所定の文書が真の担当者以外の担当者に分類された場合、前記所定の文書に出現する単語であって当該誤って分類された担当者(真の担当者以外の担当者(カテゴリ))の辞書40で照合した単語を不要語として、当該誤って分類された担当者の辞書40における重みを小さくし、真の担当者以外の担当者の辞書40における重みを小さくする。これにより、メール8の分類精度を更に向上することができる。
本発明では、一旦作成した辞書4におけるtf・idf 値とidf/conf値を強化するために、別文書ファイル7、即ち、分類を受ける各担当者自身が様々な業務の中で作成した文書を読み込んだファイルを用いる。別文書ファイル7は、文書ファイル6及びメール8とは別の文書(文書ファイル)であって、各担当者が作成した別文書である(別文書を格納する)。即ち、別文書ファイル7は、担当者が随時作成する文書を随時取り込んで格納したものである。別文書ファイル7は、文書ファイル6と同様にして、メール解析装置2により複数の担当者のいずれかに分類される。別文書ファイル7の担当者も明確であるのでこの結果は正確に評価することができ、また、担当者の業務内容の変化に応じて随時tf・idf 値とidf/conf値を強化することができ、メール8の正確な分類に有効である。
また、本発明では、重要語学習、特定語学習、不要語学習即ち、tf・idf 値とidf/conf値の強化を、プロフィットシェアリング(以下PSと言う)により行う。即ち、別文書ファイル7についてその担当者(分類先)を推定し、その推定結果の適切さに応じた報酬(プロフィット)によりtf・idf 値とidf/conf値を補正する。PSは強化学習において注目されている。これにより、分類の専門家と同等レベルの分類精度を得ることができる。PSは、周知のように、報酬を得たときに複数ルール(本発明では複数単語の重み)を一括して強化するので、効率的にメール8の分類精度を向上することができる。なお、このように強化学習を文書分類に取り入れたシステムは、これまでに開発されていない。
以上のように、本発明によれば、2個の辞書41、42に基づいて得た2個の重みを用いてメール8等の文書を分類することにより、実用的な分類を実現することができる。即ち、日常業務としてメール8を分類している専門家の分類結果(分類精度)が、実用上必要な精度と考えることができる。本発明のメール解析装置2による分類精度として、当該専門家の分類精度とほぼ同等の精度を得ることができる。従って、本発明のメール解析装置2(による分類)は十分に実用に耐え得るものである。なお、本発明者の検討によれば、実際は、2個の辞書41、42のみを用いた分類精度は当該専門家の精度を少し下回るが、tf・idf 値とidf/conf値を別文書ファイル7を用いて強化学習することにより、分類の専門家と同等な精度でメール8を分類することができる。
以下、処理フローを参照して、本発明の文書分類システムにおける処理について、詳細に説明する。図4は、文書分類処理フローであり、本発明の図1に示す文書分類システムにおける文書分類処理を示す。辞書編集装置1が、各担当者が作成した文書ファイル6を収集して、この中の出現単語の重みを、単語単独の重要度を表すtf・idf 値と2単語間の共起性を表すidf/conf値として算出し、この2種類の辞書41、42を担当者毎に作成する(ステップS101)。強化学習装置3が、PSを応用して、これらの重み又はウェイト(を示すtf・idf 値及びidf/conf値)を強化学習する(ステップS102)。即ち、メール解析装置2が、メール8の受信の有無を判断し、当該受信がない場合、別文書ファイル7の文書と2種類の辞書41、42を照合して、単語の重みと単語の一致率とから、担当者毎にスコアを算出し、このスコアが高い担当者を当該メール8への回答者として推定し、当該推定の結果を強化学習装置3に入力してtf・idf 値及びidf/conf値の重みを更新する。一方、メール8を受信すると、メール解析装置2は当該メール8を解析する(ステップS103)。即ち、メール8と2種類の辞書41、42を照合して、単語の重みと単語の一致率とから、担当者毎にスコアを算出する。そして、メール解析装置2は、このスコアが高い担当者を当該メール8への回答者として推定し、これをメール解析装置2の端末(図示せず)に表示する(ステップS104)。
図5は、辞書編集処理フローであり、図1の辞書編集装置1がステップS101において実行する辞書編集処理を示す。辞書編集装置1が、全担当者の全文書ファイル6を読み込み(ステップS111)、全文書について前処理を行う(ステップS112)。即ち、全文書から、その改行とスペースとを除去し、残りの部分について周知の形態素解析を行い、分かち書きした単語を得る。そして、当該得られた全単語から不要な品詞の単語を削除する。次に、辞書編集装置1が、図2(C)に示す担当者・単語テーブルを生成し(ステップS113)、これに基づいてtf・idf 値を算出して(ステップS114)、当該単語及びtf・idf 値をtf・idf 辞書(重要性辞書)41に書き込む(ステップS115)。これにより、tf・idf 辞書41が作成される。担当者・単語テーブル及びその生成については、図6を参照して後述する。次に、辞書編集装置1が、図8に示す単語の組み合わせテーブルを生成し(ステップS116)、これに基づいてidf/conf値を算出して(ステップS117)、当該単語とその組み合わせ及びidf/conf値をidf/conf辞書(同時出現性辞書)42に書き込む(ステップS118)。これにより、idf/conf辞書42が作成される。単語の組み合わせテーブル及びその生成については、図7を参照して後述する。
図6は、担当者・単語テーブル生成処理フローであり、辞書編集装置1がステップS113において実行する担当者・単語テーブル生成処理を示す。辞書編集装置1が、dに最初の担当者を設定し(ステップS121)、図2(C)の担当者・単語テーブルの当該列にdを追加しその要素tf(t,d) を全て「0」に初期化し(ステップS122)、tに最初の単語を設定し(ステップS123)、担当者・単語テーブルの行t1、t2、t3、・・にtが存在するか否かを調べる(ステップS124)。存在しない場合、辞書編集装置1は、担当者・単語テーブルの行にtを追加し、その要素tf(t,d) を全て「0」に初期化する(ステップS125)。存在する場合、辞書編集装置1は、ステップS125を省略し、当該担当者d及び単語tに対応する要素に「1」を加算する(ステップS126)。即ち、tf(t,d) =tf(t,d) +1を実行する。この後、辞書編集装置1は、担当者dの全単語について処理が終了したか否かを調べ(ステップS127)、終了していない場合、tに次の単語を設定し(ステップS128)、ステップS124以下を繰り返す。終了している場合、辞書編集装置1は、全担当者について処理が終了したか否かを調べ(ステップS129)、終了していない場合、dに次の担当者を設定し(ステップS1210 )、ステップS122以下を繰り返す。終了している場合、当該処理を終了する。これにより、担当者・単語テーブルが生成される。
今、tf・idf 値は、式(1)のように定義される。即ち、
ここで、右辺第1項のtf(t,d) は、担当者dが作成した全ての文書(文書ファイル6)中における単語tの出現回数を表す。従って、右辺第1項は同一の担当者が何度も繰り返して使用する単語に大きい重みを与える。例えば、図2(C)において、担当者d1における単語t1の出現回数tf(t1,d1)=1である。右辺第1項の分母は担当者dが使用した単語の頻度の総和を表している。例えば、図2(C)において、担当者d1についての当該値Σtf(t',d1)=8538である。右辺第2項のNは分類先である全ての担当者数を、df(t)は単語tを使用した担当者数を表す。従って、右辺第2項は特定少数の担当者が使用する単語に大きな重みを与え、各担当者を特徴付ける特定性の指標となる。以上から、担当者・単語テーブルに基づいて、tf値(tft d)、idf 値(idft d )、tf・idf 値を算出することができる。
図7は、単語の組み合わせテーブル生成処理フローであり、辞書編集装置1がステップS116において実行する単語の組み合わせテーブル生成処理を示す。辞書編集装置1が、最小支持度及び最小確信度を読み込み(ステップS131)、dに最初の担当者を設定し(ステップS132)、句点の検索をしてセンテンス集合Sd を生成し(ステップS133)、最小支持度とセンテンス集合Sd の全センテンス数とからLSCを算出する(ステップS134)。次に、辞書編集装置1が、単語の組み合わせ数を「1」とし、即ち、単語組み合わせテーブル(以下、同じ)C=C1とし(ステップS135)、(Cの単語の組み合わせ)=(センテンス集合Sd から抽出した各センテンスにおける重複のない単語)とし(ステップS136)、Cのカウント値(Count )をCの単語の組み合わせが出現するセンテンス集合Sd のセンテンス数とする(ステップS137)。次に、辞書編集装置1が、Cにおける単語の組み合わせの全てについて、当該組み合わせについてのCのカウント値がLSC以上であるか否かを調べ、そうでない場合にはCから当該単語の組み合わせを除き、そうである場合にはCから当該単語の組み合わせを除かないようにする(ステップS138)。この後、辞書編集装置1が、単語の組み合わせ数が「2」か否かを調べる(ステップS139)。「2」でない場合、即ち、単語の組み合わせ数が「1」の場合、辞書編集装置1が、単語の組み合わせ数を「2」とし、即ち、C=C2とし(ステップS1310 )、(Cの単語の組み合わせ)=(C1から生成した2単語の組み合わせ)とし(ステップS1311 )、ステップS137以下を繰り返す。
ステップS139において単語の組み合わせ数が「2」である場合、辞書編集装置1が、t1をC2の単語の組み合わせの第1単語とし(ステップS1312)、t1のカウント値(t1_Count)をC1のt1のカウント値(Count)とし(ステップS1313 )、最小確信度とt1のC1のカウント値とからLCCを算出する(ステップS1314 )。次に、辞書編集装置1が、C2における単語の組み合わせの全てについて、当該組み合わせについてのC2のカウント値がLCC以上か否かを調べ、そうでない場合にはC2から当該単語の組み合わせを除き、そうである場合にはC2から当該単語の組み合わせを除かないようにする(ステップS1315 )。この後、辞書編集装置1が、全担当者について処理済みか否かを調べ(ステップS1316 )、そうでない場合、dに次の担当者を設定し(ステップS1317 )、ステップS133以下を繰り返す。全担当者について処理済みである場合、処理を終了する。
ここで、idf/conf値は、相関ルールの抽出に用いられる周知の確信度に基づいている。相関ルールの手法を本発明に応用するために、担当者dが使用した単語を要素とする集合をTd =(t1,t2,t3,・・,tm)とする。また、担当者dが作成した文書から抽出したセンテンス(句点で区切られる1文)の集合をSd=(s1,s2,s3,・・sn)(si⊆Td )とする。ここで、単語tの支持度support(t)はSd 全体に対しtを含むセンテンスの割合を表す。また、相関ルールはt⇒t’で表現され、単語tが出現したセンテンスには単語t’が出現する確率が高いこと、即ちtとt’の共起性が高いことを表す。相関ルールは支持度(support)及び確信度(confidence)の2つのパラメータを有し、これらの値により相関ルールの有意性を示す。ここで、support(t⇒t' )はSd 全体に対しtとt’を共に含むセンテンスの割合、confidence(t⇒t' )はtを含むセンテンスの中でt’を含むセンテンスの割合と定義されている。
本発明では、図8に示すように、最小支持度と最小確信度を設定して、共起性の高い単語の組み合わせを求め、この共起性を表す重みとして確信度を用いる。この例では、最小支持度及び最小確信度を、各々、0.3及び0.7とした。これらの値は経験的に定めることができる。なお、索引語抽出の研究で良く知られているように、頻度の低い単語は不要語であるが、頻度が上位の単語も特徴語ではなく一般語であることが多く、不要語となる。ここでも同様に、最小支持度と最小確信度を満足しない単語の組み合わせは不要であり、辞書4には登録しない。これと同時に、支持度もしくは確信度が上位の組み合わせは一般語の組み合わせとなり不要である。そこで、上述のように最小支持度と最小確信度を満足した単語の組み合わせの共起性を表す具体的な重みとして、確信度の逆数に単語の特定性を考慮して第1単語のidf 値を積算した値を用いる。なお、更に、第1単語に加えて第2単語のidf 値も積算した値を重みとしても良いし、確信度の代わりに支持度を用いても良い。
例えば、図8に示すように、担当者dのセンテンス集合Sdが求まるとする。単語の組み合わせを1個とすると、各々の出現回数Count が求まる(最初のC1)。これから、(最小支持度)×(Sdのセンテンス数)=0.3×4よりもCount 値の小さい単語{単語4}を除く(2番目のC1)。これにより、各々の単語についての最小支持度を満足する値が定まる。次に、残りの単語について出現する2個の単語の組み合わせの全てについて、各々の出現回数Count を求め(最初のC2)、これから、0.3×4よりもCount 値の小さい単語の組み合わせ{単語1,単語2}及び{単語1,単語5}を除く(2番目のC2)。次に、残りの単語の組み合わせについて、(最小確信度)×(各々の第1単語についての最小支持度を満足する値)よりもCount 値の小さい単語の組み合わせ{単語2,単語3}及び{単語3,単語5}を除く(3番目のC2)。即ち、{単語2,単語3}については2(C2におけるCount 値、以下同じ)<0.7×3(2番目のC1の単語2のCount 値、以下同じ)であり、{単語3,単語5}については2<0.7×3であり、除かれる。一方、{単語1,単語3}については2>0.7×2であり、{単語2,単語5}については3>0.7×3であり、残される。
なお、本発明者の検討によれば、単語の組み合わせ数を3以上にしても、メール8(文書)の分類精度は向上しないことが判った。従って、この例においては、計算量の低減のために、単語の組み合わせは「2」に制限される。従って、この例では、同時出現性辞書42は、第1単語と第2単語の組み合わせ毎にidf/conf値を格納する。
今、単語tが出現したとき単語t’が共起する指標であるidf/conf値を式(2)で定義する。
ここで、右辺第2項の分子はある担当者dにおけるconfidence値(即ち、確信度)の最大値(max )であり、担当者毎に大きさの異なるconfidence値を標準化している。以上から、図8の単語の組み合わせテーブルに基づいて、conf値、idf/conf値を算出することができる。conf値の定義は、式(2)の両辺よりidft d を除くことにより明らかであろう。
図9は、メール(問い合わせメール)解析処理フローであり、図1のメール解析装置2がステップS103及びS104において実行するメール解析処理を示す。メール解析装置2が、処理対象である受信したメール(問い合わせメール)8を読み込み(ステップS141)、これについて、その改行とスペースとを除去し、残りの部分について周知の形態素解析を行い(ステップS142)、分かち書きした単語を得る。次に、メール解析装置2が、dに最初の担当者を設定し(ステップS143)、t1にメール8の最初の単語を設定し(ステップS144)、tf・idf 値重み付き加算を行い(ステップS145)、idf/conf値重み付き加算を行い(ステップS146)、メール8の全単語について処理を終了した否かを調べる(ステップS147)。tf・idf 値重み付き加算については図10を参照して後述し、idf/conf値重み付き加算については図11を参照して後述する。
全単語について処理を終了していない場合、メール解析装置2は、t1にメール8の次の単語を設定し(ステップS148)、ステップS145以下を繰り返す。全単語について処理を終了している場合、メール解析装置2は、担当者dのスコアを当該メール8の全単語についてのスコアの総計、即ち、Score(d)=ΣScore(d,t1)として算出し(ステップS149)、全担当者について処理を終了した否かを調べる(ステップS1410 )。全担当者について処理を終了していない場合、メール解析装置2は、dに次の担当者を設定し(ステップS1411 )、ステップS144以下を繰り返す。全担当者について処理を終了している場合、メール解析装置2は、全担当者についてのScore(d)の平均及び標準偏差を算出して、これに基づいて、当該メール8に回答すべき担当者(回答者)の候補を決定し(ステップS1412 )、これを表示する(ステップS1413 )。
図10は、tf・idf 値重み付き加算処理フローであり、メール解析装置2がステップS145において実行するtf・idf 値重み付き加算処理を示す。メール解析装置2が、Max_tf・idf _Ratio に「0」を設定(代入)し、Score(d,t1)に「0」を設定し、mを読み込み(ステップS151)、t_dic に担当者dのtf・idf 辞書41の最初の単語を設定し(ステップS152)、t1とt_dic とが部分一致するか否かを調べる(ステップS153)。部分一致する場合、メール解析装置2が、tf・idf にt_dic のtf・idf 値を設定し、Matched_Ratio に、t1とt_dic との一致率のm乗を設定し、tf・idf とMatched_Ratio とからtf・idf _Ratio を算出し(ステップS154)、tf・idf _Ratio がMax _tf・idf _Ratio よりも大きいか否かを調べる(ステップS155)。大きい場合、メール解析装置2が、Max _tf・idf _Ratio にtf・idf _Ratio を設定し(ステップS156)、担当者dのtf・idf 辞書41の全単語について処理が終了したか否かを調べる(ステップS157)。
全単語について処理が終了していない場合、t_dic に担当者dのtf・idf 辞書41の次の単語を設定し(ステップS158)、ステップS153以下を繰り返す。ステップS153においてt1とt_dic とが部分一致しない場合、ステップS154〜ステップS156を省略して、ステップS157を実行する。ステップS155においてtf・idf _Ratio がMax _tf・idf _Ratio よりも大きくない場合、ステップS156を省略して、ステップS157を実行する。ステップS157において全単語について処理が終了している場合、Score(d,t1)にMax _tf・idf _Ratio を設定して処理を終了する(ステップS159)。
図11は、idf/conf値重み付き加算処理フローであり、メール解析装置2がステップS145において実行するidf/conf値重み付き加算処理を示す。メール解析装置2が、Max _idf/conf _Ratioに「0」を設定し、mを読み込み(ステップS161)、t_dic1に担当者dのidf/conf辞書42の最初の第1単語を設定し、t_dic2に担当者dのidf/conf辞書42の最初の第2単語を設定し(ステップS162)、t1とt_dic1とが部分一致するか否かを調べる(ステップS163)。部分一致する場合、メール解析装置2が、t2にメール8のt1の次の単語を設定し(ステップS164)、t2とt_dic2とが部分一致するか否かを調べる(ステップS165)。部分一致する場合、メール解析装置2が、idf/confにt_dic1とt_dic2のidf/conf値を設定し、Matched _Ratio1にt1とt_dic1の一致率のm乗を設定し、Matched _Ratio2にt2とt_dic2の一致率のm乗を設定し、idf/confとMatched _Ratio1とMatched_Ratio2とに基づいてidf/conf_Ratio を算出する(ステップS166)。
ステップS165においてt2とt_dic2とが部分一致しない場合、メール解析装置2が、メール8の最後の単語まで処理済か否かを調べ(ステップS1611 )、最後の単語まで処理を終了していない場合、t2にメール8のt2の次の単語を設定し(ステップS1612 )、ステップS165以下を繰り返す。
ステップS166の後、メール解析装置2が、idf/conf_Ratio がMax _idf/conf_Ratio よりも大きいか否かを調べ(ステップS167)、大きい場合、Max _idf/conf_Ratio にidf/conf _Ratio を設定して(ステップS168)、担当者dのidf/conf辞書42の全単語について処理済か否かを調べる(ステップS169)。全単語について処理を終了していない場合、メール解析装置2が、t_dic1に担当者dのidf/conf辞書42の次の第1単語を設定し、t_dic2に担当者dのidf/conf辞書42の次の第2単語を設定し(ステップS1610 )、ステップS163以下を繰り返す。全単語について処理を終了している場合、メール解析装置2が、定数αを読み込み(ステップS1613 )、Score(d,t1)にαとMax _idf/conf_Ratio とにより求まる値を加算することによりScore(d,t1)を算出する(ステップS1614 )。
ステップS163においてt1とt_dic1とが部分一致しない場合、メール解析装置2が、ステップS164〜S168(S1611 及びS1612 を含む)を省略して、ステップS169を実行する。ステップS167においてidf/conf_Ratio がMax _idf/conf_Ratio よりも大きくない場合、メール解析装置2が、ステップS168を省略して、ステップS169を実行する。ステップS1611 においてメール8の最後の単語まで処理を終了している場合、メール解析装置2が、ステップS1612 (S166〜S168を含む)を省略して、ステップS169を実行する。
このように、本発明では、メール8中の全ての出現単語を辞書4と照合して、メール8に対する各担当者のスコアを算出する。このとき、形態素解析により分割された単語の単語長が変化することがある。また、質問者と担当者とが同一の単語を使用する保証はない。このため、メール8に含まれる単語と辞書4中の単語を完全一致を条件に照合するとマッチする単語が少なくなり、結局は分類の精度が向上しない。そこで、本発明では、単語の照合は部分一致によって行い、この一致率を単語の重みに乗ずることによる重み付き加算を行って、メール8に対する担当者dのスコアを算出する。
まず、メール8中のある単語tのtf・idf 値とidf/conf値を加味したスコアを式(3)で定義する。なお、単語t及びこれと共起性を示す単語t’は、ともに上記の部分一致のために辞書4中の複数の単語又は単語の組み合わせに照合する可能性があるので、このうち、各々tf・idf 値とidf/conf値に一致率を乗じた値が最大値となるものを加算する。
ここで、Match _Ratio (t)は単語の一致率、即ちメール8中の単語tと辞書4中の単語の単語長に対する一致した文字数の比率を表し、式(4)で定義される。
ここで、tdicは辞書4中の単語を表し、Length(t)は単語tの文字数、Match _Length(t,tdic)はtとtdicの一致した文字数を表している。また、式(3)のαは、第1項と第2項の重みを決める係数である。更に、式(4)のmは単語の一致率をどのオーダでスコアに反映するかを表す。この一致率は1以下であるため、mを大きくするほどこの率によってスコアに差が生じる。なお、このαとmのいずれも適当な範囲で変動させて、経験則により、最大の分類精度を得るαとmを採用することができる。
最後に、式(3)で与えられる単語tのスコアScoret dについて、メール8本文に出現する単語で総和を取ることにより、入力されたメール8に対する担当者dのスコアを式(5)で定義する。
ここで、入力したメール8に対する回答者は、全ての担当者のScored の分布を正規分布と仮定して、その平均スコアより2σ(σは標準偏差)以上大きいスコアを持つ担当者と推定する。これは、実際のメール8において、特に問い合わせ内容を限定しない場合は、複数の事柄について複合して質問していることや複数の専門分野にまたがって質問していることが多く、複数の担当者が連携して回答する必要があるためである。
図12は、強化学習処理フローであり、主として図1の強化学習装置3がステップS102において実行する単語の重みの強化学習処理を示す。強化学習装置3が、別文書ファイル7を読み込み(ステップS171)、真の回答者集合を抽出する(ステップS172)。なお、別文書ファイル7には、例えば学習用メール8が含まれる(以下同じ)。メール解析装置2が、別文書ファイル7について前述のようにメール解析を実行し、図3の結果を得る。強化学習装置3が、当該結果をメール解析結果テーブルとして取得し(ステップS173)、メール解析結果テーブル中の全ての回答者について、当該回答者が真の回答者集合に含まれるか否かを調べ(ステップS174)、含まれる場合には当該回答者について重要語学習処理を実行し(ステップS175)、含まれない場合には当該回答者について不要語学習処理を実行する(ステップS176)。なお、実際には、点線で示すように、一人の回答者についてステップS174とS175又はS176とを実行することを、各回答者について繰り返す。この後、強化学習装置3が、メール解析結果テーブル中の全ての非回答者について、当該非回答者が真の回答者集合に含まれるか否かを調べ(ステップS177)、含まれる場合には当該非回答者について特定語学習処理を実行し(ステップS178)、含まれない場合にはステップS178を省略する。なお、実際には、点線で示すように、一人の非回答者についてステップS177又はS177及びS178を実行することを、各非回答者について繰り返す。この後、強化学習装置3が、全ての別文書ファイル7について処理済か否かを調べ(ステップS179)、処理済でない場合にはステップS171以下を繰り返し、処理済である場合には処理を終了する。
本発明では、別文書ファイル7の解析結果を受けて、PSにより、推定した回答者の正しさから担当者毎の辞書4のtf・idf 値とidf/conf値を更新する。この例では、作成者即ち担当者が判明している別文書ファイル7をメール解析装置2に入力する。この場合、真の文書作成者が判っているので、当該システムの分類結果の正否を判断できる。なお、人間の分類者が参照して別文書ファイル7を分類した結果を正しいとして学習しても良い。
本発明では、以下の3種類の強化学習を行う。即ち、重要語の学習は、真の回答者をシステムが回答者であると推定できた場合に、別文書ファイル7とこの回答者の辞書40で照合した単語を重要語として、その重みを大きくする。また、特定語の学習は、真の回答者をシステムが回答者であると推定できなかった場合に、別文書ファイル7に出現した単語の中で真の回答者について特定性の高い単語を再評価することにより、この回答者の特定語の重みを大きくする。更に、不要語の学習は、真の回答者以外をシステムが回答者であると誤推定した場合に、別文書ファイル7とこの担当者の辞書40で照合した単語を不要語として、この担当者の辞書40における不要語の重みを小さくする。これと同時に、この単語を真の回答者以外の他の担当者の辞書40でも、同様に不要語として学習する。
図13は、重要語学習処理フローであり、強化学習装置3がステップS175において実行する重要語の学習処理を示す。強化学習装置3が、定数c1、L、Sを定義ファイルから読み込み(ステップS181)、単語tにメール解析結果テーブルにおいて対象回答者の第1位照合単語を設定する(ステップS182)。次に、強化学習装置3が、対象回答者のtf・idf 辞書41でtを検索してtf・idf にtと照合した単語のtf・idf 値を設定し、tf・idf とc1とからf_tf・idf を算出し(ステップS183)、対象回答者のidf/conf辞書42の第1単語でtを検索してidf/confにtと照合した単語のidf/conf値を設定し、idf/confとc1とからf_idf/confを算出し(ステップS184)、tf・idf 辞書41及びidf/conf辞書42におけるtのtf・idf 値及びidf/conf値を更新する(ステップS185)。即ち、新たなtf・idf 値を、それまでのtf・idf 値にf_tf・idf を加算した値とする。新たなidf/conf値を、それまでのidf/conf値にf_idf/confを加算した値とする。
次に、強化学習装置3が、i=2として(ステップS186)、単語tにメール解析結果テーブルにおいて対象回答者の第i位照合単語を設定する(ステップS187)。次に、強化学習装置3が、対象回答者のtf・idf 辞書41でtを検索してtf・idf にtと照合した単語のtf・idf 値を設定し、f_tf・idf とSとから新たなf_tf・idf を算出し(ステップS188)、対象回答者のidf/conf辞書42の第1単語でtを検索してidf/confにtと照合した単語のidf/conf値を設定し、f_idf/confとSとから新たなf_idf/confを算出し(ステップS189)、tf・idf 辞書41及びidf/conf辞書42におけるtのtf・idf 値及びidf/conf値を更新する(ステップS1810 )。即ち、新たなtf・idf 値を、それまでのtf・idf 値にf_tf・idf を加算した値とし、新たなidf/conf値を、それまでのidf/conf値にf_idf/confを加算した値とする。この後、強化学習装置3が、iがLに等しいか否かを調べ(ステップS1811 )、等しくない場合、iをi+1とし(ステップS1812 )、ステップS187以下を繰り返す。等しい場合、ステップS1812 を省略して、処理を終了する。なお、メール8の文章が極めて短いとiの最大値がLより小さくなることがあるが、この場合、読み込んだLに代えて当該iの最大値が用いられる。即ち、ステップS1811においてiが当該iの最大値に等しい場合、処理を終了する(以下、ステップS1911及びS2120において同じ)。
PSでは、エピソード単位にルールに付加された重みを強化する。エピソードとは、初期状態あるいは報酬を得た直後から、次の報酬までのルール系列を表す。この強化には報酬からどれだけ過去かを引数とする強化関数が用いられる。長さlのエピソード(rl,・・ri,・・r2,r1)に対して、ルールri の重みwi は式(6)のように強化関数fi で強化される。
本発明では、ルールは辞書4中の単語又は単語の組み合わせに相当し、エピソードのルール系列は式(5)でスコアScored を決定した単語(tl,・・ti,・・t2,t1)である。即ち別文書ファイル7と担当者dの辞書40中で照合した単語である。更に、系列中の順序iは式(5)のスコアScored への寄与の順、即ち式(3)のScoret dの大きさの順とし、このScoret dが最大となるスコア1位の単語t(第1位照合単語)をt1とする。また、本発明では、単語の重みをtf・idf 値とidf/conf値の2種類で構成しているので、式(6)はそれぞれ式(7)及び式(8)のようになり、当該システムが推定した回答者と真の回答者が一致した場合に担当者dの単語tiに、iが上位であるほど大きな正の報酬を与える。
但し、本発明の学習方法においては、tf・idf 値とidf/conf値について、それぞれ別に強化するが、その方法は全く同様である(図13中の処理を参照)。
PSでは、有効な単語の重みが強化され、無効な単語の重みが抑制されることを保証しなければならない。この条件は合理性定理により式(9)を満足することであることが周知のように証明されている。
ここで、Wはエピソードの最大長、Lは同一感覚入力下に存在する有効ルールの最大数であり、本発明では学習を有効にする単語数を限定し、別文書ファイル7と辞書4で一致した単語でスコアScoredの上位何単語を学習するかを設定することとし、その単語数をLとした(例えば、L=10なら上位10位の単語を学習する、以下同じ)。また、この式(9)の定理を満足する最も簡単な強化関数には、式(10)で表される等比減少関数を用いる。
ここで、周知のように、S≧L+1を満足しなければならない。また、式(10)の初期値f1 d、即ちスコアScoret d が最大となる単語の強化値は以下の式(11)とする。ここで、c1は定数である。
このように、重要語の学習は、推定した回答者が真の回答者であった場合に行い、スコアScoret d が上位である単語の重みに正の報酬を与え、その重みを大きくする。
図14は、不要語学習処理フローであり、強化学習装置3がステップS176において実行する不要語の学習処理を示す。強化学習装置3が、定数c2、L、Sを定義ファイルから読み込み(ステップS191)、単語tにメール解析結果テーブルにおいて対象回答者の第1位照合単語を設定する(ステップS192)。次に、強化学習装置3が、対象回答者のtf・idf 辞書41でtを検索してtf・idf にtと照合した単語のtf・idf 値を設定し、tf・idf とc2とからf_tf・idf を算出し(ステップS193)、対象回答者のidf/conf辞書42の第1単語でtを検索してidf/confにtと照合した単語のidf/conf値を設定し、idf/confとc2とからf_idf/confを算出し(ステップS194)、不要語強化処理を実行する(ステップS195)。不要語強化処理については図15を参照して後述する。
次に、強化学習装置3が、i=2として(ステップS196)、単語tにメール解析結果テーブルにおいて対象回答者の第i位照合単語を設定する(ステップS197)。次に、強化学習装置3が、対象回答者のtf・idf 辞書41でtを検索してtf・idf にtと照合した単語のtf・idf 値を設定し、f_tf・idf とSとから新たなf_tf・idf を算出し(ステップS198)、対象回答者のidf/conf辞書42の第1単語でtを検索してidf/confにtと照合した単語のidf/conf値を設定し、f_idf/confとSとから新たなf_idf/confを算出し(ステップS199)、ステップS195と同様の不要語強化処理を実行する(ステップS1910 )。この後、強化学習装置3が、iがLに等しいか否かを調べ(ステップS1911 )、等しくない場合、iをi+1とし(ステップS1912 )、ステップS197以下を繰り返す。等しい場合、ステップS1912 を省略して、処理を終了する。
図15は、不要語強化処理フローであり、強化学習装置3がステップS195及びS1910 において実行する不要語の強化処理を示す。強化学習装置3が、担当者dに対象回答者を設定し(ステップS201)、tf・idf −f_tf・idf が「0」より大きいか否かを調べ(ステップS202)、大きい場合、tf・idf 辞書41のtのtf・idf 値をtf・idf −f_tf・idf に更新し(ステップS203)、大きくない場合、tf・idf 辞書41のtのtf・idf 値を「0」に更新する(ステップS204)。次に、強化学習装置3が、idf/conf−f_idf/confが「0」より大きいか否かを調べ(ステップS205)、大きい場合、idf/conf辞書42のtのidf/conf値をidf/conf−f_idf/confに更新し(ステップS206)、大きくない場合、idf/conf辞書42のtのidf/conf値を「0」に更新する(ステップS207)。次に、強化学習装置3が、真の回答者集合以外の全担当者について処理済か否かを調べ(ステップS208)、処理済でない場合、担当者dに次の担当者(対象回答者)を設定し(ステップS209)、担当者dのtf・idf 辞書41でtを検索してtf・idf にtと照合した単語のtf・idf 値を設定し(ステップS2010 )、担当者dのidf/conf辞書42の第1単語でtを検索してidf/confにtと照合した単語のidf/conf値を設定し(ステップS2011 )、ステップS202以下を繰り返す。ステップS208において全担当者について処理済である場合、処理を終了する。
不要語の学習は、真の回答者以外をシステムが回答者であると誤推定した場合に行う。この場合は、推定した回答者の上位単語は本来不要語であるが、大きな重みが付与されているものと考えられる。そこで、このような単語の重みには負の報酬を与え、式(12)によりその重みを小さくする。
なお、式(12)では重みが負になることを防いでいる。また、強化値の等比関数は式(10)と同様で、その初期値は式(13)で与える。
ここで、c2は定数である。更に、経験的にこのような不要語は一般用語であることが大多数であり、システムが回答者として推定した者だけではなく、真の回答者以外の辞書40でも負の報酬を与えることにより、不要語の学習効率が大きく向上する。そこで、この場合の学習は、システムが誤推定した回答者の上位単語について、真の回答者以外の他の担当者の辞書40にその単語が登録されている場合、同様に負の報酬を与え、その重みを小さくする。
図16は、特定語学習処理フローであり、強化学習装置3がステップS178において実行する特定語の学習処理を示す。強化学習装置3が、定数c3、L、S、min _idf 、max _ave _ratio を定義ファイルから読み込み(ステップS211)、idf 値再評価処理を実行する(ステップS212)。idf 値再評価処理については図17を参照して後述する。次に、強化学習装置3が、単語tにメール解析結果テーブルにおいて対象非回答者の第1位照合単語を設定し(ステップS213)、対象非回答者のtf・idf 辞書41でtを検索してtf・idf にtと照合した単語のtf・idf 値を設定し(ステップS214)、max _tf・idf に対象非回答者のtf・idf 辞書41での最大tf・idf 値を設定し(ステップS215)、tf・idf がmax _tf・idf とmax _ave _ratio との積以上であるか否かを調べる(ステップS216)。なお、max _ave _ratio は全担当者のtf・idf 値及びidf/conf値の最大値で標準化した平均的な重みを表し、このmax _ave _ratio とmax _tf・idf との積は後述する式(14)のwp dとなり、対象非回答者のスコアに有効となる重みを表す。max _ave _ratio の算出方法は(図18で)後述する。f_tf・idf がmax _tf・idf とmax _ave _ratio との積以上でない場合、f_tf・idf にmax _tf・idf とmax _ave _ratio との積を設定し(ステップS217)、積以上である場合、f_tf・idf にtf・idf とc3とから求まる値を設定する(ステップS218)。
この後、強化学習装置3が、対象非回答者のidf/conf辞書42の第1単語でtを検索してidf/confにtと照合した単語のidf/conf値を設定し(ステップS219)、max _idf/confに対象非回答者のidf/conf辞書42での最大idf/conf値を設定し(ステップS2110 )、idf/confがmax _idf/confとmax _ave _ratio との積以上であるか否かを調べる(ステップS2111 )。なお、max _ave _ratio については、図16において前述した通りである。f_idf/confがmax _idf/confとmax _ave _ratio との積以上でない場合、f_idf/confにmax _idf/confとmax _ave _ratio との積を設定し(ステップS2112 )、積以上である場合、f_idf/confにidf/confとc3とから求まる値を設定する(ステップS2113 )。
この後、強化学習装置3が、tf・idf 辞書41及びidf/conf辞書42におけるtのtf・idf 値及びidf/conf値を更新する(ステップS2114 )。即ち、新たなtf・idf 値を、それまでのtf・idf 値にf_tf・idf を加算した値とし、新たなidf/conf値を、それまでのidf/conf値にf_idf/confを加算した値とする。この後、強化学習装置3が、i=2として(ステップS2115 )、単語tにメール解析結果テーブルにおいて対象回答者の第i位照合単語を設定する(ステップS2116 )。次に、強化学習装置3が、対象回答者のtf・idf 辞書41でtを検索してtf・idf にtと照合した単語のtf・idf 値を設定し、f_tf・idf とSとから新たなf_tf・idf を算出し(ステップS2117 )、対象回答者のidf/conf辞書42の第1単語でtを検索してidf/confにtと照合した単語のidf/conf値を設定し、f_idf/confとSとから新たなf_idf/confを算出し(ステップS2118 )、tf・idf 辞書41及びidf/conf辞書42におけるtのtf・idf 値及びidf/conf値を更新する(ステップS2119 )。即ち、新たなtf・idf 値を、それまでのtf・idf 値にf_tf・idf を加算した値とし、新たなidf/conf値を、それまでのidf/conf値にf_idf/confを加算した値とする。この後、強化学習装置3が、iがLに等しいか否かを調べ(ステップS2120 )、等しくない場合、iをi+1とし(ステップS2121 )、ステップS2116 以下を繰り返す。等しい場合、ステップS2121 を省略して、処理を終了する。
図17は、idf 値再評価処理フローであり、強化学習装置3がステップS212において実行するidf 値再評価処理を示す。強化学習装置3が、メール解析結果テーブルにおいて全非回答者の上位L位までの単語集合でidf 値を算出し(ステップS221)、メール解析結果テーブルにおいて対象非回答者の上位L位までの単語のScore(d,t) をidf 値に書き換え(ステップS222)、メール解析結果テーブルから対象非回答者のmin _idf 未満のidf 値の単語と、L+1位以下の単語とを削除し(ステップS223)、メール解析結果テーブルにおいて対象非回答者の単語をidf 値で降順に整列させる(ステップS224)。なお、ステップS223において、min _idf 未満のidf 値の単語、又は、L+1位以下の単語が存在しない場合には、削除すべき単語が存在しない場合がある。また、ステップS223における単語の削除によりiの最大値がLより小さくなることがあるが、この場合、読み込んだLに代えて当該iの最大値が用いられる。即ち、ステップS2120においてiが当該iの最大値に等しい場合、処理を終了する。
特定語の学習は、真の回答者をシステムが回答者であると推定できなかった場合に行う。この場合は、真の回答者の辞書40内で重要語の重みが本来の値より小さくなっている恐れがある。これは、真の回答者がある専門用語を固定的に多く使用し、その同意語や類似語を滅多に使用しない場合等では同意語や類似語のtf値が極端に小さくなるために起こり得る。そこで、真の回答者のスコア上位単語と他の担当者の上位単語を比較して、単語の特定性をidf 値の算出方法と同様にして再評価する。即ち、回答者としては推定されなかった真の回答者の上位単語に特定性が認められれば特定語として正の報酬を与え、その重みを大きくする。ここでの強化方法は、idf 値で単語系列を決定する以外は式(10)の真の回答者を推定できた場合と同様であるが、idf 値が最大となる単語の強化値は式(11)の代わりに式(14)を用いる。
ここで、式(11)と同様にc3は定数である。なお、辞書4中の全ての単語について、標準化した順位と重みの関係は図18に示したような曲線となる。図18の横軸は、各担当者の単語の最大順位(即ち、登録単語数)で各単語の順位を割った値を表し、縦軸は、同様に重みの最大値で各単語の重みを割った値を表す。図18は横軸の各順位に該当する全担当者の平均重み(tf・idf 値とidf/conf値の両方の平均)をプロットしたものである。この曲線の平均傾きを「−1」と仮定し、この曲線と、傾きが「−1」の直線との接点における重みの値を図16におけるmax _ave _ratio とした。式(14)のwp dはこのmax _ave _ratio と最大重みとの積を表す。真の回答者を当該システムが回答者であると推定(分類)できなかった場合は、真の回答者のスコアScoret dの上位単語は当該担当者の辞書40内で低順位であることが多いと考えられる。このような低順位のものの重みは、高順位のものの重みと比較して何桁も小さな値となっている。このため、強化値を元の重みの定数倍として与えても全体のスコアに影響する大きさにならない。そこで、学習の効果が現れないことを受け、スコア1位のw1 dがこのwp dより小さければ、一度にwp dまで引き上げ、強化することとした。なお、本発明者の検討によれば、単純な重みの平均値をwp dとすると、重みの小さい単語が非常に多いために、wp dは小さな値となり、学習効果が上がらないことが判った。
学習時の単語の照合は、この例では完全一致としている(従って、図13〜図17においては単語は必ず照合されることになる)が、これは本発明者の検討により、別文書ファイル7を学習に用いる場合、メール解析のように部分一致としなくても学習効果が上がることが確かめられたためであり、学習にメール8を用いる場合には、部分一致として強化値に単語の一致率を掛けて、強化しても良い。
以上、本発明をその実施の形態に従って説明したが、本発明は、その主旨の範囲内で種々の変形が可能である。例えば、本発明の文書分類システムは、メール8に限られず、広く文書の分類に用いることができる。更に、分類の対象である文書に、例えばホームページを含むことができる。更には、分類の対象である文書に、例えば音声入力されたデータを音声認識して得た電子データを含むことができる。本発明の文書分類システムは、自然言語(記号を含む)により構成された電子データであれば、これを分類することができる。また、文書の分類先は、個々の担当者に限られず、種々の組織内における担当部署であっても良い。本発明の文書分類システムは、3個のサブシステムの全てを備えなくとも良い。即ち、辞書編集装置1、文書分類装置2、強化学習装置3の各々を独立に設けても良く、文書分類装置2のみを設けても良く、文書分類装置2に辞書編集装置1又は強化学習装置3を併設しても良い。