以下、図面を参照して、本発明の実施形態について説明する。
図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は、コミュニティ情報/記事本文格納部42、単語統計情報格納部43、投稿/閲覧履歴格納部44、抽出規則格納部45及びパラメタ設定情報格納部46を含む。本実施形態において、これらは、外部記憶装置40に格納される。
コミュニティ情報/記事本文格納部42には、ユーザがクライアント端末20を操作することによって投稿される記事の投稿先であるコミュニティに関する情報及び当該ユーザによって投稿された記事(を示す情報)が格納される。このコミュニティ情報/記事本文格納部42に格納される記事には、文字列が含まれる。
コミュニティ情報/記事本文格納部42には、記事が投稿されるコミュニティのコミュニティ名を識別するためのコミュニティ識別情報(コミュニティID)及び当該コミュニティIDによって識別されるコミュニティのコミュニティ名を対応付けて保持するコミュニティ名テーブルが含まれる。コミュニティ情報/記事本文格納部42には、コミュニティID及び当該コミュニティIDによって識別されるコミュニティに所属するユーザを識別するためのユーザ識別情報(ユーザID)を対応付けて保持する所属コミュニティテーブルが含まれる。コミュニティ情報/記事本文格納部42には、例えば情報共有装置50に予め登録されているユーザを識別するためのユーザID及び当該ユーザのユーザ名を対応付けて保持するユーザ名テーブルが含まれる。
また、コミュニティ情報/記事本文格納部42には、ユーザによって投稿された記事を識別するための記事識別情報(記事ID)に対応付けて当該記事IDによって識別される記事が格納されているアドレス(格納先)を保持する記事格納先テーブルが含まれる。また、コミュニティ情報/記事本文格納部42には、ユーザによって投稿された記事(記事本文)を格納する記事本文格納部が含まれる。
単語統計情報格納部43には、コミュニティ情報/記事本文格納部42に含まれる記事本文格納部に格納されている記事毎に、当該記事に含まれる文字列(単語)の統計を示す単語統計情報が格納される。この単語統計情報には、記事に含まれる文字列が当該記事に出現する回数(出現頻度)を示す出現頻度情報が含まれる。また、単語統計情報には、例えばコミュニティ情報/記事本文格納部42に含まれる記事本文格納部に格納されている記事のうち、ある文字列が出現する記事の数(記事頻度)を示す記事頻度情報が含まれる。
投稿/閲覧履歴格納部44には、コミュニティ情報/記事本文格納部42に含まれる記事本文格納部に格納されている記事の投稿履歴及び閲覧履歴を示す履歴情報が格納される。この履歴情報には、記事の投稿履歴を示す投稿履歴情報及び記事の閲覧履歴を示す閲覧履歴情報が含まれる。
インタフェース51は、クライアント端末20を含むクライアント端末と情報共有装置50との間のデータの入出力を行う。インタフェース51は、例えば情報共有装置50に予め登録されたユーザ(利用者)がクライアント端末を操作することによって、コミュニティを指定して投稿された記事(以下、投稿記事と表記)を入力する。このとき、インタフェース51は、投稿記事を投稿したユーザを識別するためのユーザID及び当該ユーザによって指定されたコミュニティを識別するためのコミュニティIDを入力する。以下、投稿記事を投稿したユーザを投稿ユーザ、当該投稿ユーザによって指定されたコミュニティを投稿先指定コミュニティと称する。
インタフェース51は、クライアント端末の例えばブラウザに記事を表示する。インタフェース51は、投稿ユーザによって記事が投稿された際に、例えば宛先特定部56によって特定されたユーザのユーザ名及びコミュニティのコミュニティ名をクライアント端末のブラウザに表示する。また、インタフェース51は、例えばユーザによって投稿先指定コミュニティが変更された場合には、その旨を送受信/保管部52に通知する。
送受信/保管部52は、インタフェース51によって入力された投稿記事を形態素解析部53に送信する。送受信/保管部52は、インタフェース51によって入力された投稿記事、投稿ユーザを識別するためのユーザID(以下、投稿ユーザIDと表記)及び投稿先指定コミュニティを識別するためのコミュニティID(以下、投稿先指定コミュニティIDと表記)を宛先名抽出部55に送信する。
送受信/保管部52は、インタフェース51によって入力された投稿記事をコミュニティ情報/記事本文格納部42に格納する処理を実行する。また、送受信/保管部52は、記事が投稿または閲覧された場合に、投稿/閲覧履歴格納部44に対して履歴情報を格納する処理を実行する。
形態素解析部53は、送受信/保管部52によって送信された投稿記事を取得する。形態素解析部53は、取得された投稿記事を形態素解析する。
単語統計情報生成部54は、形態素解析部53による形態素解析結果に基づいて、投稿記事に含まれる文字列の統計を示す単語統計情報を生成する。単語統計情報生成部54は、生成された単語統計情報を単語統計情報格納部43に格納する。
抽出規則格納部45には、例えばユーザによって投稿される記事に含まれる文字列から、当該記事の宛先名を抽出するための抽出パターンを示す抽出規則情報が格納される。この抽出パターンの詳細については後述する。
宛先名抽出部55は、送受信/保管部52によって送信された投稿記事を取得する。宛先名抽出部55は、単語統計情報格納部43に格納された単語統計情報に基づいて、取得された投稿記事に含まれる文字列から当該投稿記事の宛先名を抽出する。このとき、宛先名抽出部55は、投稿記事に含まれる文字列において、抽出規則格納部45に格納されている抽出規則情報によって示される抽出パターンに一致する文字列を宛先名として抽出する。
宛先特定部56は、宛先名抽出部55によって抽出された宛先名に対応(該当)するコミュニティを特定する。また、宛先特定部56は、宛先名抽出部55によって抽出された宛先名に対応するユーザを特定する。このとき、宛先特定部56は、コミュニティ情報/記事本文格納部42、単語統計情報格納部43及び投稿/閲覧履歴格納部44を参照して、特定処理を実行する。また、宛先特定部56は、宛先名に対応するユーザ及びコミュニティを特定する際、必要に応じてパラメタ設定情報格納部46に格納されているパラメタ設定情報を用いる。このパラメタ設定情報の詳細については後述する。宛先特定部56によって特定された宛先名に対応するコミュニティのコミュニティ名及びユーザのユーザ名は、送受信/保管部52及びインタフェース51を介して投稿記事を投稿者したユーザに対して提示される。
図3は、図2に示すコミュニティ情報/記事本文格納部42に含まれるコミュニティ名テーブルのデータ構造の一例を示す。
図3に示すように、コミュニティ名テーブルには、コミュニティID(コミュニティ識別情報)及び当該コミュニティIDによって識別されるコミュニティのコミュニティ名が対応付けて保持される。
図3に示す例では、コミュニティ名テーブルには、コミュニティID「1」及びコミュニティ名「コミュニティ1」が対応付けて保持されている。この場合には、コミュニティID「1」によって識別されるコミュニティのコミュニティ名が「コミュニティ1」であることが示されている。
同様に、コミュニティ名テーブルには、コミュニティID「2」及びコミュニティ名「コミュニティ2」が対応付けて保持されている。また、コミュニティ名テーブルには、コミュニティID「3」及びコミュニティ名「コミュニティ3」が対応付けて保持されている。
図4は、図2に示すコミュニティ情報/記事本文格納部42に含まれる所属コミュニティテーブルのデータ構造の一例を示す。
図4に示すように、所属コミュニティテーブルには、ユーザID(ユーザ識別情報)及び当該ユーザIDによって識別されるユーザが所属するコミュニティを識別するためのコミュニティIDが対応付けて保持される。
図4に示す例では、所属コミュニティテーブルには、ユーザID「1」及びコミュニティID「1」が対応付けて保持されている。この場合には、ユーザID「1」によって識別されるユーザは、コミュニティID「1」によって識別されるコミュニティに所属していることが示されている。
同様に、所属コミュニティテーブルには、ユーザID「1」及びコミュニティID「2」、ユーザID「1」及びコミュニティID「3」、ユーザID「2」及びコミュニティID「1」、ユーザID「2」及びコミュニティID「3」、ユーザID「3」及びコミュニティID「1」がそれぞれ対応付けて保持されている。
図5は、図2に示すコミュニティ情報/記事本文格納部42に含まれるユーザ名テーブルのデータ構造の一例を示す。
図5に示すように、ユーザ名テーブルには、ユーザID及び当該ユーザIDによって識別されるユーザのユーザ名が対応付けて保持される。
図5に示す例では、ユーザ名テーブルには、ユーザID「1」及びユーザ名「A」が対応付けて保持されている。この場合には、ユーザID「1」によって識別されるユーザのユーザ名が「A」であることが示されている。
同様に、ユーザ名テーブルには、ユーザID「2」及びユーザ名「B」、ユーザID「3」及びユーザ名「C」、ユーザID「4」及びユーザ名「鈴木一郎」、ユーザID「5」及びユーザ名「鈴木次郎」、ユーザID「6」及びユーザ名「鈴木三郎」がそれぞれ対応付けて保持されている。
図6は、図2に示すコミュニティ情報/記事本文格納部42に含まれる記事格納先テーブルのデータ構造の一例を示す。
図6に示すように、記事格納先テーブルには、記事を識別するための記事ID(記事識別情報)及び当該記事IDによって識別される記事が格納されている記事本文格納部のアドレスが対応付けて保持されている。
図6に示す例では、記事格納先テーブルには、記事ID「1」及びアドレス「アドレス1」が対応付けて保持されている。この場合には、記事ID「1」によって識別される記事は、記事本文格納部のアドレス1に格納されていることが示されている。
同様に、記事格納先テーブルには、記事ID「2」及びアドレス「アドレス2」が対応付けて保持されている。また、記事格納先テーブルには、記事ID「3」及びアドレス「アドレス3」が対応付けて保持されている。
図7は、図2に示すコミュニティ情報/記事本文格納部42に含まれる記事本文格納部のデータ構造の一例を示す。
図7に示すように、記事本文格納部の各アドレスには、ユーザによって投稿された記事が格納される。
図7に示す例では、記事本文格納部のアドレス1には、例えば記事Aが格納されている。記事本文格納部のアドレス2には、記事Bが格納されている。また、記事本文格納部のアドレス3には、記事Cが格納されている。
図8は、図2に示す単語統計情報格納部43に格納されている単語統計情報に含まれる出現頻度情報のデータ構造の一例を示す。
図8に示すように、出現頻度情報には、記事ID、当該記事IDによって識別される記事に含まれる単語(文字列)及び当該単語の出現頻度が対応付けて含まれる。単語の出現頻度は、当該単語が記事IDによって識別される記事内に出現する回数を示す。
図8に示す例では、出現頻度情報には、記事ID「1」、単語「○○○」及び出現頻度「a」が対応付けて含まれる。この「a」は、出現回数を表すための数字を示す。この場合には、記事ID「1」によって識別される記事には単語「○○○」が含まれており、当該単語「○○○」は当該記事内に「a」回出現することが示されている。
同様に、出現頻度情報には、記事ID「1」、単語「△△△」及び出現頻度「b」が対応付けて含まれる。また、出現頻度情報には、記事ID「2」、単語「×××」及び出現頻度「c」が対応付けて含まれる。
図9は、図2に示す単語統計情報格納部43に格納されている単語統計情報に含まれる記事頻度情報のデータ構造の一例を示す。
図9に示すように、記事頻度情報には、単語及び記事頻度が対応付けて含まれる。この記事頻度は、コミュニティ情報/記事本文格納部42に含まれる記事本文格納部に格納されている記事のうち、対応付けられている単語が出現する記事の数を示す。
図9に示す例では、記事頻度情報には、単語「○○○」及び記事頻度「d」が対応付けて含まれる。この「d」は、記事数を表すための数字を示す。この場合には、単語「○○○」は、記事本文格納部に格納されている記事のうち、「d」件の記事に出現することが示されている。
同様に、記事頻度情報には、単語「△△△」及び記事頻度「e」が対応付けて含まれている。また、記事頻度情報には、単語「×××」及び記事頻度「f」が対応付けて含まれている。
図10は、図2に示す投稿/閲覧履歴格納部44に格納される履歴情報に含まれる投稿履歴情報のデータ構造の一例を示す。
図10に示すように、投稿履歴情報には、記事ID、送信者ID、送信先ID、宛先名及び投稿日が対応付けて含まれる。送信者IDは、記事IDによって識別される記事を投稿したユーザを識別するユーザIDである。送信先IDは、記事IDによって識別される記事が投稿された投稿先コミュニティを識別するコミュニティIDである。宛先名は、記事IDによって識別される記事に含まれる文字列から抽出された宛先名である。投稿日は、記事IDによって識別される記事が投稿された年月日を示す。
図10に示す例では、投稿履歴情報441には、記事ID「1」、送信者ID(ユーザID)「1」、送信先ID(コミュニティID)「1」、宛先名「−」及び投稿日「2007/11/1」が対応付けて含まれている。なお、宛先名「−」は、記事ID「1」によって識別される記事からは宛先名が抽出されなかったことを示す。
また、投稿履歴情報442には、記事ID「2」、送信者ID「2」、送信先ID「1」、宛先名「製品X担当者」及び投稿日「2007/11/2」が対応付けて含まれている。以下の投稿履歴情報441及び442以外の投稿履歴情報についても同様である。
図11は、図2に示す投稿/閲覧履歴格納部44に格納される履歴情報に含まれる閲覧履歴情報のデータ構造の一例を示す。
図11に示すように、閲覧履歴情報には、記事ID及び閲覧者IDが対応付けて含まれる。閲覧者IDは、記事IDによって識別される記事を閲覧したユーザを識別するユーザIDである。
図11に示す例では、閲覧履歴情報には、記事ID「1」及び閲覧者ID(ユーザID)「1」が対応付けて含まれている。この場合には、記事ID「1」によって識別される記事が閲覧者IDによって識別されるユーザによって閲覧されたことが示されている。
同様に、閲覧履歴情報には、記事ID「1」、閲覧者ID「2」が対応付けて含まれている。また、閲覧履歴情報には、記事ID「2」及び閲覧者ID「3」が対応付けて含まれている。
次に、図12のフローチャートを参照して、図2に示す宛先名抽出部55の処理手順について説明する。
まず、宛先名抽出部55は、送受信/保管部52によって送信された投稿記事を取得する(ステップS1)。このとき、宛先名抽出部55は、送受信/保管部52によって送信された投稿記事を投稿したユーザを識別するユーザID(投稿ユーザID)及び投稿記事の投稿先となるコミュニティ(投稿先指定コミュニティ)を識別するためのコミュニティID(投稿先指定コミュニティID)を取得する。
次に、宛先名抽出部55は、取得された投稿記事の本文のうちの先頭段落を抽出する(ステップS2)。先頭段落は、例えば投稿記事の本文の先頭から空行が出現するまでの文字列(先頭文字列)を指す。
宛先名抽出部55は、単語統計情報格納部43に格納されている投稿記事の単語統計情報を取得する。宛先名抽出部55は、取得された投稿記事の単語統計情報及び抽出規則格納部45に格納されている抽出規則情報に基づいて、抽出された先頭段落から投稿記事の宛先名を抽出する処理を実行する。
ここで、前述した抽出規則格納部45に格納されている抽出規則情報について具体的に説明する。前述したように抽出規則情報は、例えば投稿記事に含まれる文字列から、当該投稿記事の宛先名を抽出するための抽出パターンを示す。この抽出規則情報によって示される抽出パターンには、第1〜第3の抽出パターンが含まれる。
第1の抽出パターンは、例えば「文字列(固有名詞)+個人に対する敬称」である。具体的には、「佐藤+さん」、「鈴木+殿」または「藤原+部長」等が第1の抽出パターンに該当する。
第2の抽出パターンは、例えば「文字列(開始単語列)+相手が複数時の敬称」である。具体的には、「広報担当者+各位」または「学生会員+の皆様」等が第2の抽出パターンに該当する。
第3の抽出パターンは、例えば「文字列、文字列(単語列、単語列)+相手が複数時の敬称」である。具体的には、「広報担当者、報道関係者+各位」等が第3の抽出パターンに該当する。
まず、宛先名抽出部55は、抽出された先頭段落に含まれる文字列において上記した第1の抽出パターンに一致する文字列があるか否かを、投稿記事の単語統計情報及び抽出規則情報に基づいて判定する(ステップS3)。
第1の抽出パターンに一致する文字列があると判定された場合(ステップS3のYES)、宛先名抽出部55は、当該一致する文字列のうち、第1の抽出パターン「文字列+個人に対する敬称」の「文字列」の部分に相当する文字列を宛先名として抽出する。例えば、第1の抽出パターンに一致する文字列が「鈴木+殿」である場合には、宛先名として「鈴木」が抽出される。このとき、第1の抽出パターンに一致する文字列が複数あると判定された場合には、複数の宛先名が抽出される。ここで抽出された宛先名を個人宛先名と称する。
宛先名抽出部55は、抽出された個人宛先名を宛先名リストに追加する(ステップS4)。宛先名抽出部55は、個人宛先名が追加された宛先名リストを宛先特定部56に送信する(ステップS5)。このとき、宛先名抽出部55は、投稿ユーザID及び投稿先指定コミュニティIDを宛先特定部56に送信する。
一方、ステップS3において第1の抽出パターンに一致する文字列がないと判定された場合、宛先名抽出部55は、抽出された先頭段落に含まれる文字列において上記した第2の抽出パターンに一致する文字列があるか否かを、投稿記事の単語統計情報及び抽出規則情報に基づいて判定する(ステップS6)。
第2の抽出パターンに一致する文字列があると判定された場合(ステップS6のYES)、宛先名抽出部55は、当該第2の抽出パターンに一致する文字列が上記した第3の抽出パターンに一致する文字列であるか否かを、投稿記事の単語統計情報及び抽出規則情報に基づいて判定する(ステップS7)。この場合、第2の抽出パターン「文字列+相手が複数時の敬称」の「文字列」の部分に相当する文字列(記事本文の先頭から相手が複数時の敬称が出現するまでの文字列)に読点が含まれる場合は、第3の抽出パターンに一致する文字列があると判定される。
第3の抽出パターンに一致する文字列でないと判定された場合(ステップS7のNO)、宛先名抽出部55は、第2の抽出パターンに一致する文字列のうち、当該第2の抽出パターン「文字列+相手が複数時の敬称」の「文字列」の部分に相当する文字列を宛先名として抽出する。例えば、第2のパターンに一致する文字列が「広報担当者+各位」である場合には、宛先名として「広報担当者」が抽出される。ここで抽出された宛先名を団体宛先名と称する。
宛先名抽出部55は、抽出された団体宛先名を宛先名リストに追加する(ステップS8)。抽出された団体宛先名が宛先名リストに追加されると、ステップS5の処理が実行される。このとき、宛先名リストに加えて、投稿記事及び投稿先指定コミュニティIDが宛先特定部56に送信される。
一方、ステップS7において第3の抽出パターンに一致する文字列があると判定された場合、宛先名抽出部55は、第3の抽出パターンに一致する文字列のうち、当該第3の抽出パターン「文字列、文字列+相手が複数時の敬称」の「文字列、文字列」の部分に相当する文字列において読点で区切られた各文字列を宛先名として抽出する。例えば、第3の抽出パターンに一致する文字列が「広報担当者、報道関係者+各位」である場合には、宛先名として「広報担当者」及び「報道関係者」が抽出される。ここで抽出された宛先名を団体宛先名と称する。なお、読点で区切られた文字列が3つ以上ある場合には、団体宛先名として抽出される文字列は3つ以上であっても構わない。
宛先名抽出部55は、抽出された団体宛先名を宛先名リストに追加する(ステップS9)。抽出された団体宛先名が宛先名リストに追加されると、ステップS5の処理が実行される。このとき、宛先名リストに加えて、投稿先指定コミュニティIDが宛先特定部56に送信される。
また、ステップS6において第2の抽出パターンに一致する文字列がないと判定された場合、宛先名抽出部55は、投稿記事から宛先名を抽出することができない、つまり、投稿記事には宛先名が記載されていないとして送受信/保管部52に通知する(ステップS10)。
この場合には、送受信/保管部52は、投稿ユーザによって指定された投稿先コミュニティに投稿記事を送信(投稿)し、当該投稿の履歴を示す投稿履歴情報を投稿/閲覧履歴格納部44に格納する。
次に、図13〜図15のフローチャートを参照して、宛先名抽出部55によって個人宛先名が抽出された場合の宛先特定部56の処理手順について説明する。
まず、宛先特定部56は、宛先名抽出部55によって送信された宛先名リスト、投稿ユーザID及び投稿先指定コミュニティIDを取得する(ステップS11)。取得された宛先名リストには、s件の個人宛先名が含まれているものとする。
次に、宛先特定部56は、取得された宛先名リストから個人宛先名j(j=1、2、…、s)を取得する(ステップS12)。
宛先特定部56は、取得された投稿先指定コミュニティIDによって識別される投稿先指定コミュニティに所属するユーザのうち、取得された個人宛先名jをユーザ名に含むユーザ(以下、宛先候補ユーザと表記)を検索する。
この場合、宛先特定部56は、投稿先指定コミュニティIDに対応付けてコミュニティ情報/記事本文格納部42に含まれる所属コミュニティテーブルに保持されているユーザIDを特定する。この特定されたユーザIDによって識別されるユーザは、投稿先指定コミュニティに所属しているユーザである。次に、宛先特定部56は、特定されたユーザIDのうち、個人宛先名jを含むユーザ名に対応付けてコミュニティ情報/記事本文格納部42に含まれるユーザ名テーブルに保持されているユーザIDを特定する。ここで特定されたユーザIDによって識別されるユーザが宛先候補ユーザである。
ここで、上記したように検索された結果、t人の宛先候補ユーザがヒットしたものする(ステップS13のYES)。この場合、宛先特定部56は、例えば宛先候補ユーザk(k=1、2、…、t)を識別するためのユーザID(以下、宛先候補ユーザIDと表記)をユーザ名テーブルから取得する(ステップS14)。
次に、宛先特定部56は、宛先候補ユーザkの個人宛先名jに対する宛先ユーザ度を算出する(ステップS15)。この宛先ユーザ度は、例えば宛先候補ユーザkが宛先名jに対応する(該当する)ユーザである度合いを示す。宛先特定部56は、取得された宛先候補ユーザID、投稿ユーザID、投稿先指定コミュニティID、単語統計情報格納部43に格納されている単語統計情報及び投稿/閲覧履歴格納部44に格納されている履歴情報に基づいて、宛先ユーザ度を算出する。また、宛先特定部56は、必要に応じてパラメタ設定情報格納部46に格納されているパラメタ設定情報に応じて宛先ユーザ度を算出する。この宛先ユーザ度の算出処理の詳細については後述する。
宛先特定部56は、t人の宛先候補ユーザの全てについて上記したステップS14及びステップS15の処理を実行したか否かを判定する(ステップS16)。
t人の宛先候補ユーザの全てについて処理を実行していないと判定された場合(ステップS16のNO)、ステップS14に戻って処理が繰り返される。
一方、t人の宛先候補ユーザの全てについて処理を実行したと判定された場合(ステップS16のYES)、宛先特定部56は、当該t人の宛先候補ユーザのうち、個人宛先名jに対する宛先ユーザ度が最大の宛先候補ユーザを特定する(ステップS17)。ここで特定された宛先候補ユーザをユーザqとする。
宛先特定部56は、特定されたユーザqの個人宛先名jに対する宛先ユーザ度が予め定められた値(宛先ユーザ度の閾値)以上であるか否かを判定する(ステップS18)。この閾値は、パラメタ設定情報格納部46に格納されているパラメタ設定情報において宛先名に対応するユーザの特定に関する設定項目として設定される。この閾値としては、例えば4などが設定される。
宛先ユーザ度が閾値以上であると判定された場合(ステップS18のYES)、宛先特定部56は、特定されたユーザqが個人宛先名jに対応するユーザであるものとして、個人宛先名j、ユーザqを識別するためのユーザID及び当該ユーザqの個人宛先名jに対する宛先ユーザ度を宛先名−ユーザ対応表に追加する(ステップS19)。
宛先特定部56は、取得された宛先名リストに含まれるs件の個人宛先名の全てについて上記したステップS12〜ステップS19の処理が実行されたか否かを判定する(ステップS20)。
s件の個人宛先名の全てについて処理が実行されていないと判定された場合(ステップS20のNO)、ステップS12に戻って処理が繰り返される。
一方、s件の個人宛先名の全てについて処理が実行されたと判定された場合(ステップS20のYES)、宛先特定部56は、宛先名−ユーザ対応表を参照して、投稿先指定コミュニティの投稿先妥当度を算出する(ステップS21)。投稿先妥当度は、投稿先コミュニティとして総合的に妥当か否かを判断するために用いられる値である。この場合、宛先特定部56は、宛先名リストに含まれる個人宛先名毎に対応するユーザの宛先ユーザ度の平均を投稿先指定コミュニティの投稿先妥当度として算出する。
なお、上記ステップS18において宛先ユーザ度が閾値以上でないと判定された場合には、個人宛先名jに対する宛先ユーザ度は宛先名−ユーザ対応表には追加されず、ステップS20の処理が実行される。このように、宛先名−ユーザ対応表に個人宛先名に対応する宛先ユーザ度が存在しない場合は、当該個人宛先名に対応する宛先ユーザ度は0であるものとして投稿先妥当度が算出される。
宛先特定部56は、算出された投稿先指定コミュニティの投稿先妥当度が閾値(投稿先妥当度の閾値)以上であるか否かを判定する(ステップS22)。この閾値は、パラメタ設定情報格納部46に格納されているパラメタ設定情報において投稿先コミュニティとしての妥当性判断に関する設定項目として設定される。この閾値としては、例えば4などが設定される。
投稿先指定コミュニティの投稿先妥当度が閾値以上であると判定された場合(ステップS22のYES)、宛先特定部56は、投稿先指定コミュニティが投稿記事の投稿先として妥当であるとして送受信/保管部52に通知する(ステップS23)。送受信/保管部52は、宛先特定部56からの通知を受けると投稿記事を投稿先指定コミュニティに投稿し、当該投稿記事の投稿履歴を示す投稿履歴情報を投稿/閲覧履歴格納部44に格納する。
一方、投稿先指定コミュニティの投稿先妥当度が閾値以上でないと判定された場合(ステップS22のNO)、宛先特定部56は、投稿先指定コミュニティが投稿記事の投稿先として妥当でない(不適切である)と判定する。この場合、宛先特定部56は、コミュニティ情報/記事本文格納部42に含まれる所属コミュニティテーブルから、投稿先指定コミュニティ以外の投稿ユーザが所属するコミュニティ(以下、投稿先候補コミュニティと表記)を検索する。
ここで、上記したように検索された結果、u件の投稿先候補コミュニティがヒットしたものとする(ステップS24のYES)。この場合、宛先特定部56は、u件の投稿先候補コミュニティのうちの1つである例えば投稿先候補コミュニティm(m=1,2、…、u)を識別するためのコミュニティIDを所属コミュニティテーブルから取得する(ステップS25)。以下、投稿先候補コミュニティmを識別するためのコミュニティIDを、単に投稿先候補コミュニティmのコミュニティIDと称する。
次に、宛先特定部56は、取得された宛先名リストから個人宛先名jを取得する(ステップS26)。
宛先特定部56は、投稿先候補コミュニティmに所属するユーザのうち、取得された個人宛先名jをユーザ名に含むユーザ(宛先候補ユーザ)を検索する。この場合、宛先特定部56は、取得された投稿先候補コミュニティmのコミュニティIDに対応付けてコミュニティ情報/記事本文格納部42に含まれる所属コミュニティテーブルに保持されているユーザIDを特定する。次に、宛先特定部56は、特定されたユーザIDのうち、個人宛先名jを含むユーザ名に対応付けてコミュニティ情報/記事本文格納部42に含まれるユーザ名テーブルに保持されているユーザIDを特定する。ここで特定されたユーザIDによって識別されるユーザが宛先候補ユーザである。
ここで、検索された結果、r人の宛先候補ユーザがヒットしたものとする(ステップS27のYES)。この場合、宛先特定部56は、例えば宛先候補ユーザl(l=1、2、…、r)を識別するためのユーザID(宛先候補ユーザID)をユーザ名テーブルから取得する(ステップS28)。
次に、宛先特定部56は、宛先候補ユーザlの個人宛先名jに対する宛先ユーザ度を算出する(ステップS29)。宛先特定部56は、取得された宛先候補ユーザID、投稿ユーザID、投稿先候補コミュニティmのコミュニティID、単語統計情報格納部43に格納されている単語統計情報及び投稿/閲覧履歴格納部44に格納されている履歴情報に基づいて、宛先ユーザ度を算出する。また、宛先特定部56は、必要に応じてパラメタ設定情報格納部46に格納されているパラメタ設定情報に応じて宛先ユーザ度を算出する。この宛先ユーザ度の算出処理の詳細については後述する。
宛先特定部56は、r人の宛先候補ユーザの全てについて上記したステップS28及びステップS29の処理を実行したか否かを判定する(ステップS30)。
r人の宛先候補ユーザの全てについて処理を実行していないと判定された場合(ステップS30のNO)、ステップS28に戻って処理が繰り返される。
一方、r人の宛先候補ユーザの全てについて処理を実行したと判定された場合(ステップS30のYES)、宛先特定部56は、当該r人の宛先候補ユーザのうち、個人宛先名jに対する宛先ユーザ度が最大の宛先候補ユーザを特定する(ステップS31)。ここで特定された宛先候補ユーザをユーザqとする。
宛先特定部56は、特定されたユーザqの個人宛先名jに対する宛先ユーザ度が閾値以上であるか否かを判定する(ステップS32)。この閾値は、パラメタ設定情報格納部46に格納されているパラメタ設定情報において設定される。
宛先ユーザ度が閾値以上であると判定された場合(ステップS32のYES)、宛先特定部56は、特定されたユーザqが個人宛先名jに対応するユーザであるものとして、個人宛先名j、ユーザqを識別するためのユーザID及び当該ユーザqの個人宛先名jに対する宛先ユーザ度を、投稿先候補コミュニティmの宛先名−ユーザ対応表に追加する(ステップS33)。
宛先特定部56は、取得された宛先名リストに含まれるs件の個人宛先名の全てについて上記したステップS26〜ステップS33の処理が実行されたか否かを判定する(ステップS34)。
s件の個人宛先名の全てについて処理が実行されていないと判定された場合(ステップS34のNO)、ステップS26に戻って処理が繰り返される。
一方、s件の個人宛先名の全てについて処理が実行されたと判定された場合(ステップS34のYES)、宛先特定部56は、投稿先候補コミュニティmの宛先名−ユーザ対応表を参照して、当該投稿先候補コミュニティmの投稿先妥当度を算出する(ステップS35)。宛先特定部56は、宛先名リストに含まれる個人宛先名毎に対応するユーザの宛先ユーザ度の平均を投稿先候補コミュニティmの投稿先妥当度として算出する。
なお、上記ステップS32において宛先ユーザ度が閾値以上でないと判定された場合には、個人宛先名jに対する宛先ユーザ度は投稿先候補コミュニティmの宛先名−ユーザ対応表には追加されず、ステップS34の処理が実行される。このように、宛先名−ユーザ対応表に個人宛先名に対応する宛先ユーザ度が存在しない場合は、当該個人宛先名に対応する宛先ユーザ度は0であるものとして投稿先妥当度が算出される。
宛先特定部56は、u件の投稿先候補コミュニティの全てについて上記したステップS25〜ステップS35の処理が実行されたか否かを判定する(ステップS36)。
u件の投稿先候補コミュニティの全てについて処理が実行されていないと判定された場合(ステップS36のNO)、ステップS25に戻って処理が繰り返される。
一方、u件の投稿先候補コミュニティの全てについて処理が実行されたと判定された場合(ステップS36のYES)、宛先特定部56は、当該u件の投稿先候補コミュニティのうち、投稿先妥当度が最大の投稿先候補コミュニティを特定する(ステップS37)。ここで特定された投稿先候補コミュニティをコミュニティpとする。
宛先特定部56は、特定されたコミュニティpの投稿先妥当度が閾値以上であるか否かを判定する(ステップS38)。この閾値は、パラメタ設定情報格納部46に格納されているパラメタ設定情報において設定される。
コミュニティpの投稿先妥当度が閾値以上であると判定された場合(ステップS38のYES)、宛先特定部56は、コミュニティpのコミュニティ名をコミュニティ情報/記事本文格納部42に含まれるコミュニティ名テーブルから取得する。宛先特定部56は、コミュニティpを識別するためのコミュニティIDに対応付けてコミュニティ名テーブルに保持されているコミュニティ名を取得する。
また、宛先特定部56は、コミュニティpの宛先名−ユーザ対応表に含まれるユーザIDによって識別されるユーザのユーザ名を、コミュニティ情報/記事本文格納部42に含まれるユーザ名テーブルから取得する。宛先特定部56は、コミュニティpの宛先名―ユーザ対応表に含まれるユーザIDに対応付けてユーザ名テーブルに保持されているユーザ名を取得する。
宛先特定部56は、取得されたコミュニティpのコミュニティ名及び当該コミュニティpの宛先名−ユーザ対応表に含まれるユーザIDによって識別されるユーザのユーザ名を送受信/保管部52に送信する(ステップS39)。送受信/保管部52は、宛先特定部56によって送信されたコミュニティ名及びユーザ名を、適切な投稿先として投稿記事を投稿したユーザに対して提示する。この場合、宛先特定部56によって送信されたコミュニティ名及びユーザ名を、インタフェース51を介して投稿ユーザが利用するクライアント端末20に表示することによって、当該投稿ユーザに対して投稿先の確認を促すことができる。
なお、投稿ユーザに対してコミュニティ名及びユーザ名を提示した結果、当該投稿ユーザが投稿記事の投稿先を当該提示されたコミュニティに変更した場合、送受信/保管部52は、当該変更されたコミュニティに対して投稿記事を投稿する。このとき、送受信/保管部52は、投稿記事の投稿履歴を示す投稿履歴情報を投稿/閲覧履歴格納部44に格納する。
一方、ステップS13において宛先候補ユーザがヒットしない場合、ステップS20の処理が実行される。
また、ステップS24において投稿先候補コミュニティがヒットしない場合、宛先特定部56は、妥当なコミュニティがない旨を送受信/保管部52に通知する(ステップS40)。この場合、送受信/保管部52は、適切な投稿先を提示することはできないが、例えば投稿先が妥当であるか否かの確認を促すメッセージ等を投稿ユーザに対して提示する構成であっても構わない。
また、ステップS27において宛先候補ユーザがヒットしない場合、ステップS34の処理が実行される。
また、ステップS38においてコミュニティpの投稿先妥当度が閾値以上でないと判定された場合、ステップS40の処理が実行される。
次に、図16のフローチャートを参照して、図13に示すステップS15の宛先ユーザ度の算出処理について詳細に説明する。
まず、宛先特定部56は、投稿記事を投稿したユーザ(投稿ユーザ)が過去一定期間内に投稿した記事のうち、投稿先指定コミュニティに投稿した記事の割合(第1の割合)を算出する(ステップS41)。このとき、宛先特定部56は、投稿ユーザID、投稿先指定コミュニティID、投稿/閲覧履歴格納部44に格納されている履歴情報に含まれる投稿履歴情報及びパラメタ設定情報格納部46に格納されているパラメタ設定情報に基づいて算出処理を実行する。ここで、パラメタ設定情報には、宛先ユーザ度の算出に関する設定項目が含まれる。この設定項目には、例えば過去2ヶ月のような期間が予め設定されている。宛先特定部56は、この設定項目において設定されている期間に応じて算出処理を実行する。以下の算出処理についても同様である。
次に、宛先特定部56は、投稿ユーザが過去一定期間内に投稿先指定コミュニティに投稿した記事のうち、個人宛先名jで投稿された記事の割合(第2の割合)を算出する(ステップS42)。このとき、宛先特定部56は、投稿ユーザID、投稿先指定コミュニティID、投稿/閲覧履歴格納部44に格納されている履歴情報に含まれる投稿履歴情報及びパラメタ設定情報格納部46に格納されているパラメタ設定情報に基づいて算出処理を実行する。
宛先特定部56は、投稿ユーザが過去一定期間内に投稿先指定コミュニティに投稿した記事のうち、宛先候補ユーザkが閲覧した記事の割合(第3の割合)を算出する(ステップS43)。このとき、宛先特定部56は、投稿ユーザID、投稿先指定コミュニティID、宛先候補ユーザkを識別するためのユーザID(宛先候補ユーザID)、投稿/閲覧履歴格納部44に格納されている履歴情報及びパラメタ設定情報格納部46に格納されているパラメタ設定情報に基づいて算出処理を実行する。
宛先特定部56は、投稿ユーザ及び宛先候補ユーザkが過去一定期間内に投稿先指定コミュニティに投稿した各記事と、投稿記事との類似度をそれぞれ算出する。宛先特定部56は、算出された類似度のうち、類似度が高い順に上位n位までの類似度の平均を算出する(ステップS44)。このとき、宛先特定部56は、投稿ユーザID、投稿先指定コミュニティID、宛先候補ユーザID、単語統計情報格納部43に格納されている単語統計情報及び投稿/閲覧履歴格納部44に格納されている履歴情報に含まれる投稿履歴情報に基づいて算出処理を実行する。なお、nの値は、例えば上位5位のように上記した宛先ユーザ度の算出に関する設定項目において予め設定されている。
なお、上記した記事間の類似度は、例えば単語統計情報格納部43に格納されている単語統計情報に含まれる出現頻度情報及び記事頻度情報に基づき、例えばベクトル空間法(ベクトル空間モデル)等により算出する。ベクトル空間モデルでは、例えば単語の頻度と特定性をTF/IDFにより求めて、単語の重みベクトルとし、記事の単語ベクトル間の余弦を類似度とする。なお、記事間の類似度を算出する手法は、これに限定されるものでなく、その他の手法により算出されても構わない。また、以下の類似度の算出処理についても同様である。
次に、宛先特定部56は、上記したステップS41〜ステップS44において算出された値に基づいて宛先候補ユーザkの個人宛先名jに対する宛先ユーザ度を算出する(ステップS45)。このとき、宛先特定部56は、ステップS41〜ステップS44において算出された値に対して、例えば予め定義された重みで重み付けをした後、与えられた計算式により宛先ユーザ度を算出する。この計算式の具体例については後述する。
パラメタ設定情報格納部46に格納されているパラメタ設定情報には、宛先ユーザ度の算出の重み付けに関する設定項目が含まれる。この設定項目には、例えばステップS41において算出される値に対する重要度(例えば4)、ステップS42において算出される値に対する重要度(例えば4)、ステップS43において算出される値に対する重要度(例えば1)及びステップS44において算出される値に対する重要度(例えば2)がそれぞれ予め設定されている。宛先特定部56は、この設定項目において設定されている各重要度に応じて重み付けを行い、宛先ユーザ度を算出する。
次に、図17のフローチャートを参照して、図14に示すステップS29の宛先ユーザ度の算出処理について詳細に説明する。
まず、宛先特定部56は、投稿記事を投稿したユーザ(投稿ユーザ)が過去一定期間内に投稿した記事のうち、投稿先候補コミュニティmに投稿した記事の割合(第1の割合)を算出する(ステップS51)。このとき、宛先特定部56は、投稿ユーザID、投稿先候補コミュニティmのコミュニティID、投稿/閲覧履歴格納部44に格納されている履歴情報に含まれる投稿履歴情報及びパラメタ設定情報格納部46に格納されているパラメタ設定情報に基づいて算出処理を実行する
次に、宛先特定部56は、投稿ユーザが過去一定期間内に投稿先候補コミュニティmに投稿した記事のうち、宛先名jで投稿された記事の割合(第2の割合)を算出する(ステップS52)。このとき、宛先特定部56は、投稿ユーザID、投稿先候補コミュニティmのコミュニティID、投稿/閲覧履歴格納部44に格納されている履歴情報に含まれる投稿履歴情報及びパラメタ設定情報格納部46に格納されているパラメタ設定情報に基づいて算出処理を実行する。
宛先特定部56は、投稿ユーザが過去一定期間内に投稿先候補コミュニティmに投稿した記事のうち、宛先候補ユーザlが閲覧した記事の割合(第3の割合)を算出する(ステップS53)。このとき、宛先特定部56は、投稿ユーザID、投稿先候補コミュニティmのコミュニティID、宛先候補ユーザlを識別するためのユーザID(宛先候補ユーザID)、投稿/閲覧履歴格納部44に格納されている履歴情報及びパラメタ設定情報格納部46に格納されているパラメタ設定情報に基づいて算出処理を実行する。
宛先特定部56は、投稿ユーザ及び宛先候補ユーザlが過去一定期間内に投稿先指定コミュニティに投稿した各記事と、投稿記事との類似度をそれぞれ算出する。宛先特定部56は、算出された類似度のうち、類似度が高い順に上位n位までの類似度の平均を算出する(ステップS54)。このとき、宛先特定部56は、投稿ユーザID、投稿先指定コミュニティID、宛先候補ユーザID、単語統計情報格納部43に格納されている単語統計情報、投稿/閲覧履歴格納部44に格納されている履歴情報に含まれる投稿履歴情報及びパラメタ設定情報格納部46に格納されているパラメタ設定情報に基づいて算出処理を実行する。
次に、宛先特定部56は、上記したステップS51〜ステップS54において算出された値に基づいて宛先候補ユーザlの個人宛先名jに対する宛先ユーザ度を算出する(ステップS55)。このとき、宛先特定部56は、ステップS51〜ステップS54において算出された値に対してパラメタ設定情報の重み付けに関する設定項目に設定されている各重要度に応じて重み付け処理を行い、与えられた計算式により宛先ユーザ度を算出する。
次に、図18〜図20のフローチャートを参照して、宛先名抽出部55によって団体宛先名が抽出された場合の宛先特定部56の処理手順について説明する。
まず、宛先特定部56は、宛先名抽出部55によって送信された宛先名リスト、投稿ユーザID及び投稿先指定コミュニティIDを取得する(ステップS61)。取得された宛先名リストには、s件の団体宛先名が含まれているものとする。
次に、宛先特定部56は、取得された宛先名リストから団体宛先名j(j=1、2、…、s)を取得する(ステップS62)。
宛先特定部56は、投稿先指定コミュニティの団体宛先名jに対する宛先コミュニティ度を算出する(ステップS63)。宛先コミュニティ度は、例えば投稿先指定コミュニティが団体宛先名jに対する(該当する)投稿先である度合いを示す。宛先特定部56は、投稿ユーザID、投稿先指定コミュニティID、単語統計情報格納部43に格納されている単語統計情報及び投稿/閲覧履歴格納部44に格納されている履歴情報に基づいて、宛先ユーザ度を算出する。また、宛先特定部56は、必要に応じてパラメタ設定情報格納部46に格納されているパラメタ設定情報に応じて宛先ユーザ度を算出する。この宛先ユーザ度の算出処理の詳細については後述する。
宛先特定部56は、算出された投稿先指定コミュニティの団体宛先名jに対する宛先コミュニティ度が予め定められた値(宛先コミュニティ度の閾値)以上であるか否かを判定する(ステップS64)。この閾値は、パラメタ設定情報格納部46に格納されているパラメタ設定情報において団体宛先名に対応するコミュニティの特定に関する設定項目として設定される。この閾値としては、例えば4などが設定される。
宛先コミュニティ度が閾値以上であると判定された場合(ステップS64のYES)、宛先特定部56は、投稿先指定コミュニティが団体宛先名jに対する投稿先であるものとして、団体宛先名j、投稿先指定コミュニティID及び当該宛先コミュニティ度を団体宛先名−コミュニティ対応表に追加する(ステップS65)。
宛先特定部56は、取得された宛先名リストに含まれるs件の団体宛先名の全てについて上記したステップS62〜ステップS65の処理が実行されたか否かを判定する(ステップS66)。
s件の団体宛先名の全てについて処理が実行されていないと判定された場合(ステップS66のNO)、ステップS62に戻って処理が繰り返される。
一方、s件の団体宛先明の全てについて処理が実行されたと判定された場合(ステップS66のYES)、宛先特定部56は、団体宛先名−コミュニティ対応表を参照して、投稿先指定コミュニティの投稿先妥当度を算出する(ステップS67)。この場合、宛先特定部56は、宛先名リストに含まれる団体宛先名毎に対する宛先コミュニティ度の平均を投稿先指定コミュニティの投稿先妥当度として算出する。
なお、上記ステップS64において宛先コミュニティ度が閾値以上でないと判定された場合には、団体宛先名jに対する宛先コミュニティ度は団体宛先名−コミュニティ対応表には追加されず、ステップS66の処理が実行される。このように、団体宛先名−コミュニティ対応表に団体宛先名に対する宛先コミュニティ度が存在しない場合は、当該団体宛先名に対する宛先コミュニティ度は0であるものとして投稿先妥当度が算出される。
宛先特定部56は、算出された投稿先指定コミュニティの投稿先妥当度が閾値以上であるか否かを判定する(ステップS68)。この閾値は、パラメタ設定情報格納部46に格納されているパラメタ設定情報において投稿先コミュニティとしての妥当性判断に関する設定項目として設定される。この閾値としては、例えば4などが設定される。
投稿先指定コミュニティの投稿先妥当度が閾値以上であると判定された場合(ステップS68のYES)、宛先特定部56は、投稿先指定コミュニティが投稿記事の投稿先として妥当であるとして送受信/保管部52に通知する(ステップS69)。送受信/保管部52は、宛先特定部56からの通知を受けると投稿記事を投稿先指定コミュニティに投稿し、当該投稿記事の投稿履歴を示す投稿履歴情報を投稿/閲覧履歴格納部44に格納する。
一方、投稿先指定コミュニティの投稿先妥当度が閾値以上でないと判定された場合(ステップS68のNO)、宛先特定部56は、投稿先指定コミュニティが投稿記事の投稿先として妥当でない(不適切である)と判定する。この場合、宛先特定部56は、コミュニティ情報/記事本文格納部42に含まれる所属コミュニティテーブルから、投稿先コミュニティ以外の投稿ユーザが所属するコミュニティ(以下、投稿先候補コミュニティと表記)を検索する。
ここで、上記したように検索された結果、u件の投稿先候補コミュニティがヒットしたものとする(ステップS70のYES)。この場合、宛先特定部56は、u件の投稿先候補コミュニティのうちの1つである例えば投稿先候補コミュニティm(m=1,2、…、u)を識別するためのコミュニティID(投稿先候補コミュニティmのコミュニティID)を所属コミュニティテーブルから取得する(ステップS71)。
次に、宛先特定部56は、取得された宛先名リストから団体宛先名jを取得する(ステップS72)。
宛先特定部56は、投稿先候補コミュニティmの団体宛先名jに対する宛先コミュニティ度を算出する(ステップS73)。宛先特定部56は、投稿ユーザID、投稿先候補コミュニティmのコミュニティID、単語統計情報格納部43に格納されている単語統計情報及び投稿/閲覧履歴格納部44に格納されている履歴情報に基づいて、宛先コミュニティ度を算出する。また、宛先特定部56は、必要に応じてパラメタ設定情報格納部46に格納されているパラメタ設定情報に応じて宛先コミュニティ度を算出する。この宛先コミュニティ度の算出処理の詳細については後述する。
宛先特定部56は、算出された投稿先候補コミュニティmの団体宛先名jに対する宛先コミュニティ度が閾値以上であるか否かを判定する(ステップS74)。この閾値は、パラメタ設定情報格納部46に格納されているパラメタ設定情報において設定される。
宛先コミュニティ度が閾値以上であると判定された場合(ステップS74のYES)、宛先特定部56は、投稿先候補コミュニティmが団体宛先名jに対する投稿先であるものとして、団体宛先名j、投稿先指定コミュニティID及び当該宛先コミュニティ度を投稿先候補コミュニティmの団体宛先名−コミュニティ対応表に追加する(ステップS75)。
宛先特定部56は、取得された宛先名リストに含まれるs件の団体宛先名の全てについて上記したステップS72〜ステップS75の処理が実行されたか否かを判定する(ステップS76)。
s件の団体宛先名の全てについて処理が実行されていないと判定された場合(ステップS76のNO)、ステップS72に戻って処理が繰り返される。
一方、s件の団体宛先名の全てについて処理が実行されたと判定された場合(ステップS76のYES)、宛先特定部56は、投稿先候補コミュニティmの団体宛先名−ユーザ対応表を参照して、当該投稿先候補コミュニティmの投稿先妥当度を算出する(ステップS77)。宛先特定部56は、宛先名リストに含まれる団体宛先名毎に対する宛先コミュニティ度の平均を投稿先候補コミュニティmの投稿先妥当度として算出する。
なお、上記ステップS74において宛先コミュニティ度が閾値以上でないと判定された場合には、団体宛先名jに対する宛先コミュニティ度は投稿先候補コミュニティmの団体宛先名−コミュニティ対応表には追加されず、ステップS76の処理が実行される。このように、投稿先候補コミュニティmの団体宛先名−ユーザ対応表に団体宛先名に対する宛先コミュニティ度が存在しない場合は、投稿団体宛先名に対する宛先コミュニティ度は0であるものとして投稿先妥当度が算出される。
宛先特定部56は、u件の投稿先候補コミュニティの全てについて上記したステップS71〜ステップS77の処理が実行されたか否かを判定する(ステップS78)。
u件の投稿先候補コミュニティの全てについて処理が実行されていないと判定された場合(ステップS78のNO)、ステップS71に戻って処理が繰り返される。
一方、u件の投稿先候補コミュニティの全てについて処理が実行されたと判定された場合(ステップS78のYES)、宛先特定部56は、当該u件の投稿先候補コミュニティのうち、投稿先妥当度が最大の投稿先候補コミュニティを特定する(ステップS79)。ここで特定された投稿先候補コミュニティをコミュニティpとする。
宛先特定部56は、特定されたコミュニティpの投稿先妥当度が閾値以上であるか否かを判定する(ステップS80)。この閾値は、パラメタ設定情報格納部46に格納されているパラメタ設定情報において設定される。
コミュニティpの投稿先妥当度が閾値以上であると判定された場合(ステップS80のYES)、宛先特定部56は、コミュニティpのコミュニティ名をコミュニティ情報/記事本文格納部42に含まれるコミュニティ名テーブルから取得する。宛先特定部56は、コミュニティpを識別するためのコミュニティIDに対応付けてコミュニティ名テーブルに保持されているコミュニティ名を取得する。
宛先特定部56は、取得されたコミュニティpのコミュニティ名を送受信/保管部52に送信する(ステップS81)。送受信/保管部52は、宛先特定部56によって送信されたコミュニティ名を適切な投稿先として投稿ユーザに対して提示する。この場合、宛先特定部56によって送信されたコミュニティ名を、インタフェース51を介して投稿ユーザが利用するクライアント端末20に表示することによって、当該投稿ユーザに対して投稿先の確認を促すことができる。
なお、投稿ユーザに対してコミュニティ名を提示した結果、当該投稿ユーザが投稿記事の投稿先を当該提示されたコミュニティに変更した場合、送受信/保管部52は、当該変更されたコミュニティに対して投稿記事を投稿する。このとき、送受信/保管部52は、投稿記事の投稿履歴を示す投稿履歴情報を投稿/閲覧履歴格納部44に格納する。
一方、ステップS70において投稿先候補コミュニティがヒットしない場合、宛先特定部56は、妥当なコミュニティがない旨を送受信/保管部52に通知する(ステップ82)。この場合、送受信/保管部52は、適切な投稿先を提示することはできないが、例えば投稿先が妥当である否かの確認を促すメッセージ等を投稿ユーザに対して提示する構成であっても構わない。
また、ステップS80においてコミュニティpの投稿先妥当度が閾値以上でないと判定された場合、ステップS82の処理が実行される。
次に、図21のフローチャートを参照して、図18に示すステップS65の宛先コミュニティ度の算出処理について詳細に説明する。
まず、宛先特定部56は、投稿記事を投稿したユーザ(投稿ユーザ)が過去一定期間内に投稿した記事のうち、投稿先指定コミュニティに投稿した記事の割合を算出する(ステップS91)。このとき、宛先特定部56は、投稿ユーザID、投稿先指定コミュニティID、投稿/閲覧履歴格納部44に格納されている履歴情報に含まれる投稿履歴情報及びパラメタ設定情報格納部46に格納されているパラメタ設定情報に基づいて算出処理を実行する。ここで、パラメタ設定情報には、宛先コミュニティ度の算出に関する設定項目が含まれる。この設定項目には、例えば過去1ヶ月のような期間が予め設定されている。宛先特定部56は、この設定項目において設定されている期間に応じて算出処理を実行する。以下の算出処理についても同様である。
次に、宛先特定部56は、過去一定期間内に投稿先指定コミュニティに投稿された記事のうち、団体宛先名jで投稿された記事の割合を算出する(ステップS92)。このとき、宛先特定部56は、投稿先指定コミュニティID、投稿/閲覧履歴格納部44に格納されている履歴情報に含まれる投稿履歴情報及びパラメタ設定情報格納部46に格納されているパラメタ設定情報に基づいて算出処理を実行する。
宛先特定部56は、投稿先指定コミュニティに所属するユーザのうち、過去一定期間内に団体宛先名jで当該投稿先指定コミュニティに投稿された記事に対してアクセスしたユーザの割合を算出する(ステップS93)。宛先特定部56は、投稿先指定コミュニティID、投稿/閲覧履歴格納部44に格納されている履歴情報及びパラメタ設定情報格納部46に格納されているパラメタ設定情報に基づいて算出処理を実行する。このとき、宛先特定部56は、コミュニティ情報/記事本文格納部42に含まれる所属コミュニティテーブルを参照する。なお、過去一定期間内に団体宛先名jで投稿先指定コミュニティに投稿された記事が複数ある場合には、当該複数の記事の各々についての割合の平均を算出する。
宛先特定部56は、過去一定期間内に団体宛先名jで投稿先指定コミュニティに投稿された各記事と、投稿記事との類似度をそれぞれ算出する。宛先特定部56は、算出された類似度のうち、類似度が高い順に上位n位までの類似度の平均を算出する(ステップS94)。このとき、宛先特定部56は、投稿先指定コミュニティID、単語統計情報格納部43に格納されている単語統計情報、投稿/閲覧履歴格納部44に格納されている履歴情報に含まれる投稿履歴情報及びパラメタ設定情報格納部46に格納されているパラメタ設定情報に基づいて算出処理を実行する。なお、nの値は、例えば上位5位のように上記したパラメタ設定情報に含まれる宛先コミュニティ度の算出に関する設定項目において予め設定されている。
次に、宛先特定部56は、上記したステップS91〜ステップS94において算出された値に基づいて投稿先指定コミュニティの団体宛先名jに対する宛先コミュニティ度を算出する(ステップS95)。このとき、宛先特定部56は、ステップS91〜ステップS94において算出された値に対して、例えば予め定義された重みで重み付けをした後、与えられた計算式により宛先コミュニティ度を算出する。
パラメタ設定情報格納部46に格納されているパラメタ設定情報には、宛先コミュニティ度の算出の重み付けに関する設定項目が含まれる。この設定項目には、例えばステップS91において算出された値に対する重要度(例えば3)、ステップS92において算出される値に対する重要度(例えば5)、ステップS93において算出される値に対する重要度(例えば2)及びステップS94において算出される値に対する重要度(例えば2)がそれぞれ予め設定されている。宛先特定部56は、この設定項目において設定されている各重要度に応じて重み付けを行い、宛先コミュニティ度を算出する。
次に、図22のフローチャートを参照して、図19に示すステップS73の宛先コミュニティ度の算出処理について詳細に説明する。
まず、宛先特定部56は、投稿記事を投稿したユーザ(投稿ユーザ)が過去一定期間内に投稿した記事のうち、投稿先候補コミュニティmに投稿した記事の割合を算出する(ステップS101)。このとき、宛先特定部56は、投稿ユーザID、投稿先候補コミュニティmのコミュニティID、投稿/閲覧履歴格納部44に格納されている履歴情報に含まれる投稿履歴情報及びパラメタ設定情報格納部46に格納されているパラメタ設定情報に基づいて算出処理を実行する。
次に、宛先特定部56は、過去一定期間内に投稿先候補コミュニティmに投稿した記事のうち、団体宛先名jで投稿された記事の割合を算出する(ステップS102)。このとき、宛先特定部56は、投稿先候補コミュニティmのコミュニティID、投稿/閲覧履歴格納部44に格納されている履歴情報に含まれる投稿履歴情報及びパラメタ設定情報格納部46に格納されているパラメタ設定情報に基づいて算出処理を実行する。
宛先特定部56は、投稿先候補コミュニティmに所属するユーザのうち、過去一定期間内に団体宛先名jで投稿先候補コミュニティmに投稿された記事に対してアクセスしたユーザの割合を算出する(ステップS103)。宛先特定部56は、投稿先候補コミュニティmのコミュニティID、投稿/閲覧履歴格納部44に格納されている履歴情報及びパラメタ設定情報格納部46に格納されているパラメタ設定情報に基づいて算出処理を実行する。このとき、宛先特定部56は、コミュニティ情報/記事本文格納部42に含まれる所属コミュニティテーブルを参照する。なお、過去一定期間内に団体宛先名jで投稿先候補コミュニティmに投稿された記事が複数ある場合には、当該複数の記事の各々についての割合の平均を算出する。
宛先特定部56は、過去一定期間内に団体宛先名jで投稿先候補コミュニティmに投稿された各記事と、投稿記事との類似度をそれぞれ算出する。宛先特定部56は、算出された類似度のうち、類似度が高い順に上位n位までの類似度の平均を算出する(ステップS104)。このとき、宛先特定部56は、投稿先候補コミュニティmのコミュニティID、単語統計情報格納部43に格納されている単語統計情報、投稿/閲覧履歴格納部44に格納されている履歴情報に含まれる投稿履歴情報及びパラメタ設定情報格納部46に格納されているパラメタ設定情報に基づいて算出処理を実行する。
次に、宛先特定部56は、上記したステップS101〜ステップS104において算出された値に基づいて投稿先候補コミュニティmの団体宛先名jに対する宛先コミュニティ度を算出する(ステップS105)。このとき、宛先特定部56は、ステップS101〜ステップS104において算出された値に対してパラメタ設定情報の重み付けに関する設定項目に設定されている各重要度に応じて重み付け処理を行い、与えられた計算式により宛先コミュニティ度を算出する。
次に、本実施形態に係る情報共有装置50の動作について具体的に説明する。ここで、情報共有装置50内において、コミュニティ1〜コミュニティ3が設定されているものとする。また、コミュニティ1に所属するユーザは、ユーザA、ユーザB及びユーザCであるものとする。また、コミュニティ2に所属するユーザは、ユーザA、鈴木一郎及び鈴木次郎であるものとする。また、コミュニティ3に所属するユーザは、ユーザA、ユーザB及び鈴木三郎であるものとする。なお、コミュニティ1の内容は「製品XのWeb開発関連」であり、コミュニティ2の内容は「製品Xのデザイン関連」であり、コミュニティ3の内容は「製品Xの検査関連」であるものとする。
図23は、情報共有装置50における過去一定期間(例えば過去2ヶ月)内の記事の投稿履歴及び閲覧履歴の一例を表す。以下、上記の環境において、個人宛先名を含む記事が投稿された場合の動作及び団体宛先名を含む記事が投稿された場合の動作について説明する。
まず、個人宛先名を含む記事が投稿された場合の動作について説明する。ここで、例えば投稿者であるユーザAが鈴木一郎に向けて、図24に示す記事100をコミュニティ2に投稿しようとしたが、誤ってコミュニティ1を指定して投稿した場合を想定する。この場合では、コミュニティ1が投稿先指定コミュニティである。なお、図23に示す記事A〜記事Jの各々と記事100との類似度はいずれも0.5であるものとして説明する。
宛先名抽出部55は、ユーザAによって投稿された記事100の先頭段落に含まれる文字列「鈴木殿」は第1の抽出パターン「文字列+個人に対する敬称」に一致する。このため、宛先名抽出部55は、第1の抽出パターンの「文字列」の部分に相当する「鈴木」を個人宛先名として抽出する。抽出された個人宛先名「鈴木」は、宛先名リストに追加される。
宛先特定部56は、投稿先指定コミュニティであるコミュニティ1に所属するユーザのうち、宛先名抽出部55によって抽出された個人宛先名「鈴木」をユーザ名に含むユーザ(宛先候補ユーザ)を検索する。この場合、コミュニティ1に所属するユーザに個人宛先名「鈴木」を含むユーザは存在しないため、宛先候補ユーザはヒットしない。よって、投稿先指定コミュニティであるコミュニティ1は、記事100の投稿先として不適切であると判定される。
次に、宛先特定部56は、投稿先指定コミュニティであるコミュニティ1以外で、記事100の投稿者であるユーザAが所属するコミュニティ(投稿先候補コミュニティ)を検索する。この場合、コミュニティ2及びコミュニティ3が投稿先候補コミュニティとしてヒットする。
宛先特定部56は、投稿先候補コミュニティであるコミュニティ2に所属するユーザのうち、個人宛先名「鈴木」をユーザ名に含むユーザ(宛先候補ユーザ)を検索する。この場合には、宛先候補ユーザとして「鈴木一郎」及び「鈴木次郎」がヒットする。
宛先特定部56は、宛先候補ユーザ「鈴木一郎」の個人宛先名「鈴木」に対する宛先ユーザ度を算出する。
まず、宛先特定部56は、ユーザA(投稿ユーザ)が過去一定期間内に投稿した記事のうち、コミュニティ2(投稿先候補コミュニティ)に投稿した記事の割合(以下、コミュニティへの投稿割合と表記)を算出する。図23に示す例では、ユーザAが過去一定期間内に投稿した記事は、記事A、記事D、記事E及び記事Hの4つである。そのうち、コミュニティ2に投稿された記事は、記事D及び記事E2つである。このため、この場合のコミュニティへの投稿割合は、0.5である。
また、宛先特定部56は、ユーザAが過去一定期間内にコミュニティ2に投稿した記事のうち、個人宛先名「鈴木」で投稿された記事の割合(以下、同一宛先名による投稿割合と表記)を算出する。図23に示す例では、ユーザAが過去一定期間内にコミュニティ2に投稿した記事は、記事D及び記事Eの2つである。そのうち、個人宛先名「鈴木」で投稿された記事は、記事Dの1つである。このため、この場合の同一宛先名による投稿割合は、0.5である。
また、宛先特定部56は、ユーザAが過去一定期間内にコミュニティ2に投稿した記事のうち、宛先候補ユーザ「鈴木一郎」が閲覧(アクセス)した記事の割合(以下、ユーザによるアクセス割合と表記)を算出する。図23に示す例では、ユーザAが過去一定期間内にコミュニティ2に投稿した記事は、記事D及び記事Eの2つである。そのうち、宛先候補ユーザ「鈴木一郎」がアクセスした記事は、記事D及び記事Eの2つである。このため、この場合のユーザによるアクセス割合は、1.0である。
また、宛先特定部56は、ユーザA及び宛先候補ユーザ「鈴木一郎」がコミュニティ2に投稿した各記事と記事100との類似度の平均(以下、過去投稿記事との類似度と表記)を算出する。図23に示す例では、記事A、記事D、記事E、記事F及び記事Hと記事100との類似度をそれぞれ算出し、当該算出された類似度のうち上位n位までの類似度の平均を過去投稿記事との類似度として算出する。ここでは、記事A、記事D、記事E、記事F及び記事Hと記事100との類似度はそれぞれ0.5であるので、過去投稿記事との類似度は、0.5である。
宛先特定部56は、算出されたコミュニティへの投稿割合、同一宛先名による投稿割合、ユーザによるアクセス割合及び過去投稿記事との類似度に対して重み付けを行い、宛先候補ユーザ「鈴木一郎」の個人宛先名「鈴木」に対する宛先ユーザ度を算出する。
ここで、宛先ユーザ度は、例えば(コミュニティへの投稿割合×重要度)+(同一宛先名による投稿割合×重要度)+(ユーザによるアクセス割合かける重要度)+(過去投稿記事との類似度×重要度)という計算式により算出されるものとする。
なお、コミュニティへの投稿割合、同一宛先名による投稿割合、ユーザによるアクセス割合及び過去投稿記事との類似度の各々に重み付けを行うための重要度は、パラメタ設定情報において設定されているが、ここでは便宜的に全て1であるものとする。また、宛先ユーザ度の閾値は2.0、投稿先妥当度の閾値は2.0とパラメタ設定情報において設定されているものとする。
この場合、宛先候補ユーザ「鈴木一郎」の個人宛先名「鈴木」に対する宛先ユーザ度は、(0・5×1)+(0.5×1)+(1.0×1)+(0.5×1)により「2.5」と算出される。
また、同様にして、宛先候補ユーザ「鈴木次郎」の個人宛先名「鈴木」に対する宛先ユーザ度を算出すると、(0・5×1)+(0.5×1)+(0.5×1)+(0.5×1)により「2.0」となる。
これにより、コミュニティ2において個人宛先名「鈴木」に対する宛先ユーザ度が最大のユーザは「鈴木一郎」となる。ここで、宛先ユーザ度の閾値は上記したように2.0であるため、宛先候補ユーザ「鈴木一郎」の個人宛先名「鈴木」に対する宛先ユーザ度(2.5)は宛先ユーザ度の閾値以上と判定される。なお、宛先名リストには個人宛先名「鈴木」しか存在しないため、この宛先ユーザ度がコミュニティ2の投稿先妥当度となる。
一方、宛先特定部56は、投稿先候補コミュニティであるコミュニティ3に所属するユーザのうち、個人宛先名「鈴木」をユーザ名に含むユーザ(宛先候補ユーザ)を検索する。この場合には、宛先候補ユーザとして「鈴木三郎」がヒットする。
宛先特定部56は、宛先候補ユーザ「鈴木三郎」の個人宛先名「鈴木」に対する宛先ユーザ度を算出する。この場合においても、上記したようにして宛先ユーザ度を算出すると、(0・25×1)+(0×1)+(1.0×1)+(0.5×1)により「1.75」となる。
これにより、コミュニティ3において個人宛先名「鈴木」に対する宛先ユーザ度が最大のユーザは「鈴木三郎」となる。ここで、宛先ユーザ度の閾値は上記したように2.0であるため、宛先候補ユーザ「鈴木三郎」の個人宛先名「鈴木」に対する宛先ユーザ度(1.75)は宛先ユーザ度の閾値以上でないと判定される。なお、宛先名リストには個人宛先名「鈴木」しか存在しないため、コミュニティ3の投稿先妥当度は0となる。
したがって、宛先特定部56は、投稿先妥当度が最大のコミュニティとしてコミュニティ2を特定する。このコミュニティ2の投稿先妥当度は、上記したように2.5である。ここで、投稿先妥当度の閾値は2.0であるため、コミュニティ2の投稿先妥当度は閾値以上であると判定される。
これにより、宛先特定部56は、投稿記事である記事100はコミュニティ2に投稿するのが妥当であると判定し、コミュニティ2のコミュニティ名及びユーザ名「鈴木一郎」を投稿者であるユーザAに提示する。この場合、例えば「コミュニティ1に鈴木さんは参加しておりません。コミュニティ2の鈴木一郎さんではないですか。」等のメッセージがユーザAに提示される。
ユーザAは、このようなメッセージを確認することにより、記事100の投稿先をコミュニティ1からコミュニティ2に変更することができる。
次に、団体宛先名を含む記事が投稿された場合の動作について説明する。ここで、例えば投稿者であるユーザBが製品XのWeb開発関連の担当者に向けて、図25に示す記事200をコミュニティ1に投稿しようとしたが、誤ってコミュニティ3を指定して投稿した場合を想定する。この場合では、コミュニティ3が投稿先指定コミュニティである。なお、図23に示す記事A〜記事Jの各々と記事100との類似度はいずれも0.5であるものとして説明する。
宛先名抽出部55は、ユーザBによって投稿された記事200の先頭段落に含まれる文字列「製品X担当者各位」は第2の抽出パターン「文字列+相手が複数時の敬称」に一致する。このため、宛先名抽出部55は、第2の抽出パターンの「文字列」の部分に相当する「製品X担当者」を団体宛先名として抽出する。抽出された団体宛先名「製品X担当者」は、宛先名リストに追加される。
宛先特定部56は、投稿先指定コミュニティであるコミュニティ3の団体宛先名「製品X担当者」に対する宛先コミュニティ度を算出する。
まず、宛作特定部56は、ユーザB(投稿ユーザ)が過去一定期間内に投稿した記事のうち、コミュニティ3に投稿した記事の割合(コミュニティへの投稿割合)を算出する。図23に示す例では、ユーザBが過去一定期間内に投稿した記事は、記事B、記事C及び記事Iの3つである。そのうち、コミュニティ3に投稿された記事は、記事Iの1つである。このため、この場合のコミュニティへの投稿割合は、1/3(≒0.33)である。
また、宛先特定部56は、過去一定期間内にコミュニティ3に投稿された記事のうち、団体宛先名「製品X担当者」で投稿された記事の割合(同一宛先名による投稿割合)を算出する。図23に示す例では、過去一定期間内にコミュニティ3に投稿された記事は、記事H、記事I及び記事Jの3つである。そのうち、団体宛先名「製品X担当者」で投稿された記事は記事Jの1つである。このため、この場合の同一宛先名による投稿割合は、1/3(≒0.33)である。
また、宛先特定部56は、コミュニティ3に所属するユーザのうち、過去一定期間内に団体宛先名「製品X担当者」でコミュニティ3に投稿した記事に対してアクセス(閲覧)したユーザの割合(ユーザによるアクセス割合)を算出する。このとき、コミュニティ3に所属するユーザからは、過去一定期間内に団体宛先名「製品X担当者」でコミュニティ3に記事を投稿した投稿ユーザは除かれるものとする。図23に示す例では、過去一定期間内に団体宛先名「製品X担当者」でコミュニティ3に投稿された記事は記事Jである。コミュニティ3に所属するユーザ(投稿ユーザである「鈴木三郎」を除く)はユーザA及びユーザBであり、このうち、記事Jに対してアクセス(閲覧)したユーザはユーザBである。このため、この場合のユーザによるアクセス割合は、0.5である。
また、宛先特定部56は、団体宛先名「製品X担当者」でコミュニティ3に投稿された各記事と記事200との類似度の平均(過去投稿記事との類似度)を算出する。図23に示す例では、記事Jと記事200との類似度を算出する。ここでは、記事Jと記事200との類似度は0.5であるので、過去投稿記事との類似度は、0.5である。
宛先特定部56は、算出されたコミュニティへの投稿割合、同一宛先名による投稿割合、ユーザによるアクセス割合及び過去投稿記事との類似度に対して重み付けを行い、コミュニティ3の団体宛先名「製品X担当者」に対する宛先コミュニティ度を算出する。ここで、宛先コミュニティ度は、例えば(コミュニティへの投稿割合×重要度))+(同一宛先名による投稿割合×重要度)+(ユーザによるアクセス割合かける重要度)+(過去投稿記事との類似度×重要度)という計算式により算出されるものとする。なお、コミュニティへの投稿割合、同一宛先名による投稿割合、ユーザによるアクセス割合及び過去投稿記事との類似度の各々に重み付けを行うための重要度は、パラメタ設定情報において設定されているが、ここでは便宜的に全て1であるものとする。また、宛先コミュニティ度の閾値は2.0、投稿先妥当度の閾値は2.0とパラメタ設定情報において設定されているものとする。
この場合、コミュニティ3の団体宛先名「製品X担当者」に対する宛先コミュニティ度は、(0・33×1)+(0・33×1)+(0・5×1)+(0・5×1)により、「1.66」と算出される。
コミュニティ3の団体宛先名「製品X担当者」に対する宛先コミュニティ度は、宛先コミュニティ度の閾値である2.0より小さいため、コミュニティ3は団体宛先名「製品X担当者」に対応するコミュニティではないと判定される。これにより、コミュニティ3の投稿先妥当度は0となる。
したがって、宛先特定部56は、コミュニティ3の投稿先妥当度(0)は投稿先妥当度の閾値(2.0)以上でないため、記事200のコミュニティ3への投稿は不適切であると判定する。
次に、宛先特定部56は、投稿先指定コミュニティであるコミュニティ3以外で、記事200の投稿者であるユーザBが所属するコミュニティ(投稿先候補コミュニティ)を検索する。この場合、コミュニティ1が投稿先候補コミュニティとしてヒットする。
宛先特定部56は、上記したコミュニティ3の団体宛先名「製品X担当者」に対する宛先コミュニティ度と同様にして、コミュニティ1の団体宛先名「製品X担当者」に対する宛先コミュニティ度を算出する。この場合、コミュニティ1の団体宛先名「製品X担当者」に対する宛先コミュニティ度は、(0.66×1)+(0.66×1)+(1.0×1)+(0.5×1)により「2.82」となる。
コミュニティ1の団体宛先名「製品X担当者」に対する宛先コミュニティ度は、宛先コミュニティ度の閾値である2.0以上であるため、コミュニティ1は、団体宛先名「製品X担当者」に対応するコミュニティであると判定される。これにより、コミュニティ1の投稿先妥当度は2.82となる。
したがって、宛先特定部56は、コミュニティ1の投稿先妥当度(2.82)が投稿先妥当度の閾値(2.0)以上であると判定する。
これにより、宛先特定部56は、記事200はコミュニティ1に投稿するのが妥当であると判定し、コミュニティ1のコミュニティ名を投稿者であるユーザBに提示する。この場合、例えば「コミュニティ3への投稿は誤りの可能性があります。コミュニティ1への投稿ではないですか。」等のメッセージがユーザBに提示される。
ユーザBは、このようなメッセージを確認することにより、記事200の投稿先をコミュニティ3からコミュニティ1に変更することができる。
上記したように本実施形態においては、投稿記事に含まれる文字列から当該投稿記事の宛先名を抽出し、当該抽出された宛先名から当該投稿記事の投稿先となるコミュニティを特定し、当該特定されたコミュニティのコミュニティ名が投稿ユーザに対して提示される。また、本実施形態においては、抽出された宛先名が個人宛先名である場合には、当該個人宛先名に対応するユーザを特定し、当該ユーザのユーザ名が投稿ユーザに対して提示される。
これにより、本実施形態においては、例えば投稿者が投稿記事を誤ったコミュニティに投稿しようとした際、あるいは、記事内に記入された宛先名に対応するユーザが参加していないようなコミュニティに投稿しようとした際には、適切な投稿先となるコミュニティ及び投稿相手となるユーザを投稿者に提示することができる。したがって、投稿者は、提示されたコミュニティ及びユーザを確認することにより、上記したように誤ったコミュニティに対して投稿しようとしていた場合には、投稿先を適切なコミュニティに変更することができる。よって、例えば特定のコミュニティのユーザにのみ連絡したい内容等が誤って別のコミュニティに投稿され、投稿者が意図しないユーザに当該内容が知られてしまうといった弊害を回避することができる。
なお、本願発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
10…コンピュータ、20…クライアント端末、30…ネットワーク、40…外部記憶装置、42…コミュニティ情報/記事本文格納部、43…単語統計情報格納部、44…投稿/閲覧履歴格納部、45…抽出規則格納部、46…パラメタ設定情報格納部、50…情報共有装置、51…インタフェース、52…送受信/保管部、53…形態素解析部、54…単語統計情報生成部、55…宛先名抽出部、56…宛先特定部。