(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1および非特許文献1の手法では、多種多様なトピックについてのメッセージが投稿されているマイクロブログにおいて、ユーザの特定の興味に基づいたトレンドを分析することはできなかった。これら従来手法は、代表的なトレンドを抽出しており、テキスト群全体において最も盛り上がっているトピックを抽出している。
【0008】
非特許文献1は、代表的なトレンドの詳細化を行っているが、代表的なトレンドがユーザの興味に基づくものでなければ、詳細化されたトレンドも同様にユーザの興味に基づくものにならないという問題があった。例えば、「アクセサリ」に興味のあるユーザに対しても、テキスト全体において「地震」のトピックが最も盛り上がっていた場合、「地震」に関する詳細なトレンドが抽出されてしまい、「ネックレス, ○○ブランド」や「衣服, ○○柄」などのアクセサリと意味の近いトピックについてのトレンドを観測することはできない。
【0009】
本発明は、上記従来技術の問題点に鑑みて、ユーザの特定の興味と近いトレンドを分析することができるトレンド分析装置、方法、プログラムを提供することを目的としている。
【課題を解決するための手段】
【0010】
上記課題を解決するための本発明のトレンド分析装置は、テキストストリームにおけるトレンドを分析するトレンド分析装置であって、テキストストリームが格納されたテキストストリーム記憶手段と、前記テキストストリーム記憶手段に格納された各テキストをノードとし、各テキスト中に共通の単語が共起しているものをエッジとしたテキスト関連グラフを構築するテキスト関連グラフ計算手段と、ユーザが指定したクエリ集合を入力とし、前記テキスト関連グラフ計算手段により構築されたテキスト関連グラフから、前記入力されたクエリ集合を含むテキストのノードを起点としてクエリに関連するテキストクラスタを抽出してクエリベースクラスタ記憶手段に格納するクエリベースクラスタ抽出手段と、前記クエリベースクラスタ記憶手段に格納されたテキスト群の各テキストの特徴量と、取り込んだテキストストリームの各テキストの特徴量とを計算する特徴量抽出手段と、前記特徴量抽出手段によって計算された、クエリベースクラスタ記憶手段に格納されたテキスト群のテキスト特徴量とユーザが入力したトレンド数とを用いてクラスタリングしサブクラスタを抽出する処理と、前記特徴量抽出手段によって計算されたテキストストリームのテキスト特徴量と前記抽出されたサブクラスタとの類似度に基づいて求められた、クエリと関連度が高く且つ前記サブクラスタと関連度の低いテキストであって、再クラスタリングを行うと判定したテキスト群と、ユーザが入力したトレンド数とを用いてクラスタリングを行う処理とを実行し、前記各クラスタリングにより抽出されたサブクラスタをサブクラスタ記憶手段に格納するサブクラスタ抽出手段と、前記特徴量抽出手段によって計算されたテキストストリームのテキスト特徴量およびテキスト情報と、前記サブクラスタ記憶手段に格納されたクラスタ群とを入力とし、テキストと各サブクラスタの類似度と、テキストと全てのサブクラスタの類似度とを計算し、クエリと関連度が高く且つサブクラスタと関連度の低いテキストを非関連テキスト記憶手段に格納するクラスタ類似度計算手段と、前記非関連テキスト記憶手段内に格納されたテキスト数がしきい値より大のときに再クラスタリングを行うと判定する再クラスタリング判定手段と、前記サブクラスタ記憶手段に格納されたクラスタ群について、単語の集合であり、各単語はトレンドの度合を数値として保持しているトレンドトピックを計算するトレンドトピック計算手段と、を備えたことを特徴としている。
【0011】
上記構成によれば、テキスト関連グラフ計算手段およびクエリベースクラスタ抽出手段によって、ユーザが指定したクエリと意味の近いテキスト群をまとめることができ、そのテキスト群をサブクラスタ抽出手段がさらにクラスタリングし、そのクラスタリング結果を用いてトレンドトピックを計算しているので、ユーザの特定の興味と近いトレンドを計算することができる。
【0012】
さらに、前記クエリと関連度が高く且つサブクラスタと関連度の低いテキストであって、再クラスタリングを行うと判定したテキスト群を再度クラスタリングするように構成しているので、ユーザの特定の興味に関する、新たに出現したトレンドを計算することができる。
【発明の効果】
【0013】
本発明によれば、マイクロブログなどの多様なトピックからなる膨大なテキストストリームにおいて、クエリと意味の近いテキストをクラスタリングすることが可能となる。それにより、ユーザの特定の興味と近いトレンドを分析することが可能になる。さらに、特定の興味と近い、それにより、ECサイトや情報検索サービスにおいて、特定のユーザの興味やジャンルなどに近いトレンドに基づく情報提供が可能になり、ユーザの利便性の向上が期待できる。
【発明を実施するための形態】
【0015】
以下、図面を参照しながら本発明の実施の形態を説明するが、本発明は下記の実施形態例に限定されるものではない。本実施形態例によるトレンド分析装置は、ユーザの特定の興味に基づいて、マイクロブログなどから得られるテキストストリームにおけるトレンドを分析する装置であり、ユーザが入力した、自身の興味に基づくクエリと意味の近いクラスタを計算し、計算したクラスタにおいてトレンドトピックの抽出処理を行うことを特徴とする。
【0016】
図1は、本実施形態例によるトレンド分析装置の構成を示すブロック図である。
図1において10は、情報を入力するための手段としての入力部であり、例えば、キーボード、マウス、ディスクドライブ装置などから構成される。
【0017】
20は、マイクロブログなどから得られるテキストストリームを格納するテキストストリーム記憶部(テキストストリーム記憶手段)である。
【0018】
30は、前記テキストストリーム記憶部20に格納された各テキストをノードとし、各テキスト中に共通の単語が共起しているものをエッジとしたテキスト関連グラフを構築するテキスト関連グラフ計算部(テキスト関連グラフ計算手段)である。
【0019】
40は、入力部10から受け取ったユーザ指定のクエリ集合を入力とし、前記テキスト関連グラフ計算部30により構築されたテキスト関連グラフから、前記入力されたクエリ集合を含むテキストのノードを起点としてクエリに関連するテキストクラスタを抽出して、クエリベースクラスタ記憶手段としてのクエリベースクラスタ記憶部50に格納するクエリベースクラスタ抽出部(クエリベースクラスタ抽出手段)である。
【0020】
60は、前記クエリベースクラスタ記憶部50に格納されたテキスト群の各テキストの特徴量と、取り込んだテキストストリームの各テキストの特徴量とを計算する特徴量抽出部(特徴量抽出手段)である。
【0021】
70は、前記特徴量抽出部60によって計算された、クエリベースクラスタ記憶部50に格納されたテキスト群のテキスト特徴量とユーザが入力したトレンド数とを用いてクラスタリングしサブクラスタを抽出する処理と、前記特徴量抽出部60によって計算されたテキストストリームのテキスト特徴量と前記抽出されたサブクラスタとの類似度に基づいて求められた、クエリと関連度が高く且つ前記サブクラスタと関連度の低いテキストであって、再クラスタリングを行うと判定したテキスト群と、ユーザが入力したトレンド数とを用いてクラスタリングを行う処理とを実行し、前記各クラスタリングにより抽出されたサブクラスタをサブクラスタ記憶手段としてのサブクラスタ記憶部80に格納するサブクラスタ抽出部(サブクラスタ抽出手段)である。
【0022】
90は、前記特徴量抽出部60によって計算されたテキストストリームのテキスト特徴量およびテキスト情報と、前記サブクラスタ記憶部80に格納されたクラスタ群とを入力とし、テキストと各サブクラスタの類似度と、テキストと全てのサブクラスタの類似度とを計算し、クエリと関連度が高く且つサブクラスタと関連度の低いテキストを非関連テキスト記憶手段としての非関連テキスト記憶部100に格納するクラスタ類似度計算部(クラスタ類似度計算手段)である。
【0023】
110は、前記非関連テキスト記憶部100内に格納されたテキスト数がしきい値より大のときに再クラスタリングを行うと判定する再クラスタリング判定部(再クラスタリング判定手段)である。
【0024】
120は、前記サブクラスタ記憶部80に格納されたクラスタ群について、単語の集合であり、各単語はトレンドの度合を数値として保持しているトレンドトピックを計算するトレンドトピック計算部(トレンドトピック計算手段)である。
【0025】
130は、前記トレンドトピック計算部120で計算された結果のトレンドトピックを出力する出力部である。
【0026】
図1のトレンド分析装置は、例えばコンピュータにより構成され、通常のコンピュータのハードウェアリソース、例えばROM、RAM、CPU、入力装置、出力装置、通信インターフェース、ハードディスク、記録媒体およびその駆動装置を備えている。
【0027】
このハードウェアリソースとソフトウェアリソース(OS、アプリケーションなど)との協働の結果、トレンド分析装置は、
図1に示すように、入力部10、テキストストリーム記憶部20、テキスト関連グラフ計算部30、クエリベースクラスタ抽出部40、クエリベースクラスタ記憶部50、特徴量抽出部60、サブクラスタ抽出部70、サブクラスタ記憶部80、クラスタ類似度計算部90、非関連テキスト記憶部100、再クラスタリング判定部110、トレンドトピック計算部120および出力部130を実装する。
【0028】
前記テキストストリーム記憶部20、クエリベースクラスタ記憶部50、サブクラスタ記憶部80および非関連テキスト記憶部100は、ハードディスクあるいはRAMなどの保存手段・記憶手段に構築されているものとする。
【0029】
次に、上記のように構成されたトレンド分析装置の各部を具体的に説明する。
図2は、テキストストリームからクエリベースのテキストクラスタを抽出するまでの処理のフローチャートである。以下詳細を説明する。
【0030】
<ステップS210>
入力部10を介して、ユーザが入力した、ユーザの興味に応じたクエリワード群Qおよびトレンド数Kを受け付ける。
【0031】
<ステップS220>
一定時間分のテキストストリームに関して、発生時間とテキスト情報をテキストストリーム記憶部20に記憶する。テキストストリーム記憶部20を含む以下の記憶部は、これらの情報が保存され、復元可能なものであれば何でもよい。例えば、データベースや、予め備えられた汎用的な記憶装置(メモリやハードディスク装置)の特定領域に記憶されるものなどである。記憶されたテキストストリームは一定時間後削除され、再度新たに一定時間分のテキストストリームを記憶する。新たにテキストストリームが記憶される度に、テキスト関連グラフ計算部30に情報を受け渡す。なお、テキストストリームとはマイクロブログ(例えばTwitter(登録商標))などのリアルタイム性の高いテキストを想定している。
【0032】
<ステップS230>
テキスト関連グラフ計算部30がテキストストリーム記憶部20に記憶されたテキストd∈Dを、形態素解析器により名詞・動詞・形容詞などの単語集合に分割する。その後、各々のテキストd∈Dの関連性を表す、テキスト関連グラフG=(V,E)を構築する。ここでDはテキスト集合であり、Gは無向グラフ、Vはノード集合、Eはエッジ集合である。グラフGの構築方法は、各テキストdをノードv∈Vとし、各テキストにおいて共通の単語が共起しているものをエッジe∈Eで接続する。
【0033】
<ステップS240>
クエリベースクラスタ抽出部40が入力部10からクエリ集合Q を受け取る。受け取ったクエリ集合Qを含むテキストdのノードvを起点として、クエリと関連するテキストクラスタを抽出する。特定のノードを起点としたグラフのクラスタリングには、ローカルクラスタリングの一種であるEvoCut(非特許文献2参照)など、公知のものを用いることができる。
【0034】
この際、ローカルクラスタリングを適用するために、起点となるノードを一つ定める必要がある。一方、クエリ群Qを含むテキストのノードは複数存在することがある。そのため、起点となるノードの候補を結合し、一つのノードにまとめることで、まとめたノードを起点としてローカルクラスタリングを行う。クエリベースクラスタ抽出部40が行う具体的な処理の流れを
図3のフローチャートを用いて説明する。
【0035】
図3において、クエリベースクラスタ抽出部40はステップS310〜S370の処理を実行するものであるが、ループL300はL300(S)〜L300(e)内のステップS320〜S360の処理を繰り返し実行することを表している。
【0036】
<ステップS310>
結合元のノード変数v´に空集合(empty set)φを代入する。尚、本明細書においては空集合を「空集合φ」と表記する。
【0037】
<ステップS320>
あるノードvのテキストにおいてすべてのクエリワード群Qが含まれるか否かを判定する。判定結果がNoの場合は、L300(S)で始まる繰り返し処理の終了判定を行うL300(e)に進む。
【0038】
<ステップS330>
ステップS320の判定結果がYesの場合に結合元ノードv´が空集合φであるか否かを判定する。
【0039】
あるノードvのテキストにおいてすべてのクエリワード群Qが含まれる(ステップS320のYes)かつ結合元ノードv´が空集合φである(ステップS330のYes)場合、結合元ノードv´にノードvを代入する。その後はL300(e)に進む。
【0040】
<ステップS350>
あるノードvのテキストにおいてすべてのクエリワード群Qが含まれる(ステップS320のYes)かつ結合元ノードv´が空集合φでない(ステップS330のNo)場合、ノードv´とノードvを一つのノードに結合しv´に代入する。その後はステップS360に進む。
【0041】
<ステップS360>
結合されたノードv´に接続されるエッジも統合し、グラフGを更新する。その後はL300(e)に進む。
【0042】
<ステップS370>
グラフGのすべてのノードについてループL300内のステップS320〜S360の処理を行った後、結合したノードv´を起点としてクラスタリングする。
【0043】
<ステップS250>
図3のフローチャートに沿ってクエリベースクラスタ抽出部40が抽出したクラスタを、クエリベースクラスタ記憶部50に記憶する。
【0044】
次に、クエリベースクラスタからトレンドトピックを計算する処理を、
図4のフローチャートを用いて説明する。
【0045】
<ステップS410>
特徴量抽出部60がクエリベースクラスタ記憶部50から受け取ったテキスト群の特徴量を計算する。各テキストdの特徴量は、テキストを形態素解析器によって単語単位に分割した後、各テキストに関して出現する単語情報に基づき、テキストの特徴を表すベクトルf
dを構築する。具体的な算出方法としては、以下の式(1)によって求められるTF−IDFなどが考えられる。
【0047】
ここで、f
dwは特徴ベクトルf
dにおける単語wの要素の値を表す。また、TF(d,w)はテキストdにおける単語wの出現回数。DF(w)はクラスタにおいて単語wが出現するテキストの数、Nはクラスタにおけるテキストの総数を表す。
【0048】
<ステップS420>
サブクラスタ抽出部70が入力部10から受け取ったトレンド数k、特徴量抽出部60から受け取ったテキスト特徴量およびテキスト情報を用いてクラスタを抽出し、類似したテキストをまとめる。そして、抽出したクラスタを、例えば
図5に示す通りクラスタIDと対応付けてサブクラスタ記憶部80に記憶する。クラスタリングの手法としては、以下の式(2)に示す目的関数Eを最小化するクラスタCを算出するk−means法などが考えられる。
【0050】
<ステップS430>
サブクラスタ記憶部80から受け取ったクラスタ群について、トレンドトピック計算部120がトレンドトピックを計算する。トレンドトピックは単語の集合で構成され、各々の単語はトレンドの度合を数値として保持している。トレンド度合は、あるクラスタにおいて、特徴的な単語を持つテキストが多いほどその単語はトレンドであるとみなし、以下の式(3)により算出する。
【0052】
ここで、T
i,wはクラスタiにおける単語wのトレンド度合を表す。T
i,wを計算した後、クラスタ毎にT
i,wを基に昇順で単語をソートし、単語リストを作成する。
【0053】
<ステップS440>
トレンドトピック計算部120が計算したトレンドトピックの単語リストを出力部130に受け渡す。出力部130は例えば
図7に示す通り各クラスタの単語リストにおける上位ワードを出力する。ここで、出力とは、ディスプレイへの表示、プリンタへの印字、音出力、外部装置への送信などを含む概念である。出力部120は出力デバイスのドライバソフトまたは、出力デバイスのドライバソフトと出力デバイスなどで実現され得る。
【0054】
さらに、
図6のフローチャートに示すように、テキストストリームをリアルタイムで処理し、特定のクエリに関する新たなトレンドの出現を検出する。
【0055】
<ステップS510>
特徴量抽出部60がテキストストリームのテキストの特徴量を計算する。テキストストリームは1テキストずつ処理する。特徴量の算出は、前述のステップS410と同様の手段を用いる。
【0056】
<ステップS520>
クラスタ類似度計算部90がサブクラスタ記憶部80からクラスタ群を受け取り、特徴量抽出部60から前記テキストストリームのテキスト特徴量とテキスト情報を受け取る。そして、クラスタ群とテキスト特徴量との類似度を算出する。テキストdとクラスタiとの類似度s(i,d)の算出方法としては、以下の式(4)によって求められるコサイン類似度を利用する方法などが考えられる。
【0058】
また、全てのサブクラスタにおけるテキスト、すなわちクエリベースクラスタとの類似度s(d)を以下の式(5)によって求める。
【0060】
<ステップS530>
クラスタ類似度計算部90が、クエリと関連度が高く、かつサブクラスタと関連度の低いテキストを非関連テキスト記憶部100に記憶する。具体的には以下の条件式(6)、(7)を満たすテキストdを記憶する。
【0062】
ここでδおよびμは定数である。各サブクラスタとの類似度がしきい値(δ)よりも小さく、かつクエリベースクラスタとの類似度がしきい値(μ)よりも大きければ、テキストdはクエリと関連している一方で、どのサブクラスタとも関連していないとみなし、非関連テキスト記憶部100に記憶する。
【0063】
<ステップS540>
再クラスタリング判定部110が非関連テキスト記憶部100のテキスト数Mを基に、非関連テキスト記憶部100のテキスト群をクラスタリングするか否か判定する。具体的には、しきい値σを用いて、以下の条件式(8)が成り立つ場合に、クラスタリングを行う。
【0065】
<ステップS550>
サブクラスタ抽出部70が再クラスタリング判定部110の結果を受け取り、条件式が成り立つ場合に、非関連テキスト記憶部100のテキスト群をクラスタリングする。クラスタリングの方法は前述のステップS420と同様の手段を用いる。クラスタリング後、前述のステップS430、ステップS440と同様の手段によりトレンドトピック計算部120がトレンドトピックを計算し、出力部130が結果を出力する。
【0066】
上記のように本実施形態例によれば、テキスト関連グラフ計算部30において、テキスト群の関連を表すグラフを構築し、クエリベースクラスタ抽出部40において、特定の興味に応じたクエリに基づいて前記構築したグラフをクラスタリングしているので、クエリと意味の近いテキストをまとめることができる。
【0067】
また、クエリベースクラスタ抽出部40が、特定の興味に応じて抽出したクラスタにおけるテキスト群を、サブクラスタ抽出部70がさらにクラスタリングしているので、そのクラスタリング結果を用いて、トレンドトピック計算部120がユーザの特定の興味と近いトレンドトピック計算することができる。
【0068】
さらに、クラスタ類似度計算部90において、特定の興味に関して計算したクラスタ群とテキストストリームとの類似度を計算し、類似度に応じて非関連テキスト記憶部100に記憶し、記憶されたテキスト群を、再クラスタリング判定部110が再クラスタリングするか否かを判定し、判定結果を基にサブクラス抽出部80がクラスタを再計算するように構成している。このため、再計算したクラスタを用いて、トレンドトピック計算部120が特定の興味に関する、新たに出現したトレンドトピックを計算することができる。
【0069】
また、本実施形態のトレンド分析装置における各手段の一部もしくは全部の機能をコンピュータのプログラムで構成し、そのプログラムをコンピュータを用いて実行して本発明を実現することができること、本実施形態のトレンド分析方法における手順をコンピュータのプログラムで構成し、そのプログラムをコンピュータに実行させることができることは言うまでもなく、コンピュータでその機能を実現するためのプログラムを、そのコンピュータが読み取り可能な記録媒体、例えばFD(Floppy(登録商標) Disk)や、MO(Magneto−Optical disk)、ROM(Read Only Memory)、メモリカード、CD(Compact Disk)−ROM、DVD(Digital Versatile Disk)−ROM、CD−R、CD−RW、HDD、リムーバブルディスクなどに記録して、保存したり、配布したりすることが可能である。また、上記のプログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
【0070】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において種々変更・応用が可能である。