(57)【特許請求の範囲】
【請求項１】
複数の入力文書を格納するメモリと、
メモリから前記入力文書を読み込み、当該入力文書中の各単語と予め設定された何れかの主要単語とが一致するか否かを判定し、一致した当該入力文書中の単語の位置を基準として定まる当該入力文書中の一部の単語列をそれぞれ推定文脈として抽出し、各推定文脈を出力する文脈抽出手段と、
前記各推定文脈の文書ベクトルである第１の文書ベクトルを生成し、各第１の文書ベクトルを出力する文書ベクトル生成手段と、
前記入力文書ごとに、当該入力文書に含まれる前記各推定文脈にそれぞれ対応する前記第１の文書ベクトルを対象とした第１のクラスタリングを行い、複数の前記第１の文書ベクトルが属するクラスタについてはそれに属する複数の第１の文書ベクトルを合成した合成ベクトルを第２の文書ベクトルとして出力し、１個の前記第１の文書ベクトルが属するクラスタについてはそれに属する１個の第１の文書ベクトルを第２の文書ベクトルとして出力する文脈結合手段と、
すべての前記第２の文書ベクトルを対象とした第２のクラスタリングを行い、当該第２のクラスタリングの結果を出力するクラスタ分類手段と、
を有することを特徴とする文書データ分類装置。
【請求項２】
請求項１に記載の文書データ分類装置であって、
前記文脈抽出手段は、
前記主要単語と一致した単語を含む所定範囲の単語列、又は、前記主要単語と一致した単語の直後に位置する所定範囲の単語列、又は、前記主要単語と一致した単語の直前に位置する所定範囲の単語列を前記推定文脈として抽出する手段である、
ことを特徴とする文書データ分類装置。
【請求項３】
請求項１又は２に記載の文書データ分類装置であって、
前記文脈抽出手段は、
抽出した複数の前記推定文脈の一部分が相互に重複する場合、当該複数の推定文脈を、当該複数の推定文脈に対応する範囲の単語列からなる１つの推定文脈に統合して出力する文脈統合手段を含む、
ことを特徴とする文書データ分類装置。
【請求項４】
請求項１から３の何れかに記載の文書データ分類装置であって、
前記文脈結合手段は、
前記入力文書ごとに当該入力文書に含まれる前記各推定文脈にそれぞれ対応する前記第１の文書ベクトルの集合を設定し、当該各集合をメモリに格納する初期集合設定手段と、
前記集合ごとに最も距離が近いベクトルの組を選択し、当該ベクトルの組の合成ベクトルを生成し、当該合成ベクトルをその生成に用いられたベクトルの組が属する集合に追加するとともに、当該ベクトルの組を当該集合から削除することにより、メモリに格納された当該集合を更新する処理を、前記集合ごとに所定の終了条件を満たすまで繰り返す集合更新手段と、
前記所定の終了条件を満たした時点で前記各集合に属する各ベクトルを、前記各第２の文書ベクトルとして出力する出力手段と、
を有することを特徴とする文書データ分類装置。
【請求項５】
請求項４に記載の文書データ分類装置であって、
前記所定の終了条件は、
(a)更新対象の前記集合に含まれるベクトルの個数が一定値以下になること、(b)更新対象の前記集合に含まれるベクトルの個数に対する、当該集合に含まれる前記第１の文書ベクトルの個数の割合が一定値以下になること、(c)更新対象の前記集合に含まれる最も距離が近い一組のベクトル間の距離が一定値以上になること、(d)更新対象の前記集合に含まれる最も距離が近い一組のベクトル間の距離が、前記初期集合設定手段で設定された初期状態の当該集合に含まれる最も距離が近い一組のベクトル間の距離に対して一定割合以上になること、(e)更新対象の前記集合に対する更新処理回数が一定値以上となったこと、の少なくとも１つである、
を特徴とする文書データ分類装置。
【請求項６】
文書データ分類装置が実行する文書データ分類方法であって、
複数の入力文書をメモリに格納する入力文書格納過程と、
文脈抽出手段が、メモリから前記入力文書を読み込み、当該入力文書中の各単語と予め設定された何れかの主要単語とが一致するか否かを判定し、一致した当該入力文書中の単語の位置を基準として定まる当該入力文書中の一部の単語列をそれぞれ推定文脈として抽出し、各推定文脈を出力する文脈抽出過程と、
文書ベクトル生成手段が、前記各推定文脈の文書ベクトルである第１の文書ベクトルを生成し、各第１の文書ベクトルを出力する文書ベクトル生成過程と、
文脈結合手段が、前記入力文書ごとに、当該入力文書に含まれる前記各推定文脈にそれぞれ対応する前記第１の文書ベクトルを対象とした第１のクラスタリングを行い、複数の前記第１の文書ベクトルが属するクラスタについてはそれに属する複数の第１の文書ベクトルを合成した合成ベクトルを第２の文書ベクトルとして出力し、１個の前記第１の文書ベクトルが属するクラスタについてはそれに属する１個の第１の文書ベクトルを第２の文書ベクトルとして出力する文脈結合過程と、
クラスタ分類手段が、すべての前記第２の文書ベクトルを対象とした第２のクラスタリングを行い、当該第２のクラスタリングの結果を出力するクラスタ分類過程と、
を有することを特徴とする文書データ分類方法。
【請求項７】
請求項１から５の何れかに記載の文書データ分類装置としてコンピュータを機能させるためのプログラム。
【請求項８】
請求項７に記載のプログラムを格納したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の文書データを分類する技術に関する。
【背景技術】
【０００２】
近年、音声認識技術の進歩とともに大量の音声対話がテキスト化されるようになってきた。一方、文書を中心とした大量テキス卜の中から必要なテキストを探し出す技術として、テキストの内容によって探索対象を絞り込むための文書分類技術が進歩してきた。
【０００３】
文書の分類方法は、クラスタリングとカテゴライズに大別される。
クラスタリングは、類似するテキストを集結させることによって各テキストの集合（クラスタ）を構築する（例えば、非特許文献１，２参照）。クラスタリングでは、カテゴライズと異なり、あらかじめ分類を定めておく必要がなく、未知のテキストに対して適用できる。また、分類によってテキスト内容の分布についで把握でき、内容の現況把握や、新しい発見が得られるなど、カテゴライズにはない特徴がある。
【０００４】
一般的に、文書のクラスタリングは、文書をベクトル表現した文書ベクトルのクラスタリングとして行われる。文書ベクトルは、文書集合に含まれるすべての異なる単語の各出現傾向を示す重みを成分とした列ベクトルで表現される（例えば、非特許文献１，３，４参照）。
【０００５】
文書ベクトルのクラスタリングでは、文書同士の類似度に文書ベクトル間の距離を用い、ベクトル成分の類似した、すなわち単語の出現傾向が類似した文書の文書ベクトルを同一のクラスタに分類する。単語の出現傾向は文書に現れる話題に依存するため、同一クラスタに分類された文書ベクトルの話題は互いに類似する可能性が高い。
【０００６】
また、特許文献１には、大量の文書でも高速かつ高精度にクラスタリングを行うことができる文書分類方法が開示されている。この方法では、まず、クラスタリング対象の文書を複数の文書群に分割し、各文書群について予備クラスタリングを行う。各予備クラスタリングは、それぞれ、各文書群のみを対象とし、サンプル数が少ないため、高速に処理できる。次に、このとき作成された予備クラスタ内の文書を統合して統合文書とし、統合文書に対して再クラスタリングを行う。このように、予備クラスタリングによってある程度類似する文書を統合文書としてまとめてから再クラスタリングを行うことにより、各文書の特徴を各統合文書に反映さえつつ、再クラスタリングの対象となるサンプル数を減らすことができる。その結果、特許文献１の方法では、全体として高速かつ高精度にクラスタリングを行うことができる。
【非特許文献１】岸田和明，「文書クラスタリングの技法：文献レビュー」，三田図書館・情報学会，Ｎ０．４９（２００３），ｐ．３３−７５
【非特許文献２】梶博行，森本康嗣，相薗敏子，山崎紀之，飯田恵子，内田安彦，「コーパス対応の関連シソーラスナビゲーション」，情報処理学会データベースシステム研究会１１８−１３（１９９９），ｐ．９７−１０４
【非特許文献３】徳永健伸著，辻井潤一編，「情報検索と言語処理  言語と計算」，東京大学出版会，１９９９年
【非特許文献４】北研二，津田和彦，獅々堀正幹，「情報検索アルゴリズム」，共立出版，２００２年
【特許文献１】特開２００３−２７１６２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、従来方法では、１つの文書中に複数の分野分類されるべき複数の文章（文脈）が混在する場合や、文章本来の意味とは無関係な単語（エラー）が混在する場合に分類精度が低下するという問題があった。以下、この問題点を説明する。
【０００８】
従来方法では、各文書内に複数の文脈が存在する場合やエラーが存在する場合を想定しておらず、文書ごとに１つずつ設定される文書ベクトルをクラスタリングの処理単位としている。そのため、１つの文書中の文脈数やエラー数が増加した場合、文書ベクトルの成分にノイズが重畳し、類似度の誤差が増大し、分類精度が低下してしまうという問題が生じる。例えば、複数の文脈を含む文書全体の１つの文書ベクトルは、これら各文脈の文書ベクトルのいずれとも異なり、その類似度は文書に含まれる文脈数が多くなればなるほど低下する。そして、文書に含まれる文脈数の階乗に比例して文書ベクトルが多様化し、クラスタ数の増加、クラスタの近接化、クラスタのメンバー数減少等が顕著になり、高精度な分類が困難となる。
【０００９】
例えば、特許文献１に開示された従来方法では、クラスタリング対象の各文書を複数の文書群に分割しているが、この分割は各文書内の文脈数やエラーを考慮することなく、予め決められた方法に沿って固定的に行われる。そして、この方法でのクラスタリングの処理単位はあくまで各文書の文書ベクトルである。そのため、各文書内に複数の文脈が存在する場合やエラーが存在する場合には、予備クラスタリング及び再クラスタリングの過程において上述した問題が発生し、高精度な分類が困難となる。
【００１０】
また、各文書内に複数の文脈が存在する場合に分類精度を向上させる手法として、例えば、各文書からいくつかの文脈を抽出し、抽出した文脈集合に対してベクトル化を行って文書ベクトル集合を作成し、文書ベクトル集合全体を対象にクラスタリングする手法も想定できる。しかし、この手法ではクラスタリング対象となる文書ベクトルの数が大きくなり、クラスタリングの処理時間は文書ベクトル数のべき乗で増大することから現実的ではない。
【００１１】
本発明はこのような点に鑑みてなされたものであり、１つの文書中に複数の分野に分類されるべき複数の文章（文脈）が混在する場合や、文章本来の意味とは無関係な単語（エラー）が混在する場合であっても、高速かつ高精度に文書データを分類することが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明では上記課題を解決するために、複数の入力文書をメモリに格納し、まず、文脈抽出手段が、メモリから入力文書を読み込み、当該入力文書中の各単語と予め設定された何れかの主要単語とが一致するか否かを判定し、一致した当該入力文書中の単語の位置を基準として定まる当該入力文書中の一部の単語列をそれぞれ推定文脈として抽出し、各推定文脈を出力する。次に、文書ベクトル生成手段が、各推定文脈の文書ベクトルである第１の文書ベクトルを生成し、各第１の文書ベクトルを出力する。次に、文脈結合手段が、入力文書ごとに、当該入力文書に含まれる各推定文脈にそれぞれ対応する第１の文書ベクトルを対象とした第１のクラスタリングを行い、複数の第１の文書ベクトルが属するクラスタについてはそれに属する複数の第１の文書ベクトルを合成した合成ベクトルを第２の文書ベクトルとして出力し、１個の第１の文書ベクトルが属するクラスタについてはそれに属する１個の第１の文書ベクトルを第２の文書ベクトルとして出力する。そして、クラスタ分類手段が、すべての第２の文書ベクトルを対象とした第２のクラスタリングを行い、当該第２のクラスタリングの結果を出力する。
【００１３】
ここで、本発明では、文脈抽出手段が入力文書から各文脈の推定である推定文脈を抽出し、文書ベクトル生成手段が、推定文脈ごとの文書ベクトルである第１の文書ベクトルを生成する。これにより、入力文書に複数の文脈が含まれている場合であっても、文脈ごとに第１の文書ベクトルが生成されることが期待される。また、入力文書中にエラーが含まれている場合であっても、当該エラーがベクトル化の対象とならない可能性が高い。以上により、第１の文書ベクトルの成分誤差を低減できる。
【００１４】
また、本発明では、文脈結合手段が、入力文書ごとに第１の文書ベクトルを対象とした第１のクラスタリングを行い、クラスタごとの第２の文書ベクトルを生成する。このクラスタリングは、入力文書ごとに行われるため、サンプル数が少なく高速で処理できる。そして、クラスタ分類手段が、すべての第２の文書ベクトルを対象とした第２のクラスタリングを行い、当該第２のクラスタリングの結果を出力する。このクラスタリングの対象は、それぞれ第１のクラスタリングにおいて同一のクラスタに分類された第１の文書ベクトルが反映された第２の文書ベクトルであり、なおかつ、その総数は推定文脈の総数よりも少ない。
【発明の効果】
【００１５】
本発明では、推定文脈ごとの文書ベクトルである第１の文書ベクトルを用いることにより、第１の文書ベクトルの成分誤差を低減し、さらに、文書ごとに第１の文書ベクトルを対象とした第１のクラスタリングを行ってクラスタごとの第２の文書ベクトルを生成し、当該第２の文書ベクトルを対象とした第２のクラスタリングを行うことにより、クラスタリングの速度と精度を向上させた。その結果、本発明では、１つの文書中に複数の分野に分類されるべき複数の文章（文脈）が混在する場合や、文章本来の意味とは無関係な単語（エラー）が混在する場合であっても、高速かつ高精度に文書データを分類できる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明を実施するための最良の形態を図面を参照して説明する。
＜構成＞
図１は、本形態の文書データ分類装置１の構成を示すブロック図である。また、図２は、本形態の文脈抽出部３０の詳細構成を示すブロック図であり、図３（ａ）は、文脈結合部５０の詳細構成を示すブロック図であり、図３（ｂ）は、クラスタ分類部６０の詳細構成を示すブロック図である。
【００１７】
図１に示すように、本形態の文書データ分類装置１は、メモリ１０、文書入力部２０、文脈抽出部３０、文書ベクトル生成部４０、文脈結合部５０、クラスタ分類部６０、結果表示部７０及び制御部８０を有する。また、図２に示すように、この例の文脈抽出部３０は、一致判定部３１、単語列抽出部３２及び文脈統合部３３を有する。また、図３（ａ）に示すように、この例の文脈結合部５０は、初期集合設定部５１及び集合更新部５２を有し、この例のクラスタ分類部６０は、セントロイド設定部６１、クラスタリング部６２及び終了条件判定部６３を有する。
【００１８】
なお、本形態の文書データ分類装置１は、ＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、補助記憶装置、表示ディスプレイ等を有する公知のコンピュータに所定のプログラムが読み込まれることによって構成される。具体的には、メモリ１０は、例えば、ＲＡＭ、キャッシュメモリ、レジスタ、補助記憶装置の何れか、又は、少なくともそれらの一部の結合によって構成される記憶部である。なお、記載の便宜上、各図ではメモリ１０を分離した態様で記載しているが、これはメモリ１０の物理的構成を特徴付けるものではない。また、文書入力部２０、文脈抽出部３０、文書ベクトル生成部４０、文脈結合部５０、クラスタ分類部６０及び制御部８０は、例えば、所定のプログラムが読み込まれそれを実行するＣＰＵである。また、結果表示部７０は、例えば、所定のプログラムが読み込まれそれを実行するＣＰＵの制御のもと駆動する表示ディスプレイである。なお、文書データ分類装置１は、制御部８０の制御のもと各処理を実行する。
【００１９】
＜処理＞
図４は、本形態の文書データ分類方法の全体を説明するためのフローチャートである。また、図５は、図４のステップＳ２の詳細を例示したフローチャートであり、図６は、図４のステップＳ４の詳細を例示したフローチャートであり、図７は、図４のステップＳ５の詳細を例示したフローチャートである。また、図８は、本形態の文書データ分類方法の全体を説明するための概念図である。以下、これらの図を用いて、本形態の文書データ分類処理を説明する。
【００２０】
まず、文書入力部２０に複数の入力文書が入力され、メモリ１０に格納される（ステップＳ１／文書入力過程）。これらの入力文書は、１つの文書中に複数の分野に分類されるべき複数の文章（文脈）が混在する文書や、文章本来の意味とは無関係な単語（エラー）が混在する文書である。そのような文書の例としては、例えば、音声認識技術を用いて音声対話をテキスト化した文書を例示できる。このような文書には、複数の話題や、対話中に生じる話題とは無関係な単語、言い誤りや言い直し、テキスト化の過程で生じる誤り等が混在することが多い。また、入力文書のその他の例としては、電子メールの通信文書、インターネット上のホームページ、文字放送字幕等を例示できる。これらの文書もエラーや複数の文脈が混在する可能性が高い文書である。なお、文書入力部２０に入力される各入力文書は、事前に形態素解析がなされ、それぞれを構成する単語が抽出されているものとする。また、メモリ１０に格納される各入力文書には、それらを識別するための文書ラベルが付与され、各文書ラベルは対応する入力文書にそれぞれ関連付けられてメモリ１０に格納される。
【００２１】
また、入力文書の分野ごとに予め入力文書中の単語の解析等を行い、推定文脈を抽出するための１個以上の主要単語が準備され、メモリ１０に格納されているものとする。主要単語の例としては、例えば、各文脈に特徴的な単語を例示できる。このような主要単語の設定は、例えば、対象分野の複数の入力文書を対象として各単語のＴＦ-ＩＤＦ(Term Frequency - Inverse Document Frequency)を求め、ＴＦ-ＩＤＦが高い単語を主要単語として選択することによって可能である。また、「ところで」などの話題を変更する際に使用される接続詞を主要単語としてもよいし、「以上」のように話題の最後に使用される単語を主要単語としてもよい。さらには、話題が変更される際に表れる一定長以上のスペースやポーズなどを主要単語としてもよい。
【００２２】
次に、文脈抽出部３０が、メモリ１０から入力文書を読み込み、当該入力文書中の各単語とメモリ１０に格納された予め設定された何れかの主要単語とが一致するか否かを判定する。そして、文脈抽出部３０は、一致した当該入力文書中の単語の位置を基準として定まる当該入力文書中の所定範囲の単語列をそれぞれ推定文脈として抽出し、各推定文脈をメモリ１０出力し、当該メモリ１０に格納する（ステップＳ２／文脈抽出過程）。
【００２３】
［ステップＳ２／文脈抽出過程の詳細］
ここで、図２及び図５を用い、ステップＳ２の詳細を例示する。
まず、文脈抽出部３０の一致判定部３１が、メモリ１０から未処理の１つの入力文書を選択する（ステップＳ１１）。次に、一致判定部３１が、選択した入力文書の先頭の単語を判定対象の単語に設定する（ステップＳ１２）。次に、一致判定部３１は、メモリ１０に格納された主要単語を参照し、判定対象の単語が何れかの主要単語と一致するか否かを判定する（ステップＳ１３）。
ここで、判定対象の単語が何れかの主要単語と一致していなかったならばステップＳ１７の処理に移行する。
【００２４】
一方、判定対象の単語が何れかの主要単語と一致していたならば、その一致位置を示す一致位置情報（例えば、入力文書の何番目の単語であるかを示す情報）をメモリ１０に格納する。そして、単語列抽出部３２が、メモリ１０から一致位置情報を読み込み、それに示される単語の一致位置を基準として定まる入力文書中の一部の単語列を推定文脈として特定する。そして、単語列抽出部３２は、特定した推定文脈をメモリ１０に格納された当該入力文書から抽出し、抽出した推定文脈をメモリ１０に格納する（ステップＳ１４）。なお、単語の一致位置を基準として定まる入力文書中の一部の単語列としては、(1)主要単語と一致した単語を含む所定範囲の単語列、(2)主要単語と一致した単語の直後に位置する所定範囲の単語列、(3)主要単語と一致した単語の直前に位置する所定範囲の単語列などを例示できる。また、主要単語の種類に応じ、どのような範囲の単語列を推定文脈として抽出するかが変化する構成でもよい。例えば、主要単語が各推定文脈に特徴的な単語である場合には、上記の(1)の基準に従って推定文脈を抽出し、主要単語が話題を変更する際に使用される接続詞である場合には、上記の(2)の基準に従って推定文脈を抽出し、主要単語が話題の最後に使用される単語である場合には、上記の(3)の基準に従って推定文脈を抽出することとしてもよい。また、推定文脈として抽出する単語列の範囲（単語数）を大きくすると、異なる文脈を包含することにならない限り分類精度は向上するが、後述のステップＳ３で述べる文書ベクトル化時の処理速度が低下する。一方、推定文脈として抽出する単語列の範囲（単語数）を小さくすると、文書ベクトル化時の処理速度は向上するが、分類精度が低下する。従って、入力文書の分野ごとに処理速度と分類精度とを考慮し、適切な単語列の範囲を推定文脈として抽出する。
【００２５】
次に、文脈統合部３３がメモリ１０に格納された推定文脈を参照し、複数の推定文脈の一部分が相互に重複するか否かを判定する（ステップＳ１５）。なお、複数の推定文脈の一部分が相互に重複するとは、複数の推定文脈をそれぞれ構成する単語の範囲が互いに重複することを意味する。ここで、複数の推定文脈の一部分が相互に重複していなかった場合には、処理がステップＳ１７に以降する。一方、複数の推定文脈の一部分が相互に重複していた場合には、文脈統合部３３は、当該複数の推定文脈を、当該複数の推定文脈に対応する範囲の単語列からなる１つの推定文脈に統合して出力する（ステップＳ１６）。例えば、「単語ａ」「単語ｂ」「単語ｃ」「単語ｄ」「単語ｅ」からなる「推定文脈Ａ」と、「単語ｄ」「単語ｅ」「単語ｆ」「単語ｇ」「単語ｈ」からなる「推定文脈Ｂ」とが存在する場合、文脈統合部３３は、「推定文脈Ａ」「推定文脈Ｂ」を、「推定文脈Ａ」「推定文脈Ｂ」に対応する範囲の単語列「単語ａ」「単語ｂ」「単語ｃ」「単語ｄ」「単語ｅ」「単語ｆ」「単語ｇ」「単語ｈ」からなる１つの「推定文脈Ｃ」に統合して出力する。そして、文脈統合部３３から出力された統合された推定文脈がメモリ１０に格納されるとともに、その推定文脈に統合された各推定文脈がメモリ１０から削除される。上記の例では、文脈統合部３３から出力された統合された「推定文脈Ｃ」がメモリ１０に格納されるとともに、「推定文脈Ｃ」に統合された「推定文脈Ａ」「推定文脈Ｂ」がメモリ１０から削除される。その後、処理がステップＳ１７に以降する。
【００２６】
ステップＳ１７では、制御部８０が、判定対象の単語が入力文書の最後の単語であるか否かを判定する（ステップＳ１７）。ここで、判定対象の単語が入力文書の最後の単語でないと判定された場合、一致判定部３１は、その単語の次の単語を新たな判定対象の単語に設定し（ステップＳ１８）、処理がステップＳ１３に戻される。
【００２７】
一方、判定対象の単語が入力文書の最後の単語であると判定された場合、制御部８０が、未処理の入力文書がメモリ１０に存在するか否かを判定する（ステップＳ１９）。ここで、未処理の入力文書がメモリ１０に存在すると判定された場合には、処理がステップＳ１１に戻される。一方、未処理の入力文書がメモリ１０に存在しないと判定された場合には、ステップＳ２の処理が終了する（［ステップＳ２の詳細］の説明終わり）。
【００２８】
次に、文書ベクトル生成部４０が、メモリ１０から各推定文脈を読み込み、各推定文脈の文書ベクトルである第１の文書ベクトルをそれぞれ生成し、各第１の文書ベクトルをメモリ１０に出力し、そこに格納する（ステップＳ３／文書ベクトル生成過程）。なお、文書ベクトルは、文書集合に含まれるすべての異なる単語の各出現傾向を示す重みを成分とした列ベクトルで表現される（例えば、非特許文献１，３，４参照）。文書ベクトルの生成には公知の方法を用いればよい。例えば、ＴＦ-ＩＤＦ尺度を用いて文書群から複数の単語を選別し、選別された各単語の推定文脈における出現頻度（ＴＦ）を当該推定文脈の文書ベクトルの要素としてもよい。また、単語間共起頻度行列をもとに次元数を圧縮した文書ベクトルを生成してもよい（例えば、非特許文献３，４参照）。また、生成された各第１の文書ベクトルには対応する各推定文脈を識別するための推定文脈ＩＤが付与される。そして、各推定文脈ＩＤは、対応する各第１の文書ベクトル及び推定文脈並びに当該推定文脈が属する入力文書の文書ラベルに関連付けられてメモリ１０に格納される。
【００２９】
次に、文脈結合部５０が、入力文書ごとに、当該入力文書に含まれる各推定文脈にそれぞれ対応する第１の文書ベクトルを対象とした第１のクラスタリングを行い、複数の第１の文書ベクトルが属するクラスタについてはそれに属する複数の第１の文書ベクトルを合成した合成ベクトルを第２の文書ベクトルとして出力し、１個の第１の文書ベクトルが属するクラスタについてはそれに属する１個の第１の文書ベクトルを第２の文書ベクトルとして出力する（ステップＳ４／文脈結合過程）。出力された各第２の文書ベクトルには、それぞれに対応する何れかの第１文書ベクトルの推定文脈ＩＤ及び文書ラベルが関連付けられ、それらはメモリ１０に格納される。
【００３０】
［ステップＳ４／文脈結合過程の詳細］
ここで、図３（ａ）及び図６を用い、ステップＳ４の詳細を例示する。
このステップＳ４の処理は、入力文書ごとにクラスタリングを行う点に特徴がある。クラスタリング方法には様々な方法を用いることができるが、本形態では、入力文書ごとに、階層的クラスタリングによって第１の文書ベクトルをクラスタリングし、その過程において各クラスタごとに第１の文書ベクトルを合成して各第２の文書ベクトルを生成する。
【００３１】
まず、初期集合設定部５１が、メモリ１０から各第１の文書ベクトルを読み込み、それらに関連付けられた推定文脈ＩＤ及び文書ラベルを参照し、入力文書ごとに、当該入力文書に含まれる各推定文脈にそれぞれ対応する第１の文書ベクトルの集合を設定する（ステップＳ２１）。この例では、初期集合設定部５１が、さらに、各入力文書にそれぞれ対応する集合ごとの結束度テーブルを生成し、各結束度テーブルをメモリ１０に格納する。結束度テーブルとは、入力文書ごとに、第１の文書ベクトルの組とそれらの類似度（結束度）とを、当該入力文書に対応する推定文脈のすべての組合せについて対応つけたテーブルである。また、本形態の結束度テーブルには、さらにその結束度テーブルに対応する文書ラベルが関連付けられ、また、それを構成する各第１の文書ベクトルには対応する各推定文脈ＩＤが関連付けられる。なお、第１の文書ベクトル間の類似度としては、例えば、コサイン距離やユークリッド距離を用いることもできる（例えば、非特許文献１参照）。
【００３２】
次に、集合更新部５２が、未処理の１つの集合を選択する（ステップＳ２２）。次に、集合更新部５２が、選択した集合の元であるベクトルから、最も距離が近いベクトルの組を選択する（ステップＳ２３）。この例では、集合更新部５２が、選択した集合に対応する結束度テーブルから、類似度が最も小さなベクトルの組を選択する。なお、当該ベクトルは、初期状態の第１の文書ベクトル、又は、集合の更新処理によって生成された合成ベクトルである。
【００３３】
次に、集合更新部５２は、選択したベクトルの組の合成ベクトルを生成し、当該合成ベクトルをその生成に用いられたベクトルの組が属する集合に追加し、当該合成ベクトルの生成に用いられたベクトルの組を集合から削除し、これによってメモリ１０に格納された当該集合を更新する（ステップＳ２４）。この例では、このような集合の更新に応じ、さらにそれに対応する結束度テーブルが更新される。すなわち、集合更新部５２は、更新された集合に属するベクトルの組とそれらの類似度（結束度）とを、当該集合に属するすべてのベクトルの組合せついて対応つけた結束度テーブルを生成し、これによってメモリ１０に格納された結束度テーブルを更新する。また、更新された結束度テーブルにも、対応する推定文脈ＩＤ及び文書ラベルが関連付けられるが、新たに生成された合成ベクトルには、その生成に用いられたベクトルに関連付けられていた何れかの推定文脈ＩＤが関連付けられる。
【００３４】
次に、集合更新部５２が、所定の終了条件を充足したか否かを判定する（ステップＳ２５）。なお、ここでの「所定の終了条件」としては、以下の条件を例示できる。
(a)更新対象の集合に含まれるベクトルの個数が一定値以下になること。
(b)更新対象の集合に含まれるベクトルの個数に対する、当該集合に含まれる第１の文書ベクトルの個数の割合が一定値以下になること。
(c)更新対象の集合に含まれる最も距離が近い一組のベクトル間の距離が一定値以上になること。
(d)更新対象の集合に含まれる最も距離が近い一組のベクトル間の距離が、初期集合設定部５１で設定された初期状態の当該集合に含まれる最も距離が近い一組のベクトル間の距離に対して一定割合以上になること。
(e)更新対象の集合に対する更新処理回数が一定値以上となったこと。
【００３５】
これらの何れかの条件をステップＳ２５の判定での「所定の終了条件」としてもよいし、これらの条件の組合せをステップＳ２５の判定での「所定の終了条件」としてもよいし、これらすべての条件をステップＳ２５の判定での「所定の終了条件」としてもよい。
【００３６】
ここで、所定の終了条件を充足していないと判定された場合には、処理がステップＳ２３に戻される。一方、所定の終了条件を充足していると判定された場合には、集合更新部５２が、未処理の集合が存在するか否かを判定する（ステップＳ２６）。
【００３７】
ここで、未処理の集合が存在すると判定された場合には、処理がステップＳ２２に戻される。一方、未処理の集合が存在しないと判定された場合には、集合更新部５２が、メモリ１０から各集合に属するベクトルをそれぞれ読み込み、それらを第２の文書ベクトルとしてメモリ１０に出力し、そこに格納する（ステップ２７）。この際、集合更新部５２は、結束度テーブルを参照し、各第２の文書ベクトルに対応する推定文脈ＩＤ及び文書ラベルを当該第２の文書ベクトルに関連つけ、メモリ１０に格納する（［ステップＳ４の詳細］の説明終わり）。
【００３８】
次に、クラスタ分類部６０が、メモリ１０から各第２の文書ベクトルを読み込み、すべての第２の文書ベクトルを対象とした第２のクラスタリングを行い、当該第２のクラスタリングの結果をメモリ１０に出力し、そこに格納する（ステップＳ５／クラスタ分類過程）。
【００３９】
［ステップＳ５／クラスタ分類過程の詳細］
ここで、図３（ｂ）及び図７を用い、ステップＳ５の詳細を例示する。
このステップＳ５の処理は、様々なクラスタリング方法を用いて実現できるが、本形態では、分割最適化による非階層的クラスタリング手法（ｋ−ｍｅａｎｓ法）を用いる。
【００４０】
まず、セントロイド設定部６１が、複数個のクラスタに対し、それぞれセントロイド（各クラスタに属するベクトルの中心ベクトル）の初期値を設定し、それらをメモリ１０に格納する（図７（ａ）／ステップＳ３１）。なお、クラスタの個数は入力文書の分野等を考慮し事前に決定され、例えば、想定される話題の種類以上の個数がクラスタの個数として設定される。また、セントロイドの初期値はどのように定めてもよいが、高精度なクラスタリングのためには各セントロイドが一部に集中しないように設定されることが望ましい。そのための手法としては、クラスタ分のセントロイドを任意に設定し、セントロイド間のコサイン距離が所定の閾値以下であった場合にセントロイドを設定しなおすといった手法が考えられる。
【００４１】
次に、クラスタリング部６２が、メモリ１０から各第２の文書ベクトルと各セントロイドとを読み込み、第２の文書ベクトルとそれが属するクラスタのセントロイドとの距離の総和が最小となるように、各第２の文書ベクトルに何れかのクラスタを割り当てる（ステップＳ３２）。ここでの距離としては、例えば、コサイン距離やユークリッド距離を用いることもできる（例えば、非特許文献１参照）。そして、各第２の文書ベクトルに割り当てられた各クラスタを示すクラスタ情報がメモリ１０に格納される。
【００４２】
次に、セントロイド設定部６１が、メモリ１０からクラスタ情報と第２の文書ベクトルとを読み込み、クラスタごとに当該クラスタに属する第２の文書ベクトルから新たなセントロイドを算出する（ステップＳ３３）。具体的には、セントロイド設定部６１は、クラスタ情報を用いて各第２の文書ベクトルがそれぞれ属するクラスタを特定し、クラスタごとにそれに属する各第２の文書ベクトルの平均ベクトルを求め、新たなセントロイドを算出する。算出された新たなセントロイドはメモリ１０に格納され、これによって古いセントロイドを更新する。
【００４３】
次に、終了条件判定部６３が、所定の終了条件を充足したか否かを判定する（ステップＳ３４）。なお、ここでの「所定の終了条件」としては、以下の条件を例示できる。
(a)各クラスタの更新前のセントロイドと更新後のセントロイドとの距離をすべてのクラスタについて合計した値が一定値以下となること。
(b)更新の前後で最も大きくセントロイドが変動したクラスタでのセントロイドの変化量が一定値以下となること。
(c)更新前の各クラスタの各メンバーと更新後の各クラスタの各メンバーとの相違数の合計が一定値以下となること。
(d)更新の前後で最も大きくメンバーが変動したクラスタでのメンバー変動数が一定値以下となること。
(e)クラスタの更新回数が一定値以上となること。
【００４４】
これらの何れかの条件をステップＳ３４の判定での「所定の終了条件」としてもよいし、これらの条件の組合せをステップＳ３４の判定での「所定の終了条件」としてもよいし、これらすべての条件をステップＳ３４の判定での「所定の終了条件」としてもよい。
【００４５】
ここで、所定の終了条件を充足していないと判定された場合には、処理がステップＳ３２に戻される。一方、所定の終了条件を充足していると判定された場合には、終了条件判定部６３が、メモリ１０のクラスタ情報をクラスタリング結果として出力して、メモリ１０に格納する（ステップＳ３５）。
【００４６】
なお、以前に同様な分野の入力文書の分類処理を行い、セントロイドが既に設定されている場合には、そのセントロイドを用い、新たな各入力文書から生成された各第２の文書ベクトルのクラスタリングを行ってもよい。
【００４７】
この場合には、まず、クラスタリング部６２が、メモリ１０から各第２の文書ベクトルと各セントロイドとを読み込み、第２の文書ベクトルとそれが属するクラスタのセントロイドとの距離の総和が最小となるように、各第２の文書ベクトルに何れかのクラスタを割り当てる（図７（ｂ）／ステップＳ４１）。そして、終了条件判定部６３が、メモリ１０のクラスタ情報をクラスタリング結果として出力して、メモリ１０に格納する（ステップＳ４２／  ［ステップＳ５の詳細］の説明終わり）。
【００４８】
次に、メモリ１０から結果表示部７０に、クラスタリング結果と各第２の文書ベクトルに対応する推定文脈ＩＤ及び文書ラベルとが読み込まれ、結果表示部７０が、例えば、各クラスタとそれぞれに属する第２の文書ベクトルに対応する推定文脈ＩＤ及び文書ラベルとを対応付けたリストを表示する。その他、結果表示部７０が、各クラスタごとにそれらに対応する各推定文脈を表示してもよいし、その他の方法で分類結果を表示してもよい（ステップＳ６／結果表示過程）。
【００４９】
＜本形態の特徴＞
以上説明した通り、本形態では、１つの文書中に複数の分野に分類されるべき複数の文章（文脈）が混在したり、文章本来の意味とは無関係な単語（エラー）が混在する場合を仮定している。そして、固定的な文書結合ではなく、文書から抽出した推定文脈の内容に応じて動的に推定文脈を結合し、クラスタリングを行うことで最終的な分類を決める。具体的には、メモリ１０から各入力文書を読み込み、当該入力文書中の各単語と予め設定された何れかの主要単語とが一致するか否かを判定し、一致した当該入力文書中の単語の位置を基準として定まる当該入力文書中の一部の単語列をそれぞれ推定文脈として抽出し（ステップＳ２）、各推定文脈の文書ベクトルである第１の文書ベクトルを生成し（ステップＳ３）、入力文書ごとに、当該入力文書に含まれる各推定文脈にそれぞれ対応する第１の文書ベクトルを対象とした第１のクラスタリングを行い、複数の第１の文書ベクトルが属するクラスタについてはそれに属する複数の第１の文書ベクトルを合成した合成ベクトルを第２の文書ベクトルとし、１個の第１の文書ベクトルが属するクラスタについてはそれに属する１個の第１の文書ベクトルを第２の文書ベクトルとし（ステップＳ４）、すべての第２の文書ベクトルを対象とした第２のクラスタリングを行い、最終的な分類を決める（ステップＳ５）。
【００５０】
これにより、１つの文書中に複数の分野に分類されるべき複数の文章（文脈）が混在したり、文章本来の意味とは無関係な単語（エラー）が混在する場合であっても、高速かつ高精度で文書データを分類することができる。
【００５１】
また、本形態では、ステップＳ２の処理において、抽出した複数の推定文脈の一部が相互に重複する場合、当該複数の推定文脈を、当該複数の推定文脈に対応する範囲の単語列からなる１つの推定文脈に統合することとした。抽出された複数の推定文脈の一部分が相互に重複するほど推定文脈が近接している場合、これらが同一の推定文脈に属する可能性が高い。本形態では、それらの推定文脈を文脈抽出段階で統合しておくことで、文脈結合過程（ステップＳ４）の処理を軽減し、処理をさらに高速化する。
【００５２】
また、本形態の文脈結合過程（ステップＳ４）では、入力文書ごとに当該入力文書に含まれる各推定文脈にそれぞれ対応する第１の文書ベクトルの集合を設定し、集合ごとに最も距離が近いベクトルの組を選択し、当該ベクトルの組の合成ベクトルを生成し、当該合成ベクトルをその生成に用いられたベクトルの組が属する集合に追加するとともに、当該ベクトルの組を当該集合から削除することにより、メモリに格納された当該集合を更新する処理を、集合ごとに所定の終了条件を満たすまで繰り返し、所定の終了条件を満たした時点で各集合に属する各ベクトルを、各第２の文書ベクトルとして出力することとした。このように階層的クラスタリングの過程において、クラスタを統合するたびに合成ベクトルを生成していくことにより、クラスタリングがすすむたびにサンプル数が減少するため、この処理に必要なメモリの記憶容量を削減することができる。
【００５３】
＜変形例等＞
なお、本発明は上述の実施の形態に限定されるものではない。例えば、入力文書ごとに非階層的クラスタリングを行い、文脈結合過程（ステップＳ４）を実行してもよい。
【００５４】
図９は、ｋ−ｍｅａｎｓ法を用いて文脈結合過程を実行する文脈結合部１５０の構成を示すブロック図である。また、図１０は、ｋ−ｍｅａｎｓ法を用いて実行される文脈結合過程を説明するためのフローチャートである。以下、これらの図を用いてｋ−ｍｅａｎｓ法を用いて実行される文脈結合過程（ステップＳ４）を説明する。
【００５５】
まず、セントロイド設定部１５１が、メモリ１０から各第１の文書ベクトルを読み込み、それらに関連付けられた推定文脈ＩＤ及び文書ラベルを参照し、入力文書ごとに、当該入力文書に含まれる各推定文脈にそれぞれ対応する第１の文書ベクトルの集合を設定する（ステップＳ１２１）。次に、セントロイド設定部１５１が、未処理の１つの集合を選択し（ステップＳ１２２）する。次に、セントロイド設定部１５１が、複数個設定されたクラスタに対し、それぞれセントロイドの初期値を設定し、それらをメモリ１０に格納する（ステップＳ１２３）。
【００５６】
次に、クラスタリング部１５２が、メモリ１０から選択された集合の第１の文書ベクトルと各セントロイドとを読み込み、当該第１の文書ベクトルとそれが属するクラスタのセントロイドとの距離の総和が最小となるように、選択された集合の各第１の文書ベクトルに何れかのクラスタを割り当てる（ステップＳ１２４）。
【００５７】
次に、セントロイド設定部１５１が、メモリ１０からクラスタ情報と選択された集合の第１の文書ベクトルとを読み込み、クラスタごとに当該クラスタに属する第１の文書ベクトルから新たなセントロイドを算出する（ステップＳ１２５）。
【００５８】
次に、終了条件判定部１５３が、所定の終了条件を充足したか否かを判定する（ステップＳ１２６）。なお、ここでの「所定の終了条件」としては、例えば、ステップＳ３４と同様なものを用いる。
【００５９】
ここで、所定の終了条件を充足していないと判定された場合には、処理がステップＳ１２４に戻される。一方、所定の終了条件を充足していると判定された場合には、複数の第１の文書ベクトルが属するクラスタについてはそれに属する複数の第１の文書ベクトルを合成した合成ベクトルを第２の文書ベクトルとして生成・出力し、１個の第１の文書ベクトルが属するクラスタについてはそれに属する１個の第１の文書ベクトルを第２の文書ベクトルとして出力し、出力した各第２の文書ベクトルをメモリ１０に格納する（ステップＳ１２７）。
【００６０】
一方、所定の終了条件を充足していると判定された場合には、セントロイド設定部１５１が、未処理の集合がメモリ１０に存在するか否かを判定する（ステップＳ１２８）。ここで、未処理の集合がメモリ１０に存在すると判定された場合には、処理がステップＳ１２２に戻される。一方、未処理の集合がメモリ１０に存在しないと判定された場合には、ステップＳ４の処理が終了する。
【００６１】
なお、同様な分野の入力文書についてｋ−ｍｅａｎｓ法を用いて文脈結合過程を繰り返し実行する場合には、以前の文脈結合過程で設定されたセントロイドを用い、新たな入力文書に対応する第２の文書ベクトルを生成してもよい。この場合には、各集合に対してステップＳ１２４及びＳ１２７の処理を実行するだけでよい。
【００６２】
また、上記の実施形態では、文脈抽出過程（ステップＳ２）において、抽出した複数の推定文脈の一部が相互に重複する場合に、当該複数の推定文脈を、当該複数の推定文脈に対応する範囲の単語列からなる１つの推定文脈に統合することとした。しかし、抽出した複数の推定文脈の一部が相互に重複する場合であっても、当該複数の推定文脈を統合せずにそのまま推定文脈として用いる変形も可能である。
その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【００６３】
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【００６４】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよいが、具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等を、光磁気記録媒体として、ＭＯ（Magneto-Optical disc）等を、半導体メモリとしてＥＥＰ−ＲＯＭ（Electronically Erasable and Programmable-Read Only Memory）等を用いることができる。
【００６５】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００６６】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００６７】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【産業上の利用可能性】
【００６８】
複数の文脈が混在したりエラーが混在したりする文書の例としては、例えば、音声認識技術を用いて音声対話をテキスト化した文書を例示できる。このような文書には、複数の話題や、対話中に生じる話題とは無関係な単語、言い誤りや言い直し、テキスト化の過程で生じる誤り等が混在することが多い。本発明を適用することにより、このように複数の文脈が混在したりエラーが混在したりする文書であっても、高速かつ高精度に分類することができる。
【図面の簡単な説明】
【００６９】
【図１】図１は、本形態の文書データ分類装置１の構成を示すブロック図である。
【図２】図２は、本形態の文脈抽出部の詳細構成を示すブロック図である。
【図３】図３（ａ）は、文脈結合部の詳細構成を示すブロック図であり、図３（ｂ）は、クラスタ分類部の詳細構成を示すブロック図である。
【図４】図４は、本形態の文書データ分類方法の全体を説明するためのフローチャートである。
【図５】図５は、図４のステップＳ２の詳細を例示したフローチャートである。
【図６】図６は、図４のステップＳ４の詳細を例示したフローチャートである。
【図７】図７は、図４のステップＳ５の詳細を例示したフローチャートである。
【図８】図８は、本形態の文書データ分類方法の全体を説明するための概念図である。
【図９】図９は、ｋ−ｍｅａｎｓ法を用いて文脈結合過程を実行する文脈結合部の構成を示すブロック図である。
【図１０】図１０は、ｋ−ｍｅａｎｓ法を用いて実行される文脈結合過程を説明するためのフローチャートである。
【符号の説明】
【００７０】
１  文書データ分類装置
１０  メモリ
３０  文脈抽出部
４０  文書ベクトル生成部
５０  文脈結合部
６０  クラスタ分類部
【図１】
0004594992.tif 000002
【図２】
0004594992.tif 000003
【図３】
0004594992.tif 000004
【図４】
0004594992.tif 000005
【図５】
0004594992.tif 000006
【図６】
0004594992.tif 000007
【図７】
0004594992.tif 000008
【図８】
0004594992.tif 000009
【図９】
0004594992.tif 000010
【図１０】
0004594992.tif 000011