(57)【要約】【課題】  大量の自然言語データに含まれる話題を抽出する。【解決手段】  複数の回答者から収集された自然言語によるテキストデータのなかから、二人以上の回答者のテキストデータに含まれ所定の長さよりも長いテキストデータをエントリとして抽出する。抽出されたエントリを適当なカテゴリー（上位概念）に対応づけて格納するシソーラスデータベースを作成する。シソーラスデータベースが作成された後、複数の回答者から得られた大量のテキストデータからシソーラスデータベースにエントリとして含まれる言葉を検出して、その言葉の出現回数を、該エントリを含むカテゴリーの出現頻度としてカウントする。各々の回答者の回答におけるカテゴリー間の出現頻度の相関係数を算出する。その相関係数の行列から、因子分析により因子負荷量の行列を算出し、魚骨図を出力する。【選択図】図１
2005284776.tif 000002
【特許請求の範囲】
【請求項１】
複数のテキストデータを収集するテキストデータ収集部と、
収集された前記テキストデータから複数の文字列を抽出する文字列抽出部と、
複数のカテゴリーと、前記複数のカテゴリーの各々に包摂される少なくとも１つのキーワードとを格納するシソーラスデータベースと、
前記複数の文字列と前記キーワードとを照合して一致した個数を、前記シソーラスデータベースにおいて前記キーワードを包摂する前記カテゴリーのカテゴリー別頻度としてカウントするカテゴリー別頻度算出部と、
前記カテゴリー別頻度の相互の相関係数を算出する相関係数算出部と、
前記相関係数に対して因子分析を行い少なくとも１つの因子と前記因子に対応する前記カテゴリーの因子負荷量とを算出する因子分析部
とを具備する
テキストマイニング装置。
【請求項２】
請求項１に記載されたテキストマイニング装置において、
前記テキストデータは自然言語である
テキストマイニング装置。
【請求項３】
請求項１または２に記載されたテキストマイニング装置において、
前記文字列抽出部は、前記複数のテキストデータのうちの少なくとも２つのテキストデータを照合して一致する部分をキーワード候補として抽出し、前記キーワード候補のうちで文字数が多い方から順に前記文字列を抽出する
テキストマイニング装置。
【請求項４】
請求項１から３のうちのいずれか１項に記載されたテキストマイニング装置において、
前記シソーラスデータベースは、複数の形態素が結合された前記キーワードを含む
テキストマイニング装置。
【請求項５】
請求項１から３のうちのいずれか１項に記載されたテキストマイニング装置において、
前記シソーラスデータベースは、複数の形態素が結合され、かつ文節の途中で区切られた前記キーワードを含む
テキストマイニング装置。
【請求項６】
請求項１から５のうちのいずれか１項に記載されたテキストマイニング装置において、
更に、不要語を格納する不要語データベースと、
前記複数の文字列のうち前記不要語と一致する文字列を削除したファイルを生成する不要語削除部
とを具備し、
前記カテゴリー別頻度算出部は、前記ファイルを用いて前記カテゴリー別頻度を算出する
テキストマイニング装置。
【請求項７】
請求項１から６のうちのいずれか１項に記載されたテキストマイニング装置において、
前記シソーラスデータベースは複数であり、
前記キーワードのうちの少なくとも１つは複数の前記シソーラスデータベースにおいて異なる前記カテゴリーに包摂され、
更に、前記複数のシソーラスデータベースのうちのいずれか１つを指定するデータベース指定情報を収集するデータベース指定情報収集部
を具備し、
前記カテゴリー別頻度算出部は、前記データベース指定情報により指定される前記シソーラスデータベースを用いて前記カテゴリー別頻度を算出する
テキストマイニング装置。
【請求項８】
請求項１から７のうちのいずれか１項に記載されたテキストマイニング装置において、
更に、前記シソーラスデータベースに格納されたいずれのキーワードとも不一致である前記文字列である新規文字列を抽出する新規文字列抽出部と、
前記新規文字列を複数の前記キーワードと照合し、類似度が最も高い前記キーワードを包摂する前記カテゴリーに新しいキーワードとして前記新規文字列を格納する新規キーワード登録部
とを具備する
テキストマイニング装置。
【請求項９】
請求項１から８のうちのいずれか１項に記載されたテキストマイニング装置において、
前記カテゴリーの各々に対して、他の複数の前記カテゴリーとの前記相関係数の絶対値の和をカテゴリー別影響度として算出するカテゴリー別影響度算出部と、
前記カテゴリー別頻度と前記カテゴリー別影響度とを座標平面上にプロットする影響度グラフ作成部
とを具備する
テキストマイニング装置。
【請求項１０】
請求項１から９のうちのいずれか１項に記載されたテキストマイニング装置の製造方法であって、
複数の回答者から得られた自由回答文を収集するステップと、
前記複数の回答者のうちの少なくとも二人の回答者の前記自由回答文に含まれる同一の文字列のうちの最も長い文字列を新規文字列として抽出する新規文字列抽出ステップと、
前記シソーラスデータベースに前記登録用文字列を包摂するカテゴリーが存在しないとき、前記シソーラスデータベースに新しいカテゴリーを追加するステップと、
前記新規文字列を前記カテゴリーに包摂されるように前記シソーラスデータベースに登録するステップ
とを具備する
テキストマイニング装置の製造方法。
【請求項１１】
複数のテキストデータのうちの少なくとも２つのテキストデータに共通する文字列を文字数の長い方から順に抽出するステップと、
抽出された前記文字列を複数の所定のカテゴリー毎にまとめて出現頻度をカウントするステップと、
前記出現頻度の相互の相関係数を算出するステップと、
前記相関係数から因子と因子負荷量とを算出するステップ
とを具備する
テキストマイニング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータマイニングに関する。
【背景技術】
【０００２】
さまざまな分野で情報化が進んでいる現代社会において、多量のデータから有用なデータを取り出すマイニングの技術の有用性がますます高まっている。企業が顧客から収集する大量のアンケート、顧客からコールセンターへの問合せなどの大量に蓄積されたデータから有用な情報を取り出すことができれば、企業は顧客のニーズを適切に汲み取ることができ、サービスの向上に繋がる。
【０００３】
テキストを形態素により分析することで単語の切り出しを行い、テキストの文法構造を解析することで単語の係り受けを解析するマイニング方法およびマイニング装置が知られている（特許文献１参照）。
【０００４】
（ａ）多数の自由記述回答から二つ以上の回答に含まれる同一文字列を抽出してキーワードの素を生成する工程と、（ｂ）該キーワードの素から重複した同一表現を削除すると共に、キーワードとなり得ない不要文字列を削除してキーワードデータベースを構築する工程と、（ｃ）該多数の自由記述回答と該データベースとを比較し、各自由記述回答に各キーワードを含む文字列があれば「反応あり」としてカウントする工程と、（ｄ）反応がカウントされた人の属性と該キーワードとを関連付ける工程と、を有する自由記述回答の解析法が知られている（特許文献２参照）。
【０００５】
【特許文献１】特開２０００−１７２６９１号公報
【特許文献２】特開２００２−２３０００６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、精度の高いテキストマイニングを可能にするテキストマイニング装置、テキストマイニング装置の製造方法、及びテキストマイニング方法を提供することである。
本発明の他の目的は、自然言語による自由回答からなる多量のテキストを適切に要約することを可能にするテキストマイニング装置、テキストマイニング装置の製造方法、及びテキストマイニング方法を提供することである。
本発明の更に他の目的は、複数のジャンルの各々に対応して適切なテキストマイニングを行う方法、プログラム及び装置を提供することである。
本発明の更に他の目的は、資料となる元テキストに使用されている言葉使いを生かしたテキストマイニングの結果を出力するテキストマイニング装置、テキストマイニング装置の製造方法、及びテキストマイニング方法を提供することである。
本発明の更に他の目的は、資料となる元テキストに使用されている言葉使いを学習するテキストマイニング装置、テキストマイニング装置の製造方法、及びテキストマイニング方法を提供することである。
本発明の更に他の目的は、使用される言語の文法構造に依存しないテキストマイニング装置、テキストマイニング装置の製造方法、及びテキストマイニング方法を提供することである。
【課題を解決するための手段】
【０００７】
以下に、［発明を実施するための最良の形態］で使用される番号を括弧付きで用いて、課題を解決するための手段を説明する。これらの番号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために付加されたものである。ただし、それらの番号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【０００８】
本発明によるテキストマイニング装置（１）は、複数のテキストデータ（７４）を収集するテキストデータ収集部（２４）と、収集されたテキストデータ（７４）から複数の文字列（７６）を抽出する文字列抽出部（２６）と、複数のカテゴリー（８２）と、複数のカテゴリー（８２）の各々に包摂される少なくとも１つのキーワード（８４）とを格納するシソーラスデータベース（５２）と、複数の文字列（７６）とキーワード（８４）とを照合して一致した個数を、シソーラスデータベース（５２）においてキーワード（８４）を包摂するカテゴリー（８２）のカテゴリー別頻度としてカウントするカテゴリー別頻度算出部（２８）と、カテゴリー別頻度の相互の相関係数を算出する相関係数算出部（３０）と、相関係数に対して因子分析を行い少なくとも１つの因子（９５）と因子に対応するカテゴリー（８２）の因子負荷量（９６）とを算出する因子分析部（３２）とを具備している。
【０００９】
本発明によるテキストマイニング装置（１）において、テキストデータ（７４）は自然言語である。
【００１０】
本発明によるテキストマイニング装置（１）において、文字列抽出部（２６）は、複数のテキストデータ（７４）のうちの少なくとも２つのテキストデータ（７４）を照合して一致する部分をキーワード候補として抽出し、キーワード候補のうちで文字数が多い方から順に文字列を抽出する。
【００１１】
本発明によるテキストマイニング装置（１）において、シソーラスデータベース（５２）は、複数の形態素が結合されたキーワード（８４）を含む。
【００１２】
本発明によるテキストマイニング装置（１）において、シソーラスデータベース（５２）は、複数の形態素が結合され、かつ文節の途中で区切られたキーワード（８４）を含む。
【００１３】
形態素を用いてテキストデータを解析した場合、例えば「この商品がもっと値段が安ければ買ってもいいのに」というテキストデータが解析されたとする。このテキストデータは、「値段が高すぎるから買わない」というネガティブな意味合いを含んでいると解釈できるだろう。しかしこのテキストデータを形態素で分解すると、「この」「商品」「もっと」「値段」「安い」「買う」「いい」などに分解され、元データとは反対に高い購買意欲を示しているように解釈される。本発明によるテキストマイニング装置は、テキストデータを価値判断が示される単位で区切ることにより、より正確なテキストマイニングを可能とする。例えば、次の「」内の言葉、
（１）「値段が安い」「値段が安かった」「価格的によい」「お値段が手頃で」＝値段が安いという価値評価を示す、
（２）「値段が安ければ」「値段が手頃なら」「価格が安ければ」「料金が安かったら」＝値段が安かったらという希望条件を示す言葉、
（３）「値段が安くない」「リーズナブルでなくて」「価格が納得できない」＝値段が高いという価値評価を示す言葉、
の言葉を区切る。こうした区切りをするために、シソーラスデータベース（５２）には複数の形態素が結合されたキーワードや、文節の途中で区切られたキーワードが含まれる。
【００１４】
本発明によるテキストマイニング装置（１）は、不要語（９０）を格納する不要語データベース（５４）と、複数の文字列のうち不要語（９０）と一致する文字列を削除したファイル（６０）を生成する不要語削除部（４０）とを備えている。カテゴリー別頻度算出部（２８）は、ファイルを用いてカテゴリー（８２）別頻度を算出する。
【００１５】
本発明によるテキストマイニング装置（１）において、シソーラスデータベース（５２）は複数である。キーワード（８４）のうちの少なくとも１つは複数のシソーラスデータベース（５２）において異なるカテゴリー（８２）に包摂される。テキストマイニング装置（１）は更に、複数のシソーラスデータベース（５２）のうちのいずれか１つを指定するデータベース指定情報を収集するデータベース指定情報収集部（４２）を備える。カテゴリー（８２）別頻度算出部は、データベース指定情報により指定されるシソーラスデータベース（５２）を用いてカテゴリー（８２）別頻度を算出する。
【００１６】
本発明によるテキストマイニング装置（１）は、シソーラスデータベース（５２）に格納されたいずれのキーワード（８４）とも不一致である文字列である新規文字列（７９）を抽出する新規文字列抽出部（４４）と、新規文字列（７９）を複数のキーワード（８４）と照合し、類似度が最も高いキーワード（８４）を包摂するカテゴリー（８２）に新しいキーワード（８４）として新規文字列を格納する新規キーワード登録部（４６）とを備える。
【００１７】
本発明によるテキストマイニング装置（１）は、カテゴリー（８２）の各々に対して、他の複数のカテゴリー（８２）との相関係数の絶対値の和をカテゴリー別影響度として算出するカテゴリー別影響度算出部（４８）と、カテゴリー別頻度とカテゴリー別影響度とを座標平面上にプロットする影響度グラフ作成部（５０）とを備える。
【００１８】
本発明によるテキストマイニング装置の製造方法は、複数の回答者から得られた自由回答文を収集するステップ（Ｓ２、Ｓ２２）と、複数の回答者のうちの少なくとも二人の回答者の自由回答文に含まれる同一の文字列のうちの最も長い文字列を新規文字列として抽出する新規文字列抽出ステップ（Ｓ４、Ｓ３０）と、シソーラスデータベース（５２）に登録用文字列を包摂するカテゴリー（８２）が存在しないとき、シソーラスデータベース（５２）に新しいカテゴリー（８２）を追加するステップ（Ｓ３６）と、新規文字列をカテゴリー（８２）に包摂されるようにシソーラスデータベース（５２）に登録するステップ（Ｓ１４、Ｓ３６）とを備える。
【００１９】
本発明によるテキストマイニング方法は、複数のテキストデータ（７４）のうちの少なくとも２つのテキストデータ（７４）に共通する文字列を文字数の長い方から順に抽出するステップ（Ｓ４６）と、抽出された文字列を複数の所定のカテゴリー（８２）毎にまとめて出現頻度をカウントするステップ（Ｓ４８）と、出現頻度の相互の相関係数を算出するステップ（Ｓ６４）と、相関係数から因子と因子負荷量とを算出するステップ（Ｓ６８）とを備える。
【発明の効果】
【００２０】
本発明によれば、精度の高いテキストマイニングを可能にするテキストマイニング装置、テキストマイニング装置の製造方法、及びテキストマイニング方法が提供される。
更に本発明によれば、自然言語による自由回答からなる多量のテキストを適切に要約することを可能にするテキストマイニング装置、テキストマイニング装置の製造方法、及びテキストマイニング方法が提供される。
更に本発明によれば、複数のジャンルの各々に対応して適切なテキストマイニングを行うテキストマイニング装置、テキストマイニング装置の製造方法、及びテキストマイニング方法が提供される。
更に本発明によれば、資料となる元テキストに使用されている言葉使いを生かしたテキストマイニングの結果を出力するテキストマイニング装置、テキストマイニング装置の製造方法、及びテキストマイニング方法が提供される。
更に本発明によれば、資料となる元テキストに使用されている言葉使いを学習するテキストマイニング装置、テキストマイニング装置の製造方法、及びテキストマイニング方法が提供される。
更に本発明によれば、使用される言語の文法構造に依存しないテキストマイニング装置、テキストマイニング装置の製造方法、及びテキストマイニング方法が提供される。
【発明を実施するための最良の形態】
【００２１】
以下、図面を参照しながら本発明によるテキストマイニング装置の実施の形態について詳細に説明する。本実施の形態におけるテキストマイニング装置は、企業が収集した顧客の意見を集約するために用いられる。
【００２２】
テキストマイニング装置１は、音声認識装置２と光学式文字読取装置４とを備えている。音声認識装置２は、人間の話す声が記録された音声データを処理してテキストデータに変換する。光学式文字読取装置４は、手書きされた又はタイプされた文字の画像データを処理してテキストデータに変換する。テキストマイニング装置１は更に、入力装置５と通信装置７とを備えている。
【００２３】
テキストマイニング装置１は更に、メモリ６を備えている。メモリ６には音声認識装置２又は光学式文字読取装置４からテキストデータが入力されて記憶される。メモリ６は、Ａファイル８を格納している。
【００２４】
テキストマイニング装置１は、コンピュータシステム１０を備えている。コンピュータシステム１０は、パーソナルコンピュータ、ワークステーション、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）などにより実現される。コンピュータシステム１０はメモリ６に接続され、メモリ６に格納されている情報を入力する。
【００２５】
コンピュータシステム１０は、入力装置１２、出力装置１４、演算制御装置１６、及び記憶装置１８を備えている。記憶装置１８は、プログラム２０とデータベース２２とを記憶している。
【００２６】
図２を参照すると、プログラム２０の構成が示されている。プログラム２０は、テキストデータ収集部２４、文字列抽出部２６、カテゴリー別頻度算出部２８、相関係数算出部３０、因子分析部３２、カテゴリー抽出部３４、不要語削除部４０、データベース指定情報収集部４２、新規文字列抽出部４４、新規キーワード登録部４６、カテゴリー別影響度算出部４８、及び影響度グラフ作成部５０を備えている。
【００２７】
図３を参照すると、データベース２２は、シソーラスデータベース５２、不要語データベース５４、Ｂファイル５６、Ｃファイル５８、Ｄファイル６０、Ｅファイル６２、Ｆファイル６４、Ｇファイル６６、Ｊファイル６８、相関行列９２、及び因子負荷量行列９６を格納している。
【００２８】
図４を参照すると、Ａファイル８に格納されているデータの構成が示されている。Ａファイル８は、回答者ＩＤ７０と、属性７２と、原文７４とを対応づけて格納している。回答者ＩＤ７０は、回答者（アンケート調査に回答した人、企業に電話、電子メール、ファックス、葉書などにより意見を寄せた人など）が個別に特定されるように発行されテキストマイニング装置１が回答者を個別に管理するために使用する番号・符号である。属性７２は、回答者の属性を示す情報である。回答者の属性は、例えば年齢、性別、居住地域、回答に用いた手段（電話、電子メール、ファックス、葉書など）である。原文７４は、回答者から自由回答により得られた回答である。
【００２９】
原文７４は、回答者からの電話をオペレーターが聞き取って入力装置５からテキストデータとして入力したものである。又は、ファクシミリ端末機により回答者から受信した原稿、葉書などを担当者が読み取って端末装置に入力して送信したテキストデータを通信装置５が受信したものである。又は、回答者からの電子メールのテキストデータを通信装置５が受信したものである。又は、電話の通話内容が音声認識装置２によりテキストデータに変換されたものである。又は、ファックス、葉書などに記載されている文字が光学式文字読取装置４によりテキストデータに変換されたものである。
【００３０】
図５を参照すると、Ｂファイル５６に格納されているデータの構成が示されている。Ｂファイル５６は、抽出文字列７６ｂを格納している。抽出文字列７６ｂは、原文７４から後述する方法により抽出された文字列である。
【００３１】
図６を参照すると、Ｃファイル５８に格納されているデータの構成が示されている。Ｃファイル５８は、抽出文字列７６ｃと頻度数７８ｃとを対応づけて格納している。
【００３２】
図７を参照すると、Ｄファイル６０に格納されているデータの構成が示されている。Ｄファイル６０は、抽出文字列７６ｄと、頻度数７８ｄとを対応づけて格納している。
【００３３】
図８を参照すると、Ｅファイル６２に格納されているデータの構成が示されている。Ｅファイル６２は、未登録文字列７９と、頻度数７８ｅとを対応づけて格納している。
【００３４】
図９を参照すると、Ｆファイル６４に格納されているデータの構成が示されている。Ｆファイル６４は、カテゴリーＩＤ８０ｆと、カテゴリー名８２ｆと、頻度数７８ｆと、エントリ８４ｆとを対応づけて格納している。
【００３５】
図１０を参照すると、Ｇファイル６６に格納されているデータの構成が示されている。Ｇファイル６６は、順位８６ｇと、カテゴリーＩＤ８０ｇと、カテゴリー名８２ｇと、頻度数７８ｇとを対応づけて格納している。
【００３６】
図１１を参照すると、Ｊファイル６８に格納されているデータの構成が示されている。Ｊファイル６８は、回答者ＩＤ７０と、属性７２とを対応づけて格納している。Ｊファイル６８は更に、回答者ＩＤ７０の各々に対して、複数のカテゴリーＩＤ８０ｊの各々に対応する頻度数７８ｊを格納している。
【００３７】
図１２を参照すると、シソーラスデータベース５２に格納されているデータの構成が示されている。シソーラスデータベース５２は複数のシートを格納している。複数のシートの各々は、業種名８８により示される自動車、飲食、小売、医療など業界・分野に対応している。各々のシートは、カテゴリーＩＤ８０と、カテゴリー名８２と、エントリ８４とを対応づけて格納している。
【００３８】
図１３を参照して、シソーラスデータベース５２のカテゴリーＩＤ８０とカテゴリー名８２との対応関係について説明する。
【００３９】
図１３に示されるシソーラスデータベース５２において、カテゴリーＩＤ８０「００３」に対応するカテゴリー名８２は「乗り物」である。カテゴリー名８２が「乗り物」であるカテゴリーは、更に次のように下位区分される。
（１）「００３」の右側に一桁の数字を追加した「００３１」と「００３２」とは、各々が「四輪車」と「二輪車」とに対応している。
（２）「００３」の最も左側の桁である「０」を変更した「１０３」と「２０３」とは、各々が「Ａ社乗り物」と「Ｂ社乗り物」とに対応している。
この区分に加えて、例えば「００３１」の下位に桁を追加するなど更に番号を追加することにより、更に詳細な下位区分を行うことが可能である。
【００４０】
カテゴリーＩＤ８０の異なる桁の数値を、（１）「四輪車」と「二輪車」、（２）「Ａ社」と「Ｂ社」、というように異なる区分に対応させることにより、シソーラスデータベース５２は様々な検索に対応することが可能である。例えばカテゴリーＩＤ８０が「１０３２」のデータを抽出すればＡ社の二輪車に関連した検索が行われる。
【００４１】
図１４を参照すると、不要語データベース５４に格納されているデータの構成が示されている。不要語データベース５４は、業種名８８と、不要語９０とを対応づけて格納している。
【００４２】
図１５を参照すると、相関行列９２の構成が示されている。相関行列９２は、後述される相関係数からなる行列であり、複数のカテゴリー名８２の各々が各行及び各列の名前として付加されている。
【００４３】
図１６を参照すると、因子負荷量行列９６の構成が示されている。因子負荷量行列９６は、因子９５とカテゴリー名８２とに対応した因子負荷量９６を要素とする行列である。
【００４４】
以上の構成を備えるテキストマイニング装置１の動作が以下に説明される。以下の説明において、演算制御装置１６がプログラム２０を読み出し、そのプログラム２０に記述された手順により実行する動作は、プログラム２０が行う動作として記述される。
【００４５】
テキストマイニング装置１の動作は、
（１）シソーラスデータベース５２が最初に構築される際の動作（図１７に示される）、
（２）構築されたシソーラスデータベース５２にデータの追加が行われる際の動作（図１８に示される）、
（３）構築されたシソーラスデータベース５２を用いてテキストマイニングが行われる際の動作（図１９、図２０、及び図２１に示される）、
に分けて説明される。
【００４６】
図１７を参照すると、シソーラスデータベース５２が最初に構築される際のテキストマイニング装置１の動作を示すフローチャートが示されている。
【００４７】
ステップＳ２：テキストデータ収集部２４は、音声認識装置２、光学式文字読取装置４、入力装置５、又は通信装置７を介して複数の回答者の意見を収集する。テキストデータ収集部２４は、各々の回答者に対して回答者ＩＤ７０を設定し、その回答者ＩＤ７０と各々の回答者から寄せられた意見である原文７４と対応づけてＡファイル８に格納する。好ましくは回答者ＩＤ７０の属性７２も収集されてＡファイルに格納される。
【００４８】
ステップＳ３：テキストマイニング装置１を使用者する使用者は、テキストデータ収集部２４が収集したテキストデータが関係する業種の業種名８８を入力装置１２より入力する。入力した業種名８８は、記憶装置１８に格納される。
【００４９】
ステップＳ４：文字列抽出部２６は、Ａファイル８の原文７４を検索し、少なくとも二つの回答者ＩＤに対応する原文７４に出現する同一の文字列のうち所定の長さよりも長い文字列を抽出する。
【００５０】
例えば、第１の回答者ＩＤ７０に対応する原文に第１の文字列「ショップの人が親身になって直してくれた」が含まれ、第２の回答者ＩＤ７０に対応する原文に第２の文字列「故障してショップの人に連絡したとき回答が遅かった」が含まれている場合、「ショップの人」という文字列が両者に共通しているため抽出される。
【００５１】
抽出は、文字列の長さが長い方から短い方に行われることが好ましい。上の例では第１の文字列と第２の文字列とに共通する文字列のうち最も長い文字列である「ショップの人」という文字列がまず抽出される。
【００５２】
抽出は、原文７４のうちですでに抽出された文字列を省いたテキストデータの中からなされることが更に好ましい。上の例では第１の文字列と第２の文字列とから「ショップの人」という７文字の文字列が省かれた後、残った第１の文字列と第２の文字列の中から６文字の文字列で同一のものが探索される。
【００５３】
ステップＳ６：文字列抽出部２６は、ステップＳ４において抽出された複数の文字列を所定の順序（例えば五十音順の辞書式順序）に従ってソートする。
【００５４】
ステップＳ８：文字列抽出部２６は、ステップＳ６においてソートされた複数の文字列の中から同一の文字列（ステップＳ４において重複して抽出された文字列）を探し出し、それらの同一の文字列の中から一つを残して残りを削除したファイルを生成する。
その結果、回答者から収集した意見に何度も使用されているが一覧表となった、いわば生きた言葉の辞書が作成される。これにより、テキストデータの収集者の考えによるバイアスが少なく、回答者の感性に近い言葉を生かしたマイニングが可能となる。
【００５５】
ステップＳ１０：使用者は、ステップＳ８において生成されたファイルを出力装置１４より出力して閲覧し、そのファイルの中に不要な文字列があるか否かを判断する。使用者は、不要な文字列があると判断した場合、不要語削除部４０により指定される所定の手順によりその不要な文字列を入力装置１２を介して不要語９０として入力する。そのような文字列の例として、「います」「でない」「という」「何とか」が挙げられる。
不要語削除部４０は、入力された不要語９０をステップＳ３において入力され記憶装置１８に格納されている業種名８８と対応づけて不要語データベース５４に登録する。
【００５６】
ステップＳ１２：不要語９０が不要語データベース５４に登録されると、不要語削除部４０はステップＳ８において生成されたファイルの中から不要語９０と一致する文字列を削除したファイルを生成する。
【００５７】
ステップＳ１４：使用者は、ステップＳ１２において生成されたファイルに格納される複数の文字列の各々に対して、文字列の意味に応じてカテゴリー名８２を付与し、カテゴリー名８２を個別に特定し管理するためのカテゴリーＩＤ８０を付与する。
【００５８】
例えば使用者が、ステップＳ１２において生成されたファイルに格納されている文字列には、ある製品のスペックに関する話題、その製品の受注・発注に関する話題、及びその製品の故障・修理に関する話題の３つの話題が含まれていると判断すると、使用者は３つのカテゴリーＩＤ８０、例えば「００１」、「００２」、及び「００３」を設定し、その各々に対応するカテゴリー名８２、「スペック」、「受注・発注」、及び「故障・修理」を入力装置１２より入力する。入力されたカテゴリーＩＤ８０とカテゴリー名８２とはシソーラスデータベース５２に格納される。ステップＳ１２において生成されたファイルに格納された文字列は、カテゴリー名８２に属するエントリ８４としてシソーラスデータベース５２に格納される。
【００５９】
好ましくは、使用者は、カテゴリーＩＤ８０とカテゴリー名８２とが図１３に示されるシソーラスデータベース５２を参照して説明された下位区分を有するようにカテゴリーＩＤ８０とカテゴリー名８２とを登録する。
【００６０】
ステップＳ２からステップＳ１４に示される手順により、シソーラスデータベース５２が作成される。こうして作成されたシソーラスデータベース５２は、回答者から収集された元データに含まれる語彙であるエントリを上位概念化したカテゴリー名８２を複数格納し、カテゴリー名８２の各々に対応して少なくとも１つのエントリ８４を格納している。
【００６１】
ステップＳ４に示される抽出方法に代えて、形態素を用いてテキストデータを解析し、一致する表現を抽出する方法を採用しても、以下に説明するテキストマイニングの方法を実行することは可能である。
【００６２】
形態素を用いてテキストデータを解析した場合、例えば「この商品がもっと値段が安ければ買ってもいいのに」というテキストデータが解析されたとする。このテキストデータは、「値段が高すぎるから買わない」というネガティブな意味合いを含んでいると解釈できるだろう。しかしこのテキストデータを形態素で分解すると、「この」「商品」「もっと」「値段」「安い」「買う」「いい」などに分解され、元データとは反対に高い購買意欲を示しているように解釈される。この形態素から元データの意味の復元を試みるには、多数の文法のルールを適用することが求められる。
【００６３】
ステップＳ２〜Ｓ１４に示される手順により構築されるシソーラスデータベース５２は、回答者から得られた生データに含まれる言葉を直接カットして得られた言葉からなる。そのため値段に関するデータは、例えば
（１）「値段が安い」「値段が安かった」「価格的によい」「お値段が手頃で」
（２）「値段が安ければ」「値段が手頃なら」「価格が安ければ」「料金が安かったら」
（３）「値段が安くない」「リーズナブルでなくて」「価格が納得できない」
と分類される。（１）は値段が安いという判断がなされたことを示し、（２）は値段が安かったらという希望条件を示し、（３）は値段が高いという判断がなされたことを示している。ステップＳ２〜Ｓ１４に示される手順により構築されるシソーラスは、こうした意味の違いを容易に取り込むことが可能である。特に、同じ形態素を含んでいて異なる価値評価を示しているテキストデータを弁別したシソーラスを構築することが容易である。
【００６４】
図１８を参照すると、構築されたシソーラスデータベース５２にデータの追加が行われる際のテキストマイニング装置１の動作を示すフローチャートが示されている。
【００６５】
ステップＳ２２：テキストデータ収集部２４は、音声認識装置２、光学式文字読取装置４、入力装置５、又は通信装置７を介して複数の回答者の意見を収集する。テキストデータ収集部２４は、各々の回答者に対して回答者ＩＤ７０を設定し、各々の回答者の意見である原文７４と対応づけてＡファイル８に格納する。
【００６６】
ステップＳ２４：データベース指定情報収集部４２は、テキストマイニング装置１を使用する使用者から、シソーラスデータベース５２に業種名８８として示されている業種のうちでいずれの業者を選択するかを示す情報を収集し、記憶装置１８に格納する。
【００６７】
データベース指定情報収集部４２は、以下の処理において、シソーラスデータベース５２の備える複数のシートのうち業種名８８がステップＳ２４において収集された業種名に一致するシートが使用されるように設定する。データベース指定情報収集部４２は更に、以下の処理において、不要語辞書５４のうちステップＳ２４において収集された業種名に一致する業種名８８に対応する不要語９０が使用されるように設定する。
【００６８】
ステップＳ２５：演算制御装置１６は、所定のプログラムに示される手順により、原文７４に格納されているテキストデータを順次読み出す。最初に処理が行われるときは、原文７４のうち第１の回答者に対応する部分が抽出され、その部分に対してステップＳ２６からステップＳ３８までの処理が行われる。二番目に処理が行われるときは、原文７４のうち第１の回答者と異なる第２の回答者に対応する部分が抽出され、その部分に対してステップＳ２６からステップＳ３８までの処理が行われる。更に第３、第４…の回答者に対して同じ手順による処理が繰り返される。
【００６９】
ステップＳ２５における他の抽出の方法としては、回答者毎に抽出するのに加えて、原文７４を句読点毎に区切って順次、抽出する方法が可能である。この場合、最初に処理が行われるときは、原文７４のうち第１の回答者に対応する部分が抽出され、その部分のうち最初の句点又は読点で区切られる部分が抽出され、その部分に対してステップＳ２６からステップＳ３８までの処理が行われる。二番目に処理が行われるときは、原文７４のうち第１の回答者に対応する部分が抽出され、その部分のうち最初の句点又は読点で区切られる部分から二番目の句点又は読点で区切られる部分が抽出される。ｎ番目に処理が行われたときに第１の回答者に対応する原文７４の最後までの部分が抽出されたとき、ｎ＋１番目の処理が行われるときには、第２の回答者の原文７４のうち最初の句点又は読点で区切られる部分が抽出される。
【００７０】
ステップＳ２６：不要語削除部４０は、原文７４と、不要語データベース５４においてステップＳ２４で入力された業種名８８に対応する全ての不要語９０とを照合する。不要語削除部４０は、照合の結果が一致であった場合、その文字列をＡファイル８から削除したファイルを生成し、処理はステップＳ３８に移行される。照合の結果が不一致であったばあい、処理はステップＳ２８に移行される。
【００７１】
ステップＳ２８：カテゴリー別頻度算出部２８は、ステップＳ２６において生成されたファイルに含まれる文字列を、シソーラスデータベース５２に格納されているエントリ８４と照合する。一致するエントリ８４があった場合、処理はステップＳ３８に進む。一致するエントリ８４がなかった場合、処理はステップＳ３０に進む。
【００７２】
ステップＳ３０：文字列抽出部２６は、ステップＳ２６において生成されたファイルから、共通する文字列を抽出する。抽出は、ステップＳ４におけるＡファイル８の原文７４をステップＳ２６において生成されたファイルに置き換えて、ステップＳ４と同じ方法により行われる。
【００７３】
ステップＳ３２：文字列抽出部２６は、ステップＳ３０において複数の文字列が抽出された場合、抽出された複数の文字列を所定の順序（例えば五十音順の辞書式配列の順序）に従ってソートする。文字列抽出部２６は更に、ソートされた複数の文字列の中から同一の文字列（重複している文字列）を探し出し、それらの同一の文字列の中から一つを残して残りを削除したファイルを生成する。
【００７４】
ステップＳ３４：使用者は、ステップＳ３２において生成されたファイルを閲覧して、そのファイルの中に不要な文字列があるか否かを判断する。使用者が不要な文字列があると判断した場合、不要語削除部４０により指定される所定の手順に従って使用者が入力装置１２に操作を行うことにより、その不要な文字列は不要語９０として不要語データベース５４に登録される。不要語９０が不要語データベース５４に登録されると、不要語削除部４０はステップＳ３２において生成されたファイルの中から不要語９０と一致する文字列を削除したファイルを生成する。
【００７５】
ステップＳ３６：使用者は、シソーラスデータベース５２を参照して、ステップＳ３４において生成されたファイルに含まれる文字列の各々に対して、意味的に適合するカテゴリー名８２を探し、文字列をそのカテゴリー名８２に対応する新たなエントリ８４として登録する。使用者は、ステップＳ３４において生成されたファイルに含まれる文字列に意味的に適合するカテゴリー名８２が無いと判断すると、新しいカテゴリーＩＤ８０とカテゴリー名８２とをシソーラスデータベース５２に登録し、その文字列を新たに登録されたカテゴリー名８２に対応するエントリ８４として登録する。
【００７６】
ステップＳ３８：ステップＳ２５において抽出されたファイルがＡファイル８に格納されている原文７４の最後の部分でない場合、演算制御装置１６はステップＳ２５に戻って処理を続行する。ステップＳ２５において抽出されたファイルがＡファイル８に格納されている原文７４の最後の部分であった場合、演算制御装置１６は処理を終了する。
【００７７】
以上のステップＳ２２〜Ｓ３８により、生情報（回答者から得られたテキストデータ）に含まれる新たな語彙がシソーラスデータベース５２に登録される。こうした手順によりシソーラスデータベース５２が構築されていくにより、テキストマイニングの精度はより向上していく。さらに、流行語など新たな語彙が発生したり、消費者の嗜好が変わるなど、社会で流通している生きた言葉の変化に柔軟に対応するテキストマイニングが容易に実現できる。
【００７８】
図１９を参照すると、構築されたシソーラスデータベース５２を用いてテキストマイニングが行われる際のテキストマイニング装置１の動作を示すフローチャートが示されている。
【００７９】
ステップＳ４２：テキストデータ収集部２４は、音声認識装置２、光学式文字読取装置４、入力装置５、又は通信装置７を介して複数の回答者の意見を収集する。テキストデータ収集部２４は、各々の回答者に対して回答者ＩＤ７０を設定し、各々の回答者の自由回答による意見である原文７４と対応づけてＡファイル８に格納する。好ましくは回答者ＩＤ７０の属性７２も収集されてＡファイルに格納される。
【００８０】
ステップＳ４４：データベース指定情報収集部４２は、テキストマイニング装置１を使用する使用者から入力装置１２を介して業種名を収集する。データベース指定情報収集部４２は、以下の処理において、シソーラスデータベース５２の備える複数のシートのうち業種名８８がステップＳ２４において収集された業種名に一致するシートが使用されるように設定する。データベース指定情報収集部４２は更に、以下の処理において、不要語辞書５４のうちステップＳ２４において収集された業種名に一致する業種名８８に対応する不要語９０が使用されるように設定する。
【００８１】
業種名８８の選択が行われる際に、顧客を属性７２によって分類した分析を行いたい場合、使用者はプログラム２０により指定される所定の手続きに従って入力装置１２から属性７２を指定する情報の入力を行う。その場合、以下の分析はＡファイル８のなかで属性７２が入力された属性と一致する原文７４のみを用いて行われる。これにより、年齢、性別、居住地域、回答に用いた手段等によって区分されたマイニングが行われる。
【００８２】
ステップＳ４６：文字列抽出部２６はシソーラスデータベース５２を参照して、原文７４からステップＳ４と同じ動作により文字列を抽出する。抽出された文字列は、抽出文字列７６ｂとしてＢファイル５６に格納される。
【００８３】
ステップＳ４８：カテゴリー別頻度算出部２８は、原文７４に含まれる抽出文字列７６ａの頻度数７８ｂをカウントする。カテゴリー別頻度算出部２８は、抽出文字列７６ｂと算出された頻度数７８ｂとを対応づけてＣファイル５８に格納する。
【００８４】
ステップＳ５０：不要語削除部４０は、抽出文字列７６ｂと、不要語データベース５４に格納されている不要語９０とを照合する。不要語削除部４０は、抽出文字列７６ｂのうち照合の結果が一致したものを削除した結果である抽出文字列７６ｃと、頻度数７８ｃとを対応づけて格納するＤファイル６０を生成する。
【００８５】
ステップＳ５２：図２０を参照して、新規文字列抽出部４４は、Ｄファイル６０に格納されている抽出文字列７６ｃの各々に対して、シソーラスデータベース５２に格納されているエントリ８４に同一の文字列が存在するか否かを判定する。
【００８６】
新規文字列抽出部４４は、抽出文字列７６ｃと同一の文字列がエントリ８４に存在しないと判定したとき（ステップＳ５２Ｎｏ）、その文字列を未登録文字列７９として、対応する頻度数８１とともにＥファイル６２に格納し、処理はステップＳ５４に移行される。同一の文字列が存在すると判定されたとき、処理はステップＳ６０に移行される。
【００８７】
ステップＳ５４：新規キーワード登録部４６は、未登録文字列７９との類似度が最も大きいエントリ８４をシソーラスデータベースから抽出する。類似度は、例えば一致する文字列の長さが長いほど大きくなるように決められる。新規キーワード登録部４６は更に、抽出されたエントリ８４が属するカテゴリー名８２を抽出する。
【００８８】
ステップＳ５６：新規キーワード登録部４６は、未登録文字列７９と、ステップＳ５４において抽出されたカテゴリー名８２とを出力装置１４から出力する。使用者はその出力結果を参照して、未登録文字列７９を出力されたカテゴリー名８２に属するエントリ８４として新規に登録するか否かを入力装置１２より入力する。使用者が新規に登録することを示す情報を入力したとき、新規キーワード登録部４６は処理をステップＳ５８に移す。使用者が新規に登録しないことを示す情報を入力したとき、新規キーワード登録部４６は処理をステップＳ６０に移す。
【００８９】
ステップＳ５８：ステップＳ５６において使用者により新規に登録することが選択された未登録文字列７９は、ステップＳ５４において抽出されたカテゴリー名８２に属するエントリ８４としてシソーラスデータベース５２に登録され、Ｅファイル６２から削除される。
【００９０】
こうした処理により、シソーラスデータベース５２の語彙を豊富化することが容易である。さらに、シソーラスデータベース５２の語彙が豊富化すればするほどに、ステップＳ５４において自動的に抽出されたカテゴリー名８２が未登録文字列７９に対して意味的に適合するカテゴリーである可能性が向上していく。
【００９１】
そのため、ある程度以上にシソーラスデータベース５２の語彙が豊富化した場合、ステップＳ５６における使用者の操作を省略して、自動的に新規文字列７９をシソーラスデータベース５２に登録していく方法とすることも可能である。
【００９２】
ステップＳ６０：カテゴリー別頻度算出部２８は、抽出文字列７６ｄのうちシソーラスデータベース５２のエントリ８４と一致する文字列をエントリ８４ｆとして格納するＦファイル６４を生成する。カテゴリー別頻度算出部２８は、エントリ８４ｆに対応づけて、頻度数７８ｆをＤファイル６０の頻度数７８ｄから取り込み、Ｆファイル６４に格納する。カテゴリー別頻度算出部はさらに、エントリ８４ｆに対応づけられたカテゴリーＩＤ８０ｆとカテゴリー名８２ｆとをシソーラスデータベース５２のカテゴリーＩＤ８０とカテゴリー名８２とから取り込み、Ｆファイル６４に格納する。
【００９３】
ステップＳ６２：カテゴリー別頻度算出部２８は、Ｆファイル６４において同一のカテゴリーＩＤ８０ｆに含まれるエントリ８４ｆの頻度数７８ｆを足し合わせることにより、カテゴリー別の頻度数７８ｇを算出する。カテゴリー別頻度算出部２８はさらに、頻度数７８ｇが多い順に並ぶようにソートして順位を付け、順位８６と、カテゴリーＩＤ８０と、カテゴリー名８２と、頻度数７８ｇとを対応づけるＧファイル６６を生成する。カテゴリー別頻度算出部２８はさらに、カテゴリー名８２ごとの頻度数７８ｇを示すグラフを作成して出力装置１４により出力する。使用者はそのグラフを見ることにより、原文７４にどのような話題が含まれているのかについての心証を得ることができる。
【００９４】
ステップＳ６３：カテゴリー別頻度算出部２８は、Ａファイル８に格納されている回答者ＩＤ７０の各々に対応して、原文７４に含まれエントリ８４と一致する文字列の頻度数を、エントリ８４が属するカテゴリー名８２の頻度数７８ｊとしてカウントする。カテゴリー別頻度算出部２８は、回答者ＩＤ７０と、属性７２と、カテゴリーＩＤ８０毎の頻度数７８ｊとを対応づけて格納するＪファイル６８を作成する。
【００９５】
ステップＳ６４：相関係数算出部３０は、Ｊファイル６８のカテゴリーＩＤ８０を用いて頻度数７８ｊの間の相関係数を算出し、相関行列９２を作成する。
【００９６】
ステップＳ６６：影響度グラフ作成部５０は、各々のシソーラス９４について、他のシソーラス９４との間での相関係数の絶対値を足し合わせた合計を影響度９３として算出する。影響度グラフ作成部５０はさらに、一方の軸を頻度数７８ｇとし、他方の軸を影響度９３として各々のシソーラスをプロットした頻度数−影響度グラフを作成し、出力装置１４を用いて出力する。
【００９７】
ステップＳ６８：因子分析部３２は、相関行列９２を用いて所定数の因子により因子分析を行う。回転は直交回転であることが好ましい。因子分析部３２は、因子分析により得られた因子負荷量行列９６を作成し出力装置１４を用いて出力する。
【００９８】
ステップＳ７２：演算制御装置１６は、所定の手順に従って魚骨図１００を作成し、出力装置１６により出力する。魚骨図１００は複数の分枝を有している。分枝の各々は、ステップＳ６８において得られた因子に対応している。分枝の各々には、因子に対応するカテゴリー名８２が表示される。この魚骨図１００を参照することにより、使用者は原文７４にどのようなトピックが含まれるかを要約的に知ることができる。
【００９９】
好ましくは、分枝の各々には、因子に対応するカテゴリー名８２にシソーラスデータベース５２において対応するエントリ８４のうち、最も頻度の大きいエントリ８４が表示される。こうして表示された魚骨図は、元のテキストデータに用いられている生の言葉使いがそのまま使用されるため、具体的でリアルな言葉によりトピックを纏めることができる。
【０１００】
図１７から図２１を参照して説明されたテキストマイニング方法においては、特定の言語（例えば日本語）に固有の文法的なルールが用いられていない。そのため、このテキストマイニング方法は、英語や中国語など文法のルールが異なる諸言語に対してそのまま適用可能である。さらに、俗語・流行の言い回しなどで破格な表現が発生した場合にも、その表現を取り込んだ分析が、特別な処理を行うことなく可能である。
【図面の簡単な説明】
【０１０１】
【図１】図１は、テキストマイニング装置の構成を示す。
【図２】図２は、プログラムの構成を示す。
【図３】図３は、データベースの構成を示す。
【図４】図４は、Ａファイルを示す。
【図５】図５は、Ｂファイルを示す。
【図６】図６は、Ｃファイルを示す。
【図７】図７は、Ｄファイルを示す。
【図８】図８は、Ｅファイルを示す。
【図９】図９は、Ｆファイルを示す。
【図１０】図１０は、Ｇファイルを示す。
【図１１】図１１は、Ｊファイルを示す。
【図１２】図１２は、シソーラスデータベースを示す。
【図１３】図１３は、シソーラスデータベースを示す。
【図１４】図１４は、不要語データベースを示す。
【図１５】図１５は、相関行列を示す。
【図１６】図１６は、因子負荷量行列を示す。
【図１７】図１７は、テキストマイニング装置の動作を示すフローチャートである。
【図１８】図１８は、テキストマイニング装置の動作を示すフローチャートである。
【図１９】図１９は、テキストマイニング装置の動作を示すフローチャートである。
【図２０】図２０は、テキストマイニング装置の動作を示すフローチャートである。
【図２１】図２１は、テキストマイニング装置の動作を示すフローチャートである。
【図２２】図２２は、テキストマイニング装置により出力される魚骨図である。
【符号の説明】
【０１０２】
１…テキストマイニング装置
２…音声認識装置
４…光学式文字読取装置
６…メモリ
８…Ａファイル
１０…コンピュータシステム
１２…入力装置
１４…出力装置
１６…演算制御装置
１８…記憶装置
２０…プログラム
２２…データベース
２４…テキストデータ収集部
２６…文字列抽出部
２８…カテゴリー別頻度算出部
３０…相関係数算出部
３２…因子分析部
３４…カテゴリー抽出部
３６…シソーラス順序判定部
３８…要約文作成部
４０…不要語削除部
４２…データベース指定情報収集部
４４…新規文字列抽出部
４６…新規キーワード登録部
４８…カテゴリー別影響度算出部
５０…影響度グラフ作成部
５２…シソーラスデータベース
５４…不要語データベース
５６…Ｂファイル
５６…Ｃファイル
５６…Ｄファイル
５６…Ｅファイル
５６…Ｆファイル
５６…Ｇファイル
５６…Ｊファイル
７０…回答者ＩＤ
７２…属性
７４…原文
７６…抽出文字列
７８…頻度数
８０…カテゴリーＩＤ
８２…シソーラス
８４…エントリ
８５…頻度数
８６…順位
７８ｊ…頻度数
８８…業種名
９０…不要語
９２…相関行列
９４…カテゴリー名
９５…因子
９６…因子負荷量行列
１００…魚骨図
【図１】
2005284776.tif 000003
【図２】
2005284776.tif 000004
【図３】
2005284776.tif 000005
【図４】
2005284776.tif 000006
【図５】
2005284776.tif 000007
【図６】
2005284776.tif 000008
【図７】
2005284776.tif 000009
【図８】
2005284776.tif 000010
【図９】
2005284776.tif 000011
【図１０】
2005284776.tif 000012
【図１１】
2005284776.tif 000013
【図１２】
2005284776.tif 000014
【図１３】
2005284776.tif 000015
【図１４】
2005284776.tif 000016
【図１５】
2005284776.tif 000017
【図１６】
2005284776.tif 000018
【図１７】
2005284776.tif 000019
【図１８】
2005284776.tif 000020
【図１９】
2005284776.tif 000021
【図２０】
2005284776.tif 000022
【図２１】
2005284776.tif 000023
【図２２】
2005284776.tif 000024