(57)【要約】【課題】  回答者から収集された大量のデータの中から、回答者の連想における結びつきが強い概念を抽出する。【解決手段】  テキストマイニング装置は、複数のテキストＴ１〜Ｔｍ（ｍは整数）を記憶するテキスト記憶部と、複数のワードＷ１〜Ｗｎ（ｎは整数）を記憶するワード記憶部と、複数のテキストＴ１〜Ｔｍの各々に対して、複数のワードＷ１〜Ｗｎとの照合を実行して一致する文字列が含まれるか否かを示す存在情報Ｐ１〜Ｐｎを生成する存在情報生成部と、複数のテキストのうち第ｉ番目の存在情報Ｐｉと第ｊ番目の存在情報Ｐｊとが同一であるテキストの数Ｃ（ｉ，ｊ）を算出する共起数算出部と、Ｃ（ｉ，ｊ）を成分とするクロス集計表のカイ２乗値を算出し出力するカイ２乗値算出部とを備える。【選択図】図１３
2007080181.tif 000002
【特許請求の範囲】
【請求項１】
複数のテキストＴ１〜Ｔｍ（ｍは整数）を記憶するテキスト記憶部と、
複数のワードＷ１〜Ｗｎ（ｎは整数）を記憶するワード記憶部と、
前記複数のテキストＴ１〜Ｔｍの各々に対して、前記複数のワードＷ１〜Ｗｎとの照合を実行して一致する文字列が含まれるか否かを示す存在情報Ｐ１〜Ｐｎを生成する存在情報生成部と、
前記複数のテキストのうち第ｉ番目の存在情報Ｐｉと第ｊ番目の存在情報Ｐｊとが同一であるテキストの数Ｃ（ｉ，ｊ）を算出する共起数算出部と、
前記Ｃ（ｉ，ｊ）を成分とするクロス集計表のカイ２乗値を算出し出力するカイ２乗値算出部
とを具備する
テキストマイニング装置。
【請求項２】
請求項１に記載されたテキストマイニング装置であって、
更に、複数のカテゴリを記憶するカテゴリ記憶部
を具備し、
前記複数のカテゴリの各々には前記複数のワードのうちの少なくとも１つのワードが対応づけられ、
前記存在情報生成部は、前記複数のワードＷ１〜Ｗｎのうち前記カテゴリ記憶部において同一のカテゴリに属するワードを区別せずに前記照合を実行する
テキストマイニング装置。
【請求項３】
請求項１または２に記載されたテキストマイニング装置であって、
更に、前記複数のテキストのうちの少なくとも２つのテキストを照合して一致する部分をキーワード候補として抽出し、前記キーワード候補のうちで文字数が多いものを前記ワードＷ１〜Ｗｎとして前記ワード記憶部に登録するために抽出するワード抽出部
を具備する
テキストマイニング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テキストマイニングに関する。
【背景技術】
【０００２】
大量のテキストデータの中から価値のあるデータを探索するマイニング技術が注目されている。
【０００３】
テキストデータの中から特定の性質の情報を抽出する技術の一例として、コロケーションが知られている。コロケーションは、コーパスの中で、ある語と他の語がどの程度、共起しているかを調べ、よく共起する、いわば相性のよい語の連なりを抽出して辞書化したものである。こうした技術は、「くるま−運転する」、「飛行機−操縦する」という語は連なることは多いが、「くるま−操縦する」、「飛行機−運転する」という語が連なることは少ない、という例のように、ある言語において自然な語の連なりに関する情報を提供する。コロケーションは、例えば翻訳がターゲット言語において自然な表現となることを支援するために利用される。
【０００４】
特許文献１には、少なくとも２個以上の文書集合から特徴的な情報を抽出するテキストマイニング方法において、２個以上の文書集合から同時に出現する語の組を抽出し、部分文書集合毎に抽出された語の組の中から特徴的な語の組を抽出することを特徴とするテキストマイニング方法が記載されている。
【特許文献１】特開２００２‐１８３１７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、回答者の連想による結びつきが強い概念を抽出するテキストマイニング装置を提供することである。
本発明の他の目的は、少数だが貴重な意見・感想を抽出するテキストマイニング装置を提供することである。
【課題を解決するための手段】
【０００６】
以下に、［発明を実施するための最良の形態］で使用される番号を括弧付きで用いて、課題を解決するための手段を説明する。これらの番号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために付加されたものである。ただし、それらの番号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【０００７】
本発明によるテキストマイニング装置（２）は、複数のテキストＴ１〜Ｔｍ（ｍは整数）を記憶するテキスト記憶部（１２）と、複数のワードＷ１〜Ｗｎ（ｎは整数）を記憶するワード記憶部（３４）と、複数のテキストＴ１〜Ｔｍの各々に対して、複数のワードＷ１〜Ｗｎとの照合を実行して一致する文字列が含まれるか否かを示す存在情報Ｐ１〜Ｐｎを生成する存在情報生成部（５０）と、複数のテキストのうち第ｉ番目の存在情報Ｐｉと第ｊ番目の存在情報Ｐｊとが同一であるテキストの数Ｃ（ｉ，ｊ）を算出する共起数算出部（５２）と、Ｃ（ｉ，ｊ）を成分とするクロス集計表のカイ２乗値を算出し出力するカイ２乗値算出部（５４）とを備える。
【０００８】
本発明によるテキストマイニング装置（２）は、複数のカテゴリを記憶するカテゴリ記憶部（３２）を備える。複数のカテゴリの各々には複数のワードのうちの少なくとも１つのワードが対応づけられる。存在情報生成部（５０）は、複数のワードＷ１〜Ｗｎのうちカテゴリ記憶部（３２）において同一のカテゴリに属するワードを区別せずに照合を実行する。
【０００９】
本発明によるテキストマイニング装置（２）は、複数のテキストのうちの少なくとも２つのテキストを照合して一致する部分をキーワード候補として抽出し、キーワード候補のうちで文字数が多いものをワードＷ１〜Ｗｎとしてワード記憶部（３４）に登録するために抽出するワード抽出部（４８）を備える。
【発明の効果】
【００１０】
本発明によれば、回答者の連想による結びつきが強い概念を抽出するテキストマイニング装置が提供される。
更に本発明によれば、少数だが貴重な意見・感想を抽出するテキストマイニング装置が提供される。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照しながら本発明によるテキストマイニング装置を実施するための最良の形態について説明する。
【００１２】
本実施の形態におけるテキストマイニング装置は、パーソナルコンピュータ及びワークステーションに例示されるコンピュータシステムを用いて実現される。図１はテキストマイニング装置２の構成を示す。テキストマイニング装置２は、ＣＰＵ４、記憶装置６、入力装置８及び出力装置１０を備える。
【００１３】
図２は、記憶装置６に格納されるデータを示す。記憶装置６は、テキスト記憶部１２、シソーラスデータベース１４、プレゼンステーブル１６、コロケーションテーブル１８、コロケーション情報２０及びプログラム記憶部２２を備える。
【００１４】
図３は、テキスト記憶部１２に格納されるデータの構成を示す。テキスト記憶部１２は、調査によって得られた複数の回答者の自由回答文による回答を記憶する。テキスト記憶部１２は、回答者ＩＤ３６と回答２６とを対応づけて格納する。
【００１５】
図４は、シソーラスデータベース１４に格納されるデータの構成を示す。シソーラスデータベース１４は、複数の業種の業種名２８を格納している。シソーラスデータベース１４は、複数の業種名２８の各々に対して、カテゴリＩＤ３０、カテゴリ３２及びエントリ３４を含むテーブルを格納している。エントリ３４は、回答２６から抽出される文字列である。カテゴリ３２は、少なくとも１つのエントリ３４を包摂するカテゴリの名を示す。カテゴリＩＤ３０は、カテゴリ３２の各々を特定するために割り当てられる識別子である。
【００１６】
図５は、プレゼンステーブル１６の構成を示す。プレゼンステーブル１６は、回答者ＩＤ３６に対応するレコードと、カテゴリＩＤ３０に対応するフィールドを備える。セルには０と１のいずれかが格納される。１が格納されたセルは、回答者がカテゴリＩＤ３０に対応する言葉を使用していることを意味する。０が格納されたセルは、回答者がカテゴリＩＤ３０に対応する言葉を使用していないことを意味する。
【００１７】
図６は、コロケーションテーブル１８の構成を示す。コロケーションテーブル１８は、回答者の考えにおける２つの概念のコロケーションの情報を含んでいる。具体的には、２つのカテゴリの出現パターンが共通する回答２６の数がマトリクス状に配置されたクロス集計表である。各々のマトリクスの成分は、２語が共に存在する回答の数Ｃ（１，１）、２語のうち第１の語が不在で第２の語が存在する回答の数Ｃ（０，１）、２語のうち第１の語が存在し第２の語が不在である回答の数Ｃ（１，０）及び２語が共に不在である回答の数Ｃ（０，０）である。コロケーションテーブル１８は更に、各行に含まれる成分の合計ＴＹ１、ＴＹ０と、各列に含まれる成分の合計ＴＸ１、ＴＸ０とを格納する。
【００１８】
図７は、コロケーション情報２０の構成を示す。コロケーション情報２０は、順位３８と、カイ２乗値４０と、人数４２と、第１のワード４４と、第２のワード４６とを対応づけて格納する。
【００１９】
図８は、プログラム記憶部２２の構成を示す。プログラム記憶部２２は、ワード抽出部４８、シソーラス処理部４９、存在情報生成部５０、共起数算出部５２、カイ２乗値算出部５４、コロケーション出力部５６及びテーブル指定情報収集部５７を格納する。
【００２０】
以上の構成を備えるテキストマイニング装置２の動作が以下に説明される。以下の説明において、ＣＰＵ４が記憶装置６に記録されている情報を読み出し、その情報に含まれるプログラムに記述された手順に従って実行する動作は、そのプログラム自身が行う動作として記述される。
【００２１】
テキストマイニング装置２の動作は、
（１）シソーラスデータベース１４が最初に構築される際の動作（図９に示される）、
（２）構築されたシソーラスデータベース１４にデータの追加が行われる際の動作（図１０に示される）、
（３）構築されたシソーラスデータベース１４を用いてテキストマイニングが行われる際の動作（図１１と図１２に示される）、
（４）回答に含まれるコロケーション情報を抽出する、
に分けて説明される。
【００２２】
図９を参照すると、シソーラスデータベース１４が最初に構築される際のテキストマイニング装置２の動作を示すフローチャートが示されている。
【００２３】
ステップＳ２：シソーラス処理部４９は、入力装置８または記憶装置６から複数の回答者の回答を含むデータを収集してテキスト記憶部１２に回答２６として登録し、各々の回答に対して回答者ＩＤ３６を発行する。好ましくは回答者の属性も収集されて登録される。
【００２４】
ステップＳ３：テキストマイニング装置２を使用者する使用者は、シソーラス処理部４９が収集したテキストデータが関係する業種の業種名２８を入力装置８より入力する。入力した業種名２８は、記憶装置６に格納される。
【００２５】
ステップＳ４：ワード抽出部４８は、テキスト記憶部１２の回答２６を検索し、少なくとも二つの回答者ＩＤ３６に対応する回答２６に出現する同一の文字列のうち所定の長さよりも長い文字列を抽出する。
【００２６】
例えば、第１の回答者ＩＤ３６に対応する回答２６に第１の文字列「ショップの人が親身になって直してくれた」が含まれ、第２の回答者ＩＤ３６に対応する回答２６に第２の文字列「故障してショップの人に連絡したとき回答が遅かった」が含まれている場合、「ショップの人」という文字列が両者に共通しているため抽出される。
【００２７】
抽出は、文字列の長さが長い方から短い方に行われることが好ましい。上の例では第１の文字列と第２の文字列とに共通する文字列のうち最も長い文字列である「ショップの人」という文字列がまず抽出される。
【００２８】
抽出は、回答２６のうちですでに抽出された文字列を省いたテキストデータの中からなされることが更に好ましい。上の例では第１の文字列と第２の文字列とから「ショップの人」という７文字の文字列が省かれた後、残った第１の文字列と第２の文字列の中から６文字の文字列で同一のものが探索される。
【００２９】
ステップＳ６：シソーラス処理部４９は、ステップＳ４において抽出された複数の文字列を所定の順序（例えば五十音順の辞書式順序）に従ってソートする。
【００３０】
ステップＳ８：シソーラス処理部４９は、ステップＳ６においてソートされた複数の文字列の中から同一の文字列（ステップＳ４において重複して抽出された文字列）を探し出し、それらの同一の文字列の中から一つを残して残りを削除したファイルを生成する。
その結果、回答者から収集した意見に何度も使用されている言葉が一覧表となった、いわば生きた言葉の辞書が作成される。これにより、テキストデータの収集者の考えによるバイアスが少なく、回答者の感性に近い言葉を生かしたマイニングが可能となる。
【００３１】
ステップＳ１０：使用者は、ステップＳ８において生成されたファイルを出力装置１０より出力して閲覧し、そのファイルの中に不要な文字列があるか否かを判断する。使用者は、不要な文字列があると判断した場合、シソーラス処理部４９に記載された所定の手順によりその不要な文字列を入力装置８を介して不要語として入力する。そのような文字列の例として、「います」「でない」「という」「何とか」が挙げられる。
シソーラス処理部４９は、入力された不要語をステップＳ３において入力され記憶装置６に格納されている業種名２８と対応づけて不要語リストに登録する。
【００３２】
ステップＳ１２：不要語が不要語リストに登録されると、シソーラス処理部４９はステップＳ８において生成されたファイルの中から不要語と一致する文字列を削除したファイルを生成する。
【００３３】
ステップＳ１４：使用者は、ステップＳ１２において生成されたファイルに格納される複数の文字列の各々に対して、文字列の意味に応じてカテゴリ３２を付与し、カテゴリ３２を個別に特定し管理するためのカテゴリＩＤ３０を付与する。
【００３４】
例えば使用者が、ステップＳ１２において生成されたファイルに格納されている文字列には、ある店舗の料理の質を評価する話題、その店舗の狭さを指摘する話題及び予約に関する話題の３つの話題が含まれていると判断すると、使用者は３つのカテゴリＩＤ３０、例えば「１」、「２」及び「３」を設定し、その各々に対応するカテゴリ３２、「おいしい」、「店が狭い」及び「予約」を入力装置８より入力する。入力されたカテゴリＩＤ３０とカテゴリ３２とはシソーラスデータベース１４に格納される。ステップＳ１２において生成されたファイルに格納された文字列は、カテゴリ３２に属するエントリ３４としてシソーラスデータベース１４に格納される。
【００３５】
ステップＳ２からステップＳ１４に示される手順により、シソーラスデータベース１４が作成される。こうして作成されたシソーラスデータベース１４は、回答者から収集された元データに含まれる語彙であるエントリ３４を上位概念化したカテゴリ３２を複数格納し、カテゴリ３２の各々に対応して少なくとも１つのエントリ３４を格納している。
【００３６】
ステップＳ４に示される抽出方法に代えて、形態素を用いてテキストデータを解析し、一致する表現を抽出する方法を採用しても、以下に説明するテキストマイニングの方法を実行することは可能である。
【００３７】
形態素を用いてテキストデータを解析した場合、例えば「この商品がもっと値段が安ければ買ってもいいのに」というテキストデータが解析されたとする。このテキストデータは、「値段が高すぎるから買わない」というネガティブな意味合いを含んでいると解釈できるだろう。しかしこのテキストデータを形態素で分解すると、「この」「商品」「もっと」「値段」「安い」「買う」「いい」などに分解され、元データとは反対に高い購買意欲を示しているように解釈される。この形態素から元データの意味の復元を試みるには、多数の文法のルールを適用することが求められる。
【００３８】
ステップＳ２〜Ｓ１４に示される手順により構築されるシソーラスデータベース１４は、回答者から得られた生データに含まれる言葉を直接カットして得られた言葉からなる。そのため値段に関するデータは、例えば
（１）「値段が安い」「値段が安かった」「価格的によい」「お値段が手頃で」
（２）「値段が安ければ」「値段が手頃なら」「価格が安ければ」「料金が安かったら」
（３）「値段が安くない」「リーズナブルでなくて」「価格が納得できない」
と分類される。（１）は値段が安いという判断がなされたことを示し、（２）は値段が安かったらという希望条件を示し、（３）は値段が高いという判断がなされたことを示している。ステップＳ２〜Ｓ１４に示される手順により構築されるシソーラスは、こうした意味の違いを容易に取り込むことが可能である。特に、同じ形態素を含んでいて異なる価値評価を示しているテキストデータを弁別したシソーラスを構築することが容易である。
【００３９】
図１０を参照すると、構築されたシソーラスデータベース１４にデータの追加が行われる際のテキストマイニング装置２の動作を示すフローチャートが示されている。
【００４０】
ステップＳ２２：シソーラス処理部４９は、入力装置８または記憶装置６から複数の回答者の回答を含むデータを収集し、回答者ＩＤ３６と対応づけてテキスト記憶部１２に回答２６として登録する。シソーラス処理部４９は、回答者ＩＤ３６と回答２６とを対応づけてテキスト記憶部１２に格納する。
【００４１】
ステップＳ２４：シソーラス処理部４９は、テキストマイニング装置２を使用する使用者から、シソーラスデータベース１４に業種名２８として示されている業種のうちでいずれの業者を選択するかを示す情報を収集し、記憶装置６に格納する。
【００４２】
テーブル指定情報収集部５７は、以下の処理において、シソーラスデータベース１４の備える複数のシートのうち業種名２８がステップＳ２４において収集された業種名に一致するシートが使用されるように設定する。シソーラス処理部４９は更に、以下の処理において、不要語リストのうちステップＳ２４において収集された業種名に一致する業種名２８に対応する不要語リストが使用されるように設定する。
【００４３】
ステップＳ２５：シソーラス処理部４９は、回答２６に格納されているテキストデータを順次読み出す。最初に処理が行われるときは、回答２６のうち第１の回答者に対応する部分が抽出され、その部分に対してステップＳ２６からステップＳ３８までの処理が行われる。二番目に処理が行われるときは、回答２６のうち第１の回答者と異なる第２の回答者に対応する部分が抽出され、その部分に対してステップＳ２６からステップＳ３８までの処理が行われる。更に第３、第４…の回答者に対して同じ手順による処理が繰り返される。
【００４４】
ステップＳ２６：シソーラス処理部４９は、回答２６と、不要語リストにおいてステップＳ２４で入力された業種名２８に対応する全ての不要語とを照合する。シソーラス処理部４９は、照合の結果が一致であった場合、その文字列をテキスト記憶部１２から削除し、処理はステップＳ３８に移行される。照合の結果が不一致であったばあい、処理はステップＳ２８に移行される。
【００４５】
ステップＳ２８：シソーラス処理部４９は、ステップＳ２６において生成されたファイルに含まれる文字列を、シソーラスデータベース１４に格納されているエントリ３４と照合する。一致するエントリ３４があった場合、処理はステップＳ３８に進む。一致するエントリ３４がなかった場合、処理はステップＳ３０に進む。
【００４６】
ステップＳ３０：シソーラス処理部４９は、ステップＳ２６において生成されたファイルから、共通する文字列を抽出する。抽出は、ステップＳ４におけるテキスト記憶部１２の回答２６をステップＳ２６において生成されたファイルに置き換えて、ステップＳ４と同じ方法により行われる。
【００４７】
ステップＳ３２：シソーラス処理部４９は、ステップＳ３０において複数の文字列が抽出された場合、抽出された複数の文字列を所定の順序（例えば五十音順の辞書式配列の順序）に従ってソートする。シソーラス処理部４９は更に、ソートされた複数の文字列の中から同一の文字列（重複している文字列）を探し出し、それらの同一の文字列の中から一つを残して残りを削除したファイルを生成する。
【００４８】
ステップＳ３４：使用者は、ステップＳ３２において生成されたファイルを閲覧して、そのファイルの中に不要な文字列があるか否かを判断する。使用者が不要な文字列があると判断した場合、シソーラス処理部４９により指定される所定の手順に従って使用者が入力装置８に操作を行うことにより、その不要な文字列は不要語として不要語リストに登録される。不要語が不要語リストに登録されると、シソーラス処理部４９はステップＳ３２において生成されたファイルの中から不要語リストと一致する文字列を削除したファイルを生成する。
【００４９】
ステップＳ３６：使用者は、シソーラスデータベース１４を参照して、ステップＳ３４において生成されたファイルに含まれる文字列の各々に対して、意味的に適合するカテゴリ３２を探し、文字列をそのカテゴリ３２に対応する新たなエントリ３４として登録する。使用者は、ステップＳ３４において生成されたファイルに含まれる文字列に意味的に適合するカテゴリ３２が無いと判断すると、新しいカテゴリＩＤ３０とカテゴリ３２とをシソーラスデータベース１４に登録し、その文字列を新たに登録されたカテゴリ３２に対応するエントリ３４として登録する。
【００５０】
ステップＳ３８：ステップＳ２５において抽出されたファイルがテキスト記憶部１２に格納されている回答２６の最後の部分であると判定されたとき以外は、ＣＰＵ４はステップＳ２５に戻って処理を続行する。ステップＳ２５において抽出されたファイルがテキスト記憶部１２に格納されている回答２６の最後の部分であると判定された場合、ＣＰＵ４は処理を終了する。
【００５１】
以上のステップＳ２２〜Ｓ３８により、生情報（回答者から得られたテキストデータ）に含まれる新たな語彙がシソーラスデータベース１４に登録される。こうした手順によりシソーラスデータベース１４が構築されていくにより、テキストマイニングの精度はより向上していく。さらに、流行語など新たな語彙が発生したり、消費者の嗜好が変わるなど、社会で流通している生きた言葉の変化に柔軟に対応するテキストマイニングが容易に実現できる。
【００５２】
図１１は、構築されたシソーラスデータベース１４を用いてテキストマイニングが行われる際のテキストマイニング装置２の動作を示すフローチャートを示す。
【００５３】
ステップＳ４２：シソーラス処理部４９は、入力装置８または記憶装置６から複数の回答者の回答を含むデータを収集し、回答者ＩＤ３６と対応づけてテキスト記憶部１２に回答２６として登録する。好ましくは回答者ＩＤ３６の属性も収集されてテキスト記憶部に格納される。
【００５４】
ステップＳ４４：シソーラス処理部４９は、テキストマイニング装置２を使用する使用者から入力装置８を介して業種名２８を収集する。シソーラス処理部４９は、以下の処理において、シソーラスデータベース１４の備える複数のシートのうち業種名２８がステップＳ２４において収集された業種名に一致するシートが使用されるように設定する。テーブル指定情報収集部５７は更に、以下の処理において、不要語リストのうちステップＳ２４において収集された業種名に一致する業種名２８に対応する不要語リストが使用されるように設定する。
【００５５】
業種名２８の選択が行われる際に、顧客を属性によって分類した分析を行いたい場合、使用者はプログラム記憶部２２に記憶されたプログラムにより指定される所定の手続きに従って入力装置８から属性を指定する情報の入力を行う。その場合、以下の分析はテキスト記憶部１２のなかで、ステップＳ２において収集された属性が、ステップＳ４２において収集された属性と一致する回答２６のみを用いて行われる。これにより、年齢、性別、居住地域、回答に用いた手段等によって区分されたマイニングが行われる。
【００５６】
ステップＳ４６：シソーラス処理部４９はシソーラスデータベース１４を参照して、回答２６からステップＳ４と同じ動作により文字列を抽出する。抽出された文字列は、抽出文字列として記憶装置６に格納される。
【００５７】
ステップＳ４８：シソーラス処理部４９は、回答２６に含まれる抽出文字列の頻度数をカウントする。シソーラス処理部４９は、抽出文字列と算出された頻度数とを対応づけて記憶装置６に格納する。
【００５８】
ステップＳ５０：シソーラス処理部４９は、抽出文字列と、不要語リストに格納されている不要語とを照合し、一致したものを削除したファイルを作成する。
【００５９】
ステップＳ５２：図１２を参照して、シソーラス処理部４９は、記憶装置６に格納された抽出文字列の各々に対して、シソーラスデータベース１４に格納されているエントリ３４に同一の文字列が存在するか否かを判定する。
【００６０】
シソーラス処理部４９は、抽出文字列と同一の文字列がエントリ３４に存在しないと判定したとき（ステップＳ５２Ｎｏ）、その文字列を未登録文字列として、対応する頻度数とともに記憶装置６に格納し、処理はステップＳ５４に移行される。同一の文字列が存在すると判定されたとき、処理はステップＳ６０に移行される。
【００６１】
ステップＳ５４：シソーラス処理部４９は、未登録文字列との類似度が最も大きいエントリ３４をシソーラスデータベース１４から抽出する。類似度は、例えば一致する文字列の長さが長いほど大きくなるように決められる。シソーラス処理部４９は更に、抽出されたエントリ３４が属するカテゴリ３２を抽出する。
【００６２】
ステップＳ５６：シソーラス処理部４９は、未登録文字列と、ステップＳ５４において抽出されたカテゴリ３２とを出力装置１０から出力する。使用者はその出力結果を参照して、未登録文字列を出力されたカテゴリ３２に属するエントリ３４として新規に登録するか否かを入力装置８より入力する。使用者が新規に登録することを示す情報を入力したとき、シソーラス処理部４９は処理をステップＳ５８に移す。使用者が新規に登録しないことを示す情報を入力したとき、シソーラス処理部４９は処理をステップＳ６０に移す。
【００６３】
ステップＳ５８：ステップＳ５６において使用者により新規に登録することが選択された未登録文字列は、ステップＳ５４において抽出されたカテゴリ３２に属するエントリ３４としてシソーラスデータベース１４に登録され、記憶装置６に格納された未登録文字列のリストから削除される。
【００６４】
こうした処理により、シソーラスデータベース１４の語彙を豊富化することが容易である。さらに、シソーラスデータベース１４の語彙が豊富化すればするほどに、ステップＳ５４において自動的に抽出されたカテゴリ３２が未登録文字列に対して意味的に適合するカテゴリである可能性が向上する。
【００６５】
そのため、ある程度以上にシソーラスデータベース１４の語彙が豊富化した場合、ステップＳ５６における使用者の操作を省略して、自動的に新規文字列をシソーラスデータベース１４に登録していく方法が採用されることも好ましい。
【００６６】
ステップＳ６０：シソーラス処理部４９は、抽出文字列のうちシソーラスデータベース１４のエントリ３４と一致する文字列を格納する抽出文字列ファイルを生成する。シソーラス処理部４９は、ステップＳ５０において作成されたファイルの頻度数を取り込んでエントリ３４に対応づけて抽出文字列ファイルに格納する。シソーラス処理部４９は更に、シソーラスデータベース１４においてエントリ３４に対応するカテゴリＩＤ３０とカテゴリ３２とを抽出文字列ファイルに追加する。
【００６７】
ステップＳ６２：シソーラス処理部４９は、抽出文字列ファイルにおいて同一のカテゴリＩＤ３０に含まれるエントリ３４の頻度数を足し合わせることにより、カテゴリ別の頻度数を算出する。シソーラス処理部はさらに、頻度数が多い順に並ぶようにソートして順位を付け、その順位と、カテゴリＩＤ３０と、カテゴリ３２と、頻度数とを対応づける頻度数ファイルを生成する。シソーラス処理部４９はさらに、カテゴリ３２ごとの頻度数を示すグラフを作成して出力装置１０により出力する。使用者はそのグラフを見ることにより、回答２６にどのような話題が多く含まれているのかについての心証を得ることができる。
【００６８】
ステップＳ６４：テキスト記憶部１２の回答２６をＴ１〜Ｔｍ（添字は回答者ＩＤ３６を示し、ｍは整数）で表現する。シソーラスデータベース１４のカテゴリ３２をＷ１〜Ｗｎ（添字はカテゴリＩＤ３０を示し、ｎは整数）で表現する。存在情報生成部５０は、カテゴリＷ１〜Ｗｎを順次、選択し、そのカテゴリに属するエントリ３４と同一の文字列がＴ１の中に含まれているか否かを示す存在情報Ｐ１〜Ｐｎ（添字はカテゴリＷ１〜Ｗｎの添字に対応する）を生成する。存在情報は、含まれているときは１、含まれていないときは０の値を取る。同じ処理が回答Ｔ２〜Ｔｍに対して繰り返される。
【００６９】
Ｔ１〜Ｔｍの各々に対して存在情報Ｐ１〜Ｐｎが生成される。存在情報Ｐ１〜Ｐｎは、回答者ＩＤ３６と対応づけられてプレゼンステーブル１６に登録される。各々の回答者ＩＤ３６に関するデータが一つのレコードに対応する。
【００７０】
プレゼンステーブル１６には、一人の回答者の回答に、あるカテゴリに属する語が含まれるか含まれないかを示す情報が記録されている。一人の回答者が何度も同じカテゴリの語を使用した場合、その頻度は以後の処理に使用されない。そのため、同じカテゴリの語が特異的に多く使用された回答に結果が影響されることがない。各々の回答は同じ重みで結果に影響する。
【００７１】
ステップＳ６６：共起数算出部５２は、プレゼンステーブル１６において、２つのカテゴリの共起のパターンが同じレコードの数を算出する。具体的には、図１４を参照して説明がなされる。図１４（ａ）を参照すると、カテゴリＩＤ３０が「１」のフィールドと「２」のフィールドが点線で囲われて注目されている。回答者ＩＤ３６が１００１〜１００５である５つのレコードのみ考えると、カテゴリＩＤが「１」及び「２」の各々に対応する存在情報が０及び０であるレコードは２つ（すなわち、回答者ＩＤが１００２及び１００４のレコード）である。これをＣ（０，０）＝２と記述する。括弧の中の第１の０は、注目されている第１のカテゴリの存在情報が０であることを示す。括弧の中の第２の０は、注目されている第２のカテゴリの存在情報が０であることを示す。
【００７２】
カテゴリＩＤが「１」及び「２」の各々に対応する存在情報が１及び０であるレコードの数は０である。すなわち、Ｃ（１，０）＝０。存在情報が０及び１であるレコードの数は２である（１００３と１００５に対応）。すなわち、Ｃ（０，１）＝２。存在情報が１及び１であるレコードの数は１である（１００１に対応）。すなわち、Ｃ（１，１）＝１。
【００７３】
図１４（ｂ）を参照すると、カテゴリＩＤ３０が「１」のフィールドと「３」のフィールドが点線で囲われて注目されている。共起数算出部５２は、上記した方法でパターンが同じレコードの数を算出する。図１４（ｂ）に示された例では、
Ｃ（０，０）＝３
Ｃ（１，０）＝１
Ｃ（０，１）＝１
Ｃ（１，１）＝０。
【００７４】
図１４（ｃ）を参照すると、カテゴリＩＤ３０が「２」のフィールドと「３」のフィールドが点線で囲われて注目されている。共起数算出部５２は、上記した方法でパターンが同じレコードの数を算出する。図１４（ｃ）に示された例では、
Ｃ（０，０）＝１
Ｃ（１，０）＝３
Ｃ（０，１）＝１
Ｃ（１，１）＝０。
【００７５】
共起数算出部５２は、各々のカテゴリＩＤのペアに対して、Ｃ（０，０）、Ｃ（１，０）、Ｃ（０，１）及びＣ（１，１）をコロケーションテーブル１８に格納する。以下の値が算出される：
ＴＸ１＝Ｃ（１，１）＋Ｃ（１，０）
ＴＸ２＝Ｃ（０，１）＋Ｃ（０，０）
ＴＹ１＝Ｃ（１，１）＋Ｃ（０，１）
ＴＹ２＝Ｃ（１，０）＋Ｃ（０，０）。
【００７６】
Ｃ（１，１）は第１のカテゴリと第２のカテゴリとを共に使用した人の数を意味する。Ｃ（１，０）は第１のカテゴリを使用し第２のカテゴリを使用しなかった人の数を意味する。Ｃ（０，１）は第１のカテゴリを使用せず第２のカテゴリを使用した人の数を意味する。Ｃ（０，０）は第１のカテゴリと第２のカテゴリとを共に使用しなかった人の数を意味する。
【００７７】
ステップＳ６８：コロケーションテーブル１８により、２つのカテゴリの結びつきの強さが示される。ＴＸ１、ＴＸ２、ＴＹ１及びＴＹ２が与えられたときに、２つのカテゴリに全く相関が無い場合と比較して、Ｃ（０，０）、Ｃ（１，０）、Ｃ（０，１）及びＣ（１，１）の分布がどのように偏っているか（又は偏っていないか）を調べることにより、その相性の良さが判定できる。
【００７８】
そうした判定をするために、カイ２乗値算出部５４は、カイ２乗値χ２を算出する。カイ２乗値χ２は、大量の計算を計算機で行うために好適な簡便法によれば、次のように算出される。
χ２＝ＣＴ＊（Ｔ１＋Ｔ２＋Ｔ３＋Ｔ４−１），
Ｔ１＝Ｃ（０，０）＊Ｃ（０，０）／（ＴＹ０＊ＴＸ０），
Ｔ２＝Ｃ（１，０）＊Ｃ（１，０）／（ＴＹ０＊ＴＸ１），
Ｔ３＝Ｃ（０，１）＊Ｃ（０，１）／（ＴＹ１＊ＴＸ０），
Ｔ４＝Ｃ（１，１）＊Ｃ（１，１）／（ＴＹ１＊ＴＸ１）且つ
ＣＴはプレゼンステーブル１６のレコード数、すなわち回答２６の数。
【００７９】
ステップＳ７０：コロケーション情報出力部５６は、コロケーション情報２０を作成し、出力装置１０により出力する。コロケーション情報２０には、カイ２乗値が大きいレコードから順に登録される。ステップＳ６８で算出されたカイ２乗値χ２がカイ２乗値４０に登録される。カテゴリのペアが第１のワード４４と第２のワード４６とに登録される。そのカテゴリのペアが含まれる回答２６の数が人数４２に登録される。
【００８０】
使用者は、コロケーション情報２０を参照することにより、どのカテゴリがペアで使用されるかを把握することができる。たとえ少数の回答であっても、結び付きの強いカテゴリのペアを把握することができる。例えば、料理の品質で有名な外食産業において、回答の多くが料理の内容に関することであったとする。その中で、「トイレ」「濡れていた」というカテゴリのペアのカイ２乗値が大きかった場合、回答に含まれる「トイレ」又は「濡れていた」というカテゴリがごく少なくても検出される。本実施の形態におけるテキストマイニング装置２は、こうした少数の人のなかで強い結びつきを持つ意見を抽出することができる。
【図面の簡単な説明】
【００８１】
【図１】図１は、テキストマイニング装置の構成を示す。
【図２】図２は、記憶装置に格納されているデータを示す。
【図３】図３は、テキスト記憶部を示す。
【図４】図４は、シソーラスデータベースを示す。
【図５】図５は、プレゼンステーブルを示す。
【図６】図６は、コロケーションテーブルを示す。
【図７】図７は、コロケーション情報を示す。
【図８】図８は、プログラム記憶部を示す。
【図９】図９は、テキストマイニング装置の動作を示す。
【図１０】図１０は、テキストマイニング装置の動作を示す。
【図１１】図１１は、テキストマイニング装置の動作を示す。
【図１２】図１２は、テキストマイニング装置の動作を示す。
【図１３】図１３は、テキストマイニング装置の動作を示す。
【図１４】図１４は、コロケーションテーブルを算出する方法を説明するための図である。
【符号の説明】
【００８２】
１２…テキスト記憶部
１４…シソーラスデータベース
１６…プレゼンステーブル
１８…コロケーションテーブル
２０…コロケーション情報
２２…プログラム記憶部
２６…回答
２８…業種名
３０…カテゴリＩＤ
３２…カテゴリ
３４…エントリ
３６…回答者ＩＤ
【図１】
2007080181.tif 000003
【図２】
2007080181.tif 000004
【図３】
2007080181.tif 000005
【図４】
2007080181.tif 000006
【図５】
2007080181.tif 000007
【図６】
2007080181.tif 000008
【図７】
2007080181.tif 000009
【図８】
2007080181.tif 000010
【図９】
2007080181.tif 000011
【図１０】
2007080181.tif 000012
【図１１】
2007080181.tif 000013
【図１２】
2007080181.tif 000014
【図１３】
2007080181.tif 000015
【図１４】
2007080181.tif 000016