以下、本発明の実施形態について、図面を参照しながら説明する。
図1は、本発明の実施形態に係る文書分類装置100の構成を示すブロック図である。同図に示すように、文書分類装置100は、文書記憶部1、カテゴリ記憶部2、文書分類部3、特徴度データ記憶部4、及びユーザインターフェース部5を備えて構成される。
文書記憶部1は、文書分類装置100による文書分類処理の対象となる文書データを格納する。文書記憶部1は、例えばファイルシステムや文書データベースなどによって実現される。もしくは計算機ネットワークによって接続した複数の記憶手段によって、文書記憶部1を構成してもよい。
カテゴリ記憶部2は、文書データの分類に用いられるカテゴリのデータを記憶する。カテゴリのデータは、カテゴリの名称や、カテゴリの階層構造、カテゴリの分類ルールを示す。カテゴリの階層構造は、カテゴリ間の上位と下位の関係を表す。分類ルールは、文書データをカテゴリに分類する際に用いられるルールであり、例えば、文書データの属性、作成日や作成者、ジャンルといった書誌情報などが利用される。もしくは、既存のクラスタリングによって文書データをカテゴリに分類してもよい。
さらに、カテゴリ記憶部2は、後述する文書分類部3によって生成される特徴語カテゴリのデータも記憶する。特徴語カテゴリは、文書を分類する際の観点となるカテゴリである軸カテゴリ集合に対して出現傾向が類似した特徴語を分類ルールとして分類されるカテゴリである。
後述する図19では、カテゴリ記憶部2の初期状態として記憶されたカテゴリの階層構造の全体像を表す画面表示例を示しており、後述する図3では、カテゴリ記憶部2に記憶されるカテゴリのデータを示している。
図19において、ユーザインターフェース部5(具体的には、後述する2軸マップ表示部51)は、上位カテゴリが設定されていないカテゴリデータ300のカテゴリ名303「ルート」(図3)を、ルート階層の「ルート」カテゴリ1600として表示させる。また、ユーザインターフェース部5(後述する2軸マップ表示部51)は、カテゴリデータ300を上位カテゴリとするカテゴリデータ310、320、330のカテゴリ名313、323、333に設定されている「出願人別」、「出願年別」、「内容別」(図3)を、「ルート」カテゴリ1600の下位階層である「出願人別」カテゴリ1601、「出願年別」カテゴリ1602、「内容別」カテゴリ1603として表示させる。このような全体像を表示させる前提で、以下の説明を行なう。
図1に示す文書分類部3は、軸カテゴリ集合と対象カテゴリを入力として受け取る。軸カテゴリ集合は、2軸マップにおいて一方の軸となるカテゴリの子カテゴリ(軸カテゴリ)の集合であり、上述したように、分類における観点とするカテゴリ集合である。なお、子カテゴリとは、あるカテゴリに対して1つ下位のカテゴリであり、軸カテゴリ集合に含まれる子カテゴリ(軸カテゴリ)の数は1以上である。対象カテゴリは、2軸マップにおける他方の軸となるカテゴリであり、文書分類の観点となるカテゴリに対して分類対象となるカテゴリである。すなわち、本実施形態では、軸カテゴリ集合を分類における観点として、この軸カテゴリ集合に基づいて、対象カテゴリに含まれる文書データを分類する。ここで、文書分類部3は、軸カテゴリに分類された文書データについて、対象カテゴリを用いて分類する。例えば、「内容別」カテゴリに分類された文書データ集合を年代別の観点で分類したい場合、対象カテゴリに「内容別」カテゴリを指定し、観点とするカテゴリには「年代別」カテゴリを指定する。このとき、軸カテゴリ集合は、「年代別」カテゴリの子カテゴリである「2004年」,「2005年」,「2006年」,「2007年」,「2008年」の各集合(図19におけるカテゴリ1621〜1625)となる。そして、この内容を2軸マップで表する場合は、一方の軸が「年代別」カテゴリとなり、他方の軸が「内容別」カテゴリとなる。
この分類に用いられる特徴語を決定するため、文書分類部3は、入力された対象カテゴリに分類される文書データ集合(対象文書データ集合)に出現する単語について特徴度を算出する。特徴度とは、単語が対象文書データ集合の特徴をどの程度表しているかを定量的に示す指標値である。なお、対象文書データ集合に含まれる文書データの数は、1以上である。また、文書分類部3は、対象カテゴリの子カテゴリとして、軸カテゴリ集合に対して出現傾向が類似した特徴語のグループに基づく特徴語カテゴリを生成する。
文書分類部3は、特徴度算出部31、特徴度補正部32、及び特徴語カテゴリ生成部33を備えて構成される。
特徴度算出部31は、対象カテゴリに分類された文書データの集合である対象文書データ集合に出現する単語について、所定の文書データ集合における出現頻度の統計的有意性に基づき特徴度を算出し、特徴度データ記憶部4に記憶する。
特徴度補正部32は、後述するユーザインターフェース部5の着目語設定部53から、ユーザが選択した着目語を複数集めた着目語集合を入力として受取る。着目語とは、対象カテゴリの子カテゴリとして特徴語カテゴリを生成する際にユーザが着目対象として選択した単語である。特徴度補正部32は、特徴度データ記憶部4に記憶された各単語の特徴度を、該単語と着目語集合との共起度に基づいて補正する。
特徴語カテゴリ生成部33は、軸カテゴリ集合に対して出現傾向の類似した特徴語のグループに基づいて特徴語カテゴリを生成し、生成した特徴語カテゴリのデータをカテゴリ記憶部2に記憶する。特徴語カテゴリ生成部33は、傾向ベクトル生成部34、クラスタリング部35、及びカテゴリ生成処理部36を備えて構成される。傾向ベクトル生成部34は、特徴度データ記憶部4に記憶された特徴度が所定の値より大きい単語の集合を特徴語集合とする。傾向ベクトル生成部34は、特徴語集合に含まれる各単語について、対象文書データ集合中での各軸カテゴリにおける出現頻度を算出し、算出した各軸カテゴリにおける出現頻度に基づく統計量を、その軸カテゴリに対応した要素の値とする傾向ベクトルを生成して特徴度データ記憶部4に記憶する。クラスタリング部35は、生成した傾向ベクトルの類似性に基づきクラスタリングを行い、関連の強い単語のグループである特徴語クラスタを抽出する。カテゴリ生成処理部36は、特徴語クラスタに含まれる単語である特徴語をフィルタ語とし、そのフィルタ語を分類の条件とする特徴語カテゴリを生成する。カテゴリ生成処理部36は、生成した特徴語カテゴリのデータをカテゴリ記憶部2に記憶する。
特徴度データ記憶部4は、対象文書データ集合に含まれる各単語についての特徴度データを格納する手段である。特徴度データは、文書分類部3によって生成された特徴度と、軸カテゴリ集合に対する傾向ベクトルとを含む。
ユーザインターフェース部5は、2軸マップの横軸となるカテゴリ(以下、「横軸カテゴリと記載する)と縦軸となるカテゴリ(以下、「縦軸カテゴリ」と記載する)との2つのカテゴリの入力を受け、ユーザに対して2軸マップを提示する。実際のこの提示の際には、インターネットを介して通信し、パーソナルコンピュータ(PC)のディスプレイ上に表されたブラウザなどの汎用的な機器を用いることが多い。また、ユーザインターフェース部5は、ユーザからの特徴語クラスタリングの実行要求や、着目語集合の設定、特徴語カテゴリの編集操作を受け付ける。ユーザインターフェース部5は、例えば、グラフィカル・ユーザ・インタフェース(以下、「GUI」と記載する)によって実現される。
ユーザインターフェース部5は、2軸マップ表示部51、カテゴリ操作部52、及び着目語設定部53を備えて構成される。
2軸マップ表示部51は、横軸カテゴリと縦軸カテゴリの2つのカテゴリの入力を受け、それらカテゴリの下位カテゴリをそれぞれ行と列の項目とした2軸マップをパーソナルコンピュータのディスプレイなどに表示させる(例えば、後述する図22や図25)。2軸マップ表示部51は、パーソナルコンピュータ(PC)のディスプレイを通じて2軸マップを表示させる際、2軸マップの各セルに、そのセルが対応する行の項目のカテゴリと列の項目のカテゴリとの両カテゴリに分類された文書データの数に応じたグラフを表示させる。さらに、2軸マップ表示部51は、2軸マップ上において、特徴語カテゴリのタイトル行のセル(例えば、後述する図25のセル2101)に、該特徴語カテゴリのフィルタ語を表示させる。また、2軸マップ表示部51は、2軸マップ上でユーザが選択したフィルタ語の入力を受けると、フィルタ語が選択された行について、横軸カテゴリの各下位カテゴリと、フィルタ語が選択された行の特徴語カテゴリとの両カテゴリに分類された文書データ集合中で、選択されたフィルタ語を含む文書データの数を上記のグラフとは区別して表示させる(例えば、後述する図26)。
カテゴリ操作部52は、2軸マップ上でユーザからの特徴語クラスタリングの実行要求を受け付け、この実行要求を文書分類部3に出力する。また、カテゴリ操作部52は、2軸マップ上でユーザによる特徴語カテゴリの選択を受け、選択された特徴語カテゴリの特徴語を表示させる(例えば、後述する図27の特徴語追加画面2310)。さらに、カテゴリ操作部52は、ユーザから特徴語カテゴリに対するフィルタ語の追加・削除といった編集操作を受け付け、カテゴリ記憶部2に記憶されている該特徴語カテゴリのデータをその編集操作に応じて更新する。
着目語設定部53は、分類にあたり着目する複数の単語を着目語集合としてユーザから受け付けて、文書分類部3に出力する。文書分類部3は、着目語設定部53から着目語集合の入力を受け、特徴度データ記憶部4に記憶された各単語の特徴度データに対して特徴度の補正を行い、補正された特徴度に基づいて選択した単語を特徴語として特徴語カテゴリを生成する。これにより、文書分類部3は、生成される特徴語カテゴリと、カテゴリ操作部52によって提示されるカテゴリの特徴語とを、ユーザが着目した単語に則したものとすることができる。
文書分類装置100は上述したように構成され、例えばパーソナルコンピュータ(PC)によって実現される。PCは、例えばCPU(central processing unit)、メモリ、ハードディスクドライブ(HDD)、液晶ディスプレイ、キーボード、マウス等で構成される。
図2は、文書記憶部1に記憶される文書データの一例を示す図である。文書記憶部1には複数の文書データが記憶される。各文書データは、図2(a)の文書データ200aに示すように、ユニークな識別子である文書番号201のデータを含む。
さらに、文書データ200aは、その目的や形式に従った属性のデータを含む。例えば、図2(a)は、特許情報を記述した文書の例を示しており、出願日203、出願人204などの属性のデータを含む。また、文書データ200aは、文書のテキストデータ、すなわち、日本語や英語などの自然言語で記述されたデータとして、文書名202、本文205などのテキストを含む。加えて、文書データ200aは、その文書データ200aに含まれる各単語の出現数(出現頻度tf)を要素とする単語ベクトル206のデータを保持する。この単語ベクトル206は、文書分類部3によって算出される。なお、単語ベクトル206は、文書データ200aと対応する形で、元の文書データが保持されている文書データベースとは異なるデータベースに保持されてもよい。
図2(b)に示す文書データ200bは、図2(a)に示す文書データ200aをXML(extensible markup language)形式で記述した場合の例である。この場合、文書データ200bには、文書データ200aにおける文書番号、各属性、各テキスト、単語ベクトルに相当するデータが、XMLの要素(タグ)や属性を用いて記述される。
図3は、カテゴリ記憶部2に記憶されるカテゴリデータの一例を示す図である。なお、後述する図19に、カテゴリの階層構造の一例を示している。
図3においては、カテゴリデータ300、310、320、330、340、350の6つの例を示している。各カテゴリデータはそれぞれ、ユニークな識別子であるカテゴリ番号301、311、321、331、341、351のデータを含む。ここでは、文書記憶部1に記憶された文書データ200a(または文書データ200b)の属性を示す出願人204、出願日203のそれぞれにより、出願人別、出願年別にカテゴリが作成されている。
本実施形態の文書分類装置100では、複数のカテゴリによってツリー形式の階層構造を構成する(例えば、後述する図19)。そのため、各カテゴリデータはそれぞれ、カテゴリの上位と下位の関係を表すデータとして上位カテゴリ302、312、322、332、342、352のデータを有する。ただし、カテゴリデータ300は階層構造のルートにあたるカテゴリを表すため、上位カテゴリ302には「(なし)」が設定される。また、「出願人別」カテゴリの上位カテゴリは「ルート」カテゴリである。そのため、「出願人別」カテゴリに対応したカテゴリデータ310の上位カテゴリ312には、「ルート」カテゴリに対応したカテゴリデータ300のカテゴリ番号301の設定値「C000」が設定される。また、各カテゴリデータ300、310、320、330、340、350はそれぞれ、カテゴリ名303、313、323、333、343、353のデータを有する。
また、カテゴリの分類の基準は分類ルール304、314、324、334、344、354に記述される。例えば、「ルート」カテゴリのカテゴリデータ300は、階層構造のルートのカテゴリを表すため、その分類基準である分類ルール304は、「true(恒真)」とする。分類ルール304が「true(恒真)」であるとは、全ての文書データが条件を満足するというルールが設定されていることを示す。また、例えば、カテゴリデータ340の分類ルール344は、「./出願人=”A社”」である。この分類ルール344は、文書記憶部1に記憶された文書データ200aが持つ属性の出願人204が「A社」であることを条件としたルールである。
なお、分類ルール304、314、324、334、344、354は、XML形式で記述した文書データ200bについての条件の記述、すなわち、XQuery(もしくはXPath)と呼ばれる問い合わせに言語を用いて記述した例である。分類ルール304、314、324、334、344、354の記述形式は、文書記憶部1の実現方法や、文書データの形式に応じて定めればよく、例えばSQLなどを用いてもよい。
カテゴリデータ350の分類ルール354もXQueryの条件式を用いて記述した例であり、文書データの「出願日」属性が「2008年」であることを条件としたルールである。この分類ルールは、カテゴリの階層構造に対して、AND条件として作用する。例えば、図3に示す例とは異なるが、カテゴリデータ340に示す「A社」カテゴリの下位カテゴリとして、カテゴリデータ350に示す「2008年」カテゴリが存在した場合を想定する。この場合、「2008年」カテゴリに分類される文書データは、「A社」カテゴリの分類ルール「./出願人=”A社”」と、その下位カテゴリである「2008年」カテゴリの分類ルール「./出願日>=”2008/01/01” and ./出願日<=”2008/12/31”」とのAND条件「(./出願人=”A社”) and (./出願日>=”2008/01/01” and ./出願日<=”2008/12/31)」にマッチする文書データ、すなわち、出願人が「A社」であり、かつ、出願年が「2008年」の文書データとなる。
図4は、文書分類部3によって生成される特徴語カテゴリのカテゴリデータである特徴語カテゴリデータの一例である。
特徴語カテゴリデータは、図3に示す他のカテゴリデータと同様にカテゴリ記憶部2に格納される。図4には、特徴語カテゴリデータ400、410の2つの例を示している。特徴語カテゴリデータ400、410はそれぞれ、図3に示したような他のカテゴリデータと同様に、カテゴリ番号401、411、上位カテゴリ402、412、カテゴリ名403、413、分類ルール404、414のデータを含む。さらに、特徴語カテゴリデータ400、410は、カテゴリ生成処理部36によって抽出された特徴語クラスタに含まれる特徴語を示すフィルタ語405、415のデータを有する。
特徴語カテゴリデータに含まれる分類ルール404、414は、カテゴリ生成処理部36によって、フィルタ語405、415に基づいて生成される。例えば、カテゴリ生成処理部36は、文書データのテキスト情報にフィルタ語405、415が含まれることを示す条件を分類ルールとして生成する。同図に示す特徴語カテゴリデータ400のフィルタ語405には、「分類」と「知識」と「共有」が設定されている。従って、特徴語カテゴリデータ400の分類ルール404には、文書データ200aのテキスト情報である本文205にこれらのフィルタ語405が含まれるという条件、つまり、「contains(./本文,“分析”) and contains(./本文,“知識”) and contains(./本文,“共有”)」が設定される。
図5は、文書分類部3によって生成され、特徴度データ記憶部4に格納される特徴度データの一例である。同図に示す特徴度データ500−1、500−2、…は、文書分類部3において対象文書データ集合から抽出された各単語に対応し、単語510と、文書頻度501と、特徴度502と、補正特徴度503と、軸カテゴリ(カテゴリ番号)に対する頻度ベクトル/傾向ベクトル504のデータを有する。なお、特徴度データ500−1、500−2、…を総称して、特徴度データ500と記載する。
文書頻度501は、対象文書データ集合中で単語510が出現する文書データの数である文書数(文書頻度df)を示す。特徴度502は、特徴度算出部31によって算出される特徴度を示す。補正特徴度503は、ユーザから指定された着目語集合に基づき特徴度補正部32が特徴度を補正した値を示す。軸カテゴリ(カテゴリ番号)に対する頻度ベクトル/傾向ベクトル504は、頻度ベクトル511及び傾向ベクトル512のデータを有する。特徴度データ500−i(i=1、2、…)の頻度ベクトル511及び傾向ベクトル512をそれぞれ、頻度ベクトル511−i及び傾向ベクトル512−iとする。頻度ベクトル511は、対象文書データ集合と軸カテゴリ集合中の各軸カテゴリとの共通集合中に単語510が出現する文書データの数である文書数(cf)を要素(成分)の値とする。傾向ベクトル512は、対象文書データ集合に対する前述の共通集合中における単語510の出現割合(cp)を各要素の値とする。ただし、傾向ベクトル生成部34は、補正特徴度が所定の値以下の単語は、特徴語クラスタの対象外とするため、頻度ベクトルと傾向ベクトルを求めない。図5においては、単語510「探索」と「メール」とが特徴語クラスタの対象外となった例であり、これらの単語の特徴度データ500−3、500−5の頻度ベクトル511−3、511−5と傾向ベクトル512−3、512−5は空となる。
図6は、着目語設定部53が内部に記憶する着目語リストデータの一例を示す図である。図6に示す着目語リストデータ600の着目語候補601には、2軸マップ上でユーザが着目語として選択したフィルタ語、もしくは、ユーザが着目語として入力した文字列のリストが設定される。着目語候補601には、文書分類部3において実際に着目語として適用するか否かを示すフラグである着目語設定602が付与される。本実施形態では、着目語設定602が「1」ならば着目語として適用し、「0」ならば非適用であることを示す。
以下、図7〜図29を参照して、本発明の実施形態に係る文書分類装置が行う文書分類処理の一例を説明する。
図7は、本実施形態の文書分類装置100が行う文書分類処理の流れの一例を示すフローチャートである。まず、ユーザインターフェース部5の2軸マップ表示部51は、ユーザの操作により、2軸マップの横軸カテゴリ及び縦軸カテゴリの入力を受け、初期2軸マップ表示処理を行う(ステップS1)。初期2軸マップ表示処理において、2軸マップ表示部51は、カテゴリ記憶部2から横軸カテゴリの子カテゴリの集合と縦軸カテゴリの子カテゴリの集合を取得する。2軸マップ表示部51は、横軸カテゴリの子カテゴリ(以下、「横軸子カテゴリ」と記載する)を横軸の各項目とし、縦軸カテゴリの子カテゴリ(以下、「縦軸子カテゴリ」と記載する)を縦軸の各項目とした2軸マップを表示させる。なお、横軸カテゴリに子カテゴリがない場合は、横軸カテゴリを横軸の項目とし、縦軸カテゴリに子カテゴリがない場合は、縦軸カテゴリを縦軸の項目とする(例えば、後述する図22)。
続いて、カテゴリ操作部52は、ユーザからクラスタリング要求と対象カテゴリの入力を受ける(ステップS2)。例えば、ユーザは、ステップS1において表示させた2軸マップの横軸カテゴリ、または、縦軸カテゴリの中から対象カテゴリを選択する。カテゴリ操作部52は、入力された対象カテゴリと軸カテゴリ集合を文書分類部3に出力する。軸カテゴリ集合は、対象カテゴリとして選択されなかった横軸カテゴリの下位カテゴリの集合、または、縦軸カテゴリの下位カテゴリの集合である。文書分類部3の特徴度算出部31は、対象カテゴリに分類された文書データの集合である対象文書データ集合から、所定の品詞であり、かつ、不要語ではない単語を抽出して特徴度を算出し、特徴度データ記憶部4に書き込む(ステップS3)。カテゴリ操作部52は、ユーザから着目語の入力を受け(例えば、後述する図23の着目語設定フォーム1910)、文書分類部3に出力する(ステップS4)。文書分類部3の特徴度補正部32は、ステップS3において特徴度データ記憶部4に記憶された各単語の特徴度を、対象文書データ集合における該単語と着目語集合との共起度に基づいて補正する(ステップS5)。
傾向ベクトル生成部34は、補正された特徴度が所定の値より大きい単語について傾向ベクトルを生成し、特徴度データ記憶部4に記憶する(ステップS6)。クラスタリング部35は、傾向ベクトルの類似性に基づき単語のクラスタリングを行い、関連の強い単語のグループである特徴語クラスタを抽出する(ステップS7)。カテゴリ生成処理部36は、特徴語クラスタに含まれる単語である特徴語をフィルタ語とし、そのフィルタ語を分類の条件とする特徴語カテゴリを生成する。カテゴリ生成処理部36は、生成した特徴語カテゴリのデータ(例えば、図4の特徴語カテゴリデータ400、410)をカテゴリ記憶部2に記憶する(ステップS8)。これにより、カテゴリ構造が更新される(例えば、後述する図24)。
2軸マップ表示部51は、軸カテゴリ集合と、ステップS8において生成された特徴語カテゴリ集合とを2軸とする2軸マップを表示させる(ステップS9)。このとき、2軸マップ表示部51は、特徴語カテゴリそれぞれのフィルタ語を表示させる(例えば、後述する図25)。
カテゴリ操作部52は、ユーザからのフィルタ語の追加や削除などの編集操作を受け付け(例えば、後述する図27)、カテゴリ記憶部2に記憶されている特徴語カテゴリデータを更新する(ステップS10)。2軸マップ表示部51は、軸カテゴリ集合と、ステップS10において更新された特徴語カテゴリデータに基づく特徴語カテゴリ集合とを2軸とする2軸マップ(例えば、後述する図28)を表示させる(ステップS11)。
続いて、図7の各処理ステップにおける詳細な処理について説明する。
図8は、初期2軸マップを表示させる処理の流れを示すフローチャートである。同図に示すフローチャートは、図7のステップS1における初期2軸マップ表示処理の詳細な処理の一例を示す。
最初に、2軸マップ表示部51は、ユーザによる2軸マップの横軸カテゴリxAxisCatと、縦軸カテゴリyAxisCatとの入力を受ける(ステップS1001)。この入力のため、本実施形態では、2軸マップ表示部51は、カテゴリ記憶部2に記憶されているカテゴリデータ及び特徴語カテゴリデータに基づいて、カテゴリ構造を表す画面を表示させる。ここでは、図4に示す特徴語カテゴリデータ400、410がまだ生成されていないものとする。
図19は、カテゴリ記憶部2の初期状態として記憶されたカテゴリ構造の画面表示例を示す図である。2軸マップ表示部51は、上位カテゴリが設定されていないカテゴリデータ300のカテゴリ名303「ルート」を、ルート階層の「ルート」カテゴリ1600として表示させる。さらに、2軸マップ表示部51は、カテゴリデータ300のカテゴリ番号301「C000」が上位カテゴリに設定されているカテゴリデータ310、320、330を特定する。2軸マップ表示部51は、これらカテゴリデータ310、320、330のカテゴリ名313、323、333に設定されている「出願人別」、「出願年別」、「内容別」を、「ルート」カテゴリ1600の下位階層である「出願人別」カテゴリ1601、「出願年別」カテゴリ1602、「内容別」カテゴリ1603として表示させる。
さらに、2軸マップ表示部51は、カテゴリデータ310のカテゴリ番号301「C0001」が上位カテゴリに設定されているカテゴリデータを特定する。2軸マップ表示部51は、特定したカテゴリデータが示すカテゴリ名「A社」、「B社」、「C社」、「D社」、「E社」を、「出願人別」カテゴリ1601の下位階層である「A社」カテゴリ1611、「B社」カテゴリ1612、「C社」カテゴリ1613、「D社」カテゴリ1614、「E社」カテゴリ1615として表示させる。
同様に、2軸マップ表示部51は、カテゴリデータ320のカテゴリ番号321「C0002」が上位カテゴリに設定されているカテゴリデータを特定する。2軸マップ表示部51は、特定したカテゴリデータが示すカテゴリ名「2004年」、「2005年」、「2006年」、「2007年」、「2008年」を、「出願年別」カテゴリ1602の下位階層である「2004年」カテゴリ1621、「2005年」カテゴリ1622、「2006年」カテゴリ1623、「2007年」カテゴリ1624、「2008年」カテゴリ1625として表示させる。「A社」カテゴリ1611及び「2008年」カテゴリ1625はそれぞれ、図3に示すカテゴリデータ340、350に対応する。
そして、カテゴリデータ330のカテゴリ番号331「C0003」を上位カテゴリとするカテゴリデータがないため、2軸マップ表示部51は、「内容別」カテゴリ1603には下位カテゴリを表示させない。
さらに、2軸マップ表示部51は、カテゴリ記憶部2に記憶されている各カテゴリのカテゴリデータ(または特徴語カテゴリデータ)から分類ルールを読み出す。2軸マップ表示部51は、読み出した分類ルールを用いて各カテゴリに分類された文書データ数をカウントし、そのカウント数を表示させる。なお、2軸マップ表示部51は、各カテゴリのカテゴリデータ(または特徴語カテゴリデータ)に、当該カテゴリに分類された文書データの文書番号を対応付けて記憶しておいてもよい。
続いて、図19の表示を用いて横軸カテゴリxAxisCatと、縦軸カテゴリyAxisCatとを入力する方法の一例について説明する。
図20は、2軸マップ表示の実行画面の表示例を示す図であり、図19の表示を用いて横軸カテゴリxAxisCatと縦軸カテゴリyAxisCatを入力する場合の表示例を示す。まず、ユーザは2軸マップ表示部51が表示させたカテゴリ構造に対して、2軸マップにおいて横軸と縦軸にする2つのカテゴリを選択する。ここでは、ユーザは図20において「出願年別」カテゴリ1602と「内容別」カテゴリ1603を選択する。
2軸マップ表示部51は、選択された2つのカテゴリの入力を受けると、これら2つのカテゴリのうち、いずれを分類観点である横軸カテゴリxAxisCatとするかを選択させる画面1710を表示させる。ユーザは、分類観点とするカテゴリのラジオボタン1711を選択して実行ボタン1712を押す。これにより、2軸マップ表示部51は、横軸カテゴリxAxisCatとして、ユーザが選択した「出願年別」カテゴリ1602の入力を受ける。縦軸カテゴリyAxisCatは、ユーザが選択しなかった「内容別」カテゴリ1603となる。
上記のようにして、2軸マップ表示部51は、ユーザが選択した横軸カテゴリxAxisCatと、縦軸カテゴリyAxisCatの入力を受ける。なお、本実施形態では、2軸マップへの入力方法として図19及び図20に示すようなGUIを使用した例を示したが、2軸マップを表示させる上で、カテゴリ記憶部2が記憶しているカテゴリデータまたは特徴語カテゴリデータが示すカテゴリのうちいずれを、横軸カテゴリxAxisCat、および縦軸カテゴリyAxisCatとするかを入力できればよい。そのため、GUIの使用に限らず、コンピュータシステムのコマンドラインからの入力としてもよい。
図8において、2軸マップ表示部51は、カテゴリ記憶部2に記憶されているカテゴリデータ及び特徴語カテゴリデータに基づいて、横軸カテゴリxAxisCatの子カテゴリの集合である横軸子カテゴリ集合xCatsと、縦軸カテゴリyAxisCatの子カテゴリの集合である縦軸子カテゴリ集合yCatsを取得する(ステップS1002)。なお、横軸カテゴリxAxisCatの子カテゴリを横軸子カテゴリxCatとし、縦軸カテゴリyAxisCatの子カテゴリを縦軸子カテゴリyCatとする。横軸子カテゴリxCatは、横軸カテゴリxAxisCatのカテゴリデータまたは特徴語カテゴリデータのカテゴリ番号が上位カテゴリに設定されているカテゴリデータまたは特徴語カテゴリデータに対応する。同様に、縦軸子カテゴリyCatは、縦軸カテゴリyAxisCatのカテゴリデータまたは特徴語カテゴリデータのカテゴリ番号が上位カテゴリに設定されているカテゴリデータまたは特徴語カテゴリデータに対応する。
図20に示す例の場合、2軸マップ表示部51は、横軸子カテゴリ集合xCatsとして、横軸カテゴリxAxisCatである「出願年別」カテゴリ1602の子カテゴリの集合{「2004年」カテゴリ1621、「2005年」カテゴリ1622、「2006年」カテゴリ1623、「2007年」カテゴリ1624、「2008年」カテゴリ1625}を取得する。横軸子カテゴリxCatは、「出願年別」カテゴリ1602に対応したカテゴリデータ320のカテゴリ番号321が、上位カテゴリに設定されているカテゴリデータに対応する。また、縦軸カテゴリyAxisCatである「内容別」カテゴリ1603は子カテゴリを持たないため、2軸マップ表示部51は、縦軸子カテゴリ集合yCatsとして空集合を取得する。つまり、「内容別」カテゴリ1603に対応したカテゴリデータ330のカテゴリ番号331が上位カテゴリに設定されているカテゴリデータや特徴語カテゴリデータは、カテゴリ記憶部2に記憶されていない。
2軸マップ表示部51は、縦軸カテゴリyAxisCatと、縦軸子カテゴリ集合yCatsに含まれる各縦軸子カテゴリyCatとを行とし、横軸子カテゴリ集合xCatsに含まれる各横軸子カテゴリxCatを列として2軸マップ初期テーブルを作成し、表示させる(ステップS1003)。
図21は、ステップS1003で作成される2軸マップ初期テーブル1800を示す。2軸マップ初期テーブル1800は、カテゴリを表示させるタイトル行及びタイトル列も含むため、行数が(1+縦軸カテゴリ数+縦軸子カテゴリ数)、列数が(1+横軸子カテゴリ数)のテーブルである。本実施形態では縦軸子カテゴリがないために行数が(1+縦軸カテゴリ数)となっている。同様に横軸子カテゴリがない場合、列数は(1+横軸カテゴリ数)となる。2軸マップ初期テーブル1800の1行目(セル1802を含む行)がタイトル行であり、1列目(セル1801を含む行)がタイトル列である。
図8において、2軸マップ表示部51は、作成した2軸マップ初期テーブル1800における全てのセル(以下、「cell」と記載する)を1つずつ選択し、選択したcellについてステップS1005〜ステップS1010の処理を繰り返す(ステップS1004−NO)。
まず、2軸マップ表示部51は、cellが先頭行(1行目)もしくは先頭列(1列目)であるか否か判定する(ステップS1005)。cellが先頭行(1行目)もしくは先頭列(1列目)であると判定した場合(ステップS1005−YES)、2軸マップ表示部51は、ステップS1006〜ステップS1008の処理を行う。ステップS1006〜ステップS1008の処理では、先頭行や先頭列をテーブルのタイトル行もしくはタイトル列として、cellに対応するカテゴリのカテゴリ名とフィルタ語を表示させる。
すなわち、2軸マップ表示部51は、処理中のcellが先頭行もしくは先頭列の場合、当該cellに対応するカテゴリcat(縦軸カテゴリyAxisCat、縦軸子カテゴリyCat、または、横軸子カテゴリxCat)のカテゴリ名を表示させる(ステップS1006)。2軸マップ表示部51は、カテゴリ名を、cellに対応したカテゴリのカテゴリデータまたは特徴語カテゴリデータから読み出す。さらに、2軸マップ表示部51は、cellに対応するカテゴリcatがフィルタ語集合filtersを持つか否か判定する(ステップS1007)。具体的には、2軸マップ表示部51は、カテゴリcatが特徴語カテゴリデータに対応しており、かつ、フィルタ語が設定されているか否かによりフィルタ語集合filtersを持つか否かにより判定する。
カテゴリcatがフィルタ語集合filtesを持つと判定した場合(ステップS1007−YES)、2軸マップ表示部51は、フィルタ語集合filtersに含まれるフィルタ語をcellに表示させる(ステップS1008)。このフィルタ語集合filtersは、cellに対応したカテゴリcatの特徴語カテゴリデータに設定されているフィルタ語の集合である。カテゴリcatがフィルタ語集合filtesを持たないと判定した場合(ステップS1007−NO)、あるいは、ステップS1008の処理の後、2軸マップ表示部51は、ステップS1004に戻り、未選択のcellを選択して処理を繰り返す。
ステップS1005において、cellが先頭行(1行目)でも先頭列(1列目)でもないと判定した場合(ステップS1005−NO)、2軸マップ表示部51は、cellの行に対応する縦軸カテゴリyAxisCatまたは縦軸子カテゴリyCatと、cellの列に対応する横軸子カテゴリxCatとの両方に分類された文書データの数である文書数dnを求める(ステップS1009)。
文書数dnは、文書データがXMLの場合は、XQueryにおいて、条件式の積を用いることで求めることができる。例えば、後述する図22のセル1803の場合、対応する縦軸カテゴリyAxisCat=「内容別」カテゴリの分類ルールと横軸子カテゴリxCat=「2004年」カテゴリの分類ルールとの論理積を満たす文書データの数をカウントする。
「内容別」カテゴリのカテゴリデータ330に設定されている分類ルール334は「true」であり、その上位カテゴリ「ルート」カテゴリデータ300に設定されている分類ルール304は「true」である。よって、縦軸カテゴリyAxisCat「内容別」カテゴリの分類ルールは、「(true) and (true)」である。
一方、「2004年」カテゴリのカテゴリデータに設定されている分類ルールは「./出願日>=”2004/01/01” and ./出願日<=”2004/12/31”」であり、その上位カテゴリ「ルート」のカテゴリデータ300に設定されている分類ルール304は「true」である。よって、横軸子カテゴリxCat「2004年」カテゴリの分類ルールは「(true) and (./出願日>=”2004/01/01” and ./出願日<=”2004/12/31”)」である。
従って、2軸マップ表示部51は、縦軸カテゴリyAxisCat「内容別」カテゴリの分類ルールと横軸子カテゴリxCat「2004年」カテゴリの分類ルールとの論理積「{(true) and (true)} and {(true) and (./出願日>=”2004/01/01” and ./出願日<=”2004/12/31”)}」を満たす文書データの数をカウントし、文書数dnとする。文書数dnは、XQueryのcount()関数を利用することで算出することができる。
次に、2軸マップ表示部51は、ステップS1003において作成したテーブルのcellに、ステップS1009において算出した文書数dnに応じた大きさの円chartを表示させる(ステップS1010)。2軸マップ表示部51は、ステップS1004に戻り、未選択のcellを選択して処理を繰り返す。
そして、2軸マップ表示部51は、2軸マップ初期テーブル1800における全てのcellに対してステップS1005〜ステップS1010の処理を終了すると(ステップS1004−YES)、図8の処理を終了する。
図22は、上記の処理終了時に2軸マップ表示部51が表示させる2軸マップの初期表示例を示す図である。ここでは、「内容別」カテゴリの下位に特徴語カテゴリが生成されていない初期状態の2軸マップのため、同図に示すように、縦軸の1列目には「内容別」カテゴリのみが表示されている。
図9は、カテゴリ操作部52が実行する2軸マップ上のカテゴリ操作に対する処理の流れを示すフローチャートである。同図に示す処理により、カテゴリ操作部52は、図7のステップS2〜ステップS11の処理の流れを制御する。ユーザは、カテゴリ操作部52を介して対象カテゴリを入力することによって、特徴語クラスタリングの実行を要求する。例えば、カテゴリ操作部52は、2軸マップ表示部51が図9の初期2軸マップ表示処理により表示させた初期2軸マップ上でユーザからの特徴語クラスタリングの実行要求を受け付ける。また、カテゴリ操作部52は、特徴語クラスタリングにより生成された特徴語カテゴリの選択を受ける。カテゴリ操作部52は、選択された特徴語カテゴリにフィルタ語として用いられている特徴語を表示させ(例えば、後述する図27の特徴語追加画面2310)、ユーザから特徴語カテゴリに対するフィルタ語の追加・削除といった編集操作を受け付ける。カテゴリ操作部52は、受け付けた編集操作に応じてカテゴリ記憶部2に記憶された特徴語カテゴリのカテゴリデータを更新する。
そこで、カテゴリ操作部52は、2軸マップにおいてユーザが選択したカテゴリcatの入力を受けた場合(ステップS1101−YES)、さらに、ユーザからの特徴語クラスタリングの実行要求の入力を受けたか(ステップS1102)、フィルタ語の追加要求の入力を受けたか(ステップS1105)、あるいは、フィルタ語の削除要求の入力を受けたか(ステップS1111)に応じて、それぞれの処理を行う。以下、図9の処理を詳細に説明する。
まず、カテゴリ操作部52は、ユーザが選択したカテゴリcatの入力を受ける(ステップS1101−YES)。
図23は、特徴語クラスタリングの実行要求画面及び着目語の設定画面の表示例を示す図である。ここでは、ユーザは、2軸マップ表示部51が初期2軸マップ表示処理において図22のように表示させた2軸マップ初期テーブル上で、クラスタリングの対象カテゴリを選択している。同図では、ユーザは、セル1801を選択することにより、縦軸カテゴリである「内容別」カテゴリを対象カテゴリとして選択している。これにより、カテゴリ操作部52は、カテゴリcatとして、ユーザが選択した「内容別」カテゴリの入力を受ける。さらに、カテゴリ操作部52は、ユーザから特徴語クラスタリングの実行要求の入力を受けると、特徴語クラスタリングの実行確認画面1930を表示させる。
図9において、カテゴリ操作部52は、ユーザが実行確認画面1930の「実行」ボタン1931を選択した旨の入力を受けると(ステップS1102−YES)、ステップS1103の処理を行う。つまり、カテゴリ操作部52は、対象カテゴリとして入力されたカテゴリcatと、2軸マップにおいて対象カテゴリとして入力されなかった他の軸の子カテゴリの集合である軸カテゴリ集合を文書分類部3に出力し、特徴語クラスタリングの実行を指示する(ステップS1103)。本実施形態では、対象カテゴリとして縦軸カテゴリが入力されるため、カテゴリ操作部52は、軸カテゴリ集合として、横軸子カテゴリxCatの集合である横軸子カテゴリ集合xCatsを文書分類部3に出力する。横軸子カテゴリ集合xCatsは、分類における観点とする軸カテゴリ集合である。図23に示すように、ユーザが「内容別」カテゴリを選択し、特徴語クラスタリングの実行を選択した場合、カテゴリ操作部52は、文書分類部3にカテゴリcatとして「内容別」カテゴリを出力し、横軸子カテゴリ集合xCatsとして{「2004年」カテゴリ、「2005年」カテゴリ、「2006年」カテゴリ、「2007年」カテゴリ、「2008年」カテゴリ}を出力する。ステップS1101〜ステップS1103の処理は、図7におけるステップS2のカテゴリ操作処理に相当する。
ステップS1103においてカテゴリcatと横軸子カテゴリ集合xCatsの入力を受けた文書分類部3が、特徴語クラスタリングを実行し、図7におけるステップS3〜ステップS8までの処理を終了する。カテゴリ操作部52は、現在の2軸マップの横軸カテゴリxAxisCatと、縦軸カテゴリyAxisCatを2軸マップ表示部51に出力し、2軸マップの表示を更新する(ステップS1104)。例えば、図23に示すように、ユーザがセル1801を選択し、特徴語クラスタリングの実行要求を入力した場合、横軸カテゴリxAxisCatは「出願年別」カテゴリであり、縦軸カテゴリyAxisCatは「内容別」カテゴリである。これにより、文書分類部3による特徴語クラスタリングの結果を2軸マップに反映する。ステップS1104の処理は、図7におけるステップS9の処理に相当する。カテゴリ操作部52は、ステップS1101からの処理を繰り返す。
そして、カテゴリ操作部52は、ユーザにより選択されたカテゴリcatの入力を受け(ステップS1101−YES)、さらに、フィルタ語の追加要求の入力を受けた場合は(ステップS1102−NO、ステップS1105−YES)、ステップS1106〜ステップS1110の処理を行い、フィルタ語の削除要求の入力を受けた場合は(ステップS1102、ステップS1105−NO、ステップS1111−YES)、ステップS1112の処理を行う。カテゴリ操作部52は、ステップS1110またはステップS1112の処理の終了後、表示させている2軸マップの横軸カテゴリxAxisCatと、縦軸カテゴリyAxisCatを2軸マップ表示部51に出力し、2軸マップの表示を更新する(ステップS1104)。ステップS1105〜ステップS1112の処理は、図7におけるステップS10の処理に相当し、その後のステップS1104の処理は、図7におけるステップS11の処理に相当する。カテゴリ操作部52は、ステップS1101からの処理を繰り返す。これらの処理の詳細については、後述する。
カテゴリ操作部52は、カテゴリの選択が入力されない場合(ステップS1101−NO)、あるいは、カテゴリの選択が入力された後(ステップS1101−YES)、ユーザから特徴語クラスタリングの実行要求、フィルタ語の追加要求、フィルタ語の削除要求、終了要求のいずれも入力されない場合は(ステップS1102、ステップS1105、ステップS1111、ステップS1113−NO)、ステップS1101からの処理を繰り返し、終了要求が入力された場合は(ステップS1102、ステップS1105、ステップS1111−NO、ステップS1113−YES)、処理を終了する。
続いて、図7のステップS3〜ステップS9の処理の詳細について説明する。この処理は、図9のステップS1103〜ステップS1104の処理に相当する。
図10は、特徴度算出部31が特徴度を算出する処理の流れを示すフローチャートである。同図に示すフローチャートは、図7のステップS3における特徴度算出処理の詳細な処理の一例である。この処理において、特徴度算出部31は、文書記憶部1に記憶されている対象文書データ集合のテキスト情報を形態素解析して単語を抽出し、抽出した単語について算出した特徴度を設定した特徴度データを特徴度データ記憶部4に記憶する。
まず、文書分類部3は、ユーザインターフェース部5のカテゴリ操作部52から分類の対象カテゴリtgtCatを受信する(ステップS1201)。つまり、文書分類部3は、図9のステップS1103においてカテゴリ操作部52が出力したカテゴリcatを対象カテゴリtgtCatとして受信する。例えば、図23に示すように、ユーザが、セル1801を選択し、特徴語クラスタリングの実行要求を入力した場合、対象カテゴリtgtCatは「内容別」カテゴリとなる。
特徴度算出部31は、対象カテゴリtgtCatに分類された文書データ集合tgtDocsを取得する。具体的には、特徴度算出部31は、カテゴリ記憶部2を参照し、対象カテゴリtgtCatに対応したカテゴリデータと、そのカテゴリデータの上位カテゴリデータとから分類ルールを読み出す。特徴度算出部31は、文書記憶部1に記憶される文書データの中から、読み出した分類ルールを全て満たす文書データdを選択し、選択した文書データdからなる集合を文書データ集合tgtDocsとする。特徴度算出部31は、文書データ集合tgtDocsに含まれる全ての文書データdから分析対象とするテキスト情報を取得する(ステップS1202)。本実施形態では、文書記憶部1に記憶されている文書データは、図2に示す文書データ200aまたは200bと同様のデータ形式であり、分析対象とするテキスト情報は、本文205とする。
特徴度算出部31は、ステップS1202において取得したテキスト情報である本文205を形態素解析する(ステップS1203)。特徴度算出部31は、形態素解析の結果得られた全ての単語(形態素)tを1つずつ選択し、選択した単語tについてステップS1205〜ステップS1209の処理を行う(ステップS1204−NO)。
特徴度算出部31は、単語tの品詞が、単語ベクトルに含めるべき所定の品詞の単語であり、かつ、不要語ではないか否かを判定する(ステップS1205)。例えば、特徴度算出部31は、単語tの品詞が名詞やサ変名詞、固有名詞などである単語は単語ベクトルに含め、接続詞や副詞などは特徴ベクトルに含めないといった単語の選別を行う。また、特徴度算出部31は、あらかじめ文書データの特徴を示さない単語として登録された不要語と単語tを比較する。例えば、特許文書を処理対象とする場合には、「装置」、「手段」といった単語は文書の特徴を表さないため、不要語とする。選択した単語tの品詞が、単語ベクトルに含めるべき所定の品詞の単語でない、もしくは、不要語であると判定した場合(ステップS1205−NO)、特徴度算出部31は、ステップS1204に戻り、未選択の単語tを選択して処理を繰り返す。
一方、選択した単語tの品詞が、単語ベクトルに含めるべき所定の品詞の単語であり、かつ、不要語でないと判定した場合(ステップS1205−YES)、特徴度算出部31は、ステップS1202において取得した文書データ集合tgtDocsのテキスト情報に単語tが出現する数である出現頻度tfを算出する(ステップS1206)。さらに、特徴度算出部31は、文書データ集合tgtDocsに含まれる文書データのうち、テキスト情報(本文205)に単語tが出現する文書データの数である文書頻度dfを算出する(ステップS1207)。特徴度算出部31は、単語tの特徴度s(t)を以下の計算式(1)に基づいて算出する(ステップS1208)。
s(t)=tf×(log(|tgtDocs|/df)+1) …(1)
計算式(1)において、|tgtDocs|は、対象文書データ集合tgtDocsに含まれる文書データdの数(文書数)である。この計算式は一般にTF・IDFと呼ばれ、従来から情報検索や文書分類の分野で広く使用されている。すなわち、単語tが文書データdに出現する頻度が多い(tfが大きい)ほど、もしくは、全文書データのうち単語tを含む文書が少ない(dfが小さい)ほど、当該単語tは文書データdの特徴をよく表す単語であるとみなされる。本発明では、このTF・IDFを対象文書データ集合について、単語の特徴度を算出するために用いる。
特徴度算出部31は、単語tと、当該単語tについて算出した文書頻度df及び特徴度s(t)とをそれぞれ、単語510、文書頻度501、及び特徴度502に設定した特徴度データを生成し、特徴度データ記憶部4に記憶する(ステップS1209)。特徴度算出部31は、ステップS1204に戻り、未選択の単語tを選択して処理を繰り返す。
そして、形態素解析の結果得られた全ての単語tについてステップS1205〜ステップS1209の処理を行ったと判定した場合(ステップS1204−YES)、特徴度算出部31は、処理を終了する。
図11は、着目語設定部53が着目語を設定する処理の流れを示すフローチャートである。同図に示すフローチャートは、図7のステップS4における着目語設定処理の詳細な処理の一例を示す。この処理において、着目語設定部53は、特徴語カテゴリを分類するにあたり、着目する複数の単語を着目語としてユーザから受け付けて、文書分類部3に出力する。
まず、着目語設定部53は、例えば、図23に示すように、ユーザが着目語を設定するための着目語設定フォーム1910を表示させる(ステップS1301)。着目語設定フォーム1910には、着目語入力フィールド1911と、着目語リストデータ600の内容の一覧が表示された着目語リスト1913とが含まれる。さらに、着目語設定フォーム1910は、着目語入力フィールド1911に入力された文字列を着目語リストに追加するための「リストに追加」ボタン1912、着目語リスト1913において選択した単語を着目語に設定するための「着目語に設定」ボタン1914、及び、着目語の設定操作をキャンセルするための「キャンセル」ボタン1915を含む。
着目語リストデータ600の着目語候補601には、2軸マップ上でユーザが着目語として選択したフィルタ語、もしくは、着目語入力フィールド1911にユーザが入力した文字列のリストが設定される。ただし、着目語リストデータ600の初期値は空のリストである。なお、着目語設定部53は、特徴度データ記憶部4に記憶されている特徴度データに設定された単語のリストを初期値として着目語候補601に設定してもよい。この場合、着目語設定602の初期値は全て「0」としてもよく、全て「1」としてもよい。
着目語リスト1913には、着目語候補601として登録されている単語の前に、実際に着目語とするか否かを示すチェックボックスが表示されている。着目語設定部53は、着目語設定フォーム1910が初期表示される場合、着目語リストデータ600の着目語設定602に「1」が設定されている着目語候補601に対応するチェックボックスにデフォルトでチェックを設定して表示させる。
次に、図11において、着目語設定部53は、ユーザから着目語の入力または着目語の選択を受け付ける(ステップS1302)。ここで、ユーザは、着目語設定フォーム1910の着目語リスト1913に表示されている着目語候補の中から実際に着目語として使用する単語を選択する(チェックボックスにチェックをつける)こともできるし、着目する単語が着目語リスト1913にない場合は直接その単語(文字列)を着目語入力フィールド1911により入力することもできる。
着目語設定部53は、ユーザからの着目語の追加要求を受けた場合、つまり、ユーザが着目語入力フィールド1911に文字列を入力して、「リストに追加」ボタン1912を選択した場合(ステップS1303−YES)、着目語入力フィールド1911に入力された文字列を着目語リスト1913に追加表示させ(ステップS1304)、ステップS1302の処理に遷移する。ユーザからのリストへの着目語の追加要求がない場合、着目語設定部53は、ステップS1305の処理に遷移する(ステップS1303−NO)。
リストへの着目語の追加要求がなく(ステップS1303−NO)、かつ、ユーザからの着目語の設定要求を受けた場合、つまり、ユーザが「着目語に設定」ボタン1914を選択した場合、着目語設定部53は、ステップS1306とステップS1307の処理を行う(ステップS1305−[着目語の設定])。
すなわち、着目語設定部53は、着目語リスト1913の内容を着目語リストデータ600として記憶する(ステップS1306)。具体的には、着目語設定部53は、着目語リスト1913に含まれる単語を着目語候補601に設定する。このとき、着目語設定部53は、着目語リスト1913でユーザによってチェックボックスにチェックがつけられた単語には、着目語設定602にフラグを立て(本実施例では「1」)、チェックされなかった単語については、フラグを立てずに(本実施例では「0」)、着目語リストデータ600に格納する。着目語設定部53は、ステップS1306において更新した着目語リストデータ600において、着目語設定602にフラグが立っている着目語候補601に設定された単語を読み出す。着目語設定部53は、読み出した単語の集合を着目語集合として、文書分類部3に出力し(ステップS1307)、図11の着目語設定処理を終了する。
なお、ステップS1305において、着目語の設定要求またはキャンセル要求のいずれも入力されない場合、着目語設定部53は、ステップS1302の処理に遷移する(ステップS1305−[要求なし])。あるいは、ステップS1305において、キャンセル要求があった場合、つまり、ユーザが「キャンセル」ボタン1915を選択した場合、着目語設定部53は、図11の着目語設定処理を終了する(ステップS1305−[キャンセル])。
図12は、特徴度補正部32が補正特徴度を求める処理の流れを示すフローチャートである。同図に示すフローチャートは、図7のステップS5における特徴度補正処理の詳細な処理の一例を示す。この処理において、特徴度補正部32は、ユーザインターフェース部5の着目語設定部53から着目語集合を受信し、特徴度データ記憶部4に記憶された特徴度データに補正特徴度を設定する。
最初に、特徴度補正部32は、ユーザインターフェース部5の着目語設定部53を介してユーザが指定した着目語atの集合である着目語集合atsを受信する(ステップS1401)。具体的には、特徴度補正部32は、図11のステップS1307において着目語設定部53が出力した着目語集合を受信し、着目語集合atsとする。このユーザによる着目語集合atsの入力は、図9のステップS1103における対象カテゴリ(カテゴリcat)の入力と同時でもよいし、別のタイミングで行われてもよい。
特徴度補正部32は、受信した着目語集合ats中の全ての着目語atを1つずつ選択し、ステップS1403の処理を繰り返す(ステップS1402−NO)。すなわち、特徴度補正部32は、着目語atに対応する特徴度データを取得する特徴度データ取得処理を行う(ステップS1403)。この処理により、特徴度補正部32は、特徴度データ記憶部4に着目語atの特徴度データが登録されている場合にはそれを取得し、登録されていない場合は着目語atの特徴度データを生成して特徴度データ記憶部4に登録する。特徴度データが登録されていない着目語atは、例えば、図10に示す特徴度算出処理において形態素解析により取得されなかった複合語などの単語である。特徴度データ取得処理の詳細については後述する図13のフローチャートにおいて説明する。
着目語集合ats中の全ての着目語atについて特徴度データ取得処理が終了すると(ステップS1402−YES)、特徴度補正部32は、特徴度データ記憶部4に特徴度データが登録されている全ての単語tの中から1つずつ選択し、選択した単語tについて以下のステップS1405〜ステップS1410の処理を繰り返す(ステップS1404−NO)。
まず、特徴度補正部32は、特徴度データ記憶部4から単語tに対応する特徴度データkdを取得する特徴度データ取得処理を行う(ステップS1405)。特徴度データ取得処理の詳細については後述する図13のフローチャートにおいて説明する。特徴度補正部32は、ステップS1405において取得した特徴度データkdから特徴度s(t)を取得し、以下の計算式(2)のように、単語tの補正特徴度ms(t)の初期値とする(ステップS1406)。
ms(t)=s(t) …(2)
続いて、特徴度補正部32は、着目語集合atsに含まれる全ての着目語atを1つずつ選択し、選択した着目語atについて、ステップS1408とステップS1409の処理を繰り返す(ステップS1407−NO)。
まず、特徴度補正部32は、対象カテゴリに分類された文書データ集合tgtDocsにおける単語tと着目語atとの共起度co(t,at)を算出する(ステップS1408)。文書データ集合tgtDocsは、図10のステップS1202と同様の処理により取得するか、図10のステップS1202において特徴度算出部31が取得したものを用いることができる。ここで、文書データ集合tgtDocsにおける単語tと着目語atとの共起度co(t,at)は、以下の計算式(3)〜(7)のいずれかによって算出される値である。
共起数=|t∩at| …(3)
Dice係数D=|t∩at|/(|t|+|at|) …(4)
Jaccard係数J=|t∩at|/|t∪at| …(5)
Simpson係数S=|t∩at|/min(t,at) …(6)
Cosine係数C=|t∩at|/sqrt(|t|×|at|) …(7)
上記では、文書データ集合tgtDocsにおいて、テキスト情報に単語tを含んだ文書データdの数(以下、「生起数」という)を|t|とし、文書データ集合tgtDocsにおける着目語atの生起数を|at|とする。また、文書データ集合tgtDocsにおいて、単語tと着目語atをともにテキスト情報に含んだ文書データdの数(以下、「共起数」という)を|t∩at|とし、単語tと着目語atのうち少なくとも1つをテキスト情報に含んだ文書データdの数を|t∪at|とする。また、min(t,at)は、単語tの生起数と着目語atの生起数のうち少ないほうを示し、sqrtは平方根を求めることを示す。
特徴度補正部32は、ステップS1408において算出した単語tと着目語atとの共起度co(t,at)を用いて、以下の計算式(8)に基づいて、補正特徴度ms(t)を更新する(ステップS1409)。
ms(t)=ms(t)×co(t,at)・・・(8)
ステップS1409の処理の後、特徴度補正部32は、ステップS1407からの処理に戻り、着目語集合ats中の未選択の着目語atを選択して処理を繰り返す。そして、全ての着目語atについてステップS1408及びステップS1409の繰り返し処理が終了すると(ステップS1407−YES)、特徴度補正部32は、ステップS1405において取得した特徴度データkdの補正特徴度503に補正特徴度ms(t)を挿入する。特徴度補正部32は、特徴度データ記憶部4に現在記憶されている単語tの特徴度データを、補正特徴度503を設定した特徴度データkdにより更新する(ステップS1410)。
ステップS1410の後、特徴度補正部32はステップS1404に戻り、未選択の単語tを選択して処理を繰り返す。全ての単語tについてステップS1405〜ステップS1410の処理が終了すると(ステップS1404−YES)、特徴度補正部32は特徴度補正処理を終了する。
上記においては、特徴度補正部32は、着目語設定部53から着目語集合を受信して上記の特徴度補正処理を行っているが、着目語設定部53に着目語が1つ入力されるたびにその着目語を受信することにより、上記の特徴度補正処理を逐次実行してもよい。
図13は、特徴度補正部32が特徴度データを取得する処理の流れを示すフローチャートである。同図に示すフローチャートは、図12のステップS1403及びステップS1405における特徴度データ取得処理の一例を示す。この処理において、特徴度補正部32は、特徴度データ記憶部4から所定の単語kの特徴度データを取得する。単語kは、ステップS1403の処理の場合は着目語atであり、ステップS1405の処理の場合は、単語tである。
特徴度補正部32は、単語kの特徴度データ取得要求を受信すると(ステップS1501)、特徴度データ記憶部4に単語kの特徴度データが存在するか否かを判定する(ステップS1502)。特徴度データ記憶部4に単語kに対する特徴度データが記憶されていないと判定した場合(ステップS1502−NO)、特徴度補正部32は、以下のステップS1503〜ステップS1507の処理を行い、単語kに対する特徴度データkdを生成する。
ステップS1503〜ステップS1507は、特徴度算出部31による形態素解析では得られなかった単語を特徴語カテゴリの生成に利用するための処理である。形態素解析によって抽出される(対象とする品詞かつ不要語でない)単語tであれば、その単語tに対する特徴度データは、図10示す特徴度算出部31の処理において生成される。しかし、ユーザインターフェース部5の着目語設定部53においてユーザは任意の文字列を着目語atとして設定できる。このとき、ユーザが指定する着目語atは、形態素解析によって抽出される単語tに含まれるとは限らない。例えば、ユーザが”内部統制”という文字列を着目語atとして設定した場合、特徴度算出部31が抽出した形態素が”内部”と”統制”であれば、この2つの単語に対応する特徴度データは生成されているが、”内部統制”という単語としては、特徴度データは生成されない。このような問題は、特に”内部統制”のように複数の単語を1つの単語として扱う複合語において生じる。ステップS1503〜ステップS1507の処理は、この問題に対処するための処理である。
具体的には、特徴度補正部32は、対象カテゴリに分類された文書データ集合tgtDocsの中に含まれる全ての文書データdのテキスト情報(本文205)において単語kが出現する数である出現頻度kfを算出する(ステップS1503)。文書データ集合tgtDocsは、図10のステップS1202と同様の処理により取得するか、図10のステップS1202において特徴度算出部31が取得したものを用いることができる。ここで、単語kは上述の通り形態素解析によって抽出されない単語であるため、特徴度補正部32は、形態素解析結果から出現頻度をカウントするのではなく、文字列検索などを使ってカウントする。
次に、特徴度補正部32は文書データ集合tgtDocsの中で単語kがテキストデータ(本文205)に出現する文書データdの数である文書頻度dfを算出する(ステップS1504)。特徴度補正部32は、ステップS1209における計算式(1)と同様の以下の計算式(9)を用いて単語kの特徴度s(k)を算出する(ステップS1505)。
s(k)=kf×(log(|tgtDocs|/df)+1) …(9)
特徴度補正部32は、単語kと、算出した文書頻度df及び特徴度s(k)とをそれぞれ、単語510、文書頻度501、及び特徴度502に設定した特徴度データkdを生成し(ステップS1506)、特徴度データ記憶部4に格納する(ステップS1507)。特徴度補正部32は、生成した特徴度データkdを特徴度データ取得要求元に出力する(ステップS1509)。
一方、ステップS1502において、単語kの特徴度データが特徴度データ記憶部4に記憶されていると判定した場合(ステップS1502−YES)、特徴度補正部32は、特徴度データ記憶部4から単語kの特徴度データkdを取得する(ステップS1508)。特徴度補正部32は、取得した特徴度データkdを特徴度データ取得要求元に出力する(ステップS1509)。
図12及び図13の処理により、図7に示す特徴度補正処理(ステップS5)が終了すると、特徴語カテゴリ生成部33において、傾向ベクトル生成部34が、傾向ベクトル生成処理を行い(ステップS6)、クラスタリング部35はクラスタリング処理を行い(ステップS7)、カテゴリ生成処理部36が特徴語カテゴリ生成処理を行う(ステップS8)。このように、ステップS6〜ステップS8において、特徴語カテゴリ生成部33は、特徴度データ記憶部4に記憶されている特徴度データを用いて、軸カテゴリ集合に対して出現傾向の類似した特徴語のグループに基づく特徴語カテゴリを生成する。
図14は、特徴語カテゴリ生成部33の傾向ベクトル生成部34が傾向ベクトルを求める処理の流れを示すフローチャートである。同図に示すフローチャートは、図7のステップS6における傾向ベクトル生成処理の詳細な処理の一例を示す。この処理において、傾向ベクトル生成部34は、特徴度データ記憶部4に記憶されている特徴度データに基づいて特徴語集合を抽出し、抽出された特徴語集合に含まれる各特徴語について傾向ベクトルを生成して特徴度データ記憶部4に記憶する。
最初に、傾向ベクトル生成部34は、空の特徴語リストtlを生成する(ステップS1601)。傾向ベクトル生成部34は、特徴度データ記憶部4に特徴度データが格納されている全ての単語tを1つずつ選択し、選択した単語tについてステップS1603〜ステップS1605の処理を行う(ステップS1602−NO)。ステップS1603〜ステップS1605において、傾向ベクトル生成部34は、特徴語を抽出し、抽出した特徴語の集合を特徴語リストtlに格納する。
具体的には、傾向ベクトル生成部34は、特徴度データ記憶部4に記憶されている単語tの特徴度データを読み出し、読み出した特徴度データから補正特徴度503に設定されている補正特徴度ms(t)を取得する(ステップS1603)。取得した補正特徴度ms(t)があらかじめ設定された一定のしきい値minmsより大きい(minms<ms(t))場合(ステップS1604−YES)、傾向ベクトル生成部34は、当該単語tを特徴語リストtlに追加する(ステップS1605)。取得した補正特徴度ms(t)がしきい値minms以下(minms≧ms(t))の場合(ステップS1604−NO)、あるいは、ステップS1605の処理の後、傾向ベクトル生成部34は、ステップS1602に戻り、未選択の単語tを選択して処理を繰り返す。
ここで、しきい値minmsは、単語tに対する補正特徴度ms(t)の最小値であり、システム側で事前に設定する値である。このしきい値minmsによって、特徴語が抽出される。ただし、本実施形態ではしきい値を補正特徴度ms(t)の最小値として設定したが、これに限らず、傾向ベクトル生成部34は、ms(t)が上位から所定個の単語tを特徴語とするという個数指定により特徴語を抽出してもよい。
特徴度データ記憶部4に特徴度データが格納されている全て単語tについて繰り返し処理を終了すると(ステップS1602−YES)、傾向ベクトル生成部34は、特徴語リストtlに含まれる全ての特徴語tを1つずつ選択し、選択した特徴語tについて、ステップS1607〜ステップS1612の処理を繰り返す(ステップS1606−NO)。
まず、傾向ベクトル生成部34は、特徴度データ記憶部4から特徴語tの特徴度データkdを取得する(ステップS1607)。さらに、傾向ベクトル生成部34は、カテゴリ操作部52から入力された横軸子カテゴリ集合xCatsに含まれるカテゴリ数(横軸子カテゴリxCatの数)と同じ次元数の頻度ベクトルvcfと傾向ベクトルvptnを生成する(ステップS1608)。頻度ベクトルvcf及び傾向ベクトルvptnの各要素は横軸子カテゴリxCatに対応する。
傾向ベクトル生成部34は、横軸子カテゴリ集合xCatsに含まれる全ての横軸子カテゴリxCatを1つずつ選択し、選択した横軸子カテゴリxCatについてステップS1610、及びステップS1611の処理を繰り返す(ステップS1609−NO)。
つまり、傾向ベクトル生成部34は、対象カテゴリtgtCatと横軸子カテゴリxCatに共通して含まれる文書データ集合について、特徴語tがテキスト情報(本文205)に出現する文書データの数(以下、「カテゴリ内頻度」という)cfを算出する(ステップS1610)。対象カテゴリtgtCatと横軸子カテゴリxCatに共通して含まれる文書データ集合は、対象カテゴリtgtCatの分類ルールと横軸子カテゴリxCatの分類ルールとの論理積を満たす文書データであり、図8のステップS1009と同様の処理により得られる。傾向ベクトル生成部34は、特徴度データkdから特徴語tの文書頻度dfとして文書頻度501を取得する。傾向ベクトル生成部34は、頻度ベクトルvcfの横軸子カテゴリxCatに対応した要素の値を、ステップS1610において算出したカテゴリ内頻度cfとし、傾向ベクトルvptnの横軸子カテゴリxCatに対応した要素の値を、cf/(df+1)とする(ステップS1611)。傾向ベクトル生成部34は、ステップS1609に戻り、未選択の横軸子カテゴリxCatを選択して処理を繰り返す。
傾向ベクトル生成部34は、全ての横軸子カテゴリxCatについてステップS1609〜ステップS1611の処理を行ったと判定した場合(ステップS1609−YES)、各横軸子カテゴリxCatについてステップS1611で算出した要素を並べた頻度ベクトルvcfと傾向ベクトルvptnを、特徴度データkdの軸カテゴリ(カテゴリ番号)に対する頻度ベクトル/傾向ベクトル504に格納する。傾向ベクトル生成部34は、特徴度データ記憶部4に現在記憶されている特徴語tの特徴度データを、頻度ベクトルvcfと傾向ベクトルvptnを格納した特徴度データkdにより更新する(ステップS1612)。その後、傾向ベクトル生成部34は、ステップS1606に戻り、未選択の特徴語tを選択して処理を繰り返す。
そして、ステップS1606において、特徴語リストtlに含まれる全ての単語(特徴語)tについて、ステップS1607〜ステップS1612の処理を行ったと判定した場合(ステップS1606−YES)、傾向ベクトル生成部34は傾向ベクトル生成処理を終了する。
なお、本実施形態においては、傾向ベクトルの要素の値をcf/(df+1)、つまり対象カテゴリtgtCatに対する横軸子カテゴリxCatでの単語tの「出現割合」としたが、単純に文書頻度(df)やカテゴリ内頻度(cf)としてもよい。もしくは以下のような自己相互情報量やイエーツ補正χ2乗値といった統計量に基づく値でもよい。統計量は従来の技術で算出される。傾向ベクトルの要素の値は、クラスタリング処理において各特徴語の重みづけとなり、クラスタリング結果に反映される。
自己相互情報量PMIは以下の計算式(10)で算出される。
自己相互情報量PMI=log(an/((a+b)(a+c))) …(10)
また、イエーツ補正χ2乗値Yatesは以下の計算式(11)で算出される。
Yates’=n(|ad−bc|−n/2)^2/((a+b)(c+d)(a+c)(b+d))
if((ad−bd)<0) Yates=−Yates’
else Yates=Yates’ …(11)
なお、計算式(10)、(11)において、|xCat|は、横軸子カテゴリxCatに分類された文書数、|tgtCat|は対象カテゴリtgtCatに分類された文書数であり、a、b、c、d、nは以下のとおりである。
a=cf
b=df−cf
c=|xCat|−cf
d=|tgtCat|−df)−|xCat|+cf
n=a+b+c+d=|tgtCat|
自己相互情報量PMIでは、対象カテゴリtgtCat中での出現確率と、横軸子カテゴリxCat中での出現確率とで偏りの大きい特徴語を高く評価する。また、低頻度語を過大評価する傾向があるため、自己相互情報量PMIを利用する場合は、文書頻度dfが極端に小さい単語は、特徴語から排除するなどの処理が必要となる。
一方、イエーツ補正χ2乗値Yatesは、対象カテゴリtgtCat中での出現確率に対し、横軸子カテゴリxCat中での出現確率が高い単語を高く評価する。結果として、クラスタリングにおいて比較的低頻度の特徴語が強く重みづけされる。しかし、自己相互情報量PMIと比べるとその傾向は小さい。
図15は、特徴語カテゴリ生成部33のクラスタリング部35が実行する特徴語クラスタリングの処理の流れを示すフローチャートである。同図に示すフローチャートは、図7のステップS7におけるクラスタリング処理の詳細な処理の一例である。この処理において、クラスタリング部35は、上述した図14の傾向ベクトル生成処理において生成された傾向ベクトルを用いて、特徴語の類似性に基づく特徴語のクラスタリングを行い、関連の強い特徴語グループである特徴語クラスタを生成する。
なお、本実施形態では、クラスタリング手法として、文書クラスタリング手法を応用する。従来の文書クラスタリング手法は、例えば各々の文書データが備える特徴を、特徴ベクトル(ベクトル要素には文書内の単語の出現頻度などが用いられる)によって表し、この特徴ベクトルの類似度(例えば内積や余弦)に基づき、文書同士のまとまりである文書クラスタを生成するという方法である。
本実施形態のクラスタリング部35は、抽出された特徴語の傾向ベクトルの類似度に基づき、特徴語クラスタを生成する。クラスタリングの手法としては、従来から様々なものが考案されているが、本実施形態では、leader−follower法と呼ばれる比較的単純なクラスタリング手法を用いる。ただし、このクラスタリング手法に限定はされない。
最初に、クラスタリング部35は、軸カテゴリ(カテゴリ番号)に対する頻度ベクトル/傾向ベクトル504に傾向ベクトル512が設定されている特徴度データkdの集合である特徴度データ集合kdsを特徴度データ記憶部4から取得する(ステップS1701)。クラスタリング部35は、取得した特徴度データ集合kdsに含まれる単語tをクラスタリング対象の単語集合Tとし、分類先である特徴語クラスタ集合Cの初期値を空集合とする(ステップS1702)。特徴度データ集合kdsに含まれる単語tとは、特徴度データkdに単語510として設定されている単語である。クラスタリング部35は、単語集合Tに含まれる全ての単語tを1つずつ選択し、選択した単語tについてステップS1704〜ステップS1715の処理を繰り返す(ステップS1703−NO)。
まず、クラスタリング部35は、特徴度データ集合kdsから単語tの傾向ベクトルvptnを取得する(ステップS1704)。クラスタリング部35は、単語tの分類先の特徴語クラスタである分類先特徴語クラスタcmaxの初期値を「なし」とし、単語tの類似度の最大値smaxの初期値を0とする(ステップS1705)。
クラスタリング部35は、特徴語クラスタ集合Cに含まれる全ての特徴語クラスタcを1つずつ選択し、選択した特徴語クラスタcについてステップS1707〜ステップS1709の処理を繰り返す(ステップS1706−NO)。クラスタリング部35は、特徴語クラスタ集合Cに含まれる全ての特徴語クラスタcについて処理を終了すると(ステップS1706−YES)、ステップS1710の処理を行う。
ただし、最初の単語tについての処理の場合、Cは初期値の空集合であるため、クラスタリング部35は特徴語クラスタ集合Cに含まれる全ての特徴語クラスタcについて処理が終了したと判定し(ステップS1706−YES)、分類先特徴語クラスタcmaxが存在するか否かを判定する(ステップS1710)。分類先特徴語クラスタcmaxが初期値「なし」であるため(ステップS1710−NO)、クラスタリング部35は、新たな特徴語クラスタcである特徴語クラスタcnewを新規に作成し、作成した特徴語クラスタcnewを特徴語クラスタ集合Cに追加する(ステップS1713)。クラスタリング部35は、作成した特徴語クラスタcnewに、単語tの傾向ベクトルvptnを分類する(ステップS1714)。そして、クラスタリング部35は、特徴語クラスタcnewの特徴ベクトルvcを単語tの傾向ベクトルvptnとする(ステップS1715)。すなわちこの時点では、特徴語クラスタcnewに分類されている単語は単語t1つであるため、特徴語クラスタcnewの特徴ベクトルvcは、単語tの傾向ベクトルvptnと同じとなる。ステップS1715の処理が終了すると、クラスタリング部35は、ステップS1703に戻り、未選択の単語tを選択して処理を繰り返す。
2回目以降のステップS1703からの繰り返し処理においては特徴語クラスタ集合Cが空き集合ではないため、ステップS1706において、クラスタリング部35は、クラスタリング部35は特徴語クラスタ集合Cに含まれる全ての特徴語クラスタcを1つずつ選択し、ステップS1707〜ステップS1709の処理を繰り返す(ステップS1706−NO)。
具体的には、クラスタリング部35は、単語tの傾向ベクトルvptnと、特徴語クラスタcの特徴ベクトルvcとを用いて、単語tと特徴語クラスタcの類似度sを算出する(ステップS1707)。特徴語クラスタcの特徴ベクトルvcは、ステップS1715においてこの特徴語クラスタcに最初に分類された単語の傾向ベクトルを初期として生成され、後述のステップS1710〜ステップS1715においてこの特徴語クラスタに追加で分類された単語の傾向ベクトルを用いて更新されるベクトルである。クラスタリング部35は、単語tと特徴語クラスタcの類似度sを、単語tの傾向ベクトルvptnと特徴語クラスタcの特徴ベクトルvcとの類似度により算出する。この類似度は、例えばベクトルの余弦、すなわち、(vptn・vc)/(|vptn|×|vc|)を用いて算出される。なお、vptn・vcは傾向ベクトルvptnと特徴ベクトルvcの内積を表し、|vptn|、|vc|はそれぞれ、傾向ベクトルvptn、特徴ベクトルvcのノルムを表す。
クラスタリング部35は、単語tと特徴語クラスタcの類似度sがあらかじめ設定された所定のしきい値smin以上であり、かつ、単語tの類似度の最大値smaxより大きい場合(ステップS1708−YES)、分類先特徴語クラスタcmaxに特徴語クラスタcを設定し、単語tの類似度の最大値smaxに特徴語クラスタcとの類似度sを設定する(ステップS1709)。クラスタリング部35は、ステップS1706に戻り処理を繰り返す。一方、クラスタリング部35は、単語tと特徴語クラスタcの類似度sがあらかじめ設定された所定のしきい値smin未満である、もしくは、単語tの類似度の最大値smax以下である場合(ステップS1708−NO)、そのままステップS1706に戻り処理を繰り返す。
ステップS1706の繰り返し処理の終了後(ステップS1706−YES)、クラスタリング部35は、分類先特徴語クラスタcmaxが存在するか否か判定する(ステップS1710)。クラスタリング部35は、分類先特徴語クラスタcmaxが存在する、すなわち、既存の特徴語クラスタcのうち、単語tとの類似度sが最大であり、かつ、その類似度がしきい値以上のクラスタが存在する場合(ステップS1710−YES)、クラスタリング部35は、分類先特徴語クラスタcmaxに単語tを分類する(ステップS1711)。クラスタリング部35は、分類先特徴語クラスタcmaxの特徴ベクトルvcに単語tの傾向ベクトルvptnを加え、特徴ベクトルvcを再計算する(ステップS1712)。すなわち、分類先特徴語クラスタcmaxとなっている特徴語クラスタcの特徴ベクトルvcは、当該特徴語クラスタcに分類された単語tの傾向ベクトルの和となる。そのため、分類先特徴語クラスタcmaxとなっている特徴語クラスタcの特徴ベクトルvcに単語tの傾向ベクトルvptnを加えた結果が、単語tを分類した後の当該特徴語クラスタcの特徴ベクトルとなる。
一方、ステップS1710にて、分類先特徴語クラスタcmaxが存在しない場合(ステップS1710−NO)、クラスタリング部35は、上記と同様にステップS1713〜ステップS1715の処理を行う。すなわち、クラスタリング部35は、特徴語クラスタcnewを新規に作成して特徴語クラスタ集合Cに追加するとともに(ステップS1713)、特徴語クラスタcnewに単語tの傾向ベクトルvptnを分類する(ステップS1714)。クラスタリング部35は、特徴語クラスタcnewの特徴ベクトルvcを単語tの傾向ベクトルvptnとする(ステップS1715)。
ステップS1712もしくはステップS1715が終了すると、クラスタリング部35は、ステップS1703に戻り処理を繰り返す。単語集合Tに含まれる全ての単語tについて繰り返し処理が終了すると(ステップS1703−YES)、クラスタリング部35は、図15のクラスタリング処理を終了する。
このように、図15に示すクラスタリング部35のクラスタリング処理によって、図14に示す傾向ベクトル生成処理において傾向ベクトルが生成された単語、つまり特徴語として判定された単語について、傾向ベクトルが互いに類似し合う特徴語のまとまりである特徴語クラスタが生成される。
図10における特徴度算出処理においては形態素解析によって単語を抽出しているため、文書分類部3で自動生成される特徴語(フィルタ語)は形態素単位となる。一方、着目語設定部53において、ユーザが直接入力する着目語は形態素単位である必要はなく、任意の文字列を着目語として設定することが可能である。そして、図11における着目語設定処理においてユーザが着目語として設定した文字列が形態素単位でない場合でも、図13に示す特徴度データ取得処理によって、それ以降は単語として扱われることになる。さらに、図12における特徴度補正処理において、文書分類部3の特徴度補正部32は、着目語設定部53から入力された着目語集合に応じて単語の特徴度を補正し、図15において、クラスタリング部35は、ユーザが着目する単語に則した特徴語クラスタリングを実現する。
図16は、特徴語カテゴリ生成部33のカテゴリ生成処理部36が特徴語カテゴリを生成する処理の流れを示すフローチャートである。同図に示すフローチャートは、図7のステップS8における特徴語カテゴリ生成処理の詳細な処理の一例を示す。この処理において、カテゴリ生成処理部36は、上述した図15のクラスタリング処理により生成された特徴語クラスタに含まれる単語をフィルタ語とし、フィルタ語を分類の条件とする特徴語カテゴリのデータを生成してカテゴリ記憶部2に記憶する。
カテゴリ生成処理部36は、図15に示すクラスタリングにより生成された特徴語クラスタ集合Cを受信する(ステップS1801)。カテゴリ生成処理部36は、特徴語クラスタ集合C中のクラスタに含まれる全ての単語の特徴度データkdの集合である特徴度データ集合kdsを特徴度データ記憶部4から取得する(ステップS1802)。カテゴリ生成処理部36は、特徴語クラスタ集合Cに含まれる全て特徴語クラスタcを1つずつ選択し、選択した特徴語クラスタcについてステップS1804〜ステップS1807の処理を繰り返す(ステップS1803−NO)。
まず、カテゴリ生成処理部36は、特徴語クラスタcに含まれる単語tの集合をフィルタ語集合tsとし、特徴度データ集合kdsを参照してフィルタ語集合tsの中で補正特徴度が最も大きい単語tをカテゴリ名cnとする(ステップS1804)。例えば、特徴語クラスタcの単語tの集合が{“検索”,“分類”,“管理”}であるとする。この場合、カテゴリ生成処理部36は、{“検索”,“分類”,“管理”}を特徴語クラスタcのフィルタ語集合tsとし、フィルタ語集合ts中で最も補正特徴度が大きい単語である“検索”をカテゴリ名cnとする。
カテゴリ生成処理部36は、フィルタ語集合tsに基づいて分類ルールrを生成する(ステップS1805)。分類ルールrは、例えば図4の特徴語カテゴリデータ400、410に示すように、「文書データの本文205(テキスト情報)にフィルタ語集合tsが含まれること」を条件として、文書を特徴語カテゴリに分類するためのルールとして生成される。
なお、対象とする文書データが図2の文書データ200bに示すようなXML文書の場合、分類ルールは、XQueryもしくはXPathで表現する。上記の例で文書データ200bの「本文」要素がテキスト情報である場合、特徴語クラスタcの分類ルールは「contains(./本文,“検索”) and contains(./本文,“分類”) and contains(./本文,“管理”)」となる。
カテゴリ生成処理部36は、生成した分類ルールrに該当する文書データdの集合である文書データ集合docsを文書記憶部1から取得する(ステップS1806)。カテゴリ生成処理部36は、対象カテゴリtgtCat、カテゴリ名cn、フィルタ語集合ts、及び分類ルールrに基づいて、特徴語カテゴリデータを生成し、カテゴリ記憶部2に記憶する(ステップS1807)。すなわち、カテゴリ生成処理部36は、図4に示す特徴語カテゴリデータ400、410と同様の形式で特徴語カテゴリデータを生成する。具体的には、カテゴリ生成処理部36は、特徴語カテゴリデータのカテゴリ番号、上位カテゴリ、カテゴリ名、分類ルール、フィルタ語にそれぞれ、新たに付与した任意の番号、対象カテゴリtgtCatのカテゴリデータまたは特徴語カテゴリデータのカテゴリ番号、カテゴリ名cn、分類ルールr、フィルタ語集合tsを設定する。さらに、カテゴリ生成処理部36は、生成した特徴語カテゴリデータに、文書データ集合docsを対応付けて書き込む。例えば、文書データ集合docsは、文書データの文書番号により示される。その後、カテゴリ生成処理部36は、ステップS1803からの処理に戻り、未選択の特徴語クラスタcを選択して処理を繰り返す。
ステップS1803において、特徴語クラスタ集合C中の特徴語クラスタc全てにステップS1804〜ステップS1807の繰り返し処理が終了すると(ステップS1803−YES)、カテゴリ生成処理部36は、特徴語カテゴリ生成処理を終了する。
図24は、図16の特徴語クラスタリング処理の実行により特徴語カテゴリが生成された後のカテゴリ構造の表示例を示す図である。同図に示すように、「内容別」カテゴリ1603の下位カテゴリには、特徴語カテゴリとして、カテゴリ2031、「検索」カテゴリ2032、及び「マイニング」カテゴリ2033が生成されている。「分析」カテゴリ2031、「マイニング」カテゴリ2033に対応するカテゴリデータはそれぞれ、図4に示す特徴語カテゴリデータ400、410である。
図10〜図16の処理が終了すると、ユーザインターフェース部5のカテゴリ操作部52は、図9のステップS1104の処理を行い、2軸マップ表示部51に2軸マップ表示を指示する。2軸マップ表示部51は、カテゴリ操作部52からの指示を受け、図7のステップS6における2軸マップ表示処理を行う。
図17は、2軸マップ表示部51が2軸マップを表示させる処理の流れを示すフローチャートである。同図に示すフローチャートは、図7のステップS9における2軸マップ表示処理の詳細な処理の一例を示す。
2軸マップ表示部51は、カテゴリ操作部52から2軸マップの横軸カテゴリxAxisCatと、縦軸カテゴリyAxisCatとの入力を受ける(ステップS1901)。2軸マップ表示部51は、図8のステップS1002と同様の処理により、カテゴリ記憶部2に記憶されているカテゴリデータ及び特徴語カテゴリデータに基づいて、横軸カテゴリxAxisCatの横軸子カテゴリxCatの集合である横軸子カテゴリ集合xCatsと、縦軸カテゴリyAxisCatの縦軸子カテゴリyCatの集合である縦軸子カテゴリ集合yCatsを取得する(ステップS1902)。
具体的には、図24のようなカテゴリ構造である場合、2軸マップ表示部51は、横軸子カテゴリ集合xCatsとして、横軸カテゴリxAxisCatである「出願年別」カテゴリ1602の子カテゴリの集合{「2004年」カテゴリ1621、「2005年」カテゴリ1622、「2006年」カテゴリ1623、「2007年」カテゴリ1624、「2008年」カテゴリ1625}を取得する。また、2軸マップ表示部51は、縦軸カテゴリyAxisCatである「内容別」カテゴリ1603の子カテゴリの集合{「分析」カテゴリ2031、「検索」カテゴリ2032、「マイニング」カテゴリ2033}を取得する。
2軸マップ表示部51は、縦軸カテゴリyAxisCatと、縦軸子カテゴリ集合yCatsに含まれる各縦軸子カテゴリyCatを行とし、横軸子カテゴリ集合xCatsに含まれる各横軸子カテゴリxCatを列として2軸マップテーブルを作成し、表示させる(ステップS1903)。2軸マップテーブルは、カテゴリが表示されるタイトル行及びタイトル列も含むため、行数が(1+縦軸カテゴリ数+縦軸子カテゴリ数)、列数が(1+横軸子カテゴリ数)のテーブルである。
2軸マップ表示部51は、作成した2軸マップテーブルにおける全てのcellを1つずつ選択し、選択したcellについてステップS1905〜ステップS1910の処理を繰り返す(ステップS1904−NO)。ステップS1905〜ステップS1910の処理は、図8のステップS1005〜ステップS1010と同様の処理である。
まず、2軸マップ表示部51はcellが先頭行(1行目)もしくは先頭列(1列目)であるか否か判定する(ステップS1905)。cellが先頭行(1行目)もしくは先頭列(1列目)であると判定した場合(ステップS1905−YES)、2軸マップ表示部51は、ステップS1906〜ステップS1908の処理を行う。すなわち、2軸マップ表示部51は、選択したcellに対応するカテゴリcat(縦軸カテゴリyAxisCat、縦軸子カテゴリyCat、または、横軸子カテゴリxCat)のカテゴリ名を表示させる(ステップS1906)。さらに、2軸マップ表示部51は、cellに対応するカテゴリcatがフィルタ語集合filtersを持つか否かを判定する(ステップS1907)。カテゴリcatがフィルタ語集合filtersを持つと判定した場合(ステップS1907−YES)、2軸マップ表示部51は、フィルタ語集合filtersに含まれるフィルタ語を当該cellに表示させる(ステップS1908)。カテゴリcatがフィルタ語集合filtersを持たないと判定した場合(ステップS1907−NO)、あるいは、ステップS1908の処理の後、2軸マップ表示部51は、ステップS1904に戻り、未選択のcellを選択して処理を繰り返す。
ステップS1905において、cellが先頭行(1行目)でも先頭列(1列目)でもないと判定した場合(ステップS1905−NO)、2軸マップ表示部51は、cellの行に対応する縦軸カテゴリyAxisCatまたは縦軸子カテゴリyCatと、cellの列に対応する横軸子カテゴリxCatとの両方に分類された文書データの数である文書数dnを求める(ステップS1909)。2軸マップ表示部51は、ステップS1903で作成した2軸マップテーブルのcellに、ステップS1909において算出した文書数dnに応じた大きさの円chartを表示させる(ステップS1910)。その後、2軸マップ表示部51は、ステップS1904に戻り、未選択のcellを選択して処理を繰り返す。
2軸マップ表示部51は、ステップS1904において全てのcellに対してステップS1905〜ステップS1910の処理を終了すると(ステップS1904−YES)、ステップS1911の処理を行う。
図25は、図16の特徴語クラスタリング処理の実行により特徴語カテゴリが生成された後に図24に示すカテゴリ構造となった場合に、ステップS1904までの処理の終了時に2軸マップ表示部51が表示させる2軸マップテーブルの表示例を示す図である。同図に示す2軸マップの横軸カテゴリ(軸カテゴリ)は、図22に示す2軸マップと同じである。縦軸には対象カテゴリである「内容別」カテゴリと、「内容別」カテゴリについて生成された下位カテゴリである特徴語カテゴリ「分析」、「検索」、及び「マイニング」とが含まれ、これら特徴語カテゴリそれぞれのフィルタ語が表示されている。例えば、特徴語カテゴリ「マイニング」のセル2101には、フィルタ語「マイニング、解析、関連語」が表示されている。また、2軸マップを表示させる際、2軸マップ表示部51は、2軸マップの各セルに、そのセルが対応する行の項目のカテゴリと列の項目のカテゴリとの両カテゴリに分類された文書数に応じたグラフを表示させている。
ステップS1904の繰り返し終了後、ユーザがあるカテゴリcatのフィルタ語集合filtesの中からフィルタ語fを選択した場合(ステップS1911−YES)、2軸マップ表示部51は、ステップS1912〜ステップS1915の処理を行う。
2軸マップ表示部51は、フィルタ語fが選択されたカテゴリcatの親カテゴリpcatをカテゴリ記憶部2から取得する(ステップS1912)。2軸マップ表示部51は、このカテゴリcatに該当する行内のタイトル列以外の全てのcellを1つずつ選択し、選択したcellについてステップS1914及びステップS1915の処理を繰り返す(ステップS1913−NO)。
2軸マップ表示部51は、選択したcellに対応する横軸子カテゴリxCatのカテゴリデータ(または特徴カテゴリデータ)と横軸子カテゴリxCatの上位カテゴリのカテゴリデータ(または特徴カテゴリデータ)とから分類ルールを読み出し、読み出した分類ルールの論理積を横軸子カテゴリxCatの分類ルールxrとする。さらに、2軸マップ表示部51は、親カテゴリpcatのカテゴリデータ(または特徴カテゴリデータ)から分類ルールprを読み出す。2軸マップ表示部51は、文書記憶部1を参照し、横軸子カテゴリxCatの分類ルールxrと、親カテゴリpcatの分類ルールprと、選択されたフィルタ語fとに基づき、選択したcellにおいてフィルタ語を含んだ対象文書データの数である文書数fdnを求める(ステップS1914)。この文書数fdnは、上述のdn同様に条件式の積で求めることができ、その条件式は「xr and pr and (contains(./本文,f))」となる。
2軸マップ表示部51は、表示させた2軸マップテーブルにおいて選択されたcellに、ステップS1910において表示させた円chartとは異なる色により、文書数fdnに応じた大きさの円chartを表示させる(ステップS1915)。カテゴリ操作部52は、ステップS1913に戻り、未選択のcellを選択して処理を繰り返す。
そして、フィルタ語fが選択されたカテゴリcatに該当する行内のタイトル列以外の全てのcellについて処理を終了すると(ステップS1913−YES)、カテゴリ操作部52は、ステップS1911に戻る。
以上のステップS1912〜ステップS1915の処理では、ユーザが2軸マップ上でフィルタ語を選択した場合に、2軸マップ表示部51は、フィルタ語が選択された行の各列のcellに、フィルタ語を含む文書数の円chartを、ステップS1910において表示させた円chartとは区別して表示させる。
図26は、フィルタ語選択時の2軸マップの表示例を示す図である。図26の例では、図25の表示の後、ユーザが、縦軸子カテゴリ「マイニング」が表示されているセル2201においてフィルタ語「関連語」を選択した場合を示している。2軸マップ表示部51は、フィルタ語が選択されたセル2201が含まれる行については、横軸子カテゴリ「2004年」、「2005年」、「2006年」、「2007年」、「2008年」のそれぞれに対応した列のセルに、網掛けの部分により「関連語」を含む文書データの数を表わしている。例えば、セル2222には、セル2201に対応した特徴語カテゴリ「マイニング」とセル2211に対応した横軸子カテゴリ「2004年」との両カテゴリに含まれる文書データの中で、「関連語」を含む文書データの数を表している。
図17のステップS1911において、2軸マップ表示部51は、フィルタ語の選択が入力されていないと判定した場合(ステップS1911−NO)、ユーザから終了要求が入力されないときには(ステップS1916−NO)、ステップS1911の処理に戻り、終了要求の入力を受けたときには処理を終了する(ステップS1916−YES)。
続いて、図7のステップS10及びステップS11の詳細な処理について、図9及び後述する図18の処理フローを用いて説明する。
図9のステップS1104において、2軸マップ表示部51が、カテゴリ操作部52からの指示を受け、図17の処理により図25に示すような2軸マップを表示させると、カテゴリ操作部52は、ステップS1101の処理に戻る。カテゴリ操作部52は、現在表示されている2軸マップ上でユーザが選択したカテゴリcatの入力を受け(ステップS1101−YES)、さらに、フィルタ語の追加要求の入力を受けた場合(ステップS1102−NO、ステップS1105−YES)、ステップS1106〜ステップS1110の処理を行う。
まず、カテゴリ操作部52は、特徴度データ記憶部4に記憶されている特徴度データのうち、傾向ベクトルが設定されている特徴度データkdを読み出し、読み出した特徴度データkdの集合である特徴度データ集合kdsを取得する(ステップS1106)。この特徴度データ集合kdsは、文書分類部3において特徴語と判定された単語の特徴度データの集合である。カテゴリ操作部52は、特徴度データ集合kds中の単語を補正特徴度順に表示させる(ステップS1107)。本実施形態では、上述の通り特徴語の表示を補正特徴度順としたが、これに限らず、単に文書頻度順や特徴度順としてもよい。
図27は、2軸マップにおける特徴語カテゴリの編集操作とその画面の表示例を示す図である。同図において、カテゴリ操作部52は、ステップS1101において選択されたセル2303に対応した特徴語カテゴリ「マイニング」の特徴語追加画面2310を表示させている。カテゴリ操作部52は、特徴語追加画面2310の特徴語リスト表示フィールド2311に、ステップS1106において取得した特徴度データ集合kdsに含まれる単語である特徴語の一覧を表示させている。このとき、カテゴリ操作部52は、それぞれの特徴語にチェックボックスをつけて表示させる。また、カテゴリ操作部52は、初期表示として、選択されたカテゴリcatのフィルタ語になっている特徴語に対応したチェックボックスにはチェックをつけて表示させる。特徴語追加画面2310は、選択されたcatのフィルタ語としてユーザが任意の文字列を入力するための入力フィールド2312と、ユーザがフィルタ語の追加の実行を要求するための「フィルタ語に追加」ボタン2313を含む。
カテゴリ操作部52は、特徴語の表示に対してユーザからのフィルタ語の選択、もしくは入力を受け付ける(ステップS1108)。具体的には、ユーザは、入力フィールド2312にフィルタ語として追加すべき文字列を入力するか、特徴語リスト表示フィールド2311においてフィルタ語として追加すべき特徴語に対応したチェックボックスにチェックをつける。カテゴリ操作部52は、ユーザからフィルタ語fの追加の実行要求が入力されない場合(ステップS1109−NO)、ステップS1105からの処理を繰り返す。
ステップS1109において、ユーザからフィルタ語fの追加の実行要求を受けた場合、具体的には、ユーザが図27の「フィルタ語に追加」ボタン2313を選択した場合(ステップS1109−YES)、カテゴリ操作部52は、選択されたカテゴリcatの特徴語カテゴリデータへフィルタ語fを追加する処理を行う(ステップS1110)。フィルタ語fは、ステップS1108において、ユーザが入力フィールド2312に入力した文字列、または、特徴語リスト表示フィールド2311においてチェックをつけた特徴語である。このフィルタ語fの追加処理の詳細については、後述する図18のフィルタ語の追加・削除処理の流れで説明する。
ステップS1110の処理の後、カテゴリ操作部52は、上述したステップS1104の処理を行って2軸マップの更新を2軸マップ表示部51に指示する。2軸マップ表示部51は、カテゴリ操作部52から現在表示させている2軸マップの横軸カテゴリxAxisCatと、縦軸カテゴリyAxisCatの入力を受けて図17の処理を行い、フィルタ語の追加を2軸マップに反映する。カテゴリ操作部52は、ステップS1101の処理に戻る。
カテゴリ操作部52は、ユーザにより選択されたカテゴリcatの入力を受け(ステップS1101−YES)、さらに、ユーザからフィルタ語fの削除要求を受けた場合(ステップS1102、ステップS1105−NO、ステップS1111−YES)、選択されたカテゴリcatの特徴語カテゴリデータからフィルタ語fを削除する処理を行う(ステップS1112)。このフィルタ語fの削除処理の詳細については、後述する図18のフィルタ語の追加・削除処理の流れで説明する。
ステップS1112の処理の後、カテゴリ操作部52は、上述したステップS1104の処理を行って2軸マップの更新を2軸マップ表示部51に指示する。2軸マップ表示部51は、カテゴリ操作部52から現在表示させている2軸マップの横軸カテゴリxAxisCatと、縦軸カテゴリyAxisCatの入力を受けて図17の処理を行い、フィルタ語の削除を2軸マップに反映する。カテゴリ操作部52は、ステップS1101の処理に戻る。
図18は、カテゴリ操作部52における特徴語カテゴリのフィルタ語の追加または削除の処理の流れを示すフローチャートである。同図に示すフローチャートは、図9のステップS1110及びステップS1112における詳細な処理の一例を示す。
まず、カテゴリ操作部52は、追加もしくは削除する単語tと、カテゴリcatを入力として受け取る(ステップS2001)。カテゴリcatは、図9のステップS1101において選択されたカテゴリであり、追加する単語tは、図9のステップS1108においてユーザが選択もしくは入力したフィルタ語であり、削除する単語は、図9のステップS1111において削除が要求されたフィルタ語fである。カテゴリ操作部52は、カテゴリ記憶部2に記憶されているカテゴリcatの特徴語カテゴリデータを特定し、特定した特徴語カテゴリデータに設定されているフィルタ語の集合であるフィルタ語集合fsを取得する。
フィルタ語の追加の場合(ステップS2002−[追加])、カテゴリ操作部52は、フィルタ語集合fsに単語tを追加する(ステップS2003)。ただし、フィルタ語集合fsに、すでに単語tが存在する場合、カテゴリ操作部52は何もしない。一方、フィルタ語の削除の場合(ステップS2002−[削除])、カテゴリ操作部52は、フィルタ語集合fsから単語tを削除する(ステップS2004)。ただし、フィルタ語集合fsに単語tが存在しない場合、カテゴリ操作部52は何もしない。
ステップS2003またはステップS2004の処理の後、カテゴリ操作部52は、フィルタ語集合fsに基づいて分類ルールrを生成し、カテゴリcatの分類ルールを更新する(ステップS2005)。分類ルールの生成方法については、図16のステップS1805の説明を参照されたい。カテゴリ操作部52は、カテゴリ記憶部2に格納されているカテゴリcatの特徴語カテゴリデータに設定されている分類ルール、及びフィルタ語をそれぞれ、ステップS2005に更新した分類ルールr、及びステップS2003またはステップS2004において更新したフィルタ語集合fsに更新する(ステップS2006)。
本実施形態では、フィルタ語の追加・削除処理について述べたが、追加・削除を組み合わせることで、カテゴリ操作部52は、あるカテゴリのフィルタ語を他のカテゴリのフィルタ語として移動もしくは複写することが可能となる。
図28は、特徴語カテゴリの編集操作後の2軸マップの表示例を示す図であり、図27に示す2軸マップにおいて、ユーザが以下の(1)及び(2)の編集操作を行った後の表示例である。
(1) ユーザが、セル2302に表示されている「検索」カテゴリのフィルタ語“管理”を、セル2301に表示されている「分析」カテゴリに移動する。
(2) ユーザが、セル2303に表示されている「マイニング」カテゴリのフィルタ語“関連語”を削除する。
上述した図9のステップS1105〜ステップS1112の処理によって、ユーザは2軸マップ上で、文書分類部3で自動生成された特徴語カテゴリに対して、簡単に編集を行うことができる。従って、文書分類装置100は、ユーザの分類・分析の意図や目的に合わせてカテゴリ構造を構成することが可能となる。また、この際にユーザがフィルタ語を選択することによって、文書分類装置100は、図26に示すような表示を行う。この表示により、ユーザは、選択されたフィルタ語に関する出現傾向を把握することができる。従って、文書分類装置100は、ユーザが指定した横軸カテゴリ(図26では「出願年別」カテゴリ)を基軸とした分類・分析作業を支援することが可能となる。
なお、本実施形態においては、2軸マップの各セルには、文書数dnを円の大きさで表示させる、いわゆるバブルチャートで表現したが、文書数dnの表示はこれに限らない。例えば、各セルに対応する文書数dnを、折れ線グラフや棒グラフで表現してもよい。
図29は、2軸マップを折れ線グラフで表現したときの表示例を示す図である。同図に示すように、折れ線グラフを利用した場合は、特許文献なら出願傾向の遷移の様子を把握するなど、時系列的な傾向変化を捉えるのに有効である。このとき、同図に示すように、フィルタ語については異なる線種のグラフで文書数dnを表現することで、さらに各フィルタ語に対する出現傾向の把握を容易にすることができる。
また、上記実施形態においては、特徴語とする単語を補正特徴度に基づいて選択しているが、特徴度に基づいて選択してもよい。この場合、特徴度データは、補正特徴度のデータを有せず、特徴度補正部32は、図12のステップS1404〜ステップS1410までの処理は行わない。そして、図14のステップS1603において、傾向ベクトル生成部34は、特徴度データ記憶部4に記憶されている特徴度データから単語tの特徴度を取得する。ステップS1604において、傾向ベクトル生成部34は、取得した特徴度があらかじめ設定された一定のしきい値より大きい場合は、ステップS1605の処理を行い、しきい値より小さい場合は、ステップS1602に戻る。
また、上記実施形態においては、ユーザからの着目語の入力を受けているが、着目語の入力がなくてもよい。着目語の入力がない場合、図12の処理において、特徴度補正部32は、ステップS1401〜ステップS1403、及びステップS1407〜ステップS1409の繰り返し処理を行わない。そして、特徴度補正部32は、ステップS1406で補正特徴度ms(t)を算出すると、算出した補正特徴度ms(t)を特徴度データに格納するステップS1410の処理を行い、ステップS1404に戻る処理となる。
また、着目語の入力を受けない場合、文書分類装置100が、着目語設定部53を設けない構成とすることもできる。この場合、図12の処理は行われず、図14のステップS1603において、傾向ベクトル生成部34は、特徴度データ記憶部4に記憶されている特徴度データから単語tの特徴度を取得する。そして、ステップS1604において、傾向ベクトル生成部34は、取得した特徴度があらかじめ設定された一定のしきい値より大きい場合は、ステップS1605の処理を行い、しきい値より小さい場合は、ステップS1602に戻る。
なお、上記実施形態では横軸を軸カテゴリ、縦軸を対象カテゴリとした例を示しているが、縦軸を軸カテゴリ、横軸を対象カテゴリとしてもよい。
以上述べた少なくともひとつの実施形態の文書分類装置100によれば、カテゴリ操作部52、及び特徴語カテゴリ生成部33を持つことにより、ユーザが指定した2つのカテゴリを2軸とする2軸マップにおいてユーザが選択した分類軸に対する単語の出現傾向に基づき特徴語を選択し、選択した特徴語を用いて特徴語カテゴリを生成する。これにより、ユーザは、現在生成されているクラスタリング結果や分類構造を利用した2軸マップを見ながら分類軸を選択することができるため、文書分類装置100は、ユーザの観点に適した分類構造を生成し、ユーザの目的にあった分類と分析を支援することが可能となる。
また、従来の単語クラスタリングでは、クラスタの生成に用いる単語を適切に選定し、比較的小さい計算量によって処理を行っていたが、この単語の選定は、文書に出現する単語の統計的な出現傾向に基づいて自動的に行われていた。そのため、文書集合の内容をあまりよく表さない単語や、ユーザの意図や分析の目的に合わない単語がクラスタの生成に用いる単語として選定されてしまうことも多かった。このような場合には、ユーザは、不要な単語を除外したり、重要な単語を登録したりといった作業を行って、ユーザの目的にあったクラスタの生成に用いるために、分類装置に対して所望の単語が選定されるよう指示する必要があり、この作業には熟練や労力を要していた。
しかし、以上述べた少なくともひとつの実施形態の文書分類装置100によれば、着目語設定部53を持つことによりユーザによる着目語の指定を受け、指定された着目語と関連が強い特徴語に基づき特徴語カテゴリを生成する。さらに、文書分類装置100は、カテゴリ操作部52を持つことにより、生成された特徴語カテゴリに対するフィルタ語の編集を受け、編集語のフィルタ語を用いて2軸マップを更新する。これらにより、クラスタ生成のために重要な単語をユーザが選定するための労力を軽減しながら、ユーザの関心に合わせた特徴語による分類構造の生成と修正を実現する。
なお、上述の各実施形態における図1の文書分類装置100の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより文書分類装置100として動作させるようにしてもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
以上、本発明の実施形態を説明したが、この実施形態は、例として提示したものであり、発明の範囲を限定することを意図していない。この実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。この実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。