まず、本実施例にかかる情報共有システムの特徴について説明する。本実施例にかかる情報共有システムは、情報管理サーバが、所定期間内に作成された記事(ブログ等も含む)を記憶装置から取得し、取得した記事に含まれるキーワードを特徴キーワードとして抽出する。そして、情報管理サーバは、対象となる利用者または複数の利用者から構成されるコミュニティによって作成された記事と特徴キーワードとを基にして利用者またはコミュニティに対する各特徴キーワードの特徴量(第1TF/IDF値)を算出し、算出した特徴量が閾値以上となる特徴キーワードを利用者またはコミュニティの特徴(プロファイル)を示すプロファイルキーワードとして抽出する。
このように、本実施例にかかる情報共有システムでは、情報管理サーバが特徴キーワードを抽出し、抽出した特徴キーワードと対象となる利用者またはコミュニティによって作成された記事を基にして、プロファイルキーワードを抽出するので、利用者にとって有益な情報を利用者に提供することができる。
また、本実施例にかかる情報共有システムでは、各利用者(各コミュニティも含む)の各プロファイル情報を基にして類似度を算出し、算出した類似度に基づいて利用者に類似する他の利用者やコミュニティ(類似プロファイル)を抽出するので、利用者にとって有益な情報を利用者に提供することができる。
また、本実施例にかかる情報システムでは、所定の期間内に作成された記事を抽出し、抽出した記事と特徴キーワードとを基にして特徴量(第2TF/IDF値)を算出し、算出した特徴量が閾値以上となるキーワードを流行のキーワード(トレンドキーワード)として抽出するので、利用者にとって有益な情報を利用者に提供することができる。
次に、本実施例にかかる情報共有システムの構成について説明する。図1は、本実施例にかかる情報共有システムの構成を示すブロック図である。同図に示すように、この情報共有システムは、利用者が使用する利用者端末10〜30と、各種の情報を管理する情報管理サーバ100とを備え、利用者端末10〜30および情報管理サーバ100は、ネットワーク50を介して相互に接続されている。なお、ここでは説明の便宜上、利用者端末10〜30を示すが、この情報共有システムは、その他の利用者端末を有していても良い。
ここで、利用者端末10〜30は、情報管理サーバとデータ通信を実行し、利用者によって作成された記事の情報を情報管理サーバ100に出力する装置である。また、利用者端末10〜30は、利用者またはコミュニティによって作成された記事の情報および上記したプロファイルキーワード、トレンドキーワード、類似プロファイルなどを含んだ画面に表示するための情報を情報管理サーバ100から取得して、モニタに表示する。
図2は、利用者端末10〜30のモニタに表示される画面イメージの一例を示す図である。同図に示すように、この画面イメージでは、富士太郎さんのプロファイルキーワード、富士太郎さんの類似プロファイル、トレンドキーワードが表示されている。利用者は、自身でキーワード検索などを実行しなくても、この画面を参照することによって、各種有益な情報を効率よく取得することができ、重要な情報を見逃すことがなくなる。
情報管理サーバ100は、利用者端末10から記事の情報を取得して管理すると共に、上記した特徴キーワード、プロファイルキーワード、類似プロファイル、トレンドキーワードを抽出して、画面に表示するための情報を利用者端末10〜30に提供する装置である。図3は、本実施例にかかる情報管理サーバ100の構成を示す機能ブロック図である。同図に示すように、この情報管理サーバ100は、入力部110と、出力部120と、通信制御IF部130と、入出力制御IF部140と、記憶部150と、制御部160とを備えて構成される。
このうち、入力部110は、各種の情報を入力する手段であり、キーボードやマウス、マイクなどによって構成され、例えば、後述する記憶部150に記憶された各テーブル150a〜150lの更新情報等を受け付けて入力する。なお、後述するモニタ(出力部120)も、マウスと協働してポインティングデバイス機能を実現する。
出力部120は、各種の情報を出力する出力手段であり、モニタ(若しくはディスプレイ、タッチパネル)やスピーカなどによって構成され、例えば、後述する記憶部150に記憶された各テーブル150a〜150lの情報を出力する。
通信制御IF部130は、主にネットワーク50を介して利用者端末10〜30との間におけるデータ通信を制御する手段である。入出力制御IF部140は、入力部110、出力部120、通信制御IF部130、記憶部150、制御部160によるデータの入出力を制御する手段である。
記憶部150は、制御部160による各種処理に必要なデータおよびプログラムを記憶する記憶手段(格納手段)であり、特に本発明に密接に関連するものとしては、図3に示すように、記事管理テーブル150aと、記事情報テーブル150bと、実行管理テーブル150cと、同義語・結合語テーブル150dと、キーワードテーブル150eと、記事キーワードテーブル150fと、不要語テーブル150gと、記事空間管理テーブル150hと、プロファイル情報テーブル150iと、プロファイルキーワードテーブル150jと、トレンドキーワードテーブル150kと、類似プロファイルテーブル150lとを備える。
以下において、記憶部150が記憶する各テーブル150a〜150lについて順に説明する。記事管理テーブル150aは、記事およびこの記事を作成した利用者あるいはコミュニティの情報等を管理するテーブルである。図4は、記事管理テーブル150aのデータ構造の一例を示す図である。
図4に示すように、この記事管理テーブル150aは、記事を識別する記事ID(Identification)、投稿者(利用者、コミュニティを含む)、投稿者を識別するプロファイルID、投稿先、記事本文を更新した日時を示すコンテンツ更新日時、記事本文、記事に対するコメントの数を示す被コメント総数、削除フラグを有する。削除フラグは、該当ラインの情報が有効か否かを示す情報であり、削除フラグが「オン」の場合は該当ラインの情報が有効であることを示し、「オフ」の場合は該当ラインの情報が無効であることを示す(以下に説明するテーブルの削除フラグも同様であるため、以下の削除フラグの説明は省略する)。
記事情報テーブル150bは、記事ごとに特徴キーワードを抽出したか否かを管理するテーブルである。図5は、記事情報テーブル150bのデータ構造の一例を示す図である。同図に示すように、この記事情報テーブル150bは、記事ID、投稿者(利用者、コミュニティを含む)、投稿先、コンテンツ更新日時、キーワード抽出フラグ、削除フラグを有する。このうち、キーワード抽出フラグは、該当ラインの記事IDによって識別される記事から特徴キーワードを抽出済みか否かを示す情報である。キーワード抽出フラグが「オン」の場合は、記事から特徴キーワードを抽出済みであることを示し、「オフ」の場合は、記事から特徴キーワードを抽出していないことを示す。
実行管理テーブル150cは、記事から特徴キーワードを抽出する処理(特徴キーワード抽出処理)、利用者およびコミュニティのプロファイルキーワードを抽出する処理(プロファイルキーワード抽出処理)の実行開始日時を記憶するテーブルである。図6は、実行管理テーブル150cのデータ構造の一例を示す図である。同図に示すように、この実行管理テーブル150cは、処理種別および実行開始日時を有する。
同義語・結合語テーブル150dは、各種の同義語・結合語を管理し、置換元となるキーワードと置換後のキーワードとを対応付けて記憶するテーブルである。図7は、同義語・結合語テーブル150dのデータ構造の一例を示す図である。同図に示すように、この同義語・結合語管理テーブル150dは、置換元キーワード、置換キーワード、更新日時を有する。図7に示す同義語・結合語テーブル150dによれば、例えば、記事から抽出されるキーワード「コンピューター」は、「コンピュータ」に置換されることになる。
キーワードテーブル150eは、記事に含まれるキーワード(特徴キーワード)に関わる各種情報を記憶するテーブルである。図8は、キーワードテーブル150eのデータ構造の一例を示す図である。同図に示すように、このキーワードテーブル150eは、キーワードID、キーワード(特徴キーワード)、正規化済キーワード、キーワード出現総数、含有コンテンツ数、不要語フラグを有する。
このうち、正規化済キーワードは、正規化されたキーワードを示す。例えば、「abc本店」は、「ABC本店」に正規化される。キーワード出現総数は、記事管理テーブル150aの全記事本文中に所定のキーワードが出現する総数を示す。図8の1段目に示す例では、キーワード「コンピュータ」が、記事本文中に「10000回」出現することが記憶されている。
含有コンテンツ数は、記事管理テーブル150aの記事のうち、所定のキーワードを含む記事の数を示す。図8の1段目に示す例では、キーワード「コンピュータ」を含む記事が、「50」であることが記憶されている。
不要語フラグは、該当ラインのキーワードが特徴キーワードの対象となるか否かを示す情報である。不要語フラグが「オン」の場合には、該当ラインのキーワードが特徴キーワードの候補とならないことを示し、「オフ」の場合には、該当ラインのキーワードが特徴キーワードの候補となることを示している。
記事キーワードテーブル150fは、特徴キーワードのキーワードIDとかかる特徴キーワードを含む記事とを対応付けて記憶するテーブルである。図9は、記事キーワードテーブル150fのデータ構造の一例を示す図である。同図に示すように、この記事キーワードテーブル150fは、記事ID、キーワードID、キーワード出現数、削除フラグを有する。
ここで、図9におけるキーワードIDによって識別されるキーワードは、特徴キーワードを示す。また、キーワード出現数は、キーワードIDによって識別される特徴キーワードが記事IDによって識別される記事に出現する回数を示す。
不要語テーブル150gは、特徴キーワードの候補とならないキーワード(不要語)を記憶するテーブルである。図10は、不要語テーブル150gのデータ構造の一例を示す図である。同図に示すように、この不要語テーブル150gは、各種不要語を記憶している。
記事空間管理テーブル150hは、投稿者(利用者、コミュニティを含む)の個人情報等を管理するテーブルである。図11は、記事空間管理テーブル150hのデータ構造の一例を示す図である。同図に示すように、この記事空間管理テーブル150hは、投稿者を識別するプロファイルID、記事空間識別情報、名称、該当ラインを更新した日時を示す更新日時、削除フラグを有する。このうち、記事空間識別情報は、プロファイルIDに対応する投稿者が個人(単独の利用者)かコミュニティかを示す情報である。
プロファイル情報テーブル150iは、プロファイルIDに対応する各種情報を記憶するテーブルである。図12は、プロファイル情報テーブル150iのデータ構造の一例を示す図である。同図に示すように、このプロファイル情報テーブル150iは、プロファイルID、記事空間識別情報、キーワード抽出フラグ、類似度算出フラグ、投稿者が作成した記事の総数を示す記事総数、投稿者が作成した記事に対する被コメント総数、削除フラグを有する。
図12におけるキーワード抽出フラグは、該当ラインの投稿者に対応するプロファイルキーワードを抽出済みか否かを示す情報である。キーワード抽出フラグが「オン」の場合には、プロファイルキーワードを抽出済みであることを示し、「オフ」の場合には、プロファイルキーワードを抽出していないことを示す。
類似度算出フラグは、該当ラインの投稿者に対応する類似度(類似プロファイルを抽出する場合に利用される値であり、詳細は後述する)を算出したか否かを示す情報である。類似度算出フラグが「オン」の場合には、類似度を算出済みであることを示し、「オフ」の場合には、類似度を算出していないことを示す。
プロファイルキーワードテーブル150jは、投稿者(利用者、コミュニティを含む)のプロファイルキーワードを管理するテーブルである。図13は、プロファイルキーワードテーブル150jのデータ構造の一例を示す図である。同図に示すように、このプロファイルキーワードテーブル150jは、プロファイルID、記事空間識別情報、キーワードID、第1TF/IDF値、キーワード出現総数、含有コンテンツ数、不要語フラグ、削除フラグを有する。
図13に含まれるキーワードIDは、投稿者に対するプロファイルキーワードのキーワードIDを示す。例えば、プロファイルID「p0001」によって識別される投稿者のプロファイルキーワードは、キーワードID「w0001」によって識別されるキーワードおよび「w0002」によって識別されるキーワードとなる。
第1TF/IDF値は、投稿者(利用者、コミュニティを含む)に対する特徴キーワードの特徴量を示し、第1TF/IDF値の値が大きいほど、より該当投稿者の特徴を良く表す特徴キーワードとなる。第1TF/IDF値の算出方法は後述する。なお、キーワード出現総数、含有コンテンツ数は上記と同様である。
トレンドキーワードテーブル150kは、トレンドキーワードを管理するテーブルである。図14は、トレンドキーワードテーブル150kのデータ構造の一例を示す図である。同図に示すように、このトレンドキーワードテーブル150kは、キーワードID、第2TF/IDF値、キーワード出現総数、含有コンテンツ数を有する。
図14に含まれるキーワードIDは、トレンドキーワードとなるキーワードのキーワードIDを示す。例えば、キーワードID「w0001」によって識別されるキーワードは、トレンドキーワードである。第2TF/IDF値は、対応するトレンドキーワードの特徴量を示し、第2TF/IDF値の値が大きいほど、より流行しているキーワードとなる。なお、キーワード出現総数、含有コンテンツ数は上記と同様である。
類似プロファイルテーブル150lは、投稿者(利用者、コミュニティを含む)に類似する利用者およびコミュニティ(類似プロファイル)を管理するテーブルである。図15は、類似プロファイルテーブル150lのデータ構造の一例を示す図である。同図に示すように、この類似プロファイルテーブル150lは、プロファイルID、情報の順序を表すシーケンス番号、類似プロファイルID、類似度を有する。
このうち類似プロファイルIDは、プロファイルIDによって識別される投稿者に類似する利用者およびコミュニティのプロファイルIDを示す。例えば、プロファイルID「p0001」によって識別される投稿者の類似プロファイルは、プロファイルID(類似プロファイルID)「p0022」,「p0087」によって識別される投稿者(利用者あるいはコミュニティ)となる。類似度は、プロファイルIDの投稿者に対して類似プロファイルIDの投稿者がどれほど類似しているか否かを示す情報であり、数値が大きいほどより類似していることになる。
図3の説明に戻ると、制御部160は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する制御手段であり、特に本発明に密接に関連するものとしては、図3に示すように、情報管理部160aと、特徴キーワード抽出処理部160bと、プロファイルキーワード抽出処理部160cと、類似度算出処理部160dと、トレンドキーワード抽出処理部160eと、サービス提供処理部160fとを備える。
情報管理部160aは、記憶部150に記憶された各テーブル150a〜150lを管理する手段である。例えば、情報管理部160aは、各テーブル150a〜150lに対する更新データを取得した場合に、取得した更新データによって各テーブル150a〜150lに記憶された情報を更新する。
特徴キーワード抽出処理部160bは、記憶部150に記憶された各テーブル150a〜150lの情報を用いて特徴キーワードを抽出する手段である。図16および図17は、特徴キーワード抽出処理部160bの具体的な処理を示す図である。
まず、図16から説明すると、特徴キーワード抽出処理部160bは、実行管理テーブル150cから処理種別「特徴キーワード抽出処理」に対応する実行開始時間<A>を取得し(図16の(1)参照)、記事管理テーブル150aからコンテンツ更新日時が<A>よりも新しい各種記事情報(記事ID、投稿者、投稿先、削除フラグ、コンテンツ更新日時)を取得する(図16の(2)参照)。
そして、特徴キーワード抽出処理部160bは、図16の(2)で取得した各種記事情報を記事情報テーブル150bに登録し(図16の(3)参照)、今回の処理における実行開始日時を、実行管理テーブル150cに登録する(図16の(4)参照)。
その後、特徴キーワード抽出処理部160bは、同義語・結合語テーブル150dの更新日時と、記事情報テーブル150bのコンテンツ更新日時とを比較して、コンテンツ更新日時が同義語・結合語テーブル150dの更新日時以降となる記事IDのキーワード抽出フラグを「オフ」に設定する(図示略)。
続いて、図17の説明に移ると、特徴キーワード抽出処理部160bは、記事情報テーブル150bからキーワード抽出フラグが「オフ」の記事ID一覧を取得し(図17の(1)参照)、図17の(1)で取得した各記事IDに対応する記事本文を取得する(図17の(2)参照)。
特徴キーワード抽出処理部160bは、記事本文からキーワードを抽出する(図17の(3))。なお、記事本文からキーワードを抽出する場合には、周知技術である形態素解析等を実行すればよい。
続いて、特徴キーワード抽出処理部160bは、同義語・結合語テーブル150dから、置換元キーワード・置換キーワードの一覧を取得し、取得した一覧と図17の(3)で抽出したキーワードとを比較することにより、各キーワードを置換する(図17の(4)参照)。
そして、特徴キーワード抽出処理部160bは、キーワード(置換したキーワード)に対応する各種情報(正規済キーワード、品詞タグ、キーワード出現総数)を作成する(図17の(5)参照)。なお、正規済キーワードは、当該正規キーワードとキーワードとを対応付けたテーブル(図示略)を特徴キーワード抽出処理部160bが保持しており、かかるテーブルを利用して、特徴キーワード抽出処理部160bは、キーワードを正規化する。また、特徴キーワード抽出処理部160bがキーワードと、記事管理テーブル150aに記憶された記事本文とを比較することによりキーワード出現総数を計数するものとする。
続いて、特徴キーワード抽出処理部160bは、図17の(5)で作成した各種情報をキーワードテーブル150eに登録する(図17の(6)参照)。キーワードテーブル150eに登録される各キーワードが、特徴キーワードとなる。なお、特徴キーワード抽出処理部160bは、キーワードと記事管理テーブル150aに記憶された記事本文とを比較することにより含有コンテンツ数を計数するものとする。
また、特徴キーワード抽出処理部160bは、記事IDと、当該記事IDから抽出したキーワード(特徴キーワード)とを対応づけた各種情報(記事ID、キーワードID、キーワード出現総数、削除フラグ)を記事キーワードテーブル150fに登録し(図17の(7)参照)、処理が終了した記事情報テーブルのキーワード抽出フラグを「オン」に設定する(図17の(8)参照)。
その後、特徴キーワード抽出処理部160bは、不要語テーブル150gに記憶された各不要語と、キーワードテーブル150eの各キーワード(あるいは正規済キーワード)とを比較し、不要語と一致するキーワードのラインに対応する不要語フラグを「オン」に設定する(図示略)。
図3の説明に戻ると、プロファイルキーワード抽出処理部160cは、投稿者(利用者、コミュニティ含む)によって作成された記事と特徴キーワードとを基にして、投稿者の特徴を示すプロファイルキーワードを抽出する手段である。図18および図19は、プロファイルキーワード抽出処理部160cの具体的な処理を示す図である。
まず、図18から説明すると、プロファイルキーワード抽出処理部160cは、実行管理テーブル150cから処理種別「プロファイルキーワード抽出処理」に対応する実行開始時間<A>を取得し(図18の(1)参照)、記事空間管理テーブル150hから更新日時が<A>よりも新しい各種プロファイル情報(プロファイルID、記事空間識別情報、削除フラグ)を取得する(図18の(2)参照)。
そして、プロファイルキーワード抽出処理部160cは、図18の(2)で取得した各種プロファイル情報をプロファイル情報テーブル150iに登録し(図18の(3)参照)、今回の処理における実行開始日時を実行管理テーブル150cに登録する(図18の(4)参照)。
また、プロファイルキーワード抽出処理部160cは、実行管理テーブル150cの「プロファイルキーワード抽出処理」に対応する実行開始時間<A>以降に更新されたプロファイルIDのキーワード抽出フラグを「オフ」に設定する(図示略)。
続いて、図19の説明に移ると、プロファイルキーワード抽出処理部160cは、プロファイル情報テーブル150iからキーワード抽出フラグが「オフ」のプロファイルID一覧を取得し(図19の(1)参照)、記事管理テーブル150aからプロファイルIDに対応する記事総数(プロファイルIDによって識別される投稿者が作成した記事の総数)および被コメント総数を取得し(図19の(2)参照)、図19の(2)で取得した各種情報、すなわち、プロファイルIDと記事総数と被コメント総数とを対応付けてプロファイル情報テーブル150iに登録する(図19の(3)参照)。
そして、プロファイルキーワード抽出処理部160cは、図19の(1)で取得したプロファイルIDに紐付く記事(記事ID)のキーワードを記事キーワードテーブル150fと記事情報テーブル150bから取得する(図19の(4)参照)。なお、プロファイルIDに紐付く記事IDは、例えば、記事管理テーブル150aを参照することにより、判定することができる。
続いて、プロファイルキーワード抽出処理部160cは、図19の(4)で取得した各キーワード(特徴キーワード)の第1TF/IDF値を算出する(図19の(5)参照)。第1TF/IDF値の具体的な算出式は、
第1TF/IDF値=(プロファイルID(投稿者)の記事のキーワードの出現回数<キーワード出現総数>)×log{(プロファイルID(投稿者)によって作成された記事の記事総数)/(プロファイルID(投稿者)によって作成された記事の内でキーワードを含む記事数<含有コンテンツ数>)}
によって表すことができる。なお、上式の各値は、プロファイルキーワード抽出処理部160cが各テーブル150a〜150lを参照して、予め計数しておくものとする。
そして、プロファイルキーワード抽出処理部160cは、プロファイルIDにかかる各種情報(プロファイルID、記事空間識別情報、キーワードID、第1TF/IDF値、キーワード出現総数、含有コンテンツ数、不要語フラグ、削除フラグ)をプロファイルキーワードテーブル150jに登録し(図19の(6)参照)、プロファイルキーワードテーブル150jに登録したプロファイルIDのキーワード抽出フラグ(プロファイル情報テーブル150iのキーワード抽出フラグ)を「オン」に設定する(図19の(7)参照)。
その後、プロファイルキーワード抽出処理部160cは、不要語テーブル150gに記憶された各不要語と、プロファイルキーワードテーブル150jの各キーワード(キーワードIDによって識別されるキーワード)とを比較し、不要語と一致するキーワードのラインに対応する不要語フラグを「オン」に設定する(図示略)。
プロファイルキーワードテーブル150jに記憶された各キーワード(キーワードIDによって識別されるキーワード<特徴キーワード>)のうち、第1TF/IDF値が閾値以上となるキーワードが、該当プロファイルIDに対応するプロファイルキーワードとして抽出されることになる。
図3の説明に戻ると、類似度算出処理部160dは、各プロファイルIDのプロファイルキーワードを基にして類似度を算出し、算出した類似度に基づいて、類似するプロファイルIDを抽出する手段である。図20は、類似度算出処理部160dの具体的な処理を示す図である。
図20に示すように、類似度算出処理部160dは、プロファイル情報テーブル150iから類似度算出フラグが「オフ」のプロファイルID一覧を取得し(図20の(1)参照)、図20の(1)で取得したプロファイルIDの各プロファイルキーワード一覧(プロファイルID、キーワードID、第1TF/IDF値、キーワード出現総数、含有コンテンツ数、不要語フラグ)をプロファイルキーワードテーブル150jから取得する(図20の(2)参照)。
続いて、類似度算出処理部160dは、プロファイル情報テーブル150iから全てのプロファイルID一覧を取得し(図20の(3)参照)、図20の(3)で取得したプロファルIDの各プロファイルキーワード一覧(プロファイルID、キーワードID、第1TF/IDF値、キーワード出現総数、含有コンテンツ数、不要語フラグ)をプロファイルキーワードテーブル150jから取得する(図20の(4)参照)。
そして、類似度算出処理部160dは、図20の(2)、(4)で取得したプロファイルキーワード一覧から各プロファイル間の類似度を算出する(図20の(5)参照)。ここで、一例として、各プロファイルIDによって識別される投稿者Aさん、Bさん、Cさんが存在し、Aさんのプロファイルキーワードが(キーワード1<10>、キーワード2<5>、キーワード3<8>)、Bさんのプロファイルキーワードが(キーワード1<18>、キーワード2<56>、キーワード9<6>)、Cさんのプロファイルキーワードが(キーワード2<12>、キーワード7<6>)であり、かつ、Aさんに対するBさん、Cさんの類似度を算出する場合について説明する(<>内の数値は、キーワード出現総数)。
まず、類似度算出処理部160dは、Aさんを基点として、Aさん、Bさん、Cさんのベクトルを算出すると、
AさんのベクトルA=(10、5、8)、
BさんのベクトルB=(18、56、0)、
CさんのベクトルC=(0、12、0)となる。
そして、類似度算出処理部160dは、ベクトル間の距離を類似度として算出し、算出した類似度が閾値以上である場合には、各ベクトルの投稿者は類似していると判定する。例えば、ベクトルAとベクトルBとの距離が閾値以上である場合には、AさんとBさんとは類似していることとなり、Aさんの類似プロファイルにBさんのプロファイルIDが設定される。この場合、Bさんを対象とする類似キーワードは、Bさんの持つキーワードのうち最大のキーワード出現総数となるキーワード2となる。
一方、ベクトルAとベクトルCとの距離が閾値未満の場合には、AさんとBさんとは類似していないこととなり、Aさんの類似プロファイルにCさんのプロファイルIDは設定されない。
類似度算出処理部160dは、算出した類似度(およびそれに付随する情報、すなわち、プロファイルID、シーケンス番号、類似プロファイルID、類似度)を類似プロファイルテーブル150lに設定する(図20の(6)参照)。ここで、プロファイルIDは、基点となった投稿者(上記の例ではAさん)のプロファイルIDであり、類似プロファイルIDは、類似度が閾値以上となる投稿者(上記の例ではBさん)のプロファイルIDである。そして、類似度算出処理部160dは、処理したプロファイルIDの類似度算出フラグを「オン」に設定する(図20の(7)参照)。
図3の説明に戻ると、トレンドキーワード抽出処理部160eは、記憶部150に記憶された各テーブルを用いて流行しているキーワード(すなわち、トレンドキーワード)を抽出する処理部である。図21は、トレンドキーワード抽出処理部の具体的な処理を示す図である。
図21に示すように、トレンドキーワード抽出処理部160eは、記事情報テーブル150bから登録済みの記事総件数を取得し(図21の(1)参照)、記事情報テーブル150bからコンテンツ更新日時が所定範囲内の記事IDを取得する(図21の(2)参照)。
そして、トレンドキーワード抽出処理部160eは、図21の(1)で取得した記事IDに該当する記事のキーワードを記事キーワードテーブル150fから取得し(図21の(3)参照)、取得した各キーワードの第2TF/IDF値を算出する(図21の(4)参照)。
ここで、第2TF/IDF値の具体的な算出式は、
第2TF/IDF値=(キーワード出現総数)×log(記事総数/含有コンテンツ数)
によって表すことができる。なお、上式の各値は、トレンドキーワード抽出処理部160eが各テーブル150a〜150lを参照して、予め計数しておくものとする。
トレンドキーワード抽出処理部160eは、トレンドキーワードに関する各種情報(キーワードID、第2TF/IDF値、キーワード出現総数、含有コンテンツ数)をトレンドキーワードテーブル150kに登録する(図21の(5)参照)。
トレンドキーワードテーブル150kに記憶された各キーワード(キーワードIDによって識別されるキーワード<特徴キーワード>)のうち、第2TF/IDF値が閾値以上となるキーワードが、トレンドキーワードとして抽出されることとなる。
図3の説明に戻ると、サービス提供処理部160fは、利用者端末10〜30からのサービス要求に応答して各種のサービスを提供する手段であり、特に、本発明に密接に関連するものとしては、所定の投稿者(利用者、コミュニティを含む)を指定された場合に、指定された投稿者に対応するプロファイルキーワード、類似プロファイルおよびトレンドキーワードを出力する(例えば、図2において説明した画面情報をサービス要求元となる利用者端末に出力する)。
具体的に、サービス提供処理部160fが、投稿者のプロファイルキーワードを抽出する場合には、指定された投稿者のプロファイルIDと、プロファイルキーワードテーブル150jと、キーワードテーブル150eとを比較することによって、投稿者のプロファイルキーワードを抽出する。なお、サービス提供処理部160fは、第1TF/IDF値の値が閾値以上となるキーワードをプロファイルキーワードとして抽出して出力する。
また、サービス提供処理部160fが、投稿者の類似プロファイルを抽出する場合には、指定された投稿者のプロファイルIDと、類似プロファイルテーブル150lと、記事管理テーブル150aとを比較することによって、投稿者の類似プロファイル(指定された投稿者に類似する他の利用者、コミュニティ)を抽出して出力する。
また、サービス提供処理部160fが、トレンドキーワードを抽出する場合には、トレンドキーワードテーブル150kを参照し、第2TF/IDF値が閾値以上となるキーワードをトレンドキーワードとして抽出し、出力する。
次に、本実施例にかかる情報管理サーバ100の処理手順について説明する。図22は、本実施例にかかる情報管理サーバ100の処理手順を示すフローチャートである。同図に示すように、情報管理サーバ100は、記憶部150に記憶された記事が更新されたか否かを判定し(ステップS101)、更新されていない場合には(ステップS102,No)、処理を終了する。
一方、記事が更新されている場合には(ステップS102,Yes)、特徴キーワード抽出処理部160bが特徴キーワード抽出処理を実行し(ステップS103)、プロファイルキーワード抽出処理部160cがプロファイルキーワード抽出処理を実行する(ステップS104)。
そして、類似度算出処理部160dが、類似度算出処理を実行し(ステップS105)、トレンドキーワード抽出処理部160eがトレンドキーワード抽出処理を実行する(ステップS106)。
次に、図22のステップS103で示した特徴キーワード抽出処理について説明する。図23は、特徴キーワード抽出処理の処理手順を示すフローチャートである。同図に示すように、特徴キーワード抽出処理部160bは、更新された記事を取得し(ステップS201)、記事本文を形態素解析し、「語」の単位に品詞分解する(ステップS202)。
そして、特徴キーワード抽出処理部160bは、特徴キーワードの対象となる「語」を抽出し(ステップS203)、特徴キーワードの対象となる「語」から不要語テーブル150gに登録されている「語」を除外する(ステップS204)。
続いて、特徴キーワード抽出処理部160bは、特徴キーワードの対象となる「語」を同義語・結合語テーブル150dに登録されている「語」に置換し(ステップS205)、特徴キーワードをキーワードテーブル150eに登録し(ステップS206)、特徴キーワードと記事とを対応付けて記事キーワードテーブル150fに登録する(ステップS207)。
次に、図22のステップS104で示したプロファイルキーワード抽出処理について説明する。図24は、プロファイルキーワード抽出処理の処理手順を示すフローチャートである。同図に示すように、プロファイルキーワード抽出処理部160cは、記事キーワードテーブル150fから更新された記事を抽出し、記事に対応付けられた特徴キーワードを抽出する(ステップS301)。
そして、プロファイルキーワード抽出処理部160cは、対象の人(利用者)・コミュニティ毎の記事内の特徴キーワード出現総数、対象の人・コミュニティ毎の全記事数、対象の人・コミュニティ毎のキーワードを含む記事数を基にして第1TF/IDF値を算出する(ステップS302)。
プロファイルキーワード抽出処理部160cは、第1TF/IDF値が閾値以上となるn件の特徴キーワードをプロファイルキーワードに設定し(ステップS303)、プロファイルキーワードをプロファイルキーワードテーブル150jに登録する(ステップS304)。
次に、図22のステップS105で示した類似度算出処理について説明する。図25は、類似度算出処理の処理手順を示すフローチャートである。同図に示すように、類似度算出処理部160dは、類似度算出対象となる利用者(コミュニティを含む)のプロファイルキーワードをプロファイルキーワードテーブル150jから取得し(ステップS401)、比較対象となる利用者のプロファイルキーワードをプロファイルキーワードテーブル150jから取得する(ステップS402)。なお、比較対象の利用者は、算出対象の利用者以外の全ての利用者に対応する。
そして、類似度算出処理部160dは、類似度算出対象となる利用者のプロファイルキーワードおよび比較対象となる利用者のプロファイルキーワードを基にして類似度を算出し(ステップS403)、類似度が閾値以上となる各プロファイルIDを類似プロファイルとして抽出する(ステップS404)。類似度算出処理部160dは、抽出した類似プロファイルを類似プロファイルテーブル150lに登録する(ステップS405)。
なお、ステップ403において、算出対象の利用者に対応するプロファイルキーワードの上位n件(第1TF/IDF値が大きい順)を次元とし、算出対象と比較対象の各利用者におけるプロファイルキーワードの出現総数を値とする2つのベクトル間のコサイン距離を類似度として算出する。
次に、図22のステップS106で示したトレンドキーワード抽出処理について説明する。図26は、トレンドキーワード抽出処理の処理手順を示すフローチャートである。同図に示すように、トレンドキーワード抽出処理部160eは、記事キーワードテーブルから最新n件の記事(あるいは、所定期間内の記事)を抽出し、記事に対応付けられた特徴キーワードを抽出する(ステップS501)。
そして、トレンドキーワード抽出処理部160eは、対象期間内の記事内の特徴キーワード出現総数、対象期間内の全記事数、対象範囲内の特徴キーワードを含む記事数を基にして第2TF/IDF値を算出する(ステップS502)。
トレンドキーワード抽出処理部160eは、第2TF/IDF値が閾値以上となるn件の特徴キーワードをトレンドキーワードに設定し(ステップS503)、トレンドキーワードをトレンドキーワードテーブル150kに登録する(ステップS504)。
このように、特徴キーワード抽出処理部160bが特徴キーワードを抽出し、抽出した特徴キーワードを利用して、プロファイルキーワード、類似プロファイル、トレンドキーワードを抽出するので、利用者にとって有益な情報を効率よく抽出することがでる。
上述してきたように、本実施例にかかる情報管理サーバ100は、所定期間内に作成された記事(ブログ等も含む)を記憶部150から取得し、取得した記事に含まれるキーワードを特徴キーワードとして抽出する。そして、情報管理サーバ100は、対象となる利用者または複数の利用者から構成されるコミュニティによって作成された記事と特徴キーワードとを基にして利用者またはコミュニティに対する各特徴キーワードの特徴量(第1TF/IDF値)を算出し、算出した特徴量が閾値以上となる特徴キーワードを利用者またはコミュニティの特徴(プロファイル)を示すプロファイルキーワードとして抽出するので、利用者にとって有益な情報を利用者に提供することができる。
また、本実施例にかかる情報管理サーバ100は、各利用者(各コミュニティも含む)の各プロファイルキーワードを基にして類似度を算出し、算出した類似度に基づいて利用者に類似する他の利用者やコミュニティ(類似プロファイル)を抽出するので、利用者にとって有益な情報を利用者に提供することができる。
また、本実施例にかかる情報管理サーバ100は、所定の期間内に作成された記事を抽出し、抽出した記事と特徴キーワードとを基にして特徴量(第2TF/IDF値)を算出し、算出した特徴量が閾値以上となるキーワードを流行のキーワード(トレンドキーワード)として抽出するので、利用者にとって有益な情報を利用者に提供することができる。
なお、本実施例ではサービス提供処理部160fが、投稿者(利用者・コミュニティを含む)を指定された場合に、かかる投稿者のプロファイルIDに紐付くプロファイルキーワード、類似プロファイルを抽出して利用者端末に出力していたが、これに限定されるものではない。
例えば、サービス提供処理部160fが、所定のプロファイルキーワードあるいはトレンドキーワードを指定された場合には、かかるプロファイルキーワードあるいはトレンドキーワードに紐付くプロファイルID、類似プロファイルの情報を抽出して、利用者端末に出力してもよい。
ところで、本実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部あるいは一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図3に示した情報管理サーバ100の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部または任意の一部がCPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
図27は、実施例にかかる情報管理サーバを構成するコンピュータのハードウェア構成を示す図である。図27に示すように、このコンピュータ(情報管理サーバ)200は、入力装置201、モニタ202、RAM(Random Access Memory)203、ROM(Read Only Memory)204、記憶媒体からデータを読み取る媒体読取装置205、他の装置(利用者端末)との間でデータの送受信を行うインターフェース206、CPU(Central Processing Unit)207、HDD(Hard Disk Drive)208をバス209で接続して構成される。
そして、HDD208には、上記した情報管理サーバ100の機能と同様の機能を発揮する情報管理プログラム208bが記憶されている。CPU207が情報管理プログラム208bを読み出して実行することにより、情報管理プロセス207aが起動される。この情報管理プロセス207aは、図3に示した、情報管理部160a、特徴キーワード抽出処理部160b、プロファイルキーワード抽出処理部160c、類似度算出処理部160d、トレンドキーワード抽出処理部160e、サービス提供処理部160fに対応する。
また、HDD208は、図3に示した各テーブル150a〜150lに対応する各種データ208aを記憶する。CPU207は、HDD208に格納された各種データ208aを読み出してRAM203に格納し、RAM203に格納された各種データ203aを用いて、特徴キーワード、プロファイルキーワード、類似プロファイル、トレンドキーワードを抽出する。
ところで、図27に示した情報管理プログラム208bは、必ずしも最初からHDD208に記憶させておく必要はない。たとえば、コンピュータに挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」、または、コンピュータの内外に備えられるハードディスクドライブ(HDD)などの「固定用の物理媒体」、さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータに接続される「他のコンピュータ(またはサーバ)」などに情報管理プログラム208bを記憶しておき、コンピュータがこれらから情報管理プログラム208bを読み出して実行するようにしてもよい。
(付記1)コンピュータに、
所定の期間内に作成された記事を記憶装置から取得し、取得した記事に含まれるキーワードを特徴キーワードとして抽出する特徴キーワード抽出手順と、
利用者または複数の利用者から構成されるコミュニティによって作成された記事と前記特徴キーワードとを基にして前記利用者または前記コミュニティに対する各特徴キーワードの特徴量を算出する特徴量算出手順と、
前記特徴量が閾値以上となる特徴キーワードを前記利用者またはコミュニティの特徴を示すプロファイルキーワードとして抽出するプロファイルキーワード抽出手順と、
を実行させることを特徴とする情報抽出プログラム。
(付記2)前記特徴量算出手順は、前記利用者またはコミュニティによって作成された記事を前記記憶装置から抽出し、抽出した記事に含まれる前記特徴キーワードの数を示す第1の値を計数する第1計数手順と、前記利用者またはコミュニティによって作成された記事の総数を示す第2の値を計数する第2計数手順と、前記利用者またはコミュニティによって作成された記事の内で前記特徴キーワードを含む記事の数を示す第3の値を計数する第3計数手順と、前記第1、2、3の値を基にして特徴量を算出する算出手順とを実行することを特徴とする付記1に記載の情報抽出プログラム。
(付記3)基準となる利用者またはコミュニティの特徴を示す各プロファイルキーワードおよび当該プロファイルキーワードが記事中に出現する数を対応付けた基準プロファイルキーワード群と、他の利用者またはコミュニティの特徴を示す各プロファイルキーワードおよび当該プロファイルキーワードが記事中に出現する数を含んだ他のプロファイルキーワード群とを基にして類似度を算出し、当該類似度に基づいて前記基準となる利用者またはコミュニティに類似する他の利用者またはコミュニティを抽出する類似度算出手順を更にコンピュータに実行させることを特徴とする付記1または2に記載の情報抽出プログラム。
(付記4)前記記憶装置から所定の期間内の記事を抽出し、抽出した記事に含まれる前記特徴キーワードの数を示す第4の値を計数する第4計数手順と、所定の期間内の記事の総数を示す第5の値を計数する第5計数手順と、所定の期間内の記事の内で前記特徴キーワードを含む記事の数を示す第6の値を計数する第6計数手順と、前記第4、5、6の値を基にして各特徴キーワードの第2の特徴量を算出し、算出した第2の特徴量が閾値以上となる特徴キーワードを流行のキーワードとして抽出するトレンドキーワード抽出手順とを更にコンピュータに実行させることを特徴とする付記1、2または3に記載の情報抽出プログラム。
(付記5)前記類似算出手順は、前記基準プロファイルキーワード群を第1のベクトル、前記他のプロファイルキーワード群を第2のベクトルとしたベクトル演算を実行し、前記第1および第2のベクトル間の距離を前記類似度として算出することを特徴とする付記3に記載の情報抽出プログラム。
(付記6)前記記憶装置は、前記特徴キーワードの対象外となる不要キーワードを更に記憶し、前記特徴キーワード抽出手順は、抽出した特徴キーワードのうち、前記不要キーワードと一致する特徴キーワードを取り除くことを特徴とする付記1に記載の情報抽出プログラム。
(付記7)利用者または複数の利用者から構成されるコミュニティによって作成された記事を管理し、前記記事から所定の情報を抽出する情報抽出装置であって、
前記利用者またはコミュニティによって作成された記事を記憶する記事記憶手段と、
前記記事記憶手段から所定の期間内に作成された記事を取得し、取得した記事に含まれるキーワードを特徴キーワードとして抽出する特徴キーワード抽出手段と、
前記利用者またはコミュニティによって作成された記事と前記特徴キーワードとを基にして前記利用者またはコミュニティに対する各特徴キーワードの特徴量を算出する特徴量算出手段と、
前記特徴量が閾値以上となる特徴キーワードを前記利用者またはコミュニティの特徴を示すプロファイルキーワードとして抽出するプロファイルキーワード抽出手段と、
を備えたことを特徴とする情報抽出装置。