以下、図面を参照して、本発明の実施形態について説明する。
図1は、本発明の実施形態に係る情報共有システムを含むクライアント−サーバシステムのハードウェア構成を示すブロック図である。
図1のクライアント−サーバシステムは、主として、コンピュータ(サーバコンピュータ)10と、複数のクライアント端末とから構成される。複数のクライアント端末はクライアント端末20を含む。クライアント端末20上では、コンピュータ10を利用するクライアントソフトウェアが動作する。クライアントソフトウェアは、例えばブラウザである。クライアント端末20を含む複数のクライアント端末は、ローカルエリアネットワーク(LAN:Local Area Network)のようなネットワーク30を介してコンピュータ10と接続されている。なお、図1にはクライアント端末20以外のクライアント端末は省略されている。
コンピュータ10は、ハードディスクドライブのような外部記憶装置40と接続されている。この外部記憶装置40は、コンピュータ10によって実行されるプログラム41を格納する。コンピュータ10及び外部記憶装置40は、情報共有システム50を構成する。
図2は、図1に示す情報共有システム50の主として機能構成を示すブロック図である。情報共有システム50は、インタフェース(IF)51、記事受取/保管/提供サーバ52、形態素解析部53、閲覧履歴記録部54、単語統計情報解析部55及び関連評価選出部56を含む。本実施形態において、これらの各部51乃至56は、図1に示すコンピュータ10が外部記憶装置40に格納されているプログラム41を実行することにより実現されるものとする。このプログラム41は、コンピュータ読み取り可能な記憶媒体に予め格納して頒布可能である。また、このプログラム41が、ネットワーク30を介してコンピュータ10にダウンロードされても構わない。
また、情報共有システム50は、記事データベース(DB)42、形態素インデックス格納部43、単語統計情報インデックス格納部44及び評価パラメタ設定情報格納部45を含む。本実施形態において、これらは、外部記憶装置40に格納される。
インタフェース51は、クライアント端末20を含むクライアント端末と情報共有システム50との間のデータの入出力を行う。インタフェース51は、記事入力インタフェース511、記事表示インタフェース512及び候補表示インタフェース513を含む。
記事入力インタフェース511は、例えば情報共有システム50に予め登録されたユーザ(利用者)がクライアント端末を操作して投稿(作成)された記事を示す情報(以下、単に記事と表記)を入力する。以下、ユーザによって投稿された記事を、投稿記事と称する。
記事表示インタフェース512は、クライアント端末の例えばブラウザに記事を表示する。候補表示インタフェース513は、ユーザによって記事が投稿された際に、当該ユーザによって参考にされた記事(以下、関連記事と表記)の候補となる記事(以下、関連記事候補記事と表記)を、クライアント端末のブラウザに表示する。また、候補表示インタフェース513は、ブラウザに表示された関連記事候補記事の中からユーザによって例えば選択された記事あるいは破棄された記事を記事受取/保管/提供サーバ52に通知する。
記事受取/保管/提供サーバ52は、記事入力インタフェース511によって入力された投稿記事を受け取る。記事受取/保管/提供サーバ52は、受け取られた投稿記事を記事データベース42に格納(保管)する。記事受取/保管/提供サーバ52は、受け取られた投稿記事を形態素解析部53に送信する。記事受取/保管/提供サーバ52は、受け取られた投稿記事を単語統計情報解析部55に送信する。また、記事受取/保管/提供サーバ52は、受け取られた投稿記事を関連評価選出部56に送信する。
記事受取/保管/提供サーバ52は、記事データベース42に格納されている記事を記事表示インタフェース512に送信する。また、記事受取/保管/提供サーバ52は、関連評価選出部56によって選出された記事(関連記事候補記事)を候補表示インタフェース513に送信する。
記事データベース42には、予め登録された複数のユーザによって投稿された複数の記事が格納されている。記事データベース42に格納されている記事は、例えば当該記事を投稿したユーザ、当該記事の投稿先であるスレッド及び当該記事が投稿された日時(を示す情報)を含む。
また、記事データベース42には、例えば当該記事データベース42に格納されている複数の記事相互間の関係を示す関係情報が格納される。この関係情報は、例えば記事データベース42に格納されている複数の記事のうちの任意の記事を投稿する際に当該任意の記事を投稿したユーザが参考にした記事(関連記事)を示す参考情報(参照情報)を含む。参考情報は、例えば任意の記事を投稿するユーザの(クライアント端末に対する)操作に応じて当該任意の記事に関連記事(参考記事)が付加されて投稿されることにより、記事データベース42に格納(設定)される。
また、関係情報は、記事データベース42に格納されている複数の記事のうち任意の記事(返信元記事)に対して返信された記事(返信記事)が投稿された場合の、当該返信元記事及び当該返信記事の関係を示す返信情報を含む。返信情報は、例えばクライアント端末20の画面に返信元記事が表示されている際に、例えば当該画面の返信ボタンを選択して返信記事を作成及び投稿することにより、記事データベース42に格納(設定)される。
形態素解析部53は、記事受取/保管/提供サーバ52によって送信された投稿記事を形態素解析する。形態素解析部53は、形態素解析した結果を形態素インデックス格納部43に格納する。形態素インデックス格納部43には、予め登録された複数のユーザによって投稿された複数の記事(つまり、記事データベース42に格納されている複数の記事)の各々が解析された結果が格納されている。
閲覧履歴記録部54は、例えばクライアント端末(を操作するユーザ)毎に、記事データベース42に格納されている記事のうち、当該クライアント端末を操作してユーザが閲覧した記事の履歴を示す情報(以下、閲覧履歴情報と表記)を記事データベース42に記録する処理を行う。
単語統計情報解析部55は、記事受取/保管/提供サーバ52によって送信された投稿記事に、当該投稿記事を作成したユーザによって参考にされた関連記事が付加されているか否かを判定する。単語統計情報解析部55は、投稿記事に関連記事が付加されていると判定された場合、形態素インデックス格納部43を参照して単語統計情報を生成する。単語統計情報解析部55は、生成された単語統計情報を単語統計情報インデックス格納部44に格納(保管)する。
単語統計情報は、記事データベース42に格納されている参考情報によって示される関連記事を参考にして投稿(作成)された記事(関連記事を有する記事)に含まれる文字列(単語)に関する統計を示す。単語統計情報は、関連記事を有する記事に共通して多く出現する単語及び特定の意味クラスとの関係を含む。ここで、意味クラスとは、例えば「ユーザA」の場合は「人名」、また、例えば「6月1日」の場合は「日時」のように単語の上位の意味を表す。また、単語及び特定の意味クラスとの関係には、例えば「同一文中に出現」等が含まれる。
評価パラメタ設定情報格納部45は、関連記事付加の判定に関する設定条件(項目)、範囲に関する設定条件及び関連記事候補の優先順位に関する設定条件を示す評価パラメタ設定情報を格納する。評価パラメタ設定情報によって示される各設定条件の詳細については後述する。
関連評価選出部56は、形態素インデックス格納部43及び単語統計情報インデックス格納部44を参照して、記事受取/保管/提供サーバ52によって送信された投稿記事を投稿したユーザが参考にした関連記事の候補となる記事(関連記事候補記事)があるか否かを判定する。つまり、関連評価選出部56は、関連記事を当該投稿記事に付加する必要があるか否かを判定する。このとき、関連評価選出部56は、必要に応じて、評価パラメタ設定情報格納部45に格納されている評価パラメタ情報によって示される設定条件を用いて判定処理を実行する。
関連評価選出部56は、記事データベース42及び形態素インデックス格納部43を参照して、関連記事候補記事を選出(取得)する。このとき、関連評価選出部56は、必要に応じて、評価パラメタ設定情報格納部45に格納されている評価パラメタ情報によって示される設定条件を用いて選出処理を実行する。関連評価選出部56は、選出された関連記事候補記事を記事受取/保管/提供サーバ52に送信する。記事受取/保管/提供サーバ52に対して送信された関連記事候補記事は、候補表示インタフェース513を介して投稿記事を投稿したユーザに対して提示される。
図3は、図2に示す関連評価選出部56の構成を示すブロック図である。関連評価選出部56は、関連記事判定部561及び関連記事選出部562を含む。
関連記事判定部561は、投稿記事が関連記事を付加する必要がある記事であるか否かを判定する処理を実行する。関連記事判定部561は、第1の判定部561a及び第2の判定部561bを含む。
第1の判定部561aは、投稿記事(の記事本文)を形態素解析した結果を、形態素インデックス格納部43から取得する。第1の判定部561aは、取得された形態素解析結果に基づいて、例えば本システム(情報共有システム50)に予め登録されたユーザを特定できる文字列(語)が投稿記事に含まれているか否かを判定する。このユーザを特定できる文字列は、例えば当該ユーザのユーザ名またはアカウント等を含む。
また、第1の判定部561aは、取得された形態素解析結果に基づいて、例えば投稿記事が投稿された日時より以前の日時を表す文字列が当該投稿記事に含まれているか否かを判定する。なお、上記したように、投稿記事が投稿された日時を示す情報は、当該投稿記事に含まれている。ここで、投稿記事に含まれる日時を表す文字列(の書式)は、例えば「2006年07月28日」または「2006/07/28」のように様々であるが、日時を特定可能であるものであれば構わない。
第2の判定部561bは、形態素インデックス格納部43及び単語統計情報インデックス格納部44を参照して、投稿記事を投稿したユーザが参考にした関連記事の候補となる記事(関連記事候補記事)がある(存在する)か否かを判定する。
第2の判定部561bは、関連記事を有する記事に多く含まれている(出現する)単語を含む単語統計情報を、単語統計情報インデックス格納部44から取得する。ここで、関連記事を有する記事に多く出現する単語を判別するための閾値は、上記した評価パラメタ設定情報格納部45に格納されている評価パラメタ設定情報によって示される関連記事付加の判定に関する設定条件に設定されている。この閾値には、具体的には、例えば「単語統計情報インデックス格納部44に格納されている全単語に締める出現単語のパーセンテージ」、または、「ある値以上の出現回数」等が含まれる。
第2の判定部561bは、形態素インデックス格納部43に格納されている形態素解析結果及び取得された単語統計情報に基づいて、投稿記事に含まれる文字列及び当該単語統計情報に含まれる単語(文字列)の一致点が多いか否かを判定する。つまり、第2の判定部561bは、取得された単語統計情報に含まれる単語が、投稿記事内に多く出現しているか否かを判定する。ここで、一致点が多いか否かを判定するための閾値は、上記した関連記事付加の判定に関する設定条件に設定されている。この閾値には、具体的には、投稿記事に含まれる全文字列(単語)に占める一致単語(関連記事を有する記事に多く出現する単語と一致する単語)のパーセンテージ、または、ある値以上の一致回数(一致単語の数)等が含まれる。
第2の判定部561bは、投稿記事に含まれる文字列(単語)及び取得された単語統計情報に含まれる単語の一致点が多いと判定された場合、投稿記事が関連記事を付加する必要がある記事であると判定する。なお、例えば投稿記事に関連記事が付加されて投稿されている場合であっても、当該関連記事以外の関連記事を付加する必要があると判定される。
関連記事選出部562は、投稿記事に付加する必要がある記事(関連記事候補記事)を選出する処理を実行する。関連記事選出部562は、記事取得部562a及び優先度決定部562bを含む。
記事取得部562aは、以下に示す第1〜第5の記事取得処理を含む処理を実行する。
例えば第1の記事取得処理では、記事取得部562aは、記事データベース42に格納されている閲覧履歴情報によって示される記事のうち、当該投稿記事に類似する記事(類似記事)を記事データベース42から取得する。なお、この閲覧履歴情報によって示される記事は、投稿記事を投稿したユーザによって閲覧された記事である。記事取得部562aは、形態素インデックス格納部43を参照して、例えば投稿記事に含まれる文字列の出現頻度に応じて類似記事を取得する。
記事取得部562aは、上記した第1の判定部561aによって投稿記事にユーザを特定する文字列が含まれていると判定された場合、取得された類似記事のうち、当該ユーザによって投稿された記事を取得する。また、記事取得部562aは、第1の判定部561aによって投稿記事に日時を特定する文字列が含まれていると判定された場合、取得された類似記事のうち、当該日時前後(当該日時を含む一定期間内)に投稿された記事を取得する。以下、この第1の記事取得処理で取得された記事(群)を、第1の記事群と称する。
なお、上記した日時前後(当該日時を含む一定期間)の範囲は、評価パラメタ設定情報格納部45に格納されている評価パラメタ設定情報によって示される範囲に関する設定条件に設定されている。この日時前後の範囲には、具体的には、例えば「当該日時の前後7日間」、または、「当該日時に該当する月」等が含まれる。
次に、第2の記事取得処理では、記事取得部562aは、記事データベース42に格納されている複数の記事の各々に含まれるスレッド情報、返信情報及び形態素インデックス格納手段に格納されている解析結果に基づいて、投稿記事の投稿先であるスレッドに類似する類似スレッドに投稿されている記事のうち、当該投稿記事に類似する記事を取得する。記事取得部562aは、例えば投稿記事の投稿先であるスレッドと似た記事のつながり、または固有名詞以外の出現単語(投稿先であるスレッドに投稿されたすべての記事に含まれる単語)の傾向が類似するスレッド(類似スレッド)を特定する。記事取得部562aは、特定された類似スレッドに投稿された記事のうち、投稿記事に類似する記事を取得する。
記事取得部562aは、上記した第1の判定部561aによって投稿記事にユーザ特定する文字列が含まれていると判定された場合、取得された類似記事のうち、当該ユーザによって投稿された記事を取得する。また、記事取得部562aは、第1の判定部561aによって投稿記事に日時を特定する文字列が含まれていると判定された場合、取得された類似記事のうち、当該日時を含む一定期間内に投稿された記事を取得する。以下、この第2の記事取得処理で取得された記事群を、第2の記事群と称する。
第3の記事取得処理では、記事取得部562aは、記事データベース42に格納されている複数の記事のうち、投稿記事に類似する記事であって類似スレッドに投稿されている記事(つまり、類似スレッドに投稿されている記事のうち当該投稿記事に類似する記事)を投稿したユーザが参考にした関連記事を、記事データベース42に格納されている参考情報及び形態素インデックス格納部43に格納されている解析結果に基づいて取得する。
記事取得部562aは、第1の判定部561aによって投稿記事にユーザを特定する文字列が含まれていると判定された場合、取得された関連記事のうち、当該ユーザによって投稿された記事を取得する。また、記事取得部562aは、第1の判定部561aによって投稿記事に日時を特定する文字列が含まれていると判定された場合、取得された関連記事のうち、当該日時前後に投稿された記事を取得する。以下、この第3の記事取得処理で取得された記事群を、第3の記事群と称する。
第4の記事取得処理では、記事取得部562aは、記事データベース42に格納されている返信情報に基づいて、投稿記事がある記事(返信元記事)に対して返信された記事(返信記事)であるか否かを判定する。投稿記事が返信記事であると判定された場合に、記事取得部562aは、当該投稿記事の返信元記事に類似する記事を記事データベース42から取得する。このとき、記事取得部562aは、形態素インデックス格納部43を参照して取得処理を実行する。
記事取得部562aは、第1の判定部561aによって投稿記事にユーザを特定する文字列が含まれている判定された場合、取得された返信元記事に類似する記事のうち、当該ユーザによって投稿された記事を取得する。また、記事取得部562aは、第1の判定部561aによって投稿記事に日時を特定する文字列が含まれていると判定された場合、取得された返信元記事に類似する記事のうち、当該日時前後に投稿された記事を取得する。以下、この第4の記事取得処理で取得された記事群を、第4の記事群と称する。
なお、投稿記事が返信記事でないと判定された場合には、この第4の記事取得処理は実行されない。
また、例えば投稿記事に対する返信元記事(第1の返信元記事)に対して更に返信元記事(第2の返信元記事)が存在する場合には、その第2の返信元記事の類似記事についても取得される構成でもよい。つまり、第1の返信元記事に対して更に第2の返信元記事が存在する場合には、さかのぼって取得処理が実行される。なお、返信元記事をさかのぼる範囲(段数)は、評価パラメタ設定情報格納部45に格納されている評価パラメタ設定情報によって示される範囲に関する設定条件に設定されている。この返信元記事をさかのぼる範囲には、具体的には、例えば「3段前まで」、または、「3段前とスレッドの先頭記事」等が含まれる。
また、第5の記事取得処理では、記事取得部562aは、第1の判定部561aによって投稿記事にユーザを特定する文字列が含まれていると判定された場合、当該文字列の前後の一定範囲内に出現する文字列が含まれる記事を記事データベース42から取得する。記事取得部562aは、取得された記事のうち、投稿記事に含まれる文字列によって特定されるユーザによって投稿された記事を取得する。
また、記事取得部562aは、第1の判定部561aによって投稿記事に日時を特定する文字列が含まれていると判定された場合、当該文字列の前後の一定範囲内に出現する文字列が含まれる記事を記事データベース42から取得する。記事取得部562aは、取得された記事のうち、投稿記事に含まれる文字列によって表される日時に投稿された記事を取得する。以下、この第5の記事取得処理で取得された記事群を、第5の記事群と称する。
なお、上記した文字列の前後(の一定範囲)の範囲は、評価パラメタ設定情報格納部45に格納されている評価パラメタ設定情報によって示される範囲に関する設定条件に設定されている。この文字列の前後の範囲には、具体的には、例えば「ある単語(文字列)の前後10単語」、または、「ある単語(文字列)が含まれる文節内の全単語」等が含まれる。
優先度決定部562bは、上記した記事取得部562aによって取得された記事群(第1〜第5の記事群)に含まれる記事の各々の優先度を、評価パラメタ設定情報格納部45に格納されている評価パラメタ設定情報に基づいて決定する。
この評価パラメタ設定情報は、優先度を決定するために予め定義された設定条件(関連記事候補の優先度に関する設定条件)を示す。この関連記事候補の優先度に関する設定条件には、例えば閲覧履歴に登録されている記事の重要度、類似スレッドに属する記事の重要度、類似記事/類似スレッド内の類似記事の関連記事の重要度、返信元記事の類似記事の重要度またはユーザ/日時の周辺の単語を含む記事の重要度等が設定されている。具体的には、各重要度に対して予め得点が定められており、第1〜第5の記事群に含まれる各記事に対して与えられた得点が優先度として決定される。
優先度決定部562bは、この関連記事候補の優先度に関する設定条件に応じて、第1〜第5の記事群に含まれる記事の各々に対して優先度を決定する。優先度決定部562bは、決定された優先度に応じて記事を順序付けし、当該記事(群)を関連記事候補記事として記事受取/保管/提供サーバ52に送信する。記事受取/保管/提供サーバ52に送信された関連記事候補記事は、候補表示インタフェース513を介して投稿記事を投稿したユーザに対して提示される。
図4は、記事データベース42に格納されている記事のデータ構造の一例を示す。図4に示すように、記事データベース42に格納されている記事は、例えば当該記事を識別する記事ID、当該記事のタイトル、当該記事の本文、当該記事を投稿したユーザ、当該記事の投稿先となるスレッド及び当該記事が投稿された投稿日(を示す情報)を含む。
図4に示す例では、記事421は、記事ID「1」、タイトル「sss」、本文「ttt」、ユーザ「A」、スレッド「スレッド1」、投稿日「6月1日」を含む。また、記事422は、記事ID「2」、タイトル「sss」、本文「yyy」、ユーザ「B」、スレッド「スレッド2」、投稿日「6月5日」を含む。
図5は、記事データベース42に格納されている関係情報のデータ構造の一例を示す。関係情報には、例えば参考情報及び返信情報が含まれる。参考情報は、例えば記事データベース42に格納されている複数の記事のうちの任意の記事を投稿する際に当該任意の記事を投稿したユーザが参考にした記事(関連記事)及び当該任意の記事の関係を示す。返信情報は、記事データベース42に格納されている複数の記事のうち任意の記事(返信元記事に対して返信された記事(返信記事)が投稿された場合の、当該返信元記事及び当該返信記事の関係を示す。
図5に示すように、関係情報は、先記事となる記事を識別する先記事ID、元記事となる記事を識別する元記事ID及び当該先記事と元記事との記事相互間の関係(を示す情報)を含む。
図5に示す例では、関係情報423は、先記事ID「1」、元記事ID「2」及び関係「参考」を含む。この関係情報423によれば、先記事ID「1」によって識別される記事が投稿(作成)される際に、元記事ID「2」によって識別される記事が参照されたことが示される。つまり、関係情報423は、参考情報である。
また、関係情報424は、先記事ID「3」、元記事ID「4」及び関係「返信」を含む。この関係情報424によれば、先記事ID「3」によって識別される記事(返信記事)が元記事ID「4」によって識別される記事(返信元記事)に対して返信された記事であることが示される。つまり、関係情報424は、返信情報である。
図6は、記事デーベース42に格納されている閲覧履歴情報のデータ構造の一例を示す。閲覧履歴情報は、例えば予め情報共有システム50に登録されているユーザ毎に、記事データベース42に格納されている記事のうち当該ユーザが閲覧した記事の履歴を示す。ここでは、ユーザAについての閲覧履歴情報について説明する。
図6に示すように、閲覧履歴情報は、例えばユーザAが閲覧した記事を識別する記事ID及び当該ユーザAが当該記事を閲覧した日付(を示す情報)を含む。
図6に示す例では、閲覧履歴情報425には、記事ID「1」及び日付「6月10日」が含まれる。この閲覧履歴情報425によれば、例えばユーザAが記事ID「1」によって識別される記事を6月10日に閲覧したことが示される。
また、閲覧履歴情報426には、記事ID「2」及び日付「6月25日」が含まれる。この閲覧履歴情報426によれば、例えばユーザAが記事ID「2」によって識別される記事を6月25日に閲覧したことが示される。
図7は、単語統計情報インデックス格納部44のデータ構造の一例を示す。図7に示すように、単語統計情報インデックス格納部44には、単語、意味クラス及び当該単語と意味クラスとの関係(を示す情報)を含む単語統計情報が格納されている。単語は、上記した参考情報によって示される関連記事を参考にして投稿された記事(関連記事を有する記事)に含まれる文字列(単語)を示す。意味クラスは、特定の単語(ユーザA)の上位の意味(人名)を示す。単語と意味クラスとの関係は、単語と当該意味クラスによって示される意味を表す文字列との関係を示す。
図7に示す例では、単語統計情報441には、単語「大学」、意味クラス「人名」及び関係「同一文」が含まれる。この単語統計情報441によれば、関連記事を有する記事において、単語「大学」及び人名を表す文字列(例えば、「ユーザA」等)が同一文に含まれていることを示す。
また、単語統計情報442には、単語「大学」、意味クラス「日時」及び関係「15語以内」が含まれる。この単語統計情報442によれば、関連記事を有する記事において、単語「大学」及び日時を表す文字列(例えば、「2006年07月28日」等)が15語以内に出現する(含まれている)ことが示される。
また、単語統計情報443には、単語「システム」、意味クラス「人名」及び関係「同一記事」が含まれている。この単語統計情報443によれば、関連記事を有する記事に単語「システム」及び人名を表す文字列が含まれることが示される。
次に、図8のフローチャートを参照して、図3に示す関連記事判定部561の処理手順について説明する。関連記事判定部561は、投稿記事に関連記事を付加する必要があるか否かを判定する処理を実行する。
関連記事判定部561に含まれる第1の判定部561aは、形態素インデックス格納部43に格納されている投稿記事を形態素解析した結果を取得する(ステップS1)。
第1の判定部561aは、予め情報共有システム50に登録されたユーザのユーザ名または投稿記事が投稿された日より以前の日時(を表す文字列)が含まれているか否かを、取得された形態素解析結果に基づいて判定する(ステップS2)。ここでは、ユーザ名として説明したが、ユーザ名でなくともユーザを特定できる語(文字列)であればよく、例えばユーザのアカウント等であっても構わない。また、日時を表す文字列は、当該日時を特定することができるものであればよい。したがって、例えば「2006年07月28日」または「2006/07/28」のように異なる書式であっても、いずれも日時を表す文字列として判定される。
第1の判定部561aによって投稿記事にユーザ名または日時(を表す文字列)が含まれていると判定された場合(ステップS2のYES)、第2の判定部561bは、単語統計情報インデックス格納部44を参照して、関連記事を有する記事によく出現している単語(文字列)を含む単語統計情報を取得する(ステップS3)。
このとき、第2の判定部561bは、評価パラメタ設定情報格納部45に格納されている評価パラメタ設定情報によって示される関連記事付加の判定に関する設定条件に基づいて、関連記事を有する記事によく(多く)出現している単語を含む単語統計情報を取得する。この関連記事付加の判定に関する設定条件には、例えば単語統計情報に含まれる全単語に締める出現単語のパーセンテージ(割合)が設定されている。この場合、単語統計情報インデックス格納部44に格納されている単語統計情報に含まれる単語のうち、出現する割合が設定されている値を超えている単語が、関連記事を有する記事によく出現している単語として特定される。
なお、関連記事付加の判定に関する設定条件には、上記した全単語に占める出現単語のパーセンテージに代えて、例えば単語の出現回数が設定されていてもよい。この場合には、単語統計情報インデックス格納部44に格納されている単語統計情報に含まれる単語のうち、出現回数が設定されている値を超えている単語が、関連記事を有する記事によく出現している単語として特定される。
次に、第2の判定部561bは、投稿記事内において、取得された単語統計情報に含まれる特定の意味クラスとの関係を満たす単語の一致点が多いか否かを判定する(ステップS4)。具体的には、例えば単語統計情報が、単語として「大学」、意味クラスとして「人名」及び関係として「同一文」を含む場合を想定する。この場合では、第2の判定部561bは、例えば投稿記事において、単語統計情報に含まれる意味クラス「人名」を表す文字列と「同一文」に出現している単語「大学」が存在する場合には一致すると判定する。このような処理が実行されることにより、投稿記事が全体として単語統計情報に含まれる意味クラスとの関係を満たす単語について一致点が多いかが判定される。
このとき、第2の判定部561bは、評価パラメタ設定情報格納部45によって格納されている評価パラメタ設定情報によって示される関連記事付加の判定に関する設定条件に基づいて、判定処理を実行する。この関連記事付加の判定に関する設定条件には、例えば記事に含まれる全文字列(単語)に占める関連記事を有する記事によく出現する(単語統計情報に含まれる)単語(と一致する単語)のパーセンテージ(割合)が設定されている。この場合、投稿記事に含まれる全文字列において関連記事を有する記事によく出現する単語が占める割合が設定された値を超えている場合に、当該投稿記事に含まれる文字列及び取得された関連記事を有する記事によく出現している単語(文字列)の一致点が多いと判定される。
なお、関連記事付加の判定に関する設定条件には、上記した全文字列(単語)に占める関連記事を有する記事によく出現する単語のパーセンテージに代えて、例えば一致回数(一致する単語の数)が設定されていてもよい。この場合には、投稿記事に含まれる全文字列(単語)のうち、関連記事を有する記事によく出現している単語が一致する単語の数が設定されている値を超えている場合、一致点が多いと判定される。
投稿記事において、単語統計情報に含まれる意味クラスとの関係を満たす単語の一致点が多いと判定された場合(ステップS4のYES)、第2の判定部561bは、投稿記事に対する関連記事候補記事が存在すると判定する。これにより、第2の判定部561bは、投稿記事に関連記事を付加する必要があると判定する(ステップS5)。
一方、ステップS2において投稿記事にユーザ名及び日時(の両方)が含まれていないと判定された場合、第2の判定部561bは、投稿記事に対する関連記事候補記事は存在しないと判定する。これにより、第2の判定部561bは、投稿記事に関連記事を付加する必要がないと判定する(ステップS6)。
また、ステップS4において、投稿記事内に単語統計情報に含まれる意味クラスとの関係を満たす単語の一致点が多くないと判定された場合、ステップS6の処理が実行される。
次に、図9及び図10のフローチャートを参照して、図3に示す関連記事選出部562の処理手順について説明する。関連記事選出部562は、投稿記事に対する関連記事候補記事を選出する処理を実行する。この処理は、上記した関連記事判定部561によって投稿記事に関連記事を付加する必要があると判定された場合に実行される。なお、投稿記事を投稿したユーザは、ユーザAであるものとして説明する。
関連記事選出部562に含まれる記事取得部562aは、記事データベース42に格納されている閲覧履歴情報によって示される(投稿記事を投稿したユーザが閲覧した)記事のうち、当該投稿記事に類似する記事(類似記事)を記事データベース42から取得する(ステップS7)。記事取得部562aは、形態素インデックス格納部43を参照して、投稿記事及び記事データベース42に格納されている複数の記事に含まれる文字列の出現頻度に応じて、当該投稿記事の類似記事を取得する。以下の説明においても、類似記事については同様にして取得される。
記事取得部562aは、予め登録されたユーザを特定する文字列(例えば、ユーザ名)が投稿記事に含まれているか否かを判定する(ステップS8)。この場合、記事取得部562aは、例えば上記した第1の判定部561aによってユーザのユーザ名が投稿記事に含まれていると判定されたか否かを判定する。
ここで、例えばユーザ名が投稿記事に含まれていると判定された場合を想定する。以下、投稿記事に含まれているユーザ名によって特定されるユーザは、ユーザBであるものとして説明する。
例えば投稿記事にユーザ(ここでは、ユーザB)を特定するユーザ名が含まれていると判定された場合(ステップS8のYES)、記事取得部562aは、ステップS7において取得された記事のうち、ユーザBによって投稿された記事を取得する。
次に、記事取得部562aは、投稿記事が投稿された日時より以前の日時を表す文字列が当該投稿記事に含まれているか否かを判定する(ステップS10)。この場合、記事取得部562aは、例えば上記した第1の判定部561aによって日時を表す文字列が投稿記事に含まれていると判定されたか否かを判定する。
投稿記事に日時を表す文字列が含まれていると判定された場合(ステップS10のYES)、記事取得部562aは、ステップS7において取得された記事のうち、当該日時前後に投稿された記事を取得する(ステップS11)。記事取得部562aは、ステップS7において取得された記事に含まれる投稿日(を示す情報)に基づいて記事を取得する。
このとき、記事取得部562aは、評価パラメタ設定情報格納部45に格納されている評価パラメタ設定情報によって示される範囲に関する設定条件に基づいて、投稿記事に含まれている文字列によって表される日時前後に投稿された記事を取得する。この範囲に関する設定条件には、例えば任意の日時を基準とした一定期間(例えば当該日時を基準として前後7日間)が設定されている。この場合、記事取得部562aは、ステップS7において取得された記事のうち、例えば投稿記事に含まれる文字列によって表される日時を基準として前後7日間に投稿された記事を取得する。
なお、範囲に関する設定条件には、例えば「任意の日時を含む月」のような条件が設定されていてもよい。この場合には、記事取得部562aは、ステップS7において取得された記事のうち、例えば投稿記事に含まれる文字列によって表される日時を含む月に投稿された記事を取得する。具体的には、投稿記事に含まれる文字列によって表される日時が、例えば「2006年07月28日」であれば、当該2006年7月中に投稿された記事が取得される。
一方、ステップS8において例えば投稿記事にユーザを特定するユーザ名が含まれていないと判定された場合、ステップS10の処理が実行される。また、ステップS10において投稿記事に日時を表す文字列が含まれていないと判定された場合、ステップS12の処理が実行される。
上記したステップS9及びステップS11の処理によって取得された記事群を、第1の記事群と称する。
次に、記事取得部562aは、記事データベース42に格納されている記事の投稿先であるスレッドを示すスレッド情報、当該記事データベース42に格納されている返信情報及び形態素インデックス格納部43に格納されている形態素解析結果に基づいて、投稿記事の投稿先であるスレッドに類似するスレッド(類似スレッド)を特定する。記事取得部562aは、例えば投稿記事の投稿先であるスレッド内における当該スレッドに投稿されている記事のつながり(構造)と類似する記事のつながりを有するスレッドであって、投稿記事の投稿先であるスレッドに投稿されている記事内に出現する例えば固有名詞以外の単語(文字列)の傾向が類似するスレッドを、類似スレッドとして特定する。
記事取得部562aは、形態素インデックス格納部43に格納されている形態素解析結果に基づいて、特定された類似スレッドに投稿されている記事のうち、投稿記事の類似記事を取得する(ステップS12)。
なお、例えば投稿記事が既に記事が投稿されているスレッドに投稿されていない場合、つまり、例えば新規記事として投稿された(新たに生成されたスレッドに対して投稿された)場合には、当該投稿記事と同様に新規記事として投稿された記事のうち、投稿記事の類似記事が取得される。
ステップS12の処理が実行されると、当該ステップS12の処理において取得された記事群に対して、上記したステップS8〜ステップS11の処理に相当するステップS13〜ステップS16の処理が実行される。
なお、ステップS13において例えば投稿記事にユーザを特定するユーザ名が含まれていないと判定された場合、ステップS15の処理が実行される。また、ステップS15において投稿記事に日時を表す文字列が含まれていないと判定された場合、ステップS17の処理が実行される。
上記したステップS14及びステップS16の処理において取得された記事群を、第2の記事群と称する。
次に、記事取得部562aは、記事データベース42に格納されている参考情報に基づいて、投稿記事に類似する記事(類似記事)であって、上記した類似スレッド(投稿記事の投稿先であるスレッドに類似するスレッド)に投稿されている記事を記事データベース42から取得する(ステップS17)。
また、記事取得部562aは、記事データベース42に格納されている参考情報に基づいて、上記したステップS17において取得された記事の関連記事を取得する(ステップS18)。記事取得部562aは、ステップS17において取得された記事を識別する先記事IDを含む参考情報に含まれる元記事IDによって識別される記事(関連記事)を取得する。
ステップS18の処理が実行されると、ステップS18の処理において取得された記事群に対して、上記したステップS8〜ステップS11の処理に相当するステップS19〜ステップS22の処理が実行される。
なお、ステップS19において例えば投稿記事にユーザを特定するユーザ名が含まれていないと判定された場合、ステップS21の処理が実行される。また、ステップS21において投稿記事に日時を表す文字列が含まれていないと判定された場合、ステップS23の処理が実行される。
上記したステップS20及びステップS22の処理において取得された記事群を、第3の記事群と称する。
次に、記事取得部562aは、記事データベース42に格納されている返信情報に基づいて、投稿記事が記事データベース42に格納されている記事に対する返信記事であるか否かを判定する。つまり、記事取得部562aは、投稿記事に返信元記事があるか否かを判定する(ステップS23)。返信記事及び返信元記事を示す返信情報は、例えば投稿記事を投稿したユーザのクライアント端末に対する操作に応じて、当該投稿記事が返信記事として投稿されると、記事データベース42に格納される。
投稿記事に返信元記事がある場合(ステップS23のYES)、記事取得部562aは、形態素解析インデックス格納部43に格納されている形態素解析結果に基づいて、当該返信元記事の類似記事を取得する(ステップS24)。
ステップS24の処理が実行されると、当該ステップS24の処理において取得された記事群に対して、上記したステップS8〜ステップS11の処理に相当するステップS25〜ステップS28の処理が実行される。
なお、ステップS25において例えば投稿記事にユーザを特定するユーザ名が含まれていないと判定された場合、ステップS27の処理が実行される。また、ステップS27において投稿記事に日時を表す文字列が含まれていないと判定された場合、ステップS29の処理が実行される。
上記したステップS26及びステップS28の処理において取得された記事群を、第4の記事群と称する。
なお、上記したステップS23及びステップS24の処理において、例えば投稿記事の返信元記事(第1の返信元記事)に、更に返信元記事(第2の返信元記事)が存在する場合には、当該第2の返信元記事の類似記事についても取得される構成でもよい。つまり、第1の返信元記事に対して更に第2の返信元記事が存在する場合には、当該第2の返信元記事までさかのぼって処理が実行される。この場合、さかのぼる範囲は、評価パラメタ設定情報によって示される範囲に関する設定条件に設定することができる。
具体的には、さかのぼる範囲を「3段前まで」のような条件を設定することができる。この「3段前まで」が設定されている場合には、投稿記事の第1の返信元記事、当該第1の返信元記事に対する第2の返信元記事及び当該第2の返信元記事に対する第3の返信元記事のそれぞれに対する類似記事が取得される。つまり、この場合には、第1〜第3の返信元記事の類似記事に対してステップS25〜ステップS28の処理が実行される。
次に、上記したステップS8の処理に相当するステップS29の処理が実行される。ステップS29において投稿記事にユーザBを特定するユーザ名が含まれていると判定された場合(ステップS29のYES)、記事取得部562aは、形態素解析インデックス格納部43に格納されている形態素解析結果に基づいて、投稿記事内で当該ユーザ名の前後(の一定範囲)に出現する文字列(単語)を特定する。記事取得部562aは、ユーザBを特定するユーザ名の前後に出現する文字列を含む記事であって、特定されたユーザ(ここでは、ユーザB)によって投稿された記事を取得する(ステップS30)。
次に、上記したステップS10の処理に相当するステップS31の処理が実行される。ステップS31において投稿記事に日時を表す文字列が含まれていると判定された場合(ステップS31のYES)、記事取得部562aは、形態素解析インデックス格納部43に格納されている形態素解析結果に基づいて、投稿記事内で当該日時を表す文字列の前後(の一定範囲)に出現する文字列(単語)を特定する。記事取得部562aは、日時を表す文字列の前後に出現する文字列を含む記事であって、当該日時に投稿された記事を取得する(ステップS32)。
上記したステップS30及びステップS32の処理において、記事取得部562aは、評価パラメタ設定情報格納部45に格納されている評価パラメタ設定情報によって示される範囲に関する設定条件に基づいて記事を取得する。この範囲に関する設定条件には、例えばユーザを特定するユーザ名(または日時を表す文字列)の前後の一定範囲(例えば前後10単語)が設定されている。この場合、記事取得部562aは、ステップS30において投稿記事内でユーザBを特定するユーザ名の前後10単語以内に出現する単語(文字列)を含む記事を取得する。また、ステップS32においても同様に、記事取得部562aは、投稿記事内で日時を表す文字列の前後10単語以内に出現する単語(文字列)を含む記事を取得する。
なお、範囲に関する設定条件には、例えば「対象となる文字列(ユーザ名または日時を表す文字列)が含まれる文節内の全単語」のような条件が設定されていてもよい。
一方、ステップS29において例えば投稿記事にユーザを特定するユーザ名が含まれていないと判定された場合、ステップS31の処理が実行される。また、ステップS31において投稿記事に日時を表す文字列が含まれていないと判定された場合、ステップS33の処理が実行される。
上記したステップS30及びステップS32の処理によって取得された記事群を、第5の記事群と称する。
次に、優先度決定部562bは、評価パラメタ設定情報格納部45を参照して、上記した処理で取得された記事群(第1〜第5の記事群)の各々に対して優先度を決定する(ステップS33)。優先度決定部562bは、評価パラメタ設定情報格納部45に格納されている評価パラメタ設定情報によって示される関連記事候補の優先度に関する設定条件に応じて優先度を決定する。
この関連記事候補の優先度に関する設定条件には、例えば上記した第1〜第5の記事群のそれぞれに対して重要度に応じた得点(優先度)が予め設定されている。具体的には、閲覧履歴に登録されている記事(第1の記事群)には例えば10点、類似スレッドに属する記事(第2の記事群)には例えば7点、類似記事の関連記事(第3の記事群)には例えば5点、返信元記事の類似記事(第4の記事群)には例えば5点及びユーザ名・日時の前後の単語を含む記事(第5の記事群)には例えば7点を付与することが設定されている。
記事取得部562bは、この関連記事候補の優先度に関する設定条件に応じて、第1〜第5の記事群に含まれる記事の各々に対して得点を付与する。記事取得部562bは、第1〜第5の記事群に含まれる記事の各々に対して付与された得点に基づいて、優先度を決定する。記事取得部562bは、例えば第1から第5の記事群に含まれる記事の各々に対して付与された得点の合計を、当該記事の優先度として決定する。
優先度決定部562bは、決定された優先度に応じて、第1〜第5の記事群に含まれる記事の各々を投稿記事に対する関連記事候補記事として記事受取/保管/提供サーバ52に送信する(ステップS34)。
記事受取/保管/提供サーバ52に対して送信された第1〜第5の記事群に含まれる記事の各々(関連記事候補記事)は、候補表示インタフェース513を介して、例えば優先度順にユーザに対して提示(表示)される。関連記事候補記事が提示されたユーザは、例えばクライアント端末を操作することにより、提示された関連記事候補記事の中から関連記事を投稿記事に対して付与することができる。この場合、投稿記事及び付与された関連記事を示す参考情報が、記事データベース42に格納される。また、投稿記事に関連記事が付与された場合、当該投稿記事に含まれる文字列が、関連記事を有する記事に含まれる文字列として単語統計情報インデックス格納部44に格納される。これにより、単語統計情報インデックス格納部44が更新される。なお、投稿記事が投稿される際に、既に別の関連記事が付与されていた場合には、上記した単語統計情報解析部55により当該投稿記事に含まれる文字列は既に単語統計情報インデックス格納部44に格納(登録)されているため、当該単語統計情報インデックス格納部44の更新処理は実行されない。
次に、図11を参照して、関連評価選出部56の処理手順について具体的に説明する。ここでは、例えば記事1及び記事2が投稿されているスレッドaに、例えばユーザXによって記事3(投稿記事)が投稿された場合について説明する。この記事3の内容(本文)は、例えば「Yさんが以前言っていましたが、ZZシステムの次のバージョンでは、・・・」であるものとする。なお、ユーザYは、予め情報共有システム50に登録されたユーザであるものとする。
また、記事2は記事1に対して返信された返信記事であり、記事3は記事2に対して返信された返信記事であるものとする。つまり、記事2を返信記事、記事1を返信元記事として示す返信情報が記事データベース42に格納されている。また、記事3を返信記事、記事2を返信元記事として示す返信情報が記事データベース42に格納されている。
まず、関連評価選出部56の関連記事判定部561に含まれる第1の判定部561aは、記事3が形態素解析された結果に基づいて、当該記事3に予め登録されたユーザを特定する文字列または投稿記事が投稿された日より以前の日時を表す文字列が含まれているか否かを判定する。この場合、記事3には、ユーザYを特定する「Yさん」の文字列が含まれているため、第1の判定部561aは、記事3がユーザを特定する文字列を含むと判定する。なお、上記したように記事3(の本文)には、日時を表す文字列は含まれていないものとする。
次に、第2の判定部561bは、単語統計情報インデックス格納部44に格納されている単語統計情報によって示される単語のうち、関連記事を有する記事によく出現している単語(文字列)を取得する。第2の判定部561bは、評価パラメタ設定情報格納部45に格納されている評価パラメタ設定情報に基づいて、関連記事を有する記事によく出現している単語を取得する。
ここで、第2の判定部561bによって例えば「以前」、「言う」及び「ました」等の単語が単語統計情報インデックス格納部44から取得されたものとする。この場合、これらの「以前」、「言う」及び「ました」等の単語は記事3に出現するため、第2の判定部561bは、記事3に含まれる文字列及び取得された単語(文字列)の一致点が多いと判定する。これにより、第2の判定部561bは、記事3が関連記事を付加する必要がある記事であると判定する。
記事3が関連記事を付加する必要がある記事であると判定された場合、関連記事選出部562に含まれる記事取得部562aは、ユーザXの閲覧履歴を示す閲覧履歴情報によって示される記事のうち、記事3の内容に類似している記事(類似記事)を取得する。記事取得部562aは、取得された類似記事のうち、記事3に含まれる文字列(ここでは、「Yさん」)によって特定されるユーザYによって投稿された記事を取得する。なお、記事3には、日時を表す文字列は含まれていないため、当該日時前後に投稿された記事は取得されない。以下の処理についても同様である。ここで、取得された記事が、上述した第1の記事群に該当する。ここでは、第1の記事群として、例えば記事A及び記事Bが取得されたものとする。
次に、記事取得部562aは、記事データベース42に格納されている記事の投稿先であるスレッドを示すスレッド情報、当該記事データベース42に格納されている返信情報及び形態素インデックス格納部43に格納されている形態素解析結果に基づいて、記事3の投稿先であるスレッドaの類似スレッドを特定する。記事取得部562aは、特定された類似スレッドに投稿されている記事のうち、記事3の類似記事を取得する。記事取得部562aは、取得された類似記事のうち、ユーザYによって投稿された記事を取得する。ここで取得された記事が、上述した第2の記事群に該当する。ここでは、第2の記事群として、例えば記事A及び記事Dが取得されたものとする。
次に、記事取得部562aは、記事データベース42に格納されている参考情報に基づいて、記事3に類似する記事であって、上記した類似スレッドに投稿されている記事の関連記事を取得する。記事取得部562aは、取得された関連記事のうち、ユーザYによって投稿された記事を取得する。ここで取得された記事が、上述した第3の記事群に該当する。ここでは、第3の記事群として、例えば記事A、記事C及び記事Eが取得されたものとする。
次に、記事取得部562aは、記事データベース42に格納されている返信情報及び形態素インデックス格納部43に格納されている形態素解析結果に基づいて、記事3の返信元記事である記事2の内容に類似している記事を取得する。記事取得部562aは、取得された記事2の類似記事のうち、ユーザYによって投稿された記事を取得する。ここで取得された記事が、上述した第4の記事群に該当する。ここでは、第4の記事群として、記事B及び記事Eが取得されたものとする。
なお、評価パラメタ設定情報によって示される範囲に関する設定条件に、上述したさかのぼる範囲(さかのぼって処理する範囲)として例えば「2段前」等が設定されている場合には、例えば記事2の返信元記事である記事1の類似記事についても取得される。
次に、記事取得部562aは、形態素インデックス格納部43に格納されている形態素解析結果に基づいて、例えば記事3に含まれる「Yさん」の文字列の前後(周辺)に出現する「ZZシステム」の文字列(単語)が含まれている記事を記事データベース42から取得する。記事取得部562aは、取得された「ZZシステム」の文字列が含まれている記事のうち、ユーザYによって投稿された記事を取得する。ここで取得された記事が、上述した第5の記事群に該当する。ここでは、第5の記事群として、記事A及び記事Bが取得されたものとする。
上記した記事取得部562aによって取得された第1〜第5の記事群(に含まれる記事の各々)が、記事3の関連記事候補記事として選出される。
次に、優先度決定部562bは、評価パラメタ設定情報格納部45を参照して、記事取得部562aによって取得された第1〜第5の記事群の各々に対して優先度を決定する。上記したように、第1の記事群は、記事A及び記事Bである。第2記事群は、記事A及び記事Dである。第3の記事群は、記事A、記事C及び記事Eである。第4の記事群は、記事B及び記事Eである。また、第5の記事群は、記事A及び記事Bである。
ここで、評価パラメタ設定情報格納部45に格納されている評価パラメタ設定情報によって示される関連記事候補の優先度に関する設定条件に、例えば「閲覧履歴に登録されて記事(つまり、第1の記事群):10点」、「類似スレッドの属する記事(つまり、第2の記事群):7点」、「類似記事であって類似スレッドに投稿されている記事の関連記事(つまり、第3の記事群):5点」、「返信元記事の類似記事(つまり、第4の記事群):5点」及び「ユーザ名(または日時)の周辺の単語(文字列)を含む記事(つまり、第5の記事群):7点」が設定されているものとする。
ここで、この関連記事候補の優先度に関する設定条件に基づいて、第1〜第5の記事群に含まれる記事の各々に対して得点(優先度)が付与された場合を想定する。この場合、例えば記事Aは、第1の記事群、第2の記事群、第3の記事群及び第5の記事群に含まれている。このため、上記した設定条件によれば、記事Aの優先度(得点)は、10点(第1の記事群の得点)+7点(第2の記事群の得点)+5点(第3の記事群の得点)+7点(第5の記事群の得点)=29点と決定される。
同様に、例えば記事Bは、第1の記事群、第4の記事群及び第5の記事群に含まれている。このため、上記した設定条件によれば、記事Bの優先度は、10点(第1の記事群の得点)+5点(第4の記事群の得点)+7点(第5の記事群の得点)=22点と決定される。
例えば記事Cは、第3の記事群に含まれている。このため、上記した設定条件によれば、記事Cの優先度は、5点(第3の記事群の得点)と決定される。
例えば記事Dは、第2の記事群に含まれている。このため、上記した設定条件によれば、記事Dの優先度は、7点(第2の記事群の得点)と決定される。
例えば記事Eは、第3の記事群及び第4の記事群に含まれている。このため、上記した設定条件によれば、記事Eの優先度は、5点(第3の記事群の得点)+5点(第4の記事群の得点)=10点と決定される。
以上により、第1〜第5の記事群に含まれる記事の各々を優先度順に並べた場合、記事A(29点)、記事B(22点)、記事E(10点)記事D(7点)、記事C(5点)となる。
優先度決定部562bは、例えば決定された優先度順に、記事A〜記事Eを記事3(投稿記事)に対する関連記事候補記事として、記事受取/保管/提供サーバ52に送信する。優先度決定部562bによって送信された関連記事候補記事(記事A〜記事E)は、例えば優先度順に記事3を投稿したユーザXに対して、候補表示インタフェース513を介して提示される。記事3を投稿したユーザXは、提示された関連記事候補記事の中から、例えば当該記事3の関連記事として適当な記事がある場合、当該記事(例えば、記事A等)を当該関連記事として記事3に付加することができる。これにより、記事3が投稿される際にユーザXが参考にした記事Aを示す参考情報が、記事データベース42に格納される。
上記したように本実施形態においては、ユーザによって投稿された記事(投稿記事)が形態素解析された結果及び単語統計情報に基づいて、当該投稿記事が関連記事を付加する必要があるか否かが判定される。関連記事を付加する必要があると判定された場合、記事データベース42及び形態素インデックス格納部43を参照して、当該投稿記事の関連記事の候補となる記事が選出される。これにより、記事の投稿時に、例えば添付表現が予め登録された辞書を用いることなく、自動的に関係記事(参考記事)の候補をユーザに対して提示することができる。したがって、本実施形態においては、記事を投稿したユーザは、例えば提示された関連記事候補記事を関連記事として当該記事(投稿記事)に付加することができる。
なお、本願発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
10…コンピュータ、20…クライアント端末、30…ネットワーク、40…外部記憶装置、42…記事データベース、43…形態素インデックス格納部、44…単語統計情報インデックス格納部、45…評価パラメタ設定情報格納部、50…情報共有システム、51…インタフェース、52…記事受取/保管/提供サーバ、53…形態素解析部、54…閲覧履歴記録部、55…単語統計情報解析部、56…関連評価選出部、511…記事入力インタフェース、512…記事表示インタフェース、513…候補表示インタフェース、561…関連記事判定部、561a…第1の判定部、561b…第2の判定部、562…関連記事選出部、562a…記事取得部、562…優先度決定部。