(57)【特許請求の範囲】
【請求項１】
時刻に対応付けられた複数のテキストデータを取得するテキスト取得手段と、
前記テキスト取得手段によって取得されたテキストデータから、話題を示す文字列を抽出する文字列抽出手段と、
前記文字列抽出手段によって抽出された文字列が、盛り上がりを判定する時間枠から予め設定された第１の時間遡った時刻までの判断期間において、当該判断期間より前に盛り上がった話題を示す文字列として判定されたか否かにかかわらず新規に盛り上がった話題を示す文字列として判定されたか否かを判断する判断手段と、
前記判断手段によって、前記文字列が新規に盛り上がった話題を示す文字列として判定されなかったものと判断された場合には、前記テキストデータに対応付けられた時刻を参照して、前記時間枠での前記複数のテキストデータにおける当該文字列の出現頻度と前記時間枠から予め設定された第２の時間遡った時刻までの参照期間での当該文字列の出現頻度とに基づいて、当該時間枠において当該文字列が新規に盛り上がった話題を示す文字列であるか否かを判定すると共に、前記判断手段によって、当該文字列が新規に盛り上がった話題を示す文字列として判定されたものと判断された場合には、前記テキストデータに対応付けられた時刻を参照して、前記時間枠での前記複数のテキストデータにおける当該文字列の出現頻度と当該文字列が新規に盛り上がった話題を示す文字列として判定された際の前記参照期間での当該文字列の出現頻度とに基づいて、当該時間枠において当該文字列が新規ではなく盛り上がった話題を示す文字列であるか否かを判定する盛り上がり判定手段と、
を備え、
前記判断手段は、前記判断期間内の時間枠に対する、前記判断以前の前記盛り上がり判定手段による判定結果を参照することにより当該判断を行う、話題抽出装置。
【請求項２】
前記盛り上がり判定手段は、前記時間枠での前記出現頻度と前記時間枠及び前記参照期間での前記出現頻度との比から盛り上がり値を算出して、盛り上がり値に基づいて前記文字列が盛り上がった話題を示す文字列であるか否かを判定する請求項１に記載の話題抽出装置。
【請求項３】
前記盛り上がり判定手段は、前記盛り上がり値の順に予め設定された数の文字列を盛り上がった話題を示す文字列と判定する請求項２に記載の話題抽出装置。
【請求項４】
前記盛り上がり判定手段は、前記時間枠において前記新規ではなく盛り上がった話題を示す文字列と判定する文字列の数を制限する請求項１〜３の何れか一項に記載の話題抽出装置。
【請求項５】
前記盛り上がり判定手段は、前記文字列をグルーピングして、グルーピングされた文字列に対して盛り上がった話題を示す文字列であるか否かを判定する請求項１〜４の何れか一項に記載の話題抽出装置。
【請求項６】
前記盛り上がり判定手段は、２つの文字列又は文字列の読みについて、一方が他方に少なくとも部分一致しているか否かを判断することによってグルーピングを行う請求項５に記載の話題抽出装置。
【請求項７】
前記盛り上がり判定手段は、一方の文字列を含むテキストデータの数、他方の文字列を含むテキストデータの数、及び両方の文字列を含むテキストデータの数から２つの文字列同士の共起度を算出して、共起度に基づいてグルーピングを行う請求項５又は６に記載の話題抽出装置。
【請求項８】
前記文字列抽出手段によって抽出された文字列と抽出元のテキストデータとの対応関係を示す情報を格納するテキストインデックス格納手段と、
検索クエリを入力して、当該検索クエリに合致する文字列を検索して、前記テキストインデックス格納手段に格納された情報を参照して、当該検索クエリに合致する文字列を含むテキストデータを示す情報を出力する検索手段と、
を更に備える請求項１〜７の何れか一項に記載の話題抽出装置。
【請求項９】
前記テキスト取得手段によって取得されたテキストデータをフィルタリングして、前記文字列抽出手段によって文字列が抽出されるテキストデータから除外するフィルタリング手段を更に備える請求項１〜８の何れか一項に記載の話題抽出装置。
【請求項１０】
話題抽出装置の動作方法である話題抽出方法であって、
時刻に対応付けられた複数のテキストデータを取得するテキスト取得ステップと、
前記テキスト取得ステップにおいて取得されたテキストデータから、話題を示す文字列を抽出する文字列抽出ステップと、
前記文字列抽出ステップにおいて抽出された文字列が、盛り上がりを判定する時間枠から予め設定された第１の時間遡った時刻までの判断期間において、当該判断期間より前に盛り上がった話題を示す文字列として判定されたか否かにかかわらず新規に盛り上がった話題を示す文字列として判定されたか否かを判断する判断ステップと、
前記判断ステップにおいて、前記文字列が新規に盛り上がった話題を示す文字列として判定されなかったものと判断された場合には、前記テキストデータに対応付けられた時刻を参照して、前記時間枠での前記複数のテキストデータにおける当該文字列の出現頻度と前記時間枠から予め設定された第２の時間遡った時刻までの参照期間での当該文字列の出現頻度とに基づいて、当該時間枠において当該文字列が新規に盛り上がった話題を示す文字列であるか否かを判定すると共に、前記判断ステップにおいて、当該文字列が新規に盛り上がった話題を示す文字列として判定されたものと判断された場合には、前記テキストデータに対応付けられた時刻を参照して、前記時間枠での前記複数のテキストデータにおける当該文字列の出現頻度と当該文字列が新規に盛り上がった話題を示す文字列として判定された際の前記参照期間での当該文字列の出現頻度とに基づいて、当該時間枠において当該文字列が新規ではなく盛り上がった話題を示す文字列であるか否かを判定する盛り上がり判定ステップと、
を含み、
前記判断ステップにおいて、前記判断期間内の時間枠に対する、前記判断以前の前記盛り上がり判定ステップにおける判定結果を参照することにより当該判断を行う、話題抽出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のテキストデータから盛り上がっている話題を抽出する話題抽出装置及び話題抽出方法に関する。
【背景技術】
【０００２】
近年、ブログの一種であるミニブログ（マイクロブログ）によるコミュニケーションが増加している。利用者は、主に自身の状況や雑記等を短い文章で、サービスを提供しているウェブサイトへ投稿する。その利用の手軽さから、従来のブログサービスにおいて投稿を行わなかったような一般ユーザも投稿を行っている。また、ミニブログサービスにはユーザが気に入った投稿を自分の友人に広める「拡散」の仕組みを提供しているものが多く、ユーザはより手軽に投稿を行うことが可能となっている。そういったユーザの大量の投稿を解析することで、その時ユーザの間で盛り上がっている話題を提供することができる。ストリームデータからの盛り上がり度の判定については、例えば、非特許文献１及び特許文献１に記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−８５９５３号公報
【非特許文献】
【０００４】
【非特許文献１】Jon Kleinburg, "Bursty and hier archical Structure inStreams", Data Mining and Knowledge Discovery 8(4), pp.373-397. 2003
【発明の概要】
【発明が解決しようとする課題】
【０００５】
非特許文献１では、メール等のテキストのストリームデータを対象に、単語の出現間隔の変化からバースト判定を行っている。単語が等しい時間間隔で出現する時間帯を定常状態とし、定常状態に対して異常に短い時間間隔で当該単語が出現する時間帯をバーストと判定する。判定は状態遷移マシンを用いて、全てのデータの出現点に対して状態を判定することで行われる。過去の状態の遷移も含めて判定を行うため精細な解析が必要となり、リアルタイムの抽出には不向きである。
【０００６】
特許文献１では、収音音声信号を入力して、そのレベルについての長時間平均値と短時間平均値とを求め、これらの差分により盛り上がりの度合いを示す盛り上がり値を算出している。その計算の容易さからリアルタイムでの計算が可能だが、レベルの上昇に伴い長時間平均値が上昇するため、継続的な盛り上がりの抽出を行うことができない。また、そのままテキスト解析に用いると、頻度が高い単語が上位に挙がりやすくなってしまうという問題点がある。
【０００７】
本発明は、上記の問題点に鑑みてなされたものであり、ミニブログサービス等の大量のストリームデータのようなテキストデータを対象に瞬間的な盛り上がりだけでなく継続的に盛り上がっている話題に関しては継続的かつリアルタイムに盛り上がっている話題を抽出することができる話題抽出装置及び話題抽出方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記の目的を達成するために、本発明に係る話題抽出装置は、時刻に対応付けられた複数のテキストデータを取得するテキスト取得手段と、テキスト取得手段によって取得されたテキストデータから、話題を示す文字列を抽出する文字列抽出手段と、文字列抽出手段によって抽出された文字列が、盛り上がりを判定する時間枠から予め設定された第１の時間遡った時刻までの判断期間において、当該判断期間より前に盛り上がった話題を示す文字列として判定されたか否かにかかわらず新規に盛り上がった話題を示す文字列として判定されたか否かを判断する判断手段と、判断手段によって、文字列が新規に盛り上がった話題を示す文字列として判定されなかったものと判断された場合には、テキストデータに対応付けられた時刻を参照して、時間枠での複数のテキストデータにおける当該文字列の出現頻度と時間枠から予め設定された第２の時間遡った時刻までの参照期間での当該文字列の出現頻度とに基づいて、当該時間枠において当該文字列が新規に盛り上がった話題を示す文字列であるか否かを判定すると共に、判断手段によって、当該文字列が新規に盛り上がった話題を示す文字列として判定されたものと判断された場合には、テキストデータに対応付けられた時刻を参照して、時間枠での複数のテキストデータにおける当該文字列の出現頻度と当該文字列が新規に盛り上がった話題を示す文字列として判定された際の参照期間での当該文字列の出現頻度とに基づいて、当該時間枠において当該文字列が新規ではなく盛り上がった話題を示す文字列であるか否かを判定する盛り上がり判定手段と、を備え、判断手段は、判断期間内の時間枠に対する、判断以前の盛り上がり判定手段による判定結果を参照することにより当該判断を行う。
【０００９】
本発明に係る話題抽出装置では、文字列が、盛り上がりを判定する時間枠から予め設定された時間遡った時刻までの判断期間に新規に盛り上がった話題を示す文字列として判定されたか否かが判断される。当該文字列が新規に盛り上がった話題を示す文字列として判定されなかったものと判断された場合には、当該時間枠での当該文字列の出現頻度と時間枠から予め設定された時間遡った時刻までの参照期間での当該文字列の出現頻度とに基づいて、当該時間枠において当該文字列が新規に盛り上がった話題を示す文字列であるか否かが判定される。一方で、当該文字列が新規に盛り上がった話題を示す文字列として判定されたものと判断された場合には、時間枠での当該文字列の出現頻度と当該文字列が新規に盛り上がった話題を示す文字列として判定された際の参照期間での当該文字列の出現頻度とに基づいて、当該時間枠において当該文字列が新規ではなく盛り上がった話題を示す文字列であるか否かが判定される。
【００１０】
即ち、本発明に係る話題抽出装置では、判断期間に新規に盛り上がった話題を示す文字列として判定された場合には、その際の参照期間での当該文字列の出現頻度が用いられて、当該文字列が盛り上がった話題を示す文字列であるか否かが判定される。このように直近で盛り上がったとされた文字列（例えば、話題になった単語）と、そうでない文字列とで判定に用いる参照期間を分けることで、継続的に盛り上がっている話題を示す文字列を適切に抽出することができる。また、盛り上がった文字列の判定に出現頻度を用いているため、リアルタイム性が求められる状況で効率的にテキストデータから盛り上がり判定を行うことができる。即ち、本発明に係る話題抽出装置によれば、ミニブログサービス等の大量のストリームデータのようなテキストデータを対象に瞬間的な盛り上がりだけでなく継続的に盛り上がっている話題に関しては継続的かつリアルタイムに盛り上がっている話題を抽出することができる。
【００１１】
盛り上がり判定手段は、時間枠での出現頻度と時間枠及び参照期間での出現頻度との比から盛り上がり値を算出して、盛り上がり値に基づいて文字列が盛り上がった話題を示す文字列であるか否かを判定することとしてもよい。この構成によれば、確実かつ適切に盛り上がった話題を示す文字列を判定することができる。
【００１２】
盛り上がり判定手段は、盛り上がり値の順に予め設定された数の文字列を盛り上がった話題を示す文字列と判定することとしてもよい。この構成によれば、確実に一定数の盛り上がった話題を示す文字列を判定することができる。
【００１３】
盛り上がり判定手段は、時間枠において新規ではなく盛り上がった話題を示す文字列と判定する文字列の数を制限することとしてもよい。この構成によれば、新規ではなく盛り上がった話題を示す文字列を制限することで、盛り上がった話題を示す文字列が新規ではなく盛り上がったものばかりとなることを防止することができる。
【００１４】
盛り上がり判定手段は、文字列をグルーピングして、グルーピングされた文字列に対して盛り上がった話題を示す文字列であるか否かを判定することとしてもよい。この構成によれば、盛り上がった話題が同様の文字列ばかりとなることを防止して、盛り上がった話題を示す文字列として多様な文字列を抽出することができる。
【００１５】
盛り上がり判定手段は、２つの文字列又は文字列の読みについて、一方が他方に少なくとも部分一致しているか否かを判断することによってグルーピングを行うこととしてもよい。あるいは、盛り上がり判定手段は、一方の文字列を含むテキストデータの数、他方の文字列を含むテキストデータの数、及び両方の文字列を含むテキストデータの数から２つの文字列同士の共起度を算出して、共起度に基づいてグルーピングを行うこととしてもよい。この構成によれば、確実に文字列のグルーピングを行うことができ、グルーピングされると共に盛り上がった話題を示す文字列として適切な文字列を抽出することができる。
【００１６】
話題抽出装置は、文字列抽出手段によって抽出された文字列と抽出元のテキストデータとの対応関係を示す情報を格納するテキストインデックス格納手段と、検索クエリを入力して、当該検索クエリに合致する文字列を検索して、テキストインデックス格納手段に格納された情報を参照して、当該検索クエリに合致する文字列を含むテキストデータを示す情報を出力する検索手段と、を更に備えることとしてもよい。この構成によれば、盛り上がった話題を示す文字列だけでなく、文字列の抽出元のテキストデータの情報に関しても出力することができる。
【００１７】
話題抽出装置は、テキスト取得手段によって取得されたテキストデータをフィルタリングして、文字列抽出手段によって文字列が抽出されるテキストデータから除外するフィルタリング手段を更に備えることとしてもよい。この構成によれば、盛り上がった話題を示す文字列として抽出することが不適切な文字列やテキストデータを除外することができる。
【００１８】
ところで、本発明は、上記のように話題抽出装置の発明として記述できる他に、以下のように話題抽出方法の発明としても記述することができる。これはカテゴリ等が異なるだけで、実質的に同一の発明であり、同様の作用及び効果を奏する。
【００１９】
即ち、本発明に係る話題抽出方法は、話題抽出装置の動作方法である話題抽出方法であって、時刻に対応付けられた複数のテキストデータを取得するテキスト取得ステップと、テキスト取得ステップにおいて取得されたテキストデータから、話題を示す文字列を抽出する文字列抽出ステップと、文字列抽出ステップにおいて抽出された文字列が、盛り上がりを判定する時間枠から予め設定された第１の時間遡った時刻までの判断期間に新規に盛り上がった話題を示す文字列として判定されたか否かを判断する判断ステップと、判断ステップにおいて、文字列が新規に盛り上がった話題を示す文字列として判定されなかったものと判断された場合には、テキストデータに対応付けられた時刻を参照して、時間枠での複数のテキストデータにおける当該文字列の出現頻度と時間枠から予め設定された時間遡った時刻までの参照期間での当該文字列の出現頻度とに基づいて、当該時間枠において当該文字列が新規に盛り上がった話題を示す文字列であるか否かを判定すると共に、判断ステップにおいて、当該文字列が新規に盛り上がった話題を示す文字列として判定されたものと判断された場合には、テキストデータに対応付けられた時刻を参照して、時間枠での複数のテキストデータにおける当該文字列の出現頻度と当該文字列が新規に盛り上がった話題を示す文字列として判定された際の参照期間での当該文字列の出現頻度とに基づいて、当該時間枠において当該文字列が新規ではなく盛り上がった話題を示す文字列であるか否かを判定する盛り上がり判定ステップと、を含み、判断ステップにおいて、判断期間内の時間枠に対する、判断以前の盛り上がり判定ステップにおける判定結果を参照することにより当該判断を行う。
【発明の効果】
【００２０】
本発明では、直近で盛り上がったとされた文字列（例えば、話題になった単語）と、そうでない文字列とで判定に用いる参照期間を分けることで、継続的に盛り上がっている話題を示す文字列を適切に抽出することができる。また、盛り上がった文字列の判定に出現頻度を用いているため、リアルタイム性が求められる状況で効率的にテキストデータから盛り上がり判定を行うことができる。即ち、本発明によれば、ミニブログサービス等の大量のストリームデータのようなテキストデータを対象に瞬間的な盛り上がりだけでなく継続的に盛り上がっている話題に関しては継続的かつリアルタイムに盛り上がっている話題を抽出することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施形態に係る話題抽出装置の機能構成を示す図である。
【図２】話題抽出装置によって取得されるテキストデータである文書の例を示す図である。
【図３】話題抽出装置において抽出されて構文解析結果格納部に格納される単語（文字列）の例を示すテーブルである。
【図４】話題抽出装置において抽出されて文書インデックス格納部に格納される単語と文書ＩＤとの対応関係を示す情報の例を示すテーブルである。
【図５】話題抽出装置において計算され盛り上がり値格納部に格納される盛り上がり値の例を示すテーブルである。
【図６】対象期間及び基準期間を模式的に示す図である。
【図７】盛り上がり値である対数尤度比を計算する際に用いる値を概念的に示した図である。
【図８】グループ情報格納部に格納に格納される情報の例を示すテーブルである。
【図９】共起度の算出を説明するための図である。
【図１０】本発明の実施形態に係る話題抽出装置のハードウェア構成を示す図である。
【図１１】本発明の実施形態に係る話題抽出装置で実行される処理全体（話題抽出方法）を示すフローチャートである。
【図１２】本発明の実施形態に係る話題抽出装置で実行される、盛り上がり値の計算の処理（話題抽出方法）を示すフローチャートである。
【図１３】本発明の実施形態に係る話題抽出装置で実行される、グルーピング及び盛り上がった話題を示す単語の判定の処理（話題抽出方法）を示すフローチャートである。
【発明を実施するための形態】
【００２２】
以下、図面と共に本発明に係る話題抽出装置及び話題抽出方法の実施形態について詳細に説明する。なお、図面の説明においては同一要素には同一符号を付し、重複する説明を省略する。
【００２３】
図１に本実施形態に係る話題抽出装置（話題抽出サーバ）１０を示す。話題抽出装置１０は、複数のテキストデータから盛り上がっている話題を抽出する装置である。例えば、インターネット上で様々なユーザによってミニブログに投稿されたテキストデータから、インターネット上でどのような話題が盛り上がっているかを解析する。即ち、どのような単語がホットワードであるかを解析する。話題抽出装置１０は、解析対象となるテキストデータを取得（受信）できるように、テキストデータを出力する装置（例えば、ミニブログのサービスを提供するサーバ）とインターネット等のネットワークを介して接続されており、情報の送受信を行うことができるようになっている。
【００２４】
図１に示すように、話題抽出装置１０は、機能的には、文書受信部１１と、文書フィルタリング部１２と、構文解析部１３と、構文解析結果格納部１４と、文書インデックス格納部１５と、盛り上がり値生成部１６と、盛り上がり値格納部１７と、グルーピング部１８と、グループ情報格納部１９と、検索部２０とを備えて構成される。
【００２５】
文書受信部１１は、解析対象となる複数のテキストデータを含む文書を取得するテキスト取得手段である。この文書は、時系列での解析が可能なように時刻が対応付けられている。文書に対応付けられた時刻は、例えば、当該文書が投稿された時刻である。この文書は、具体的には例えば、ミニブログサービスを含め、インターネット上で様々なユーザによって投稿された情報である。本文のテキスト情報の他、投稿者、画像、Ｗｅｂサイトへのリンク情報等を含んでいてもよい。文書は、ＨＴＭＬ（HyperText Markup Language）、ＸＭＬ（ExtensibleMarkup Language）、ＪＳＯＮ（JavaScript Object Notation）等のいかなるフォーマットであってもよい。また、テキストデータは例えば、テキストストリームであるが、それ以外の構成のテキストデータであってもよい。
【００２６】
文書受信部１１は、例えば、話題抽出装置１０に接続されたミニブログのサービスを提供するサーバから送信された文書を受信することで、文書を取得する。この際、文書受信部１１は、ミニブログのサービスを提供するサーバに対して文書の送信を要求することとしてもよい。取得された文書の例を図２に示す。図２に示すように文書は、文書ＩＤ、投稿者、本文及び投稿日時が対応付けられたデータである。文書ＩＤは、文書を一意に識別する識別子である。なお、文書ＩＤは、話題抽出装置１０によって受信された時点で予め付与されたものであってもよいし、話題抽出装置１０によって付与されたものであってもよい（必ずしも受信する文書に含まれていなくてもよい）。投稿者は、文書を投稿した者を示す情報である。本文は、テキストデータ本体である。投稿日時は、当該文書が投稿された時刻である。文書受信部１１は、取得した文書を文書フィルタリング部１２に出力する。なお、文書の取得は、ミニブログのサービスを提供するサーバから文書が送信される度に行われてもよいし、一定期間（例えば、１時間）毎に当該サーバに文書の送信の要求を行うことで定期的に行われてもよい。
【００２７】
文書フィルタリング部１２は、文書受信部１１から入力された文書をフィルタリングして、解析するのに適切でない文書を解析対象から除外する（以降の処理から除外する）フィルタリング手段である。適切でない文書とは、例えば性的、暴力的な表現を含む文書、あるいは、所謂ｂｏｔや荒し等、意味の無い文書や似たような文書の投稿を繰り返すアカウントによる文書等を指す。文書フィルタリング部１２は、例えば、予め用意されて記憶した単語（文字列）、アカウントのブラックリストと文書の本文や投稿者とを比較してフィルタリングを行う。文書フィルタリング部１２は、フィルタリングによって解析するのに適切であると判断された文書を構文解析部１３に出力する。文書フィルタリング部１２は、解析対象から除外された文書を削除する。
【００２８】
構文解析部１３は、文書フィルタリング部１２から入力された文書から、話題を表すのに適切な意味を持つ文字列（以下、広い意味で単語と呼ぶ）を抽出する文字列抽出手段である。ここで言う単語とは、文法的な意味の単語の他、句、ＵＲＬ（Uniform Resource Locator）及び文書に付与されたタグ等を指す。単語の抽出には、任意の既存技術を利用することができる。主に構文解析の技術を用いることができるが、テキストデータから単語の抽出をすることができるものであればどのようなものが用いられてもよい。例えば、文書が日本語であれば、形態素解析を用いることができる。
【００２９】
図３に構文解析部１３によって抽出された単語の例を示す。図３に示すように抽出された単語には、文書ＩＤ、品詞、読み及び時刻情報が対応付けられている。文書ＩＤは、単語の抽出元である文書の文書ＩＤである。品詞及び読みは、それぞれ単語の品詞及び読みであり、単語の抽出の際に合わせて抽出されるものである。但し、品詞及び読みは、必ずしも抽出される必要はなく、あるいは抽出できない場合には抽出されなくてもよい。時刻情報は、抽出元である文書に係る投稿日時の時刻と同じものである。なお、文書のフィルタリング及び単語の抽出は例えば、文書が取得される度に行われる。
【００３０】
構文解析部１３は、図３に示す抽出した単語の情報を構文解析結果格納部１４に出力する。構文解析結果格納部１４は、構文解析部１３から出力された時刻情報に対応付けられた単語の情報を格納する。この情報は、後述するように単語が、盛り上がった話題を示す単語であるかの判定に用いられる。
【００３１】
また、構文解析部１３は、抽出した単語毎に単語の抽出元である文書の文書ＩＤを文書インデックス格納部１５に出力する。文書インデックス格納部１５は、構文解析部１３から入力された、抽出された単語と抽出元の文書との対応関係を示す情報を格納するテキストインデックス格納手段である。例えば、図４に示すように単語と文書ＩＤとの対応関係を示す情報を格納する。なお、１つの単語に複数の文書ＩＤが対応付けられていてもよい。この情報は、後述するように盛り上がった話題を示すものとされた単語から、その単語が出現する文書を検索するために用いられる。
【００３２】
盛り上がり値生成部１６は、単語が盛り上がった話題を示す単語である度合いを示す盛り上がり値（盛り上がり度）を計算する手段（盛り上がり判定手段の一部）である。盛り上がり値生成部１６は、構文解析結果格納部１４に格納された情報を参照して、各単語のテキストデータにおける時系列な出現頻度（の変化）に基づいて盛り上がり値を計算する。盛り上がり値の計算は、予め設定された一定の時間間隔である時間枠毎の各単語の文書中の出現頻度（出現回数）が用いられて行われる。時間枠は、例えば１時間とされ、盛り上がり値の計算対象となる時間枠（以下、対象期間と呼ぶ）は、盛り上がり値算出の時点で直近（最新）のものとされる。計算された盛り上がり値は、例えば、図５に示すような情報とされる。図５において、対数尤度比が盛り上がり値に相当する。
【００３３】
盛り上がり値生成部１６は、図５に示す計算した盛り上がり値の情報を盛り上がり値格納部１７に出力する。盛り上がり値格納部１７に格納されるデータ（レコード）は、単語及び計算時刻毎のデータとされる。即ち、同じ単語でも、計算時刻が異なれば複数のデータが存在する。盛り上がり値格納部１７には、計算時刻が新しい順となり、かつ盛り上がり値が小さい（低い）順となるように、盛り上がり値生成部１６から入力された情報を格納する。なお、本実施形態では、盛り上がり値である対数尤度比が小さいほど、その単語が盛り上がった話題を示す単語である度合いが高いことを示している。
【００３４】
具体的には、盛り上がり値生成部１６は、以下の機能を有する。盛り上がり値生成部１６は、単語が対象期間から予め設定された時間遡った時刻までの判断期間に新規に盛り上がった話題を示す文字列（以下、過去ワードと呼ぶ）として判定されたか否かを判断する判断手段である。本実施形態では、単語の盛り上がりの判定は、新規に盛り上がった話題を示す単語であるか、あるいは、新規ではなく盛り上がった話題を示す単語であるかの何れかの判定を行う。即ち、単語が過去ワードであるか否かの判定を行う。判断期間は、対象期間よりも十分長い期間とし、例えば２４時間とされる。即ち、盛り上がり値生成部１６は、単語が２４時間以内に新規に盛り上がった話題に係るものとして判定されたかを判断する。
【００３５】
具体的には、盛り上がり値生成部１６は、構文解析結果格納部１４に格納された情報を参照して、対象期間において文書に出現（登場）した単語を抽出する。盛り上がり値生成部１６は、新規フラグが図５に示す盛り上がり値格納部１７に格納されているか否かを判断することで、単語が過去ワードであるか否かを判断する。なお、新規フラグについては後述する。
【００３６】
盛り上がり値生成部１６は、単語が過去ワードでない（単語が判断期間において新規に盛り上がった話題を示す単語として判定されなかった）と判断された場合には、以下のように盛り上がり値を算出する。この場合、盛り上がり値生成部１６は、構文解析結果格納部１４に格納された各単語に対応付けられた時刻情報を参照して、対象期間での文書における当該単語の出現頻度（出現回数）と、対象期間を含み対象期間から予め設定された時間遡った時刻までの基準期間での当該単語の出現頻度（出現回数）とをカウントする。基準期間（通常期間）は、対象期間よりも十分長い期間とし、例えば２４時間とされる。ここで、基準期間から対象期間を除いた期間を参照期間と呼ぶ。なお、本実施形態では、判断期間と基準期間とを同じ２４時間としているが必ずしも同じ時間にする必要はない。
【００３７】
この場合、例えば、図６（ａ）に示すように最新の１時間が対象時間であり、最新の２４時間が基準期間である。図６（ａ）では横軸が時間軸である。図６（ａ）において、丸がその時刻において盛り上がり値算出対象の単語が文書中に出現していることを示している。図６（ａ）では、基準期間において単語はｔ１〜ｔ７のタイミングで合計７回出現している。基準期間の７回のうち、４回が対象期間に含まれており、単語の出現回数の大部分が直近に集中しているといえる。
【００３８】
盛り上がり値生成部１６は、カウントした対象期間での当該単語の出現頻度と基準期間での単語の出現頻度（対象期間及び参照期間での単語の出現頻度）との比から盛り上がり値を算出する。盛り上がり値生成部１６は、例えば、以下の式（１）に基づいて盛り上がり値である対数尤度比ｂｕｒｓｔ（ｗ）を算出する。
【数１】
0005512737.tif 000002
ここで、ｗは判定対象の単語、ｔｇｔ（ｗ）は当該単語の対象期間における出現頻度、ｃ（ｗ）は当該単語の基準期間における出現頻度、ｋは盛り上がり値生成部１６に予め記憶された正の値であるスムージングパラメータである。算出の都合上対数を取っているが、ｌｏｇは単調増加関数であり、対数を取っても盛り上がり値の順序（ランキング）には影響しない。スムージングパラメータは、比で盛り上がり値を算出している関係上、出現頻度の極端に少ない単語が盛り上がっていると判定されるのを防ぐために用いる。但し、必ずしもスムージングパラメータを導入する必要はない。図７（ａ）に対数尤度比を計算する際に用いる値を概念的に示す。
【００３９】
盛り上がり値生成部１６は、単語が過去ワードである（単語が判断期間において新規に盛り上がった話題を示す単語として判定された）と判断された場合には、以下のように盛り上がり値を算出する。この場合、盛り上がり値生成部１６は、構文解析結果格納部１４に格納された各単語に対応付けられた時刻情報を参照して、対象期間での文書における当該単語の出現頻度（出現回数）と、当該単語が新規に盛り上がった話題を示す単語として判定された際の参照期間（当該単語が新規に盛り上がった話題を示す単語として判定された際の基準期間から、その際の対象期間を除いた期間）での当該文字列の出現頻度とをカウントする。なお、基準期間における出現頻度は、過去ワードと判定された際にカウントした値を利用して算出してもよい。
【００４０】
常に直近２４時間の出現頻度のうち、直近１時間の出現頻度の占める割合から、盛り上がりを判定することとすると、出現頻度が上がり続けないとホットワードに残ることができない。本実施形態のように、過去に盛り上がった話題を示す単語（ホットワード）であると判定された場合と同様の尺度で比較することで、継続的に出現する（つぶやかれている）単語がホットワードに残りやすいようにしている。
【００４１】
例えば、図６（ｂ）に示すように図６（ａ）に示した場合の次の１時間の間に単語が４回出現している場合を考える。この場合、図６（ａ）の場合と同様に計算すると、基準期間に１１回、対象期間に４回単語が登場したことになるが、引き続き盛り上がっているにもかかわらず、基準期間における出現頻度に占める対象期間における出現頻度の割合が減少してしまう。すなわち、ホットワードと判定されない恐れがある。そこで、図６（ｂ）に示すように過去ワードと判断された（新規に盛り上がっていると判定された）対象期間を算出対象から除外する。即ち、当該対象期間と、過去ワードであると判定された際の基準期間ＢＰから過去ワードであると判定された際の対象期間ＯＰを除いた参照期間ＲＰとを、計算対象となる基準期間とする。これにより、新規（初回）の場合と同様に、基準期間７回に対し、対象期間４回となり、引き続き盛り上がっていると判定可能になる。この場合も、判断期間に過去ワードと判定されなかった場合と同様に基準期間は、２４時間である。
【００４２】
この場合、盛り上がり値生成部１６は、例えば、以下の式（２）に基づいて、新規に盛り上がっていると判定されてからｎ回目の対象期間における単語の盛り上がり値である対数尤度比ｂｕｒｓｔｎ（ｗ）を算出する。
【数２】
0005512737.tif 000003
ここで、ｔｇｔｎ（ｗ）は当該単語の、新規に盛り上がっていると判定されてからｎ回目の対象期間における出現頻度、ｔｇｔ１（ｗ）は当該単語の、新規に盛り上がっていると判定された際の対象期間における出現頻度、ｃ（ｗ）は新規に盛り上がっていると判定された際の当該単語の基準期間における出現頻度である。図７（ｂ）にこの場合の対数尤度比を計算する際に用いる値を概念的に示す。
【００４３】
盛り上がり値生成部１６は、算出した盛り上がり値を計算時刻と共に盛り上がり値格納部１７に出力する。また、図５に示すように計算に用いた対象期間及び基準期間における出現頻度を合わせて盛り上がり値格納部１７に格納させてもよい。なお、この時点では、各単語が盛り上がった話題を示す単語であるかの判定は行われていないため、図５に示すテーブルの「新規」のカラムに（仮に新規に盛り上がった話題を示す単語として判定される単語だったとしても）新規フラグはセットされない。なお、盛り上がり値生成部１６によって判断された、単語が過去ワードであるか否か（単語が新規に盛り上がった話題を示すものであるか否か）を示す情報は、例えば、盛り上がり値格納部１７に格納されてグルーピング部１８にも把握可能となっている。
【００４４】
このようにして計算した盛り上がり値に基づいて、各単語が対象期間において盛り上がった話題を示す単語であるか否かを判定することとしてもよい。例えば、盛り上がり値の小さい順（盛り上がった度合いが高い順）に予め設定された数の単語を盛り上がった話題を示す単語と判定することとしてもよい。あるいは、盛り上がり値と予め設定された閾値とを比較して、その比較結果に基づいて盛り上がった話題を示す単語を判定することとしてもよい。本実施形態の例の場合、盛り上がり値が小さい程、盛り上がっているものであるので、盛り上がり値が閾値よりも小さい場合に盛り上がった話題を示す単語と判定する。
【００４５】
本実施形態では、単語が盛り上がった話題を示す単語であるか否かを判定するために更に以下の構成を有する。ミニブログサービスにおいては、ユーザが気に入った投稿を自分の友人に広める「拡散」という仕組みがある。その関係上、単一の投稿に由来してある話題が盛り上がるということがしばしば起こる。単語単位で盛り上がりを判定した場合、盛り上がっている話題を同一の文章から抽出した単語が占めてしまうということが起こりえる。そのため、グルーピング処理を施すことでより適切に盛り上がっている話題を示す単語を特定することができる。これにより、例えば、ユーザに効率的に盛り上がっている話題に一覧を提供することが可能になる。
【００４６】
グルーピング部１８は、上記を実現するための構成であり、対象期間に出現した単語をグルーピングして、グルーピングされた単語に対して盛り上がった話題を示す単語であるか否かを判定する手段（盛り上がり判定手段の一部）である。グルーピング部１８は、具体的に以下のようにグルーピングを行う。
【００４７】
グルーピング部１８は、２つの単語がグルーピングされるべきものか、単語同士毎に判断する。具体的には、一方の単語が他方の単語に部分一致しているか否か（単語同士が包含関係にあるか）を判断することでグルーピングを行ってもよい。なお、部分一致の判断において、単語自体の部分一致に加えて、構文解析結果格納部１４に格納されている単語の読み同士を比較して、それらが部分一致しているか（単語の読み同士が包含関係にあるか）の判断が行われてもよい。なお、読みについては、部分一致に加えて完全一致している場合にもグルーピングされるべき単語とされてもよい。
【００４８】
２つの単語同士が単語自体又は読みにおいて部分一致していた場合には、それらがグルーピングされるべきものであると判断する。グルーピングされるべきものであると判断された場合、２つの単語のうち文字列が長い方（文字数が多い方）を代表語としてグルーピングを行い、グルーピングに係る情報をグループ情報格納部１９に格納する。図８にグループ情報格納部１９に格納に格納される情報の例を示す。ここでは、「桜前線」との単語に対して、「桜」との単語が部分一致の関係にあるため、桜に対して桜前線を代表語に設定している。ここで、代表語とは実際に盛り上がっている単語として、ユーザに提示される単語である。なお、一つの単語に対して複数の単語と部分一致する場合には、例えば、当該複数の単語のうち盛り上がり値が最も小さい単語とグルーピングする。
【００４９】
また、グルーピング部１８は、一方の単語を含む文書の数、他方の単語を含む文書の数、及び両方の単語を含む文書の数をカウントし、カウントしたそれらの数から２つの単語同士の共起度を算出して、共起度に基づいてグルーピングをしてもよい。このカウントは、例えば、構文解析結果格納部１４に格納されている情報を参照して行われる。共起度の算出イメージを図９に、共起度を算出するための式（３）を以下にそれぞれ示す。
【数３】
0005512737.tif 000004
この式（３）は２つの単語ｗとｗ´との共起度を算出するものである。ｗの出現する文書の数をａ、ｗ´の出現する文書の数をｂ、ｗとｗ´とが両方（同時に）出現する文書の数をｃとしている。
【００５０】
式（３）はｄｉｃｅ係数と呼ばれる共起式である。選択した単語ｗとその他の単語全ての共起度を算出し、共起度が予め設定した閾値以上の場合（あるいは、閾値を超える場合としてもよい）にはそれらの単語同士をグルーピングする。共起度が閾値を超える単語が複数ある場合には共起度の最も高い単語とグルーピングする。共起度としてｄｉｃｅ係数を例示したが、その他Ｃｏｎｆｉｄｅｎｃｅ、Ｌｉｆｔといった共起尺度を用いてもよい。共起度でグルーピングを行う場合も、文字列が長い単語を代表語とする。
【００５１】
なお、上述した例では文字列の長い方の単語を代表語とする方法でグルーピング処理を行ったが、代表語の決定方法は単語の出現頻度や盛り上がり値が小さい値の単語（より盛り上がった話題に係る単語）を選択する方法でもよい。
【００５２】
グルーピング部１８は、以下のような順序でグルーピングを行う。グルーピング部１８は、盛り上がり値格納部１７に格納されている情報を参照して、対象期間に出現した単語のうち盛り上がり値が最も小さい（最も盛り上がった話題に係る単語）ものを選択する。グルーピング部１８は、選択した単語と、対象期間に出現した選択済みの単語とがグルーピングされるべきものか、選択済みの単語毎に判断する。なお、１度目の選択では、選択済みの単語が無いので上記の判断は行われない。
【００５３】
グルーピング部１８は、選択した単語が選択済みの単語の何れともグルーピングされるものと判断しなかった場合、当該単語を代表語、及び代表語に対応付けられた単語とする。これは、例えば、図８のテーブルの１行目に示すように単語、代表語の何れもが桜前線とする。なお、選択した単語自身を代表語とする際には、選択した単語が過去ワードであり、かつ過去ワードである代表語の数が予め設定した一定数（過去ワードの代表語の上限）に到達しているか否かが判断される。選択した単語が過去ワードであり、かつ過去ワードである代表語の数が一定数に到達している場合には、選択した単語を代表語として追加しない。これは、盛り上がった話題を示す単語として、過去ワードの占める割合を一定未満にすることで、過去ワードばかりが盛り上がった話題を示す単語として挙がり続けることを防止するためである。上記の場合以外には、グルーピング部１８は、選択した単語自身をグループ情報格納部１９に代表語として格納させる。
【００５４】
グルーピング部１８は、選択した単語自身を代表語とした（代表語が１つ増えた）後に、代表語の数がリクエスト数に到達したか否かを判断する。リクエスト数は、代表語の数として予め設定された数であり、過去ワードの代表語の上限よりも大きな値とされる。リクエスト数は、代表語の対応関係で表される単語のグループ数である。即ち、一定数の単語のグループが作成される。
【００５５】
グルーピング部１８は、代表語の数が予め設定したリクエスト数に到達したと判断した場合は、その時点で設定されている代表語及び代表語に紐付く（対応付けられた）単語（関連語）を、当該対象期間において盛り上がった話題を示す単語（話題語）と判定する。グルーピング部１８は、この代表語を盛り上がり値が小さい順（盛り上がっている話題を示す単語の順）にソートする。この場合、グルーピング部１８は、代表語に対応する盛り上がり値を使用してソートしてもよいし、同一グループ内の単語に対応する盛り上がり値のうち、最も小さいものを使用してソートしてもよい。あるいは、同一グループ内の単語に対応するグループ盛り上がり値の平均値を使用してもよい。グルーピング部１８は、話題語であると判定された単語のうち、判断期間に新規に盛り上がった話題を示す単語として判定されていないもの（過去ワードでないもの）を、新規に盛り上がった話題を示す単語（新規に話題語）とする。また、グルーピング部１８は、話題語であると判定された単語のうち、判断期間に新規に盛り上がった話題を示す単語として判定されたもの（過去ワードであるもの）を、新規でなく盛り上がった話題を示す単語とする。グルーピング部１８は、話題語のうち、新規に話題語とされた単語には、図５に示す盛り上がり値格納部１７に格納される当該単語の新規カラムに新規フラグを付与する。この新規フラグが付与された単語は、判断期間の間、過去ワードと判断される。
【００５６】
グルーピング部１８は、代表語の数が予め設定したリクエスト数に到達していないと判断した場合は、続いて、選択した単語を選択済みの単語として、新たに単語を選択する。この選択は、盛り上がり値格納部１７に格納されている情報を参照して、対象期間に出現した選択済みの単語を除いた単語のうち盛り上がり値が最も小さい（最も盛り上がった話題に係る単語）ものを選択する。
【００５７】
続いて、グルーピング部１８は、選択した単語と、対象期間に出現した選択済みの単語とがグルーピングされるべきものか、選択済みの単語毎に判断する。この判断は、上記のように単語又は単語の読みの比較、及び共起度の計算によって行われる。上記の判断によって選択された単語が、選択済みの単語の何れかとグルーピングされる場合には、両者の単語のうち一方を代表語として、もう一方を代表語に対応付けられる単語とされ、グループ情報格納部１９に格納される。ここで、代表語だった単語が新たに別の代表語に対応付けられる単語になる場合は、当該代表語だった単語に対応付けられていた単語も新たに別の代表語に対応付けする。
【００５８】
一方でグルーピング部１８は、選択した単語が、選択済みの単語の何れともグルーピングされなかった場合には、上記と同様に当該選択した単語を代表語とするか否かを判断して、代表語とした場合には再度、代表語の数がリクエスト数に到達したか否かを判断する。代表語の数がリクエスト数に到達していないと判断した場合には、グルーピング部１８は、上記と同様に再度単語を選択する。代表語の数がリクエスト数に到達したと判断した場合には、上記と同様に話題語をソートして、新規に話題語とされた単語に新規フラグを付与する。
【００５９】
グルーピング部１８は、グループ情報格納部１９に格納されている、当該対象期間において盛り上がった話題を示す単語を出力する。例えば、グルーピング部１８は、ミニブログのサービスを提供するサーバに送信する。当該サーバがユーザに盛り上がった話題を示す単語を提示することで、ユーザが当該対象期間においてどのような話題が盛り上がっているのかを知ることができる。
【００６０】
盛り上がり値生成部１６及びグルーピング部１８による盛り上がった話題を示す単語の判定の処理は、例えば、対象期間毎に、即ち上述したように１時間毎にリアルタイムで行われることとすればよい。但し、必ずしもそのように処理する必要はなく、例えば、１日毎に処理を行う等、複数の対象期間に関する処理がまとめて行われてもよい。
【００６１】
検索部２０は、検索クエリを入力して、当該検索クエリに合致する単語を検索する検索手段である。検索クエリは、例えば、ミニブログのサービスを提供するサーバから送信されるキーワードである。このキーワードは、例えば、当該サーバがユーザに提示した盛り上がった話題を示す単語の中から選択されたものであり、盛り上がった話題を示す単語の何れかである。検索部２０は、文書インデックス格納部１５に格納された情報を参照して、当該検索クエリに合致する単語に対応付けられた文書（当該単語を含む文書）の一覧を示す情報を出力する。これによって、ユーザに盛り上がっている話題に係る文書にどのようなものがあるかの情報を提供することができる。また、検索クエリに合致する単語と、同一グループに所属する（代表語の対応関係がある）単語を含む文書も出力することとしてもよい。これによって、盛り上がっている話題に関する文書を効率的にユーザに提供することが可能になる。以上が、話題抽出装置１０の機能構成である。
【００６２】
図１０に話題抽出装置１０のハードウェア構成を示す。図１０に示すように話題抽出装置１０は、ＣＰＵ（Central Processing Unit）１０１、主記憶装置であるＲＡＭ（RandomAccess Memory）１０２及びＲＯＭ（Read Only Memory）１０３、通信を行うための通信モジュール１０４、並びにハードディスク等の補助記憶装置１０５等のハードウェアを備えるコンピュータを含むものとして構成される。これらの構成要素がプログラム等により動作することにより、上述した話題抽出装置１０の機能が発揮される。以上が、話題抽出装置１０の構成である。
【００６３】
引き続いて、図１１〜図１３のフローチャートを用いて、本実施形態に係る話題抽出装置１０で実行される処理である話題抽出方法を説明する。まず、図１１のフローチャートを用いて話題抽出方法全体の処理について説明する。
【００６４】
話題抽出装置１０では、まず、文書受信部１１によって解析対象となる文書が取得される（Ｓ０１、テキスト取得ステップ）。取得された文書は、文書受信部１１から文書フィルタリング部１２に出力される。続いて、文書フィルタリング部１２によって、文書がフィルタリングされて、解析するのに適切でない文書を解析対象から除外されて削除される。具体的には、ブラックリストに含まれる単語又はアカウントを含む文書が削除される（Ｓ０２、フィルタリングステップ）。削除されなかった文書が、文書フィルタリング部１２から構文解析部１３に入力される。
【００６５】
続いて、構文解析部１３によって、文書から話題を示す単語が抽出される（Ｓ０３、文字列抽出ステップ）。抽出された単語は、時刻情報等と共に構文解析結果格納部１４に格納される。また、合わせて、構文解析部１３によって、抽出された単語と単語の抽出元である文書の文書ＩＤとの対応情報が生成されて、文書インデックス格納部１５に格納される。
【００６６】
続いて、盛り上がり値生成部１６によって、構文解析結果格納部１４によって格納された情報が参照されて、対象期間に文書に出現した各単語について所定の期間における出現頻度がカウントされる。続いて、盛り上がり値生成部１６によって、カウントされた出現頻度に基づいて各単語について、盛り上がり値である対数尤度比が算出される（Ｓ０４、判断ステップ、盛り上がり判定ステップ）。各単語及び算出された対数尤度比は、対数尤度比の小さい順にソートされて盛り上がり値格納部１７に格納される。
【００６７】
続いて、グルーピング部１８によって、同一の話題を示すものとして単語がグルーピングされて、グループの代表語のうち、予め設定されたリクエスト数である上位ｎ件及びその代表語に対応付けられた単語が、対象期間における話題語として選択される（Ｓ０５、盛り上がり判定ステップ）。選択された対象期間における話題語はグループ情報格納部１９に格納される。また、話題語の情報は、ミニブログのサービスを提供するサーバに送信される等して、ユーザに提供されるようにしてもよい。また、この情報に基づいて、上述した検索部２０による検索処理が行われえる。以上が、話題抽出方法全体の処理である。
【００６８】
引き続いて、図１２のフローチャートを用いて、盛り上がり値生成部１６による盛り上がり値の計算の処理（図１１のフローチャートのＳ０４に相当）について説明する。この処理は対象期間において文書に出現した単語毎に行われる。まず、構文解析結果格納部１４に格納された情報が参照されて、対象期間での当該単語の出現頻度がカウントされる（Ｓ４０１、盛り上がり判定ステップ）。続いて、単語が対象期間から予め設定された時間遡った時刻までの判断期間に話題になっていた単語か、即ち、過去ワードであるか否かが判断される（Ｓ４０２、判断ステップ）。
【００６９】
単語が過去ワードではないと判断された場合（Ｓ４０２のＮＯ）には、基準期間が、対象期間を含み対象期間から予め設定された時間遡った時刻までの時間（例えば、直近２４時間等の直近ｍ時間）とされる（Ｓ４０３）。単語が過去ワードであると判断された場合（Ｓ４０２のＹＥＳ）には、基準期間が、当該単語が新規に（初回に）盛り上がった話題を示す単語として判定された際の基準期間から、その際の対象期間を除いた期間を引き、現在の対象期間を加えた時間とされる（Ｓ４０４）。
【００７０】
Ｓ４０３及びＳ４０４に続いて、構文解析結果格納部１４に格納された情報が参照されて、各場合で設定された基準期間での当該単語の出現頻度がカウントされる（Ｓ４０５、盛り上がり判定ステップ）。続いて、カウントされた対象期間の出現頻度、及び基準時間の出現頻度から盛り上がり値である対数尤度比が算出される（Ｓ４０６、盛り上がり判定ステップ）。以上が、盛り上がり値の計算の処理である。
【００７１】
引き続いて、図１３のフローチャートを用いて、グルーピング部１８によるグルーピング及び盛り上がった話題を示す単語の判定の処理（図１１のフローチャートのＳ０５に相当）について説明する。本処理では、盛り上がり値格納部１７に格納されている情報が参照されて、対象期間に出現した未選択の単語のうち盛り上がり値が最も小さい（最も盛り上がった話題に係る単語）ものが選択される（Ｓ５０１、盛り上がり判定ステップ）。
【００７２】
続いて、選択された単語と選択済みの単語との文字列が部分一致するか否かが判断される（Ｓ５０２、盛り上がり判定ステップ）。それらの単語の文字列が部分一致すると判断された場合（Ｓ５０２のＹＥＳ）は、それらの単語のうち文字列の長い単語が代表語とされ、それらが対応付けられてグループ情報格納部１９に格納される（Ｓ５０３、盛り上がり判定ステップ）。
【００７３】
それらの単語の文字列が部分一致しないと判断された場合（Ｓ５０２のＮＯ）は、続いて、選択された単語の読みと選択済みの単語の読みとが部分一致するか否かが判断される（Ｓ５０４、盛り上がり判定ステップ）。それらの単語の読みが部分一致すると判断された場合（Ｓ５０４のＹＥＳ）は、それらの単語のうち文字列の長い単語が代表語とされ、それらが対応付けられてグループ情報格納部１９に格納される（Ｓ５０３、盛り上がり判定ステップ）。
【００７４】
それらの単語の読みが部分一致しないと判断された場合（Ｓ５０４のＮＯ）は、続いて、選択された単語と選択済みの単語との共起度が計算されて、当該共起度が一定の閾値以上か否かが判断される（Ｓ５０５、盛り上がり判定ステップ）。共起度が閾値以上であると判断された場合（Ｓ５０５のＹＥＳ）は、それらの単語のうち文字列の長い単語が代表語とされ、それらが対応付けられてグループ情報格納部１９に格納される（Ｓ５０３、盛り上がり判定ステップ）。
【００７５】
共起度が閾値以上でないと判断された場合（Ｓ５０５のＮＯ）、続いて、選択された単語が過去ワード、かつ過去ワードの代表語が一定数に到達したか否かが判断される（Ｓ５０６、盛り上がり判定ステップ）。選択された単語が過去ワード、かつ過去ワードの代表語が一定数に到達したと判断された場合（Ｓ５０６のＹＥＳ）、選択された単語が選択済みの単語とされて、Ｓ５０１に戻り、次の単語として対象期間に出現した未選択の単語のうち盛り上がり値が最も小さいものが選択され、以降の処理が繰り返される。
【００７６】
選択された単語が過去ワード、かつ過去ワードの代表語が一定数に到達したと判断されない場合（Ｓ５０６のＮＯ）、選択された単語が、代表語及び当該代表語に対応する単語としてグループ情報格納部１９に格納される（Ｓ５０７、盛り上がり判定ステップ）。
【００７７】
続いて、当該対象期間において、グループ情報格納部１９に格納された代表語の数がリクエスト数に到達したか否かが判断される（Ｓ５０８、盛り上がり判定ステップ）。代表語の数がリクエスト数に到達していないと判断された場合（Ｓ５０８のＮＯ）、選択された単語が選択済みの単語とされて、Ｓ５０１に戻り、次の単語として対象期間に出現した未選択の単語のうち盛り上がり値が最も小さいものが選択され、以降の処理が繰り返される。
【００７８】
代表語の数がリクエスト数に到達していると判断された場合（Ｓ５０８のＹＥＳ）、それらの代表語が盛り上がった話題を示す単語である話題語とされて、それらの代表語が盛り上がり値の小さい順にソートされる（Ｓ５０９、盛り上がり判定ステップ）。この場合、グルーピング部１８は、代表語に対応する盛り上がり値を使用してソートしてもよいし、同一グループ内の単語に対応する盛り上がり値のうち、最も小さいものを使用してソートしてもよい。あるいは、同一グループ内の単語に対応するグループ盛り上がり値の平均値を使用してもよい。
【００７９】
続いて、話題語とされた代表語のうち、新規に話題語とされた単語について、盛り上がり値格納部１７に格納される当該単語の新規カラムに新規フラグが付与される。以上が、グルーピング及び盛り上がった話題を示す単語の判定の処理である。
【００８０】
上述したように、本実施形態では、単語が対象期間から遡った判断期間に新規に盛り上がった話題を示す単語として判定された場合（即ち、過去ワードである場合）には、その際の参照期間での当該単語の出現頻度が用いられて、当該単語が盛り上がった話題を示す文字列であるか否かが判定される。このように直近で盛り上がったとされた単語（例えば、話題になった単語）と、そうでない単語とで判定に用いる参照期間を分けることで、継続的に盛り上がっている話題を示す単語を適切に抽出することができる。また、盛り上がった単語の判定に出現頻度を用いているため、リアルタイム性が求められる状況で効率的にテキストデータから盛り上がり判定を行うことができる。即ち、本実施形態によれば、ミニブログサービス等の大量のストリームデータのようなテキストデータを対象に瞬間的な盛り上がりだけでなく継続的に盛り上がっている話題に関しては継続的かつリアルタイムに盛り上がっている話題を抽出することができる。
【００８１】
また、本実施形態のように対象期間での出現頻度と基準期間での出現頻度（対象期間及び参照期間での出現頻度）との比の値から盛り上がり値を算出することとしてもよい。この構成によれば、確実かつ適切に盛り上がった話題を示す単語を判定することができる。
【００８２】
また、本実施形態のように盛り上がり値の順に予め設定された数の単語を盛り上がった話題を示す単語とすることとしてもよい。この構成によれば、対象期間毎に単語の盛り上がり値にばらつきがあったとしても、確実に一定数の盛り上がった話題を示す文字列を判定することができる。これにより、ユーザに確実に一定数の単語を提示することができる。但し、閾値等を用いて、一定の基準を超えた単語のみを盛り上がった話題を示す単語とするような構成としてもよい。
【００８３】
また、新規ではなく盛り上がった話題を示す単語と判定する単語の数を限定してもよい（図１３のＳ５０６の一定数に相当）。この構成によれば、新規ではなく盛り上がった話題を示す単語を制限することで、盛り上がった話題を示す文字列が新規ではなく盛り上がったものばかりとなることを防止することができる。但し、盛り上がった話題を示す文字列が新規ではなく盛り上がったものばかりとなってもよいような場合には、必ずしも上記の限定をする必要はない。
【００８４】
また、本実施形態のように、単語のグルーピングをした上で判定を行うこととしてもよい。この構成によれば、盛り上がった話題が同様の単語ばかりとなることを防止して、盛り上がった話題を示す単語として多様な文字列を抽出することができる。但し、盛り上がった話題が同様の単語ばかりとなってもよいような場合には、必ずしも上記の限定をする必要はない。
【００８５】
また、グルーピングの方法としては、単語自体を用いる方法や共起度を用いる方法とすることができる。この構成によれば、確実に単語のグルーピングを行うことができ、グルーピングされると共に盛り上がった話題を示す単語として適切な単語を抽出することができる。本実施形態では、グルーピングの方法として、単語又は単語の読みの比較、及び共起度の計算の全ての方法を用いたが、このうちの任意の１つの方法又は任意の２つの方法の組み合わせを用いてグルーピングしてもよい。また、グルーピングの方法としては他の任意の方法を用いてもよい。
【００８６】
また、本実施形態のように検索部２０を設けて、盛り上がった話題を示す単語を含む文書を検索できるようにしてもよい。この構成によれば、盛り上がった話題を示す単語だけでなく、単語の抽出元のテキストデータの情報に関しても出力することができる。
【００８７】
また、本実施形態のように解析対象の文書をフィルタリングすることとしてもよい。この構成によれば、盛り上がった話題を示す単語として抽出することが不適切な単語や文書を除外することができる。
【符号の説明】
【００８８】
１０…話題抽出装置、１１…文書受信部、１２…文書フィルタリング部、１３…構文解析部、１４…構文解析結果格納部、１５…文書インデックス格納部、１６…盛り上がり値生成部、１７…盛り上がり値格納部、１８…グルーピング部、１９…グループ情報格納部、２０…検索部、１０１…ＣＰＵ、１０２…ＲＡＭ、１０３…ＲＯＭ、１０４…通信モジュール、１０５…補助記憶装置。
【図１】
0005512737.tif 000005
【図２】
0005512737.tif 000006
【図３】
0005512737.tif 000007
【図４】
0005512737.tif 000008
【図５】
0005512737.tif 000009
【図６】
0005512737.tif 000010
【図７】
0005512737.tif 000011
【図８】
0005512737.tif 000012
【図９】
0005512737.tif 000013
【図１０】
0005512737.tif 000014
【図１１】
0005512737.tif 000015
【図１２】
0005512737.tif 000016
【図１３】
0005512737.tif 000017