以下、本発明の実施形態を図面を参照して説明する。
実施形態1.
図1は、本発明の第1の実施形態を示すブロック図である。本発明の人物検索システムは、例えば、サーバ100として実現される。サーバ(人物検索システム)100は、演算装置110と、記憶装置120とを備える。また、本発明のサーバ100には、クライアント(端末)130が接続されている。
サーバ100の演算装置110は、リソース情報制御部111と、コンテンツ取得部112と、特徴語抽出部113と、特徴語重み伝達計算部114と、関係情報制御部115と、特徴語検索部116と、特徴語重み再計算部117と、検索結果出力部118とを含む。また、サーバ100の記憶装置120は、コンテンツ記憶部121と、特徴語重み記憶部122と、リソース情報記憶部123と、関係情報記憶部124と、設定情報記憶部125とを含む。
また、クライアント130は、検索結果表示部131と、検索項目入力部132と、コンテンツ送信部133とを含む。
以下に、サーバ100およびクライアント130の各構成要素について説明する。まず、サーバ100の記憶装置120について説明する。
記憶装置120は、各種情報を記憶する。また、本実施形態では、後述するように、コンテンツ記憶部121がコンテンツに対して識別情報を付与する等の演算も行う。従って、本実施形態における記憶装置120は、例えば、情報を記憶する装置(ストレージ)と、プログラムに従って動作するCPUによって実現される。
コンテンツ記憶部121は、コンテンツおよびコンテンツの識別情報を記憶する。コンテンツとは、電子文書である。コンテンツの態様の例として、例えば、ワードプロセッサ等のソフトウェアによって作成された文書ファイルや、電子メール文書、Webページ、動画データ、静止画データ等が挙げられる。コンテンツ記憶部121は、コンテンツ取得部112からコンテンツを受信すると、そのコンテンツに対して識別情報を付与し、識別情報をコンテンツ取得部112に返信する。
コンテンツ記憶部121は、例えば、コンテンツを受信する毎に自動採番を行い、採番した結果を、サーバ100のアドレスを示す文字列に連ねることによって識別情報を生成すればよい。例えば、サーバ100のアドレスが「 http://・・・.com」であるとする。コンテンツ記憶部121は、コンテンツを受信する毎に「id=0001」、「id=0002」等の値を順次割り当て、「 http://・・・.com」にその値を連ねて「http://・・・.com/ id=0001」という識別情報を生成する。この識別情報は、コンテンツのURLとなる。
リソース情報記憶部123は、少なくとも、リソースID、リソースの名前(リソース名情報)、リソースの種別(リソース種別情報)、リソースの識別情報を記憶する。リソースは、人、人の所属するグループ、コンテンツである。ただし、人、グループ、コンテンツのほかに、名称(名前)のある他の情報をリソースに含めてもよい。また、グループの例として、人のコミュニティや組織等が挙げられるが、グループの種類は限定されない。図2は、リソース情報記憶部123が記憶する情報の構成の例を示す説明図である。図2に示すように、リソース情報記憶部123に蓄積される情報は、少なくとも、リソースID201と、リソース名情報202と、リソース種別情報203と、リソースの識別情報204を含んでいる。ただし、リソースの識別情報204は、リソースの種別により、識別情報を、データがないことを表すnullとしてもよい。また、図2にリソース種別情報203として例示した「ユーザ」、「グループ」、「ファイル」は、それぞれ「人」、「グループ」、「コンテンツ」に対応している。リソース情報記憶部123は、リソースの種別毎に表(テーブル)を用意し、種別毎に各情報を記憶してもよい。また、リソース情報記憶部123は、各情報201〜204の他に、作成者、更新者、作成日時、更新日時、情報のアクセス権等の各種情報を記憶していてもよい。
リソースの識別情報は、リソースにアクセスするための情報である。コンテンツの識別情報は、上述のようにサーバ100のアドレスに採番した値を連ねた情報とすればよい。なお、リソースが人やグループである場合には、識別情報は「該当なし(null)」とすればよいが、人物やグループの情報にアクセスするURLを識別情報としてもよい。
関係情報記憶部124は、関係付けられるリソースの組を記憶する。図3は、関係情報記憶部124が記憶する情報の構成の例を示す説明図である。図3に示すリソースID301,302の組は、関係付けられるリソースの組を表している。関係情報記憶部124は、少なくとも、関係付けられるリソースID301,302の組を記憶するが、他の情報を記憶していてもよい。図3では、リソースIDの組の他に、関連種別303も関係情報記憶部124に記憶される場合を示している。関連種別303は、リソース間の関係の種類を表す情報である。例えば、「所属」は、人物やコンテンツ等のリソースが、他のリソースに所属しているという関係を示している。「類似」は、コンテンツ同士が類似していることを示している。「参照」は、コンテンツであるリソースが他のリソースに参照されている関係を示している。図3では、3種類の関連種別を示しているが、他の例として、一方のリソースが他方のリソース(コンテンツ)を所有していることを示す「所有」や、人のリソース同士の人間関係を表す「同僚」等が挙げられる。また、関係情報記憶部124は、関係付けユーザ名、関係重み情報、関係方向情報、関係付け日時、更新日時等の他の情報をあわせて記憶していてもよい。
関係情報記憶部124は、少なくとも、関係付けられる人物とグループの組と、コンテンツとそのコンテンツを操作した人物との組を記憶する。関係付けられる人物とグループの組の例としては、人物と、その人物が所属するグループとの組が挙げられる。また、コンテンツとそのコンテンツを操作した人物との組の例としては、コンテンツとそのコンテンツを作成した人物との組が上げられる。
関係付けられる人物とグループの組や、コンテンツとそのコンテンツを操作した人物との組の他に、関係情報記憶部124は、関係付けられる人同士の組、および関係付けられるグループ同士の組も記憶することが好ましい。また、関係情報記憶部124は、関係付けられるコンテンツ同士の組も記憶していてもよい。
関係付けられるリソースID301,302の組等を関係情報記憶部124に記憶させる態様は、特に限定されない。例えば、関係付けられる人同士、グループ同士、あるいは人とグループの関係を保持している外部システム(図示せず。)から、関係情報制御部115が、人またはグループのIDからなるリソースIDの組を受信し、そのIDの組を関係情報記憶部124に記憶させてもよい。例えば、人同士のIDの組、グループ同士のIDの組、人とグループのIDの組を、外部システム(図示せず。)から受信して関係情報記憶部124に記憶させてもよい。なお、このような外部システムの例として、コミュニティベースの共同作業支援機能を有するシステム(グループウェアを搭載したシステムやプロジェクト管理システム等)が挙げられる。
特徴語重み記憶部122は、コンテンツから抽出される特徴語と、そのコンテンツに関連するリソースのリソースID(そのコンテンツ自身のリソースIDも含む。)とを記憶する。また、特徴語重み記憶部122は、特徴語と特徴語の抽出元コンテンツに関連するリソース(特徴語の抽出元コンテンツ自身も含む。)との関連性の度合いを示す値である関係重み情報も記憶する。さらに、特徴語重み記憶部122は、特徴語重み記憶部122に、それらの特徴語、リソースID、関係重み情報が登録された日時情報も記憶する。図4は、特徴語重み記憶部122が記憶する情報の構成の例を示す説明図である。特徴語重み記憶部122は、少なくとも特徴語401と、リソースID402と、関係重み情報403と、日時情報404とを対応付けて記憶する。他に、関係付けユーザ名や情報のアクセス権の情報が特徴語重み記憶部122に記憶されてもよい。
特徴語が抽出されたコンテンツ自身のIDがリソースID403として、特徴語重み記憶部122に記憶されるが、そのコンテンツに関連する他のリソースのリソースIDもリソースID403として特徴語重み記憶部122に記憶される。特徴語が抽出されたコンテンツに関連する他のリソースのIDは、そのコンテンツのリソースIDを起点として、リソースIDに関係付けられる他のリソースIDを関係情報記憶部124から順次、読み出すことによって得られる。
設定情報記憶部125は、演算装置110の各部が使用する設定情報を記憶する。設定情報記憶部125は、少なくとも、時間減衰係数、伝播減衰係数(伝播減衰係数の初期値)、特徴語重み伝達計算部114が使用する閾値、および特徴語重み再計算部が使用する閾値を記憶する。
次に、サーバ100の演算装置の構成要素について説明する。
コンテンツ取得部112は、コンテンツ、コンテンツの名称(リソース名情報)、コンテンツを扱ったユーザ名、コンテンツのリソース種別情報を受信し、そのコンテンツに割り当てられるリソースIDをリソース情報制御部11から取得し、演算装置110内の各部に送信する。コンテンツ取得部112は、これらの情報を例えば、クライアント130のコンテンツ送信部133から受信するが、クライアント130以外の他の装置から上記の各種情報を受信してもよい。コンテンツ取得部112は、上記の情報を受信すると以下のように動作する。
コンテンツ取得部112は、受信したコンテンツをコンテンツ記憶部121に記憶させる。このとき、コンテンツ記憶部121は、そのコンテンツに対して採番を行い、サーバ100のアドレスを示す文字列に連ねることによって識別情報(例えば、「http://・・・.com/ id=0001」等)を生成し、識別情報をコンテンツともに記憶する。また、生成した識別情報をコンテンツ取得部112に返信する。コンテンツ取得部112は、コンテンツ記憶部121で生成された識別情報を受信すると、コンテンツの名称(リソース名情報)、コンテンツを扱ったユーザ名、コンテンツのリソース種別情報、識別情報をリソース情報制御部111に送信する。コンテンツ取得部112からこれらの情報を受信したリソース情報制御部111によりそのコンテンツのリソースID201が生成される。また、コンテンツを扱ったユーザ名に対応するユーザ(人)のリソースIDがリソース情報制御部111によって検索される。コンテンツ取得部112は、リソース情報制御部111からコンテンツのリソースIDおよびユーザのリソースIDを取得する。そして、コンテンツ取得部112は、そのコンテンツのリソースIDおよびユーザのリソースIDを関係情報制御部115に送信する。また、コンテンツ取得部112は、コンテンツとそのコンテンツのリソースIDとを特徴語抽出部113に送信する。
リソース情報制御部111は、リソース情報記憶部123が記憶するリソースIDやリソース名等の情報の追加、更新、削除、検索を行う。リソース情報制御部111は、コンテンツ取得部112からコンテンツの名称(リソース名情報)、コンテンツを扱ったユーザ名、コンテンツのリソース種別情報、識別情報を受信すると、それらの情報に対して新たにリソースIDを割り当て、そのリソースIDとともに、受信した情報(リソース名情報、リソース種別情報、識別情報)をリソース情報記憶部123に記憶させる。リソース情報制御部111は、割り当てたリソースIDをコンテンツ取得部112に送信する。
また、リソース情報制御部111は、コンテンツを扱ったユーザ名に対応するユーザ(人)のリソースIDをリソース情報記憶部123から検索し、そのユーザのリソースIDをコンテンツ取得部112に送信する。
また、リソース情報制御部111は、検索結果表示部131がリソース名などを表示する際に必要なコンテンツ情報を送信する機能を持つ。
なお、上記の説明では、コンテンツに関するリソースID、リソース名情報、リソース種別情報、識別情報をリソース情報記憶部123が記憶させる場合について説明した。リソース情報記憶部123に対して、人やグループに関するリソースID、リソース名情報、リソース種別情報、識別情報を記憶させる場合、例えば、以下の動作を行えばよい。例えば、コンテンツ取得部112が、人やグループのリソース名情報およびリソース種別情報を、クライアント130または他の装置(図示せず)から受信し、その情報をリソース情報制御部111に送信する。リソース情報制御部111は、人やグループのリソース名情報およびリソース種別情報に対して、リソースIDを割り当て、リソースID、人やグループのリソース名情報およびリソース種別情報をリソース情報記憶部123に記憶させる。このとき、人やグループの識別情報はnullとして記憶させればよい。あるいは、人物やグループの情報にアクセスするURLを、人物管理システム(図示せず。)から受信して、そのURLを人やグループの識別情報としてもよい。
特徴語抽出部113は、コンテンツ取得部112から送信されたコンテンツの内容を解析し、解析結果を特徴語重み記憶部122と特徴語重み伝達計算部114に送信する。具体的には、コンテンツのリソースID、特徴語、重み情報を送信する。なお、特徴語抽出部113が送信する重み情報は、特徴語と、その特徴語の抽出元のコンテンツとの関係重み情報である。
コンテンツが、テキストデータを含む文書コンテンツである場合、特徴語抽出部113は、そのコンテンツに対して形態素解析と特徴語抽出を行う。形態素解析とは、入力文を単語単位に分割し各単語の品詞を特定する処理である。特徴語抽出部113は、例えば、形態素解析ソフトウェアである「chasen」や「MeCab」によって形態素解析を行ってもよい。
「chasen」は、下記URLのWebページ(参考文献1とする。)から入手可能なソフトウェアである。
[参考文献1]
http://chasen.naist.jp/hiki/ChaSen/
「MeCab」は、下記URLのWebページ(参考文献2とする。)から入手可能なソフトウェアである。
[参考文献2]
http://mecab.sourceforge.net
ここでは、「chasen」や「MeCab」を用いずに、他のアルゴリズムによって形態素解析を行ってもよい。
また、特徴語抽出部113は、特徴語抽出を行うとき、例えばTF/IDF法を用いた演算によって特徴語抽出を行えばよい。TF/IDF法とは、文書dにおける検索語tの頻度(TF(Term Frequency))と、索引語が現れる相対文書頻度の逆数の対数(IDF(Inverted Document Frequency))の積により、どの単語が文書を大きく特徴づけているかを計算する手法である。TF/IDF法は、例えば、下記URLのWebページ(参考文献3)に記載されている。
[参考文献3]
http://nlp.nagaokaut.ac.jp/~sekiguti/doc/pdf/tfidf/tfidf/
Sekiguchi Youichi,平成15年2月13日
特徴語抽出部113は、コンテンツ中の各単語について、TFとIDFの積を計算し、その積が上位の単語を特徴語として抽出すればよい。例えば、TFとIDFの積の大きい順に、予め定められた所定件数の単語を特徴語として抽出すればよい。コンテンツから特徴語として抽出する単語の件数は、設定情報記憶部125が記憶しておき、特徴語抽出部113は、その件数を設定情報記憶部125から読み込めばよい。また、特徴語抽出部113は、例えば、抽出した特徴語のスコアを、その特徴語の重み情報とすればよい。TF/IDF法によって特徴語を抽出する場合、抽出した特徴語におけるTFとIDFの積をスコアとする。ここでは、TF/IDF法によって特徴語を抽出する場合を説明したが、特徴語抽出部113は、TF/IDF法以外のアルゴリズムで特徴語を抽出してもよい。また、スコア(上記の例では、TFとIDFの積)を重み情報としたが、必ずしもスコアを重み情報としなくてもよい。スコア値を重みとできない場合、例えば、予め定められた関係重み情報の初期値を、重み情報として決定すればよい。なお、後述するように、特徴語抽出部113が決定した重み情報を初期値として、特徴語とその特徴語の抽出元のコンテンツに関連する他のリソースとの関係重み情報が計算される。また、予め定められる関係重み情報の初期値は、設定情報記憶部125が記憶しておき、特徴語抽出部113はその初期値を設定情報記憶部125から読み込めばよい。
コンテンツが音声データや画像データ(動画や静止画のデータ)である場合、特徴語抽出部113は、音声認識処理によって音声情報からテキストデータを抽出したり、画像データからテキストデータを抽出し、そのテキストデータに対して、形態素解析および特徴語抽出を行えばよい。
特徴語抽出部113は、抽出した特徴語と、特徴語を含んでいたコンテンツのリソースIDと、重み情報とを、特徴語重み記憶部122に記憶させる。この重み情報は、関係重み情報であり、ここでは、コンテンツから抽出される特徴語とそのコンテンツ自身との関連性の度合いを表す値である。また、特徴語抽出部113は、特徴語、リソースID、重み情報を特徴語重み記憶部122に記憶させるときに、その時点における日時情報も特徴語重み記憶部122に記憶させる。
また、特徴語抽出部113は、抽出した特徴語と、特徴語を含んでいたコンテンツのリソースIDとを特徴語重み伝達計算部114に送信する。
特徴語重み伝達計算部114は、特徴語抽出部113から特徴語と、コンテンツのリソースIDと、重み情報とを受信すると、コンテンツ取得部112がクライアント130等から受信したリソース(コンテンツ)に関係する他のリソースを特定し、そのコンテンツから抽出された特徴語と、特定した他のリソースのリソースIDと、特定した他のリソースの関係重み情報とを特徴語重み記憶部122に記憶させる。この処理の際、特徴語重み伝達計算部114は、コンテンツのリソースIDを起点として、リソースIDに関係付けられる他のリソースIDを関係情報記憶部124から順次、読み出すことによって、関連する他のリソースを特定する。また、特定した他のリソースの関係重み情報を計算する際には、特徴語抽出部113から取得した重み情報(関係重み情報の初期値)と、設定情報記憶部125に記憶されている伝播減衰係数とを用いて、関係重み情報を算出する。
また、特徴語重み伝達計算部114は、特徴語と、リソースID(コンテンツのリソースIDまたは、コンテンツに関連する他のリソースのリソースID)と、重み情報(特徴語抽出部113が決定した関係重み情報、または特徴語重み伝達計算部114が計算した関係重み情報)を特徴語重み記憶部122に記憶させるときに、その時点における日時情報も特徴語重み記憶部122に記憶させる(図4参照)。なお、クライアント130等のコンテンツの送信元は、コンテンツに関する処理を行った時(例えばユーザの操作に従ってコンテンツを作成した時)に、そのコンテンツ等をコンテンツ取得部112に送信する。そして、コンテンツ取得部112がコンテンツ等を受信したことがトリガとなって、上述のようにリソース情報制御部111、特徴語抽出部113、特徴語重み伝達計算部114が動作する。従って、特徴語抽出部113や特徴語重み伝達計算部114が特徴語重み記憶部122に記憶させる日時情報404は、コンテンツに関する処理が行われた日時(例えばコンテンツの作成日時)であるとみなすことができる。
関係情報制御部115は、関係情報記憶部124にある関係情報を追加、変更、削除、検索する。関係情報制御部115は、コンテンツ取得部112からコンテンツのリソースIDおよびユーザのリソースIDを受信すると、その二つのリソースIDを関係情報記憶部124に記憶させる。また、例えば、他のシステムが送信したリソースIDの組(人同士のIDの組、グループ同士のIDの組、人とグループのIDの組)を受信し、そのリソースIDの組を関係情報記憶部124に記憶させる。
なお、ここでは、コンテンツ取得部112がコンテンツを扱ったユーザ名を受信し、リソース情報制御部111が、そのユーザ名を元にユーザのリソースIDを検索するとともに、コンテンツのリソースIDを割り当てる場合を示した。コンテンツ取得部112は、ユーザ名の代わりにユーザのリソースIDをコンテンツの送信元から受信してもよい。この場合、関係情報制御部115は、コンテンツ取得部112からユーザのリソースIDを受信し、リソース情報制御部111によって割り当てられたコンテンツのリソースIDと組にして関係情報記憶部124に記憶させればよい。クライアント130等がユーザのリソースIDをコンテンツ取得部112に送信すれば、ユーザ名からユーザのリソースIDを検索する処理が不要となる。従って、クライアント130等がユーザのリソースIDをコンテンツ取得部112に送信し、コンテンツ取得部112がユーザのリソースIDを受信することが好ましい。
特徴語検索部116は、検索項目入力部132から検索語と、検索条件として指定される時間の情報(以下、時間条件と記す。)とを受信し、その検索語をキーとして、特徴語重み記憶部122に記憶された情報の中から、リソースID402、関係重み情報403および日時情報404を検索する。特徴語検索部116は、検索項目入力部132から受信した時間条件と、検索したリソースID402、関係重み情報403および日時情報404とを特徴語重み再計算部117に送信する。なお、時間条件は、ある時点を指定する場合と、ある期間を指定する場合とがある。
特徴語重み再計算部117は、特徴語検索部116から、リソースID402、関係重み情報403、日時情報404、時間条件を受信する。そして、時間条件と日時情報とに基づいて、関係重み情報404の値を再計算する。そして、再計算後の関係重み情報に基づいてリソースIDを絞り込んで、並び替えを行い、その結果を検索結果出力部118に送信する。
検索結果出力部118は、特徴語重み再計算部117から受信した情報を、クライアント130の検索結果表示部131に送信する。すなわち、再計算後の関係重み情報に基づいて絞り込まれたリソースIDを検索結果表示部131に送信する。このとき、検索結果出力部118は、そのリソースIDに対応する情報(図2参照)を、リソース情報制御部111から検索結果表示部131に送信させることが好ましい。この動作は、以下のように行えばよい。検索結果出力部118は、検索結果表示部131に送信するリソースIDをリソース情報制御部111に通知する。リソース情報制御部111は、そのリソースIDに対応する情報をリソース情報記憶部123から読み込み、検索結果表示部131に送信すればよい。この結果、リソースIDだけでなく、そのリソースの詳細な情報(リソース名情報202、リソース種別情報203、識別情報204等)も検索結果表示部131に送信することができる。
次に、クライアント130の構成要素について説明する。
コンテンツ送信部133は、クライアント130がコンテンツに関する処理を行った時に、そのコンテンツと、コンテンツのリソース名情報と、コンテンツを扱ったユーザ名と、コンテンツのリソース種別情報とをコンテンツ取得部112に送信する。例えば、クライアント130がユーザの操作に応じてコンテンツを作成した時点で、コンテンツ送信部133は、そのコンテンツと、リソース名情報と、コンテンツを作成したユーザ名と、リソース種別情報とをコンテンツ取得部112に送信する。コンテンツ送信部133は、コンテンツを扱ったユーザ名の代わりに、ユーザのリソースIDを送信してもよい。
検索項目入力部132は、人物やグループを検索するための検索条件が入力され、入力された検索条件を特徴語検索部116に送信する。検索項目入力部132は、例えば、検索条件を入力するための画面(検索条件入力画面)を表示して、その画面を介して検索条件を入力される。図5は、検索条件入力画面の例を示す説明図である。検索条件入力画面は、少なくとも、検索語が入力される検索語入力欄1301と、時間条件が入力される時間条件入力欄1302とを備える。検索条件の送信操作(例えば、検索ボタン1303のクリック)がユーザによって行われると、検索項目入力部132は、ユーザに入力された検索条件を特徴語検索部116に送信する。検索条件として、検索語および時間条件がユーザによって入力されるが、時間条件は入力されない場合があってもよい。時間条件が入力されていない場合、検索項目入力部132は、検索条件の送信操作が行われた時(日付)を時間条件として特徴語検索部116に送信する。
検索語入力欄1301は、時間条件として、ある特定の日付の指定と、ある期間(時間の範囲)の指定のいずれも行えることが好ましい。例えば、図5に例示する検索語入力欄1301は、指定される期間の始点および終点となる日付の入力欄を有し、期間を指定することができる。また、2つの日付の入力欄の一方のみに日付が入力されている場合には、その日付のみが指定されたものとして、その日付を時間条件として特徴語検索部116に送信すればよい。
また、検索項目入力部132は、検索語および時間条件以外の検索条件を追加で指定可能としてもよい。例えば、検索条件入力画面に、コンテンツの登録者、検索件数、コンテンツの種別等を指定するための入力欄が設けられていてもよい。
なお、ここでは時間条件として日付が指定される場合を示したが、時間条件として日付だけでなく時刻も指定されてもよい。
検索結果表示部131は、特徴語検索部116によって検索され、さらに、特徴語重み再計算部117によって絞り込まれたリソースIDが示すリソースの情報(検索結果)を表示する。例えば、検索結果表示部131は、検索結果出力部118から受信したリソースIDを表示してもよい。また、そのリソースIDに対応付けられた(図2に例示する情報)をリソース情報制御部111から受信する場合には、その情報を表示してもよい。検索結果表示部131は、検索結果を表示する場合、検索項目入力部132が表示する検索条件入力画面とともに表示することが好ましいが、検索条件入力画面とは別の画面で検索結果を表示してもよい。図6は、検索結果表示部131が表示する検索結果の表示画面の例を示す説明図である。図6に示す例では、検索項目入力部132が表示する検索条件入力画面1203とともに検索結果を表示する場合を示している。検索結果表示部131は、検索結果人物表示欄1201と、検索結果グループ表示欄1202とを表示する。本例では、検索結果表示部131は、リソースIDとともにリソース種別情報を受信し、リソース種別情報に基づいて、受信したリソースID等を人に関する情報と、グループに関する情報とをそれぞれ選択する。そして、人に関する情報を検索結果人物表示欄1201に表示し、グループに関する情報を検索結果グループ表示欄1202に表示する。検索結果表示部131は、検索結果人物表示欄1201と検索結果グループ表示欄1202とを同一画面内に表示してもよいし、別画面に表示して画面を切り替えるようにして表示してもよい。
検索結果表示部131が検索結果を表示するときに、検索項目入力部132が検索条件入力画面を表示する場合、図5に例示した検索条件入力画面と同様の画面を表示すればよい。また、検索語と時間条件以外の条件を追加入力できるようにしてもよい。検索条件入力画面を検索結果とともに表示することでユーザは再検索を指示することができる。
次に、サーバ100の動作について説明する。
図7は、コンテンツ取得部112がコンテンツ等を受信したときの動作の例を示すフローチャートである。コンテンツ取得部112は、コンテンツ送信部133または他のシステム(図示せず)から送信されたコンテンツ、コンテンツのリソース名情報、コンテンツを扱ったユーザ名、およびコンテンツのリソース種別情報を受信する(ステップS81)。すると、コンテンツ取得部112はそのコンテンツをコンテンツ記憶部121に送信する(ステップS82)。
コンテンツ記憶部121は、そのコンテンツの識別情報を生成し、コンテンツを記憶する(ステップS83)。そして、コンテンツ記憶部121は、生成したコンテンツの識別情報をコンテンツ取得部112に返信する(ステップS84)。
続いて、コンテンツ取得部112は、ステップS81で受信したリソース名情報、ユーザ名、リソース種別情報と、コンテンツ記憶部121によって生成された識別情報とをリソース情報制御部111に送信する(ステップS85)。リソース情報制御部111は、コンテンツ取得部112からこれらの情報を受け取ると、コンテンツのリソースIDを採番し、そのリソースIDをコンテンツ取得部112に送信する(ステップS86)。さらに、リソース情報制御部111は、採番したリソースID、リソース名情報、リソース種別情報およびコンテンツの識別情報をリソース情報記憶部123に記憶させる(ステップS87)。また、リソース情報制御部111は、ステップS85で受け取ったユーザ名をキーとしてユーザ(人)のリソースIDをリソース情報記憶部123から検索し、そのリソースIDをコンテンツ取得部112に送信する(ステップS88)。
コンテンツ取得部112は、ステップS86で受け取ったコンテンツのリソースIDとステップS88で受け取ったユーザのリソースIDとの組を関係情報制御部115に送信する(ステップS89)。関係情報制御部115は、そのリソースIDの組を関係情報記憶部124に記憶させる(ステップS91)。また、コンテンツ取得部112は、ステップS81で受信したコンテンツと、リソース情報制御部111によって採番されたコンテンツのリソースIDとを特徴語抽出部113に送信する(ステップS90)。
図8は、特徴語抽出部113にコンテンツとコンテンツのリソースIDとを渡されてから特徴語重み記憶部122に特徴語に特徴語が格納されるまでの動作の例を示すフローチャートである。特徴語抽出部113は、コンテンツおよびそのリソースIDをコンテンツ取得部112から受け取ると、そのコンテンツを解析し、特徴語を抽出する(ステップS1)。特徴語抽出部113は、既に説明したように、例えば、TF/IDF法によって特徴語を抽出すればよいが、他の方法で特徴語を抽出してもよい。
特徴語抽出部113は、抽出した特徴語を、特徴語を含んでいたコンテンツのリソースIDおよび特徴語の重み情報(スコア)とともに、特徴語重み記憶部122に記憶させる。特徴語抽出部113は、その時点における日時情報も特徴語重み記憶部122に記憶させる。さらに、特徴語抽出部113は、抽出した特徴語と、特徴語を含んでいたコンテンツのリソースIDとを特徴語重み伝達計算部114に送信する(ステップS2)。なお、例えば、重み情報を導出しないアルゴリズムによって特徴語を抽出する態様等では、設定情報記憶部125が重み情報(関係重み情報の初期値)として定数を記憶し、特徴語抽出部113が特徴語に依らずにその定数を重み情報とすればよい。
次に、特徴語重み伝達計算部114は、設定情報記憶部125から伝播減衰係数の初期値を読み込む。さらに、特徴語重み伝達計算部114は、コンテンツのリソースIDを起点として、リソースIDに関係付けられる他のリソースIDを関係情報記憶部124から読み出すことを繰り返す処理における繰り返し数を示す変数(以下、単に繰り返し数またはNと記す。)の値を1に定める(ステップS3)。伝播減衰係数は、繰り返し数に応じて、特徴語と、その特徴語の抽出元コンテンツに関連する他のリソースとの関連性の度合い(関係重み情報)を計算するために用いられる。伝播減衰係数は、繰り返し数Nの増加とともに減少するように定められる係数である。以下の説明では、繰り返し数Nに応じて定められる伝播減衰係数をα、伝播減衰係数の初期値をβと記す。
次に、特徴語重み伝達計算部114は、コンテンツのNリンク先リソースIDリストを関係情報記憶部124に記憶されている情報から検索する(ステップS4)。ここで、「Nリンク先リソースIDリスト」とは、コンテンツのリソースIDを起点として、リソースIDに関係付けられる他のリソースIDを関係情報記憶部124から読み出すことをN回繰り返した時点で得られるリソースIDの集合である。例えば、関係情報記憶部124が、図3に例示する情報を記憶しているものとする。そして、図3に例示する「Id0002」を起点とし、N=1であるとすると、「1リンク先リソースIDリスト」は、「Id0003」である。また、N=2であるとすると、『「Id0002」に関係付けられている「Id0003」』に更に関係付けられている「Id0001」および「Id0004」が「2リンク先リソースIDリスト」となる。ステップS4において特徴語重み伝達計算部114は、コンテンツのリソースIDを起点として、リソースIDに関係付けられる他のリソースIDを関係情報記憶部124から読み出すことをN回繰り返すことにより、Nリンク先リソースIDリストを検索すればよい。
次に、特徴語重み伝達計算部114は、ステップS4で取得したNリンク先リソースIDリストの中から、既に関係重み情報を計算して特徴語重み記憶部122に記憶する処理(具体的にはステップS6,S7)が行われているリソースIDを削除する(ステップS5)。N=1の状態でステップS5に移行した場合、未だステップS6,S7は行われていないので、削除対象となるリソースIDはない。一方、ステップS6,S7の処理を実行した後に再度ステップS5に移行した場合、ステップS6,S7の処理が既に行われたリソースIDがNリンク先リソースIDリストに含まれているならば、そのリソースIDを削除する。
次に、特徴語重み伝達計算部114は、特徴語抽出部113が定めた関係重み情報の初期値に対して伝播減衰係数を乗じることによって、繰り返し数Nに応じた関係重み情報を計算する(ステップS6)。N=1の場合、特徴語重み伝達計算部114は、ステップS3で読み込んだβを関係重み情報の初期値に乗じればよい。N≧2の場合、後述のステップS8で求める伝播減衰係数αを関係重み情報の初期値に乗じればよい。
続いて、特徴語重み伝達計算部114は、特徴語と、Nリンク先リソースIDリストに含まれているリソースIDと、繰り返し数Nに応じた関係重み情報とを特徴語重み記憶部122に記憶させる。特徴語重み伝達計算部114は、その時点における日時情報も、特徴語、リソースIDおよび関係重み情報とともに特徴語重み記憶部122に記憶させる(ステップS7)。
次に、特徴語重み伝達計算部114は、繰り返し数Nを1増加させ、伝播減衰係数αを再計算する(ステップS8)。特徴語重み伝達計算部114は、ステップS7の後、まず繰り返し数Nを1増加させ、そのNを用いて、例えば以下に示す式1によってαを計算すればよい。
α=βN (式1)
式1による計算は、繰り返し数Nが増加するにつれて伝播減衰係数αが指数的に減少するが、他の計算によってαを算出してもよい。例えば、Nの増加に伴い伝播減衰係数αが対数的に減少する計算方法や、Nの増加に伴い伝播減衰係数αが比例的に減少する計算方法でαを算出してもよい。
次に、特徴語重み伝達計算部114は、ステップS8で1増加させたNについてステップS4以降の処理を行うか否かを判定する(ステップS9)。特徴語重み伝達計算部114は、繰り返し数NがN用の閾値以下であり、ステップS8で計算したαが伝播減衰係数用の閾値以上であるならば、ステップS4に移行し、ステップS4以降の処理を再度行う。一方、繰り返し数NがN用の閾値を超えているか、または、ステップS8で計算したαが伝播減衰係数用の閾値未満であるならば、処理を終了する。
以上の動作が終了した時点で、特徴語重み記憶部122に、特徴語抽出部113によってコンテンツから抽出された特徴語と、そのコンテンツと関連性のある他のリソースと、関連性(起点とするコンテンツと他のリソースが、どれくらいのリソースを介して関係付けられているか)の度合いに応じた関係重み情報とが記憶されていることになる。
次に、サーバ100がクライアント130から検索条件を受信し検索結果を出力する動作について説明する。図9は、クライアント130から検索語とともに特定の日付を指定した時間条件を受信した場合の動作の例を示すフローチャートである。
クライアント130の検索項目入力部132は、検索語と、特定の日付を指定した時間条件とをサーバ100に送信したとする。サーバ100の特徴語検索部116は、その検索語および時間条件を受信すると(ステップS11)、特徴語重み記憶部122に記憶されている特徴語の中から、検索語と合致する特徴語を検索する(ステップS12)。特徴語検索部116は、検索によって得られた特徴語が0件であるか否かを判定し(ステップS13)、0件であれば処理を終了する。検索によって得た特徴語が1件以上あれば、特徴語検索部116は、その特徴語とともに特徴語重み記憶部122に記憶されているリソースID402、関係重み情報403、日時情報404(図4参照)を特徴語重み再計算部114に送信する。このとき時間条件も特徴語重み再計算部114に送信する。
特徴語重み再計算部117は、リソースID、関係重み情報、日時情報を受信すると、時間減衰係数と関係重み情報の閾値を設定情報保存部125から読み込む(ステップS14)。以下、時間減衰係数をγ、関係重み情報の閾値をzとする。
次に、特徴語重み再計算部117は、クライアント130(具体的にはコンテンツ送信部133)から受信した時間条件(日付)と、特徴語検索部116から受信した日時情報が示す日時との差分に応じて、特徴語検索部116から受信した関係重み情報を再計算する(ステップS15)。換言すれば、時間の差分に応じて、関係重み情報を補正する。
時間条件で指定された日付をdate_queryと記し、特徴語検索部116が特徴語重み記憶部122から読み込んで特徴語重み再計算部117に送信した日時情報が示す日時をdate_regと記す。また、特徴語検索部116が特徴語重み記憶部122から読み込んで特徴語重み再計算部117に送信した関係重み情報をweight_regと記す。特徴語重み再計算部117は、以下に示す式2によってweight_newを計算する。weight_newは再計算後の関係重み情報である。
weight_new=weight_reg×γ|date_query− date_reg| (式2)
なお、式2は、関係重み情報の再計算の一例であり、他の方法で関係重み情報を再計算してもよい。例えば、date_queryとdate_regとの差の対数をLとした場合、weight_reg×γLによってweight_newを計算してもよい。
特徴語重み再計算部117は、特徴語検索部116から受信する特徴語、リソースID、関係重み情報の組毎に、ステップSS15の処理を行う。それらの組の中で、リソースIDが共通の組があれば、それらの組毎にステップS15で算出した関係重み情報を合算する(ステップS16)。そして、特徴語重み再計算部117は、関係重み情報(ステップS16で合算されている場合には合算語の関係重み情報)と閾値zとを比較し、関係重み情報が閾値以下であるリソースIDを削除する(ステップS17)。換言すれば、特徴語重み再計算部117は、関係重み情報が閾値zよりも大きいリソースIDを選択して残す。特徴語重み再計算部117は、削除後に残ったリソースIDの件数が0であるか否かを判定し(ステップS18)、0であれば処理を終了する。削除後に残ったリソースIDの件数が1件以上あれば(ステップS18のNo)、特徴語重み再計算部117は、残ったリソースIDを関係重み情報の値順に並べ(ステップS19)、そのリソースIDのリストを検索結果として検索結果131に送信する(ステップS20)。なお、既に説明したように、検索結果出力部118は、そのリソースIDに対応する情報(リソース名情報、リソース種別情報、識別情報等。図2参照。)を、リソース情報制御部111から検索結果表示部131に送信させることが好ましい。
図10は、サーバ100がクライアント130から検索語とともに期間を指定した時間条件を受信した場合の動作の例を示すフローチャートである。
特徴語検索部116は、検索語および時間条件(本例では期間を指定した時間条件)を受信すると(ステップS31)、特徴語重み記憶部122に記憶されている特徴語の中から、検索語と合致する特徴語を検索する(ステップS32)。特徴語検索部116は、検索によって得られた特徴語が0件であるか否かを判定し(ステップS33)、0件であれば処理を終了する。検索によって得た特徴語が1件以上あれば、特徴語検索部116は、その特徴語とともに特徴語重み記憶部122に記憶されているリソースID402、関係重み情報403、日時情報404(図4参照)を特徴語重み再計算部114に送信する。ここまでの動作は、既に説明したステップS11〜S13と同様である。
次に、特徴語重み再計算部117は、関係重み情報の閾値zを設定情報保存部125から読み込む(ステップS34)。時間条件が期間を指定している場合には、時間減衰係数は読み込まなくてよい。ステップS34の後、特徴語重み再計算部117は、特徴語検索部116が検索して送信したリソースID402、関係重み情報403、日時情報404の組のうち、日時情報404が、時間条件で指定された期間内に収まっている組を抽出する(ステップS35)。
特徴語重み再計算部117は、ステップS35で抽出した組(リソースID402、関係重み情報403、日時情報404の組)の中で、リソースIDが共通の組があれば、それらの組毎に関係重み情報を合算する(ステップS36)。そして、特徴語重み再計算部117は、関係重み情報(ステップS36で合算されている場合には合算語の関係重み情報)と閾値zとを比較し、関係重み情報が閾値以下であるリソースIDを削除する(ステップS37)。換言すれば、特徴語重み再計算部117は、関係重み情報が閾値zよりも大きいリソースIDを選択して残す。
特徴語重み再計算部117は、削除後に残ったリソースIDの件数が0であるか否かを判定し(ステップS38)、0であれば処理を終了する。削除後に残ったリソースIDの件数が1件以上あれば(ステップS38のNo)、特徴語重み再計算部117は、残ったリソースIDを関係重み情報の値順に並べ(ステップS39)、そのリソースIDのリストを検索結果として検索結果131に送信する(ステップS40)。なお、検索結果出力部118は、そのリソースIDに対応する情報(リソース名情報、リソース種別情報、識別情報等。図2参照。)を、リソース情報制御部111から検索結果表示部131に送信させることが好ましい。ステップS38〜S40の動作は、ステップS18〜S20の動作と同様である。
検索結果表示部131は、ステップS20(図9参照)やステップS40(図10参照)において送信される人やグループのリソースIDやリソース名情報等を受信すると、その情報を表示する。この結果、クライアント130のユーザは、検索語および時間条件に応じて、人やグループの情報を確認することができる。
次に、本実施形態の効果について説明する。
本発明によれば、関係情報記憶部124は、少なくとも、関係付けられる人物とグループの組と、コンテンツとそのコンテンツを操作した人物との組を記憶する。そして、コンテンツ取得部112が新たにコンテンツとそのコンテンツを操作したユーザの情報を受信したときには、関係情報制御部115が関係情報記憶部124にそのコンテンツとユーザとの組に記憶させる。また、特徴語重み伝達計算部114は、関係情報記憶部124に記憶された情報を参照してNリンク先リソースIDを検索し、繰り返し数Nに応じた関係重み情報を決定し、特徴語とリソースIDと関係重み情報と日時情報とを特徴語重み記憶部122に記憶させる。従って、特徴語重み記憶部122には、特徴語と、その特徴語を含んでいたコンテンツと関連性のある人やグループのリソースIDと、関係重み情報と、日時情報とが記憶される。この結果、時間を指定した時間条件と検索語とに応じて、指定された時間において検索語と関連性のあった人物を検索することができる。さらに、人物だけでなく、指定された時間において検索語と関連性のあったグループも検索することができる。
また、関係情報記憶部124が、関係付けられる人物とグループの組およびコンテンツとそのコンテンツを操作した人物との組だけでなく、関係付けられる人同士の組、および関係付けられるグループ同士の組も記憶し、特徴語重み伝達計算部114がNリンク先リソースIDを検索することにより、コンテンツの操作者に関連性のある人やグループに関しても、特徴語、関係重み情報、日時情報とともに特徴語重み記憶部122に記憶させることができる。従って、時間を指定した時間条件と検索語とに基づいて、指定された時間において検索語と関連性のあった人物に間接的に関係付けられると考えられる人やグループを広く検索することができる。
また、検索時に、特徴語重み再計算部117によって再計算された関係重み情報に基づいて、検索語と関連性の高い順に人やグループをソートしてクライアント130に送信することができる。
演算装置110が備える各構成要素(リソース情報制御部111、コンテンツ取得部112、特徴語抽出部113、特徴語重み伝達計算部114、関係情報制御部115、特徴語検索部116、特徴語重み再計算部117、検索結果出力部118)は、それぞれ別個の回路であってもよい。また、演算装置110が備える各構成要素は、プログラム(人物検索プログラム)に従って動作するCPUによって実現されていてもよい。例えば、CPUが、サーバの記憶装置から人物検索プログラムを読み込み、そのプログラムに従って、リソース情報制御部111、コンテンツ取得部112、特徴語抽出部113、特徴語重み伝達計算部114、関係情報制御部115、特徴語検索部116、特徴語重み再計算部117、および検索結果出力部118として動作してもよい。また、ステップS83で識別情報を生成する処理をこのCPUが実行してもよい。
実施形態2.
図11は、本発明の第2の実施形態を示すブロック図である。本実施の形態のサーバ(人物検索システム)100の演算装置110は、リソース情報制御部111と、コンテンツ関係情報計算部119と、特徴語抽出部113と、特徴語重み伝達計算部114と、関係情報制御部115と、特徴語検索部116と、特徴語重み再計算部117と、検索結果出力部118とを含む。また、サーバ100の記憶装置120は、コンテンツ記憶部121と、特徴語重み記憶部122と、リソース情報記憶部123と、関係情報記憶部124と、設定情報記憶部125とを含む。図11に示す例では、本発明の人物検索システム100には、クライアント130や他システム140が接続されている。第1の実施形態と同様の構成要素については図1と同一の符号を付して説明する。
ただし、設定情報記憶部125は、第1の実施形態で示した設定情報記憶部125が記憶する情報の他にルール情報も記憶する。ルール情報は、コンテンツとそのコンテンツに対して操作を行った者との関連性の度合いを定めるルールである。図12は、ルール情報の例を示す説明図である。ルール情報は、少なくともアクション種別情報901と、実行者種別情報902と、ユーザ重み情報903とを含む。アクション種別情報901は、コンテンツに対する操作(アクション)の種別を表す情報である。アクションの種別によっては、コンテンツに対して操作を行う実行者が2種類以上存在する場合もあり、実行者種別情報902は、コンテンツに対して操作を行う実行者の種別を表す。例えば、コンテンツが電子メールであり、アクション情報が「メール送受信」である場合、「メール送信者」、「メール受信者」等が実行者種別情報となる。また、例えば、アクション情報が「ファイル共有」である場合、「作成者」、「共有者」等が実行者種別情報となる。アクションの例としては、情報の作成、閲覧、送信、受信等が挙げられる。本例では、コンテンツに対するアクション内容(操作内容)は、アクション種別情報901と実行者種別情報902との組み合わせによって表される。また、アクション毎(本例ではアクション種別情報901と実行者種別情報902の組毎)にユーザ重み情報が定められている。ユーザ重み情報はリソース間の関連性の度合いを示す値であり、ルール情報に含まれているユーザ重み情報903は、コンテンツとそのコンテンツに対して操作を行った者との関連性の度合いを示す値である。アクション種別情報901および実行者種別情報902に応じたユーザ重み情報を特定することができるので、どのような種別の実行者がどのような種別のアクションを行ったかにより、ユーザ(実行者)とコンテンツとの関連性の度合いを示すユーザ重み情報を定めることができる。ルール情報には、伝達減衰係数や、ステップS9(図14参照)の判定で用いる閾値が項目別(アクション別)に定められていてもよい。
コンテンツ関係情報計算部119は、第1の実施形態におけるコンテンツ取得部112と同様の動作を行うが、さらに他の動作も行う。すなわち、クライアント130または他システム140から、コンテンツ等の他に、アクション種別情報、実行者種別情報も受信し、アクション種別情報および実行者種別情報に応じたユーザ重み情報をルール情報に基づいて定め、コンテンツのリソースIDとユーザのリソースIDの組だけなく、そのユーザ重み情報も関係情報制御部115に送る。また、コンテンツ関係情報計算部119は、コンテンツおよびコンテンツのリソースIDを特徴語抽出部113に送信する。
また、ユーザによって扱われるコンテンツは、Webページ等のように、クライアント130や本発明のサーバ100とは異なるWebサーバに記憶されているコンテンツである場合もある。そのような場合には、そのコンテンツのアドレスを表すポインタ情報がコンテンツの代わりに、アクション種別情報、実行者種別情報等とともにサーバ100に送信されてもよい。この場合も、コンテンツ関係情報計算部119は、アクション種別情報および実行者種別情報に応じたユーザ重み情報をルール情報に基づいて定め、コンテンツのリソースIDとユーザのリソースIDの組だけなく、そのユーザ重み情報も関係情報制御部115に送る。また、ポインタ情報が示すコンテンツを取得し、そのコンテンツおよびコンテンツのリソースIDを特徴語抽出部113に送信する。ポインタ情報は、例えばURL(Uniform Resource Locator)であるが、コンテンツへのアクセスを可能とする情報であればURLでなくてもよい。
また、本実施形態では、関係情報制御部115は、コンテンツ関係情報計算部119からリソースIDの組(コンテンツのリソースIDと操作を行ったユーザのリソースIDとの組)およびユーザ重み情報を受信すると、そのリソースIDの組だけでなく、ユーザ重み情報もその組とともに関係情報記憶部124に記憶させる。また、関係情報制御部115は、他のシステムから関係付けられる人同士、グループ同士、あるいは人とグループの関係を保持している外部システム(図示せず。)からリソースIDの組(人またはグループのIDからなるリソースIDの組)を受信する場合、その関連性の度合いを示すユーザ重み情報も受信して関係情報記憶部124に記憶させる。このようにして、関係情報記憶部124に、人またはグループのIDからなるリソースIDの組と、そのリソースの関連性の度合いを示すユーザ重み情報を予め記憶させておく。具体的には、少なくとも、関係付けられる人物とグループの組と、その人物およびグループの関連性の度合いを示すユーザ重み情報を予め関係情報記憶部124に予め記憶させておく。
特徴語重み伝達計算部114は、リソースIDの組とともに関係情報記憶部124に記憶されたユーザ重み情報も用いて、特徴語重み記憶部122に記憶させる関係重み情報を算出する。
また、クライアント130は、アプリケーション実行部134を備え、他システム140はアプリケーション実行部141を備える。アプリケーション実行部134,141は、それぞれクライアント130、他システム140に搭載されたアプリケーションソフトウェアに従って、コンテンツまたはコンテンツのポインタ情報、アクション種別情報、実行者種別情報等をサーバ100に送信する。このアプリケーションソフトウェアは、例えば、ブックマークアプリケーション、コミュニケーションアプリケーション、情報閲覧アプリケーション、ファイル共有アプリケーション等のように、情報の送受信、保管、閲覧、探索、検索、改変等を行うためのアプリケーションソフトウェアである。また、クライアント130のコンテンツ送信部133がアプリケーション実行部134としての動作を行ってもよい。
次に動作について説明する。以下の説明では、クライアント130のアプリケーション実行部134がコンテンツ等の情報をサーバ100に送信する場合を例にして説明する。また、以下の説明では、アプリケーション実行部134がコンテンツを扱ったユーザ名を送信する場合を例に説明するが、第1の実施形態で説明したように、ユーザ名ではなくユーザのリソースIDをサーバ100に送信してもよい。
図13は、コンテンツ等を受信した場合のサーバ100の動作の例を示すフローチャートである。図7に示す動作と同様の動作については、図7と同一の符号を付す。ここでは、アプリケーション実行部134がポインタ情報ではなくコンテンツ自体を送信する場合を例にして説明する。アプリケーション実行部130は、コンテンツに対する操作が行われると、そのコンテンツと、その操作に応じたアクション種別情報と、実行者種別情報とをサーバ100に送信する。また、あわせて、コンテンツのリソース名情報、コンテンツを扱ったユーザ名、コンテンツのリソース種別情報もサーバ100に送信する。すると、サーバ100のコンテンツ関係情報計算部119は、コンテンツと、アクション種別情報と、実行者種別情報と、コンテンツのリソース名情報と、コンテンツを扱ったユーザ名と、コンテンツのリソース種別情報とを受信する(ステップS81a)。
続いて、コンテンツ関係情報計算部119は、受信したコンテンツをコンテンツ記憶部121に送信する(ステップS82)。コンテンツ記憶部121は、そのコンテンツの識別情報を生成してコンテンツを記憶し(ステップS83)、識別情報をコンテンツ関係情報計算部119に返信する(ステップS84)。
続いて、コンテンツ関係情報計算部119は、ステップS81aで受信したリソース名情報、ユーザ名、リソース種別情報と、コンテンツ記憶部121によって生成された識別情報とをリソース情報制御部111に送信する(ステップS85)。すると、リソース情報制御部111は、コンテンツのリソースIDを採番し、そのリソースIDをコンテンツ関係情報計算部119に送信する(ステップS86)。リソース情報制御部111は、採番したリソースID、リソース名情報、リソース種別情報およびコンテンツの識別情報をリソース情報記憶部123に記憶させる(ステップS87)。また、リソース情報制御部111は、ステップS85で受け取ったユーザ名をキーとしてユーザ(人)のリソースIDをリソース情報記憶部123から検索し、そのリソースIDをコンテンツ関係情報計算部119に送信する(ステップS88)。
続いて、コンテンツ関係情報計算部119は、設定情報記憶部125から図12に例示するルール情報を読み込む(ステップS89a)。そして、コンテンツ関係情報計算部119は、そのルール情報に含まれているユーザ重み情報903のうち、ステップS81aでクライアント130から受信したアクション種別情報および実行者種別情報に応じたユーザ重み情報を、コンテンツと、そのコンテンツを操作したユーザとの関連性を示す度合いとして決定する(ステップS89b)。コンテンツ関係情報計算部119は、ステップS86で受け取ったコンテンツのリソースIDとステップS88で受け取ったユーザのリソースIDとの組、およびステップS89bで決定したユーザ重み情報を関係情報制御部115に送信する(ステップS89c)。関係情報制御部115は、そのリソースIDの組およびユーザ重み情報を関係情報記憶部124に記憶させる(ステップS91a)。また、コンテンツ関係情報計算部119は、ステップS81で受信したコンテンツと、リソース情報制御部111によって採番されたコンテンツのリソースIDとを特徴語抽出部113に送信する(ステップS90)。
ここでは、アプリケーション実行手段134がコンテンツを送信する場合を例にして説明したが、コンテンツの代わりにコンテンツのポインタ情報をサーバ100に送信してもよい。例えば、クライアント130において、コンテンツであるWebページに対してブックマーク操作が行われたとすると、アプリケーション実行手段134は、そのWebページのURLをコンテンツのポインタ情報として、アクション種別情報、実行者種別情報とともに送信する。
このようにコンテンツではなくポインタ情報が送信される場合、コンテンツ関係情報計算部119は、ステップS81aにおいて、アプリケーション実行手段134から送信されたコンテンツのポインタ情報、アクション種別情報、実行者種別情報、コンテンツのリソース名情報、コンテンツを扱ったユーザ名、コンテンツのリソース種別情報を受信する。
サーバ100は、ポイント情報を受信した場合には、ステップS82〜S84(図13参照)の処理を行わずに、そのポイント情報をコンテンツの識別情報とする。そして、ステップS85では、コンテンツのポイント情報を識別情報としてリソース情報制御部111に送信すればよい。その後、ステップS86〜S98、ステップS89a〜S89c、ステップS91aの処理を上記と同様に行う。この結果、コンテンツのポインタ情報が識別情報としてリソース情報記憶部123に記憶される。
また、コンテンツ関係情報計算部119は、ステップS89cの後、ポインタ情報が示すコンテンツを取得する。例えば、コンテンツのポインタ情報がURLである場合、コンテンツ関係情報計算部119は、そのURLが示すWebページにアクセスし、そのWebページ(コンテンツ)を取得する。そして、コンテンツ関係情報計算部119は、ステップS90において、そのコンテンツと、コンテンツのリソースIDとを特徴語抽出部に送信すればよい。
図14は、特徴語抽出部113にコンテンツとコンテンツのリソースIDとが渡されてから特徴語重み記憶部122に特徴語等が格納されるまでの動作の例を示すフローチャートである。第1の実施形態における図8と同様の動作については、図8と同一の符号を付す。
特徴語抽出部113は、コンテンツおよびそのリソースIDをコンテンツ関係情報計算部119から受け取ると、そのコンテンツを解析し、特徴語を抽出する(ステップS1)。特徴語抽出部113は、抽出した特徴語とコンテンツのリソースIDとを特徴語重み伝達計算部114に送信する。特徴語重み伝達計算部114は、特徴語を受信すると、設定情報記憶部125から伝播減衰係数αの初期値βを読み込み、繰り返し変数Nの値を1に定める(ステップS3)。以上の動作は第1の実施形態と同様である。
次に、特徴語重み伝達計算部114は、コンテンツのNリンク先リソースIDリストを関係情報記憶部124に記憶されている情報から検索するとともに、リソースIDの組とともに記憶されているユーザ重み情報の積を計算する(ステップS61)。Nリンク先リソースリストの検索は第1の実施形態と同様に行う。第2の実施形態では、関係情報記憶部124にリソースIDの組だけでなくステップS89b(図13参照)で決定されたユーザ重み情報も記憶されている。特徴語重み伝達計算部114は、リソースIDに関係付けられる他のリソースIDを関係情報記憶部124から読み出すときに、その2つのリソースIDの組とともに記憶されているユーザ重み情報も読み出す。そして、読み出した各ユーザ重み情報の積を計算する。この積の値を累積重み情報と記す。
例えば、関係情報記憶部124に、「Id001」と「Id002」とともにユーザ重み情報として0.5が記憶され、「Id002」と「Id003」とともにユーザ重み情報として0.7が記憶されているとする。コンテンツのリソースIDが「Id001」であり、N=2であるとすると、2リンク先リソースIDリストである「Id003」を検索するとともに、その検索過程で読み出す各ユーザ重み情報“0.5”,“0.7”の積(本例では0.35)を算出する。
特徴語重み伝達計算部114は、ステップS4で取得したNリンク先リソースIDリストの中から、既に関係重み情報を計算して特徴語重み記憶部122に記憶する処理(本実施形態では、ステップS62,S7)が行われているリソースIDを削除する(ステップS5)。
次に、特徴語重み伝達計算部114は、累積重み情報の値に伝播減衰係数を乗じた値を、ステップS61で検索されたリソースID(Nリンク先リソースIDリストに含まれているリソースID)の関係重み情報として決定する(ステップS62)。
続いて、特徴語重み伝達計算部114は、特徴語と、Nリンク先リソースIDリストに含まれているリソースIDと、繰り返し数Nに応じた関係重み情報とを特徴語重み記憶部122に記憶させる。特徴語重み伝達計算部114は、その時点における日時情報も、特徴語、リソースIDおよび関係重み情報とともに特徴語重み記憶部122に記憶させる(ステップS7)。
次に、特徴語重み伝達計算部114は、繰り返し数Nを1増加させ、伝播減衰係数αを再計算する(ステップS8)。特徴語重み伝達計算部114は、ステップS8で1増加させたNについてステップS61以降の処理を行うか否かを判定する(ステップS9)。ステップS8の計算およびステップS9の判定は、それぞれ第1の実施形態におけるステップS8,S9と同様に行えばよい。ステップS61以降の処理を再度行わないと判定した場合には、特徴語重み伝達計算部114は処理を終了する。
以上の動作により、コンテンツに対する各種アクションに応じたユーザ重み情報に基づいて、適切な関係重み情報を計算し、コンテンツに含まれる特徴語と、そのコンテンツに関連性のあるリソース(人やグループ等)との関係重み情報を記憶することができる。
また、特徴語検索部116が検索語および時間条件を受信した場合の動作は、第1の実施形態と同様である(図9,図10参照)。
本実施形態によれば、設定情報記憶部125が図12に例示するルール情報を記憶し、コンテンツ関係情報計算部119がクライアント130等から受信したアクション識別情報、実行者識別情報に応じたユーザ重み情報をルール情報に基づいて決定する。そして、特徴語重み伝達計算部114は、そのユーザ重み情報を用いて関係重み情報を計算し、特徴語、リソースID、関係重み情報および日時情報を特徴語重み記憶部122に記憶させる。従って、例えば、コンテンツ閲覧等のような各種操作を行った場合においても、特徴語、リソースID、関係重み情報および日時情報を特徴語重み記憶部122に記憶させることができ、その情報をもとに、検索語から人物やグループを検索することができる。
また、第1の実施形態と同様に、時間を指定した時間条件と検索語とに応じて、指定された時間において検索語と関連性のあった人物やグループを検索することができる。
第2の実施形態においても、演算装置110が備える各構成要素(リソース情報制御部111、コンテンツ関係情報計算部119、特徴語抽出部113、特徴語重み伝達計算部114、関係情報制御部115、特徴語検索部116、特徴語重み再計算部117、検索結果出力部118)は、それぞれ別個の回路であってもよい。また、演算装置110が備える各構成要素は、プログラム(人物検索プログラム)に従って動作するCPUによって実現されていてもよい。例えば、CPUが、サーバの記憶装置から人物検索プログラムを読み込み、そのプログラムに従って、リソース情報制御部111、コンテンツ関係情報計算部119、特徴語抽出部113、特徴語重み伝達計算部114、関係情報制御部115、特徴語検索部116、特徴語重み再計算部117、および検索結果出力部118として動作してもよい。また、ステップS83で識別情報を生成する処理をこのCPUが実行してもよい。
以上の各実施形態で示した人物検索システム100は、文書共有システムやグループウェアやコミュニティ管理システムやプロジェクト管理システムにおける人物・組織検索システムに適用可能であるが、他のシステムにも適用可能である。例えば、ナレッジマネジメントシステムやブログ管理システムやソーシャルネットワーク管理システムといった用途にも適用できる。
次に、本発明の概要について説明する。図15は、本発明の概要を示す説明図である。本発明の人物検索システム70は、コンテンツに対する操作が行われた時にそのコンテンツと操作を行った人物を示す情報とを送信するクライアント60に接続される。
また、人物検索システム70は、関係情報記憶手段71と、関係情報制御手段72と、特徴語重み記憶手段73と、関連リソース登録手段74と、検索手段75とを備える。
関係情報記憶手段71は、少なくとも、関係付けられる人物とグループの組およびコンテンツとコンテンツを操作した人物との組を記憶する。
関係情報制御手段72は、クライアントからコンテンツと操作を行った人物を示す情報とを受信したときに、そのコンテンツと人物との組を関係情報記憶手段71に記憶させる。
特徴語重み記憶手段73は、クライアントから受信したコンテンツに含まれる特徴語と、そのコンテンツに関連性があると判定される人物またはグループと、特徴語と人物、グループまたはコンテンツであるリソースとの関連性の度合いを示す関係重み情報と、日時を示す日時情報とを対応付けて記憶する。
関連リソース登録手段74は、クライアントから受信したコンテンツを起点として、関係付けられているリソースを関係情報記憶手段71から読み込む読込処理を繰り返し、クライアントから受信したコンテンツに含まれる特徴語と読み込んだリソースとの関連性の度合いを示す関係重み情報を読込処理の繰り返し数に応じて決定し、特徴語と、読み込んだリソースと、関係重み情報とを特徴語重み記憶手段73に記憶させるとともに、特徴語とリソースと関係重み情報を特徴語重み記憶手段73に記憶させた日時を示す日時情報を特徴語重み記憶手段73に記憶させる。
検索手段75は、検索条件として検索語および時間が指定されたときに、特徴語および日時情報を用いて特徴語重み記憶手段73に記憶されている人物およびグループを検索する。
以上のような構成により、特徴語重み記憶手段73に特徴語、リソース、日時情報を記憶させることができ、検索条件として検索語および時間が指定されたときに、特徴語重み記憶手段73に記憶させた情報を用いて人物およびグループを検索することができる。
また、上述の実施形態には、関係情報記憶手段が、関係付けられる人物同士の組、および関係付けられるグループ同士の組を記憶する構成が開示されている。そのような構成によれば、指定された時間において検索語と関連性のあった人物に間接的に関係付けられると考えられる人やグループを広く検索することができる。
また、上述の実施形態には、関連リソース登録手段が、クライアントから受信したコンテンツに含まれる特徴語とそのコンテンツとの関係重み情報を関係重み情報の初期値として決定し、読込処理の回数が増えるほど減少するように定められる係数である伝搬減衰係数を、関係重み情報の初期値に乗じることによって、特徴語と読み込んだリソースとの関連性の度合いを示す関係重み情報を決定する構成が開示されている。
また、上述の実施形態には、コンテンツとコンテンツに対して操作を行った人物との関連性の度合いを示す値をコンテンツに対する操作内容に応じて定めたルール情報を記憶するルール情報記憶手段と、クライアントからコンテンツおよび操作を行った人物を示す情報とともに、コンテンツに対する操作内容を受信する操作内容受信手段と、操作内容に応じた値をルール情報に基づいて決定する値決定手段とを備え、関係情報記憶手段が、リソースの組とともにリソース間の関連性の度合いを示す値であるユーザ重み情報を記憶し、関係情報記憶手段が、コンテンツおよび人物の組とともに、値決定手段によって決定された値をユーザ重み情報として関係情報記憶手段に記憶させ、関連リソース登録手段は、コンテンツを起点として、関係付けられているリソースを関係情報記憶手段から読み込む読込処理を繰り返すときに、リソースとともにユーザ重み情報も読み込み、読み込んだ各ユーザ重み情報の積に対して、読込処理の回数が増えるほど減少するように定められる係数である伝搬減衰係数を乗じることによって、特徴語と読み込んだリソースとの関連性の度合いを示す関係重み情報を決定する構成が開示されている。
また、上述の実施形態には、関連リソース登録手段が、読込処理の繰り返し数が閾値を超えたとき、または伝搬減衰係数が閾値未満となったときに、読込処理を繰り返して関係重み情報を決定する処理を終了する構成が開示されている。
また、上述の実施形態には、検索手段が、特徴語重み記憶手段に記憶されている特徴語から検索語に合致する特徴語を検索する特徴語検索手段と、検索された特徴語に対応するリソース、関係重み情報および日時情報を特徴語重み記憶手段から読み込み、検索条件として時点が指定されている場合、その時点と日時情報が示す時刻との差分に応じた値を関係重み情報に乗じて関係重み情報を補正し、補正後の関係重み情報が所定値以上であるリソースを選択し、検索条件として期間が指定されている場合、日時情報が示す時刻がその期間内に収まるリソースであって関係重み情報が所定値以上であるリソースを選択するリソース選択手段とを含む構成が開示されている。