以下、図面を参照して、本発明の実施の形態について説明する。
図1は、本発明の一実施の形態に係るテキストマイニングシステムの構成例を示すブロック図である。このテキストマイニングシステム10は、例えば、インターネット上の掲示板、SNS(social networking service)を提供するウェブサイトなどとして構成される。テキストマイニングシステム10を構成する掲示板、ウェブサイトにおいては、複数のユーザが、例えば、所定のテーマについて議論できるようになされており、ここでの議論は、文字を記述することにより(文章により)行なわれる。すなわち、テキストマイニングシステム10においては、ユーザによるテキストベースの議論が行なわれるようになされている。
このテキストマイニングシステム10は、例えば、インターネットなどのネットワークに接続されたサーバなどとして構成される。なお、相互に接続された複数のサーバによりテキストマイニングシステム10が構成されるようにしても構わない。
この例では、テキストマイニングシステム10が、ブラウザ31乃至データベース40として示される機能ブロックにより構成されている。
図1の例において、例えば、テキスト特徴量抽出部32乃至データベース40として示される機能ブロックはサーバに実装される。また、ブラウザ31として示される機能ブロックは、パーソナルコンピュータなどのユーザ機器に実装される。そして、ブラウザ31を有するパーソナルコンピュータと、テキスト特徴量抽出部32乃至データベース40を有するサーバとが、例えば、インターネットを介して接続される。
テキストマイニングシステム10においては、例えば、パーソナルコンピュータなどに実装されたブラウザ31を介してサーバにアクセスした個々のユーザが自身のハンドルネームとともに、所定のテーマについての意見を入力するようになされている。サーバにアクセスしたブラウザの画面には、例えば、BBS(Bulletin Board System)における投稿受付用のGUIが表示され、また、所定のテーマについての意見であって、先に入力された意見の一覧が表示される。ここでユーザが入力する意見は、例えば、テキストデータとしてデータベース40に記憶されるようになされている。
なお、実際には音声として発せられた意見を、音声認識技術を用いてテキストデータに変換してデータベース40に記憶させるようにすることも可能である。
データベース40には、各ユーザが入力した意見のテキストデータが、その意見の入力日、時刻などを表す時間情報、およびハンドルネームなどの著作者情報と対応付けられて記憶されている。なお、データベース40に記憶されているテキストデータは、例えば、議論のテーマ別に分類されて記憶されているものとする。
また、ブラウザ31のユーザは、テキストマイニングシステム10によりデータベース40に蓄積されている所定のテーマの議論の分析を行なわせることも可能である。テキストマイニングシステム10は、ブラウザ31のユーザからの要求に基づいて、いわゆるテキストマイニングを行うことにより、所定のテーマの議論の分析を行なう。テキストマイニングは、テキストを利用したデータマイニングのことである。
テキストマイニングは、例えば、テキストから商品やサービスの評価を数値として表すことができるようにする技術であり、テキストから有用な情報を取り出す(マイニングする)ものである。ブラウザ31のユーザは、テキストマイニングにより議論を構成する文章を、個々に時間情報をもったテキストデータの集合として分析することにより、話題の変遷を容易に概観することが可能となる。すなわち、テキストマイニングにより、議論のテーマとなった物や人などに対する評価が時間の経過に伴って移り変わる様子を簡単に捉えることが可能になるので、話題の変遷を容易に概観することが可能となるのである。
詳細については後述するが、テキストマイニングシステム10は、ブラウザ31からの要求(クエリ)に基づいて、議論の分析を行なうようになされている。
まず、テキスト特徴量抽出部32が、議論のテキストデータのそれぞれの特徴量を抽出し、概念情報抽出部33がその特徴量を分類、分析して、各テキストデータの意見の意味に注目した概念情報を生成する。
学習用データ構築部34および時系列ノードパターン抽出部35は、隠れマルコフモデルの学習を行って、議論のテキストデータの時系列でのノードラベルの変化を得る。すなわち、学習用データ構築部34が上述した概念情報に基づいて、観測時系列信号となる学習用データを生成し、時系列ノードパターン抽出部35が観測時系列信号を学習することで隠れマルコフモデルの学習処理を行なう。このようにすることで、抽象的な概念である議論の変化を、例えば、数値情報としての時系列ノードパターンに置き換えることができるのである。
そして、時系列ノードパターンに基づいて、著者情報特定部36、変遷特定部37、および影響特定部38が議論に参加した特定のユーザの意見の変遷やそれによる影響などに関する情報を生成する。マイニング結果表示部39がその情報を分析結果としてブラウザ31に提示するようになされている。
図1とともに、図2乃至図7を参照してさらに詳細に説明する。テキストマイニングシステム10によりデータベース40に蓄積されている所定のテーマの議論の分析を行なわせる場合、ブラウザ31は、議論の分析の要求として、クエリなどをテキスト特徴量抽出部32に送信する。クエリには、例えば、分析させる議論のテーマを特定する情報が含まれている。また、クエリに、例えば、議論に参加したユーザのうち、注目すべきユーザを特定する情報(例えば、ハンドルネームなど)が含まれるようにしてもよい。
テキスト特徴量抽出部32は、ブラウザ31からクエリを受信すると、そのクエリに含まれる情報に基づいて、分析すべき議論を特定し、データベース40から、その特定した議論のテキストデータの集合を読み出す。すなわち、テキスト特徴量抽出部32は、ブラウザ31のユーザが指定した議論の中で投稿された全ての意見をデータベースから読み出すのである。
そして、テキスト特徴量抽出部32は、読み出したテキストデータのそれぞれについて、形態素解析を行なうことにより、そのテキストデータに含まれる単語を抽出する。テキスト特徴量抽出部32は、抽出した単語のそれぞれについて、例えば、データベース40に予め記憶されている辞書情報を検索することで、それらの単語のうち、キーワードとなる単語をさらに抽出する。テキスト特徴量抽出部32は、さらに、当該テキストデータにおいてキーワードのそれぞれの出現頻度を算出し、各キーワードの出現頻度の値を要素するベクトルを生成する。このベクトルは、当該議論の意見として読み出されたテキストデータのそれぞれについて生成され、特徴量ベクトルと称される。
図2は、特徴量ベクトルの例を示す図である。
いま、例えば、あるプロ野球チームのチーム編成をテーマとして行なわれた議論Dが、ブラウザ31から送信されたクエリにより特定されて分析されるものとする。議論Dにおいて投稿された意見のテキストデータとして、例えば、テキスト1、テキスト2、・・・があったものとする。
テキスト1は、例えば、「○○監督は更迭すべきだ」という文章のテキストデータであったものとする。テキスト2は、例えば、「××をスタメンにしないのはおかしい」という文章のテキストデータであったものとする。
テキスト1が形態素解析されて辞書情報が検索されたことにより、「監督」、「更迭」というキーワードが抽出されたものとする。テキスト2が形態素解析されて辞書情報が検索されたことにより、「××」というキーワードが抽出されたものとする。また、テキスト1およびテキスト2以外のテキストデータが形態素解析されて辞書情報が検索されたことにより、「東京」、・・・というキーワードが抽出されたものとする。
テキスト特徴量抽出部32は、図2に示されるように、議論Dの意見として読み出されたテキストデータのそれぞれについて特徴量ベクトルを生成する。同図に示されるように、テキスト1、テキスト2、・・・の特徴量ベクトルは、キーワード「監督」、「東京」、「××」、・・・「更迭」に対応する要素を有するベクトルとされる。そして、ベクトルの各要素の値は、それぞれキーワードの出現頻度を表す数値とされている。この例では、テキスト1の特徴量ベクトルのキーワード「監督」に対応する出現頻度が1とされ、キーワード「更迭」に対応する出現頻度が1とされている。また、この例では、テキスト2の特徴量ベクトルのキーワード「××」に対応する出現頻度が1とされている。
従って、この例の場合、テキスト1の特徴量ベクトルは、(1,0,0,・・・,1)となり、テキスト2の特徴量ベクトルは、(0,0,1,・・・,0)となる。
テキスト特徴量抽出部32は、このように、特徴量ベクトルを生成する。
概念情報抽出部33は、特徴量ベクトルを予め設定された基準により分類することで、テキストデータのそれぞれをクラスタリングする。概念情報抽出部33は、例えば、特徴量ベクトルの要素の値の合計値などに基づいて特徴量ベクトルを1乃至4のクラスタに分類し、分類された特徴量ベクトルに対応するテキストデータにそれらのクラスタを表すクラスタラベルを付与する。
また、概念情報抽出部33は、特徴量ベクトルを入力情報としてテキスト評価分析を行なう。なお、テキスト評価分析の詳細については、例えば、「テキストを対象とした評価情報の分析に関する研究動向.自然言語処理, Vol.13, No.3, 2006.」などの文献に開示されている。テキスト評価分析の結果、各特徴量ベクトルに対応するテキストデータの意見が、予め設定された評価対象について肯定的であるか否定的であるかを表す極性情報を得ることができる。ここで、評価対象は、例えば、「○○監督更迭」などとされ、やはりテキストデータとして設定される。極性情報は、例えば、肯定を表す数値「1」、否定を表す数値「2」、中立を表す数値「3」、意見なしを表す数値「4」として得られる。
概念情報抽出部33は、例えば、上述したクラスタラベル、および極性情報を要素する2次元のベクトルを、各テキストデータの概念情報として生成する。図3は、概念情報の例を示す図である。
同図の例では、クラスタラベルと、「○○監督更迭」を評価対象とした極性情報とが要素とされた2次元のベクトルとして、テキスト1、テキスト2、・・・の概念情報が示されている。同図の例では、テキスト1の概念情報におけるクラスタラベルの要素の値は3とされ、極性情報の要素の値は1とされている。また、テキスト2の概念情報におけるクラスタラベルの要素の値は1とされ、極性情報の要素の値は4とされている。
概念情報は、テキストデータとして分析される意見のそれぞれが意味する内容を、数値などにより把握できるようにするために生成される情報である。後述するように、概念情報を基に学習用データを生成して隠れマルコフノードの学習処理が行われる。このようにすることで、例えば、議論の中における発言者(テキストを入力したユーザ)の立場などのような、極めて抽象的な概念を、例えば、数値情報として認識することができるようになる。
ここでは、概念情報が2次元のベクトルとされる場合の例について説明したが、クラスタラベル、極性情報の他、別の要素を追加したより多次元のベクトルとして生成されるようにしてもよい。
学習用データ構築部34は、後述する時系列ノードパターン抽出部35において、隠れマルコフノードを学習により特定するための学習用データを生成する。学習用データは、例えば、概念情報の要素に、時間情報を追加し、概念情報の要素のそれぞれを時系列に並べることで得られるデータとされる。
図4は、学習用データの例を示す図である。同図に示されるように、学習用データには、時間情報、クラスタラベル、および「○○監督更迭」を評価対象とした極性情報が要素として含まれている。そして、時間情報に基づいて、クラスタラベル、および「○○監督更迭」を評価対象とした極性情報が時系列に並べられている。時間情報は、上述したように、議論Dにおいて、・・・テキスト1、テキスト2、・・・に対応する意見が入力された時刻を表す情報とされる。
時系列ノードパターン抽出部35は、学習用データ構築部34により構築された学習用データを、観測時系列信号として学習することで隠れマルコフモデルの学習処理を行なう。そして、時系列ノードパターン抽出部35は、学習用データの・・・テキスト1、テキスト2、・・・におけるノードラベルを特定する。ノードラベルは、例えば、1乃至4の数値により表される。
時系列ノードパターン抽出部35は、このようにして特定されたノードラベルを、学習用データの時間情報に基づいて時系列に並べることで、時系列ノードパターンを抽出する。すなわち、時系列ノードパターンは、議論Dにおいて入力された意見である・・・テキスト1、テキスト2、・・・についての隠れマルコフモデルのノードの時間の経過に伴う変遷を示す情報となる。
例えば、ある議論において、入力された意見がテキスト1乃至テキスト4であったとし、時間的にテキスト1乃至テキスト4の順に入力されたものとする。そして、テキスト1のノードラベルが2、テキスト2のノードラベルが1、テキスト3のノードラベルが3、テキスト4のノードラベルが4であった場合、時系列ノードパターンは、「2,1,3,4」という数値列で表されることになる。なお、実際の時系列ノードパターンは、数値列の各数値(ノードラベル)には、意見を特定する情報が対応付けられて構成される。
図5に時系列ノードパターンの例を示す。この例では、議論Dにおいて入力された意見である・・・テキスト1、テキスト2、・・・と、それぞれの意見のノードラベルが対応付けられた情報が時系列ノードパターンのとされている。なお、議論Dにおいて入力された意見である・・・テキスト1、テキスト2、・・・のそれぞれは、時間的にその順番(図中上から下方向に順番に)に入力されたものである。
著者特定部36は、時系列ノードパターンとして得られた数値列の各数値の著者情報を特定する。すなわち、時系列ノードパターンにおける各数値は、議論Dにおいて入力された意見についての隠れマルコフモデルのノードラベルであるから、各意見の著者情報により著者を特定することができる。
著者特定部36は、各意見のテキストデータに対応付けられてデータベース40に記憶されている著者情報を読み出し、時系列ノードパターンの各数値に対応付ける。例えば、上述した例のテキスト1乃至テキスト4の著者がそれぞれユーザA乃至ユーザDであったとする。この場合、時系列ノードパターン「2,1,3,4」における「2」にユーザAが対応付けられ、「1」にユーザBが対応付けられ、「3」にユーザCが対応付けられ、「4」にユーザDが対応付けられる。
変遷特定部37は、著者情報が対応付けられた時系列ノードパターンに基づいて、議論に参加した各ユーザの意見の変遷を特定する。変遷特定部37は、時系列ノードパターンから所定の著者情報に対応付けられた数値のみを抽出し、著者別時系列ノードパターンを抽出する。
図6は、著者別時系列ノードパターンの抽出の例を説明する図である。同図に示されるように、例えば、時系列ノードパターンが「1,4,4,2,2,1,2,2,2,3,3,3,・・・」であったものとし、ユーザAの著者別時系列ノードパターンを抽出するものとする。変遷特定部37は、時系列ノードパターンに対応付けられた著者情報に基づいて、図中の矢印で示される数値を抽出する。この例では、ユーザAの著者別時系列ノードパターンは、「4,2,3」となる。
このように、著者別時系列ノードパターンを抽出することで、その著者(いまの場合、ユーザA)の意見の変遷を認識することが可能となる。
あるいはまた、次のようにして議論に参加したユーザ全体の意見の変遷が特定されるようにしてもよい。変遷特定部37は、著者情報が対応付けられた時系列ノードパターンを予め設定されたルールにより分析することで、時系列ノードパターンの変化点を検出する。変化点は、例えば、議論の流れが大きく変化するきっかけとなった意見とされる。ここで設定されているルールは、例えば、次のようなものである。
時系列ノードパターンの各数値(すなわち、ノードラベル)について、時刻が一番古い数値を時刻t=1、次に古い数値を時刻t=2というように、時刻tを設定する。時刻tの数値をL(t)とするとき、各時刻tにおける式(1)により微分def(t,n,m)を演算する。
式(1)におけるII(*)は、*が真のとき0、偽のとき1となる関数とし、I(*)は*が真のとき1、偽のとき0となる関数とする。
そして、式(1)により演算された値が予め設定された閾値より大きくなるtが変化点として検出されるようにする。
例えば、式(1)において、例えば、変数m=2、変数n=2とし、閾値が2である場合、図6に示した時系列ノードパターンを上述したルールにより分析すると、図7に示される矢印に対応するノードラベルが変化点として検出されることになる。図7の例では、図中左から4番目の「2」と、左から10番目の「3」が変化点として検出されている。
従って、図6に示した時系列ノードパターンの各数値(ノードラベル)のうち、左から10番目の「3」が議論に参加したユーザ全体の意見の変化点として検出される。このようにして、変遷特定部37は、議論に参加したユーザ全体の意見の変遷を特定することができるのである。
影響特定部38は、変遷特定部37により検出された変化点に基づいて、影響を受けた意見を特定する。例えば、ある意見を指定したとき、その意見と同じラベルで過去にさかのぼって最も近い変化点が影響を受けた意見とされる。
例えば、図6に示されるユーザAの著者別時系列ノードパターンの中から所定の意見を指定することにする。ユーザAの著者別時系列ノードパターンは、「4,2,3」だから、各ノードラベルに対応する意見を、それぞれ意見A1、意見A2、意見A3と称することにする。例えば、意見A2が指定されたものとする。
意見A2は、図7において、左から5番目の「2」に対応する意見である。影響特定部38は、この意見A2と同じノードラベルで過去にさかのぼって最も近い変化点を検索する。いまの場合、図中の矢印で示されている意見が変化点であって、左から4番目の「2」が、意見A2と同じノードラベルで過去にさかのぼって最も近い変化点である。これにより、意見A2は、左から4番目の「2」に対応する意見に影響を受けたものであることが分かる。換言すれば、左から4番目の「2」に対応する意見が、ユーザAの考え方に影響を与え、ユーザAは意見A2を入力したと考えることができる。
このようにして、影響特定部38は、影響を受けた意見を特定するようになされている。
マイニング結果表示部39は、議論の分析結果として、変遷特定部37により特定された議論に参加した各ユーザの意見の変遷、および影響特定部38により特定された影響を受けた意見に関する情報をユーザに提示するようになされている。マイニング結果表示部39は、例えば、議論の分析結果としてユーザに提示すべき情報が表示された画像をブラウザ31に表示させるために、ブラウザ31に表示される画像の表示データを生成して送信するようになされている。
図8は、議論の分析結果としてユーザに提示すべき情報が表示された画像の例を示す図である。例えば、ブラウザ31により、図6に示される時系列ノードパターンに対応する議論のテーマを特定する情報、および注目すべきユーザとしてユーザAのハンドルネームが含まれたクエリが送信されたものとする。そして、議論の分析結果として図8に示される画像がブラウザ31に表示されたものとする。
図8の例では、画像の領域101に「ユーザAさんの意見は2度変化しました。」と表示されている。図6を参照して上述したように、ユーザAの著者別時系列ノードパターンは、「4,2,3」となるので、ユーザAの意見は、ノードラベル4であったものが、ノードラベル2に変化し、さらに、ノードラベル3に変化しているからである。
また、図8の画像の領域102には、「1番目の意見」と表示され、その意見の内容が表示されている。なお、図中「・・・ 」と表示される部分には、その意見のテキストデータから得られた文字が表示されることになる。領域102に表示される意見は、図6の時系列ノードパターンにおける左から2番目の「4」に対応する意見となる。
図8の画像の領域103には、「2番目の意見(1番目の意見から変化)」と表示され、その意見の内容が表示されている。領域103に表示される意見は、図6の時系列ノードパターンにおける左から5番目の「2」に対応する意見となる。
図8の画像の領域104には、「3番目の意見(2番目の意見からさらに変化)」と表示され、その意見の内容が表示されている。領域104に表示される意見は、図6の時系列ノードパターンにおける左から10番目の「3」に対応する意見となる。
図8の画像の領域105には、「2番目の意見が影響を受けた意見があります。」と表示され、「ユーザBさん」とその意見の内容が表示されている。上述したように、ユーザAの2番目の意見である意見A2は、図7において、左から4番目の「2」に対応する意見から影響を受けている。そこで、領域104には、左から4番目の「2」に対応する意見の著者(ユーザB)とともに、その意見の内容が表示されるのである。
図8の画像の領域106には、「3番目の意見が影響を与えた意見が2件あります。」と表示され、「ユーザCさん」、「ユーザBさん」、およびそれらの意見の内容が表示されている。図7に示されるように、ユーザAの3番目の意見である意見A3は、図中の矢印で示された変化点となっている。従って、図7には示されていないが、意見A3は、その後入力された意見に影響を与えている可能性がある。ここでは、影響特定部38の処理により、意見A3から影響を受けた意見が2件検出されたものとする。そこで、領域106には、ユーザAの3番目の意見(意見A3)が影響を与えた意見の著者(ユーザC、ユーザD)とともに、それらの意見の内容が表示されるのである。
このように、議論の分析結果がユーザに提示される。このように、ある個人(例えば、ユーザA)の意見の変遷を全体の意見を考慮しながら特定して提示することにより、議論に参加したユーザ全体の中で、その人の意見の変遷を概観することができる。また、その人が影響を受けた意見や影響を与えた意見を抽出しに提示することにより、議論に対する理解を深めることができる。
次に、図9のフローチャートを参照して、テキストマイニングシステム10による議論分析処理の例について説明する。
ステップS100において、テキスト特徴量抽出部32は、ブラウザ31からクエリを受信して分析を受け付ける。ここで、クエリには、分析すべき議論を特定する情報、および注目すべきユーザのハンドルネームなどが含まれている。
ステップS101において、テキスト特徴量抽出部32は、ステップS100で受信したクエリに基づいて特定される意見を、テキストデータの集合としてデータベース40から読み出す。
ステップS102において、テキスト特徴量抽出部32は、図10を参照して後述するテキスト特徴量生成処理を実行する。これにより、例えば、図2を参照して上述したような、特徴量ベクトルが生成される。
ここで、図10のフローチャートを参照して、図9のステップS102のテキスト特徴量生成処理の詳細な例について説明する。
ステップS121において、テキスト特徴量抽出部32は、ステップS101の処理で読み出されたテキストデータの集合のうち、1つのテキストデータを取得する。
ステップS122において、テキスト特徴量抽出部32は、ステップS121の処理で取得したテキストデータを形態素解析する。これにより、そのテキストデータに含まれる単語が抽出される。また、抽出した単語のそれぞれについて、例えば、データベース40に予め記憶されている辞書情報が検索され、それらの単語のうち、キーワードとなる単語がさらに抽出される。
ステップS123において、テキスト特徴量抽出部32は、ステップS121の処理で取得したテキストデータにおいてキーワードのそれぞれの出現頻度を算出する。
ステップS124において、テキスト特徴量抽出部32は、各キーワードの出現頻度の値を要素するベクトルを生成する。
なお、ステップS121乃至ステップS124の処理は、ステップS101の処理で読み出されたテキストデータの数に対応して繰り返し実行される。
これにより、例えば、図2に示されるような特徴量ベクトルが生成される。このようにして、テキスト特徴量生成処理が実行される。
図9に戻って、ステップS102の処理の後、処理は、ステップS103に進む。
ステップS103において、概念情報抽出部33は、図11を参照して後述する概念情報生成処理を実行する。これにより、例えば、図3を参照して上述したような概念情報が生成される。
ここで、図11のフローチャートを参照して、図9のステップS103の概念情報抽出処理の詳細な例について説明する。
ステップS141において、概念情報抽出部33は、ステップS102の処理で生成された特徴量ベクトルを取得する。
ステップS142において、概念情報抽出部33は、ステップS141の処理で取得した特徴量ベクトルを予め設定された基準により分類することで、テキストデータのそれぞれをクラスタリングする。このとき、例えば、特徴量ベクトルの要素の値の合計値などに基づいて特徴量ベクトルが1乃至4のクラスタに分類される
ステップS143において、概念情報抽出部33は、ステップS142の処理で分類された特徴量ベクトルに対応するテキストデータにそれらのクラスタを表すクラスタラベルを付与する。
ステップS144において、概念情報抽出部33は、テキスト評価分析を行なうための評価対象を設定する。評価対象は、例えば、ブラウザ31のユーザにより指定されるようにしてもよいし、自動的に設定されるようにしてもよい。
ステップS145において、概念情報抽出部33は、ステップS141の処理で取得した特徴量ベクトルを入力情報としてテキスト評価分析を行なうことで極性情報を算出する。これにより、ステップS141の処理で取得した特徴量ベクトルに対応する意見がステップS144で設定された評価対象について肯定的であるか否定的であるかを表す極性情報が得られる。極性情報は、例えば、肯定を表す数値「1」、否定を表す数値「2」、中立を表す数値「3」、意見なしを表す数値「4」として得られる。
ステップS146において、概念情報抽出部33は、上述したクラスタラベル、および極性情報を要素する2次元のベクトルを、各テキストデータの概念情報として生成する。
なお、ステップS141乃至ステップS146の処理は、ステップS101の処理で読み出されたテキストデータの数に対応して繰り返し実行される。
これにより、例えば、図3に示されるような概念情報が生成される。このようにして、概念情報生成処理が実行される。
図9に戻って、ステップS103の処理の後、処理は、ステップS104に進む。
ステップS104において、学習用データ構築部34は、図12を参照して後述する学習用データ生成処理を実行する。これにより、例えば、図4を参照して上述したような学習用データが生成される。
ここで、図12のフローチャートを参照して、図9のステップS104の学習用データ生成処理の詳細な例について説明する。
ステップS161において、学習用データ構築部34は、ステップS103の処理で生成された概念情報を取得する。
ステップS162において、学習用データ構築部34は、ステップS103の処理で生成された概念情報に時間情報を追加する。
ステップS163において、学習用データ構築部34は、概念情報の各要素を抽出する。
ステップS164において、学習用データ構築部34は、ステップS163の処理で抽出した概念情報の要素のそれぞれを時系列に並べる。
ステップS165において、学習用データ構築部34は、学習用情報を生成する。これにより、例えば、図4に示されるような学習用データが生成される。
このようにして、学習用データ生成処理が実行される。
図9に戻って、ステップS104の処理の後、処理は、ステップS105に進む。
ステップS105において、時系列ノードパターン抽出部35は、図13を参照して後述する時系列ノードパターン生成処理を実行する。これにより、上述した時系列ノードパターンが生成される。
ここで、図13のフローチャートを参照して、図9のステップS105の時系列ノードパターン生成処理の詳細な例について説明する。
ステップS181において、時系列ノードパターン抽出部35は、ステップS104の処理で生成された学習用データを取得する。
ステップS182において、時系列ノードパターン抽出部35は、ステップS181の処理で取得した学習用データを、観測時系列信号として学習することで隠れマルコフモデルの学習処理を行なう。これにより、時系列ノードパターン抽出部35は、例えば、図4の学習用データの・・・テキスト1、テキスト2、・・・におけるノードラベルを特定する。ノードラベルは、例えば、1乃至4の数値により表される。
ステップS183において、時系列ノードパターン抽出部35は、ステップS182の処理で特定されたノードラベルを、時間情報に基づいて時系列に並べる。
ステップS184において、時系列ノードパターン抽出部35は、時系列ノードパターンを生成する。これにより、例えば、図5に示されるような時系列ノードパターンが生成される。
このようにして、時系列ノードパターン生成処理が実行される。
図9に戻って、ステップS105の処理の後、処理は、ステップS106に進む。
ステップS106において、著者特定部36、変遷特定部37、および影響特定部38は、図14を参照して後述する個人意見分析処理を実行する。これにより、注目すべきユーザの意見の変遷、および影響を受けた意見などが特定される。
ここで、図14のフローチャートを参照して、図9のステップS106の個人意見分析処理の詳細な例に説明する。
ステップS201において、著者特定部36と変遷特定部37は、著者別時系列ノードパターンを生成する。
このとき、著者特定部36は、時系列ノードパターンとして得られた数値列の各数値の著者情報を特定する。著者特定部36は、各意見のテキストデータに対応付けられてデータベース40に記憶されている著者情報を読み出し、時系列ノードパターンの各数値に対応付ける。
変遷特定部37は、著者情報が対応付けられた時系列ノードパターンに基づいて、議論に参加した各ユーザの意見の変遷を特定する。変遷特定部37は、時系列ノードパターンから所定の著者情報に対応付けられた数値のみを抽出し、著者別時系列ノードパターンを抽出する。
これにより、例えば、図6を参照して説明したように、著者別時系列ノードパターンが抽出される。
ステップS202において、変遷特定部37は、著者情報が対応付けられた時系列ノードパターンを予め設定されたルールにより分析することで、時系列ノードパターンの変化点を検出する。変化点は、例えば、議論の流れが大きく変化するきっかけとなった意見とされる。
このとき、例えば、上述した式(1)により演算された値が予め設定された閾値より大きくなるtが変化点として検出される。
ステップS203において、影響特定部38は、ステップS202の処理で検出された変化点に基づいて、注目すべきユーザの意見が影響を受けた意見を特定する。
このとき、例えば、上述したように、ある意見を指定したとき、過去にさかのぼって最も近い変化点が影響を受けた意見とされる。また、このとき注目すべきユーザの意見が変化点であった場合、その意見が影響を与えた意見も特定されるようにしてもよい。
あるいはまた、例えば、上述したように、ある意見を指定したとき、その意見と同じラベルで過去にさかのぼって最も近い変化点が影響を受けた意見とされる。また、このとき注目すべきユーザの意見が変化点であった場合、その意見が影響を与えた意見も特定されるようにしてもよい。
このようにして、個人意見分析処理が実行される。
図9に戻って、ステップS106の処理の後、処理は、ステップS107に進む。
ステップS107において、マイニング結果表示部39は、ステップS106の処理により得られた情報に基づいて、分析結果を表示する。
このとき、例えば、図8に示される画像の表示データが生成され、ブラウザ31に図8のような画像が表示される。すなわち、ステップS107において、マイニング結果表示部39は、変遷特定部37により特定された議論に参加した各ユーザの意見の変遷、および影響特定部38により特定された影響を受けた意見に関する情報をユーザに提示する。
このようにして、議論分析処理が実行される。このようにすることで、ブラウザ31のユーザは、短時間でより深く議論の内容を理解することが可能となる。
例えば、従来の技術は、与えられたテキスト集合全体の傾向を概観するための技術であり、テキストベース議論における個人の意見の変遷や意見の相互作用を概観することができない。
これに対して、本発明では、個人の意見の変化点、影響を受けた意見、影響を与えた意見などが、分析結果の画像により一覧することが可能となる。従って、短時間でより深く議論の内容を理解し、議論の参加者の貢献なども簡単に把握することができる。
また、本発明のテキストマイニングシステム10により得られた分析結果を、例えば、次のように利用することも可能である。
例えば、SNSを提供するウェブサイトでのテキストベースの議論を分析し、著者別に「影響を与えた意見」として特定された意見の数をカウントする。すなわち、その人が入力した意見が変化点となって、他のユーザの意見に影響を与えたとされる意見の数を特定するのである。そして、「影響を与えた意見」として特定された意見を多く書きこんだユーザの地位を表すポイントを上げる。
さらに、その人の意見に影響を受けた意見の数がさらにカウントされ、ポイントとして加算などされるようにしてもよい。
このようにして得られたポイントをSNSのウェブサイトに表示することで、そのSNSに参加しているユーザの貢献の度合いや権威の度合いなどを簡単に認識することが可能となる。このようにすることで、例えば、そのSNSに後から参加したユーザが、先に参加しているユーザのポイントを確認し、誰が重要人物であるかを把握した上で、議論に臨むことができるのである。
あるいはまた、ユーザ別のポイントのランキングがSNSのウェブサイトに表示されるようにしてもよい。
また、例えば、会議の様子を撮影したビデオデータの再生などにおいて、テキストマイニングシステム10により得られた分析結果が用いられるようにしてもよい。この場合、実際に会議室で行なわれた会議での発言を、例えば、音声認識技術によりテキストデータに変換して議論の分析が行われる。そして、例えば、記録された会議の映像を再生する際に、「影響を与えた意見」の部分のみが再生されるようにしてもよい。このようにすることで、会議での議論を要約して視聴することができる。
あるいはまた、テキストマイニングシステム10により得られた分析結果を用いてユーザの性格を分析することも可能である。例えば、テキストマイニングシステム10により得られた分析結果に基づいて、注目すべきユーザが、「影響を与えた意見」を述べることが多いかまたは少ないかを識別する。さらに、注目すべきユーザが、意見を変えやすいかまたは変えにくいかを識別する。
意見を変え易いか否かは、例えば、上述した著者別時系列ノードパターンにおけるノードラベルの変化の回数に基づいて特定することができる。また、「影響を与えた意見」を述べることが多いかまたは少ないかは、例えば、注目すべきユーザの意見の中の変化点となる意見の数を検出することにより特定することができる。
そして、上述した識別結果に基づいて、注目すべきユーザの性格を、例えば、図15に示されるように分類する。図15の例では、ユーザの性格が「Analytical」、「Driver」、「Amiable」、および「Expressive」の4つのタイプに分類されている。
「影響を与えた意見」を述べることが少なく、かつ意見を変えにくいと識別されたユーザは、タイプ「Analytical」に分類される。「影響を与えた意見」を述べることが多く、かつ意見を変えにくいと識別されたユーザは、タイプ「Driver」に分類される。「影響を与えた意見」を述べることが少なく、かつ意見を変えやすいと識別されたユーザは、タイプ「Amiable」に分類される。「影響を与えた意見」を述べることが多く、かつ意見を変えやすいと識別されたユーザは、タイプ「Expressive」に分類される。
このような分類結果に基づいて、例えば、SNSのウェブサイトに表示される広告などを変更させるとさらに効果的である。例えば、意見を変えやすいとされるタイプ「Amiable」、タイプ「Expressive」のユーザがログインしたときには広告を多く提示する。広告の効果が期待できるからである。一方で、意見を変えにくいとされるタイプ「Analytical」、タイプ「Driver」がログインしたときには提示する広告を減らす。広告の効果があまり期待できないので、ユーザの煩わしさを減らす効果を狙うためである。
さらに、例えば、商品の性能や価格などについて議論するSNSのウェブサイトにおいては、タイプ「Amiable」に分類されたユーザに対して商品のセールスのメールなどを送信するようにしてもよい。タイプ「Amiable」に分類されたユーザは、最もセールスの効果が高いユーザと考えられるからである。
なお、上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば図16に示されるような汎用のパーソナルコンピュータ700などに、ネットワークや記録媒体からインストールされる。
図16において、CPU(Central Processing Unit)701は、ROM(Read Only Memory)702に記憶されているプログラム、または記憶部708からRAM(Random Access Memory)703にロードされたプログラムに従って各種の処理を実行する。RAM703にはまた、CPU701が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU701、ROM702、およびRAM703は、バス704を介して相互に接続されている。このバス704にはまた、入出力インタフェース705も接続されている。
入出力インタフェース705には、キーボード、マウスなどよりなる入力部706、LCD(Liquid Crystal display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部707、ハードディスクなどより構成される記憶部708、モデム、LANカードなどのネットワークインタフェースカードなどより構成される通信部709が接続されている。通信部709は、インターネットを含むネットワークを介しての通信処理を行う。
入出力インタフェース705にはまた、必要に応じてドライブ710が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア711が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部708にインストールされる。
上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、インターネットなどのネットワークや、リムーバブルメディア711などからなる記録媒体からインストールされる。
なお、この記録媒体は、図16に示される、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フロッピディスク(登録商標)を含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク(MD(Mini-Disk)(登録商標)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア711により構成されるものだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM702や、記憶部708に含まれるハードディスクなどで構成されるものも含む。
なお、本明細書において上述した一連の処理は、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。