以下図面について、本発明の一実施の形態を詳述する。
(1)第1の実施の形態
本実施の形態では、企業動向、社会情勢等についての現状認識、将来展望などに関して、その状況を分析する際に、様々な情報を収集し、収集した情報を組み合わせ、新しい知見としての現状認識、将来展望などに関する情報を生成し、ユーザによる現状認識、将来展望などに関する分析を支援する構成(方法)について説明する。
ここで、現状認識、将来展望などの分析を行うためには、世の中で発生している様々な事象を抽出し、事象間の因果関係を明らかにし、過去の事象の因果関係から、現在の事象の因果関係を推定し、未発生の事象も含む事象の推移を推定する必要がある。
しかしながら、事象の発生頻度は低く、事象間の因果関係の分析は容易でない。この点、本実施の形態では、前後の経緯、意味合いなど、事象の類似性を考慮して複数の事象を同じ事象として捉え、事象間の因果関係を付与し易くする。これにより、事象間に因果関係を付与したモデル(因果モデル)を作成し、因果モデルに基づいて、事象の推移の予測が可能になる。ここで、類似する複数の事象を統合することを事象の抽象化と称する。
そこで、本実施の形態では、抽象化した事象に意味付けを行い、その因果モデルを用いてユーザの分析を支援する。ここで、ユーザは、様々な目的を持っている。あるユーザは、大局的な観点で分析しようとし、別のユーザは細かい観点で分析しようとする。そのため、事象の因果モデルも、様々な抽象度のレベルに応じて構築されるべきである。よって、本実施の形態では、様々な抽象度のレベルに応じて因果モデルを構築し、ユーザの目的に応じて適切な抽象度の因果モデルを提示し、ユーザの分析を支援する。
以下、図1乃至図11を用いて、本実施の形態の詳細について説明する。ただし、本発明は、本実施の形態に限定されるものではなく、事象の因果関係を提示する何れの状況においても、本発明は適用可能である。
図1において、100は全体として第1の実施の形態による事象提示システムを示す。事象提示システム100は、地図情報提供システム160、語彙情報提供システム170等と、通信回線150を介して通信可能に接続する。事象提示システム100、地図情報提供システム160、および語彙情報提供システム170の各々は、1つまたは複数の一般的なコンピュータ(計算機)で実現可能である。
事象提示システム100は、主記憶装置110、補助記憶装置130、中央制御装置140、通信装置141、および入出力装置142を備える。これらは、バスを介して相互に接続されている。
主記憶装置110は、プログラムを格納している。検索ワード受付部111、テキスト解析部112、因果モデル・事象の検索・取得部113、記事/文書の検索・取得部114、属性情報の検索・取得部115、分析結果出力部116、管理データ受付部117、抽象度決定部118、分析対象取得部120、抽象事象生成部121、因果関係付与部122、および因果強度・分岐数判定部123は、プログラムの機能(事象提示システム100の機能)である。なお、「○○部は」と主体を記した場合は、中央制御装置140が、補助記憶装置130から各プログラムを読み出し、主記憶装置110にロードしたうえで、各プログラムを実行するものとし、各プログラムの機能(詳細後記)が実現される。
なお、詳細については後述するが、因果モデル・事象の検索・取得部113は、事象の情報を含む事象情報から、検索のために入力された文字列に対応する事象を抽象事象として取得し、上記抽象事象に基づいて、事象の前後関係が対応付けられた前後関係情報から上記抽象事象の後の事象を特定する第1特定部の一例である。記事/文書の検索・取得部114は、上記第1特定部で取得された抽象事象に基づいて、事象の親子関係が対応付けられた親子関係情報から上記抽象事象の具象事象を特定し、事象に係る事案の情報を含む事案情報から、上記具象事象に係る事案の情報を特定する第2特定部の一例である。属性情報の検索・取得部115は、ユーザにより指定された事案の情報に関連する情報を特定する第3特定部の一例である。分析結果出力部116は、上記第1特定部で取得された抽象事象と、上記第1特定部で特定された上記抽象事象の後の事象と、上記第2特定部で特定された上記抽象事象の具象事象に係る事案の情報と、を出力する出力部の一例である。
補助記憶装置130は、因果モデルDB(データベース)131、記事/文書DB132、テキスト解析結果DB133、管理DB134を記憶(格納)する。
地図情報提供システム160は、事象提示システム100から提供される場所に係る情報に基づいて、当該場所の周辺の地図情報などを事象提示システム100に提供するシステムである。地図情報提供システム160は、通信回線150を介して事象提示システム100と通信し、地図情報などの提供を行う。
語彙情報提供システム170は、事象提示システム100から提供される単語に基づいて、事象提示システム100に単語の抽象度を提供するシステムである。語彙情報提供システム170は、通信回線150を介して事象提示システム100と通信し、単語の抽象度の提供を行う。
通信回線150としては、LAN(Local Area Network)の他、専用回線、WAN(Wide Area Network)、電灯線ネットワーク、無線ネットワーク、公衆回線網、携帯電話網、衛星通信回線など、様々なネットワークを採用することができる。
なお、図1では、事象提示システム100は、単独で入出力を行うものとしたが、通信回線150で他の端末と接続し、他の端末の入出力装置で情報を入出力するものとしてもよい。付言するならば、事象提示システム100の機能は、複数のコンピュータにより実現されてもよい。
続いて、本実施の形態における事象の因果関係を提示する一連の処理について説明する。抽象事象の因果関係を提示する処理を図2に示す。図2の処理で使用するデータベースの詳細については、図3Aから図6Cにて後述する。
図2は、過去の事象の因果関係に基づいて、現在の事象の前後の推移を推定し、ユーザの検索対象の事象に関して、事象の推移をユーザに提示する処理(事象提示処理)に係るフローチャートの一例を示す。なお、図7は、ユーザが検索対象の事象を入力するための事象の検索画面のイメージを示し、図8は、ユーザに事象の推移を提示する事象の検索結果表示画面のイメージを示す。
ステップS200では、事象提示システム100は、事象提示処理を開始する。
ステップS201では、検索ワード受付部111は、検索対象の事象を示す検索ワード(検索のために入力された文字列)と、検索対象の事象の属性(検索属性:場所、人/組織、事象の発生日時の何れか、またはその組合せ)との入力を、ユーザから入出力装置142を介して受け付ける(図7参照。)。
ステップS202では、因果モデル・事象の検索・取得部113は、ユーザから受け付けられた検索ワードを含む抽象事象を検索する。より具体的には、因果モデル・事象の検索・取得部113は、検索ワードを形態素解析技術で単語に分割し、各単語をテキスト解析結果DB133の単語情報テーブル500の単語502を検索し、該当するレコードの単語ID501を取得する。因果モデル・事象の検索・取得部113は、取得した単語ID501で因果モデルDB131の事象テーブル300の単語ID:名詞303、単語ID:サ変名詞304を各々検索し、該当するレコードがある場合は、該当するレコードの事象ID301を検索対象の事象(抽象事象)として主記憶装置110のメモリ領域に格納する。また、因果モデル・事象の検索・取得部113は、検索対象の属性を主記憶装置110のメモリ領域に格納する。
ステップS203では、因果モデル・事象の検索・取得部113は、ステップS202で事象ID301を検索できたか否かを判定する。因果モデル・事象の検索・取得部113は、検索できたと判定した場合、ステップS205に処理を移し、検索できないと判定した場合、ステップS204に処理を移す。
ステップS204では、テキスト解析部112は、ステップS202で検索ワードから分割された単語に基づいて、単語埋め込みベクトル技術を用いて単語の意味ベクトルを抽出し、当該単語の意味ベクトルと距離の最も近い単語の意味ベクトルをテキスト解析結果DB133の単語情報テーブル500の意味ベクトル503から検索する。
ここで、距離が最も近いものを検索する代わりに、距離が閾値内のもので代替することとしてもよく、その場合、閾値については、例えば、管理DB134の設定テーブル600の設定内容602で、「単語距離閾値」の設定値603にて設定されているものとする。
そして、テキスト解析部112は、距離が最も近い単語(または距離が閾値内の単語)で、検索ワードから分割された単語を置換する。後はステップS203と同様に、因果モデル・事象の検索・取得部113は、各単語をテキスト解析結果DB133の単語情報テーブル500の単語502を検索し、該当するレコードの単語ID501を取得し、取得した単語ID501で因果モデルDB131の事象テーブル300の単語ID:名詞303、単語ID:サ変名詞304を各々検索し、該当するレコードの事象ID301を検索対象の事象として主記憶装置110のメモリ領域に格納する。
ステップS205では、因果モデル・事象の検索・取得部113は、事象ID301に対して、同じレコードの抽象度305を取得して事象の抽象度を特定し、ユーザに提示する事象の抽象度とする。また、因果モデル・事象の検索・取得部113は、事象ID301に基づいて、因果テーブル310の前事象ID312を検索し、該当するレコードの後事象ID313を、事象ID301に後続する事象(後事象)として取得する。さらに、因果モデル・事象の検索・取得部113は、事象ID301に基づいて、後事象ID313を検索し、該当するレコードの前事象ID312を、事象ID301に先行する事象(前事象)として取得する。因果モデル・事象の検索・取得部113は、当該の後事象、前事象の検索を繰り返すことで因果モデルを取得する。繰り返し数は、設定された閾値に従うものとし、閾値は、例えば、管理DB134の設定テーブル600の設定内容602の「因果表示閾値」の設定値603に設定されているものとする。
ステップS205は、上述の処理内容に限られるものではない。例えば、因果モデル・事象の検索・取得部113は、後続する事象のみの因果モデルを取得してもよいし、先行する事象のみの因果モデルを取得してもよい。なお、先行する事象および後続する事象の両方の因果モデルを取得する場合は、何れか一方の事象の因果モデルを取得する場合よりも、事象の分析がより容易となる。
また、例えば、因果モデル・事象の検索・取得部113は、特定した事象の抽象度とユーザの抽象度(図11参照。)とが異なると判定した場合、ユーザの抽象度に合うように因果モデルを取得してもよい。因果モデル・事象の検索・取得部113は、ユーザの抽象度の方が高いと判定した場合、因果モデルDB131の抽象事象関係テーブル320の具象事象ID322を検索し、該当するレコードの抽象事象ID323を新たな抽象事象(ユーザに適した抽象事象)とし、因果モデルを取得する。また、因果モデル・事象の検索・取得部113は、ユーザの抽象度の方が低いと判定した場合、因果モデルDB131の抽象事象関係テーブル320の抽象事象ID323を検索し、該当するレコードの一または全部の具象事象ID322を新たな抽象事象(ユーザに適した抽象事象)とし、因果モデルを取得する。かかる処理によれば、様々な抽象度のレベルに応じて因果モデルを構築し、ユーザの目的に応じて適切な抽象度の因果モデルを提示し、ユーザの分析を支援することができる。
ステップS206では、因果モデル・事象の検索・取得部113は、ステップS205にて取得した因果モデルの事象ID(事象ID301、前事象ID312、後事象ID313)に関して、因果モデルDB131の抽象事象関係テーブル320の抽象事象ID323を検索し、該当するレコードの具象事象ID322を取得する。より具体的には、因果モデル・事象の検索・取得部113は、最下位の(抽象度が最も低い)具象事象に達するまで抽象事象関係テーブル320の親子関係を遡って、最下位の具象事象の具象事象ID322を全て取得する。なお、各抽象度の事象に記事/文書が対応付けられているデータ構成を採用してもよく、その場合、抽象事象の具象事象に対応する具象事象ID322を取得すればよい。
ステップS207では、記事/文書の検索・取得部114は、ステップS206で検索された具象事象ID322に基づいて、因果モデルDB131の事象属性テーブル330の事象ID331を検索する。ステップS202で事象の属性が主記憶装置110のメモリに入力されている場合は、記事/文書の検索・取得部114は、当該属性で場所332、人/組織333、日時334の該当レコードを絞り込む。つまり、検索および絞込みの結果のレコードの事象ID331が取得される。記事/文書の検索・取得部114は、当該事象ID331に基づいて、記事/文書DB132の記事/文書−事象関係テーブル410の事象ID412を検索し、該当するレコードの記事/文書ID411を取得する。記事/文書の検索・取得部114は、取得した記事/文書ID411に基づいて、記事/文書テーブル400の記事/文書ID401を検索し、該当するレコードの記事/文書402、掲載日403、掲載ソース404を取得する。
ステップS208では、分析結果出力部116は、画面出力準備を行う。より具体的には、分析結果出力部116は、ステップS205で取得された抽象事象、前事象、後事象、事象の前後関係(因果モデル)と、ステップS207で取得された記事/文書とを検索結果として、事象の検索結果表示画面に表示するデータとして主記憶装置110に格納する。
ステップS209では、属性情報の検索・取得部115は、ステップS208で表示する抽象事象、前事象、後事象の各々に関して、ステップS206にて取得している具象事象の場所332(例えば、検索属性の場所)に関して、外部の地図情報提供システム160から周辺地図を取得する。
ステップS210では、属性情報の検索・取得部115は、ステップS208で表示する抽象事象、前事象、後事象の各々に関して、ステップS206にて取得している具象事象を実行した人/組織333に関して、人/組織管理テーブル340の名称342を検索し、該当するレコードの人/組織ID341を取得する。また、属性情報の検索・取得部115は、人/組織ID341に基づいて、親ID(人/組織)343を検索し、子の人/組織の情報として保持する。さらに、属性情報の検索・取得部115は、該当するレコードの親ID(人/組織)343に基づいて、人/組織ID341を検索し、親の人/組織の情報として保持する。属性情報の検索・取得部115は、同様の処理を繰り返し、人/組織の構成を取得する。
ステップS211では、分析結果出力部116は、ステップS208で主記憶装置110に格納した抽象事象、前事象、後事象、事象の前後関係(因果モデル)、記事/文書と、ステップS209で取得した周辺の地図と、ステップS210で取得した人/組織の構成とを検索結果として、事象の検索結果表示画面に表示する(図8参照。)。
ステップS212では、分析結果出力部116は、ユーザからの記事/文書の選択を受け付ける。分析結果出力部116は、ユーザからの選択があると判定した場合、ステップS213に処理を移し、選択がないと判定した場合、ステップS214に処理を移す。
ステップS213では、分析結果出力部116は、ユーザから選択された記事/文書と関連付いている事象ID331、場所332、人/組織333、日時334を、ステップS207の結果から特定し、ステップS209に処理を移す。
ステップS214では、事象提示システム100は、事象提示処理を終了する。
事象提示処理によれば、類似する複数の事象をグループに纏めた意味を判読可能な抽象事象と、その因果モデルとがユーザに提示されるので、ユーザによる事象の分析を支援することができる。
次に、各データベースの詳細を説明する。
図3Aから図3Eに、因果モデルDB131の一例を示す。因果モデルDB131には、事象の因果モデルに関するデータが記憶されている。因果モデルDB131は、事象テーブル300(図3A)と、因果テーブル310(図3B)と、抽象事象関係テーブル320(図3C)と、事象属性テーブル330(図3D)と、人/組織管理テーブル340(図3E)を含んで構成される。
事象テーブル300には、事象に関するデータが記憶されている。事象テーブル300は、事象情報の一例であり、事象ID301と、事象302と、単語ID:名詞303と、単語ID:サ変名詞304と、抽象度305との情報を含んで構成される。各レコードを識別するためのキーは、事象ID301である。
事象ID301は、事象を一意に識別するための識別子である。事象302は、事象を端的に表現したもので、事象の目的語を示す名詞と事象の動作を示すサ変名詞とで構成される。単語ID:名詞303は、事象の目的語を示す名詞の単語を一意に識別するための識別子である。単語ID:サ変名詞304は、事象の動作を示すサ変名詞の単語を一意に識別するための識別子である。抽象度305は、事象の抽象度を示すものであり、単語ID:名詞303および単語ID:サ変名詞304の各々の単語の抽象度から算出される。
因果テーブル310には、事象間の因果関係に関するデータが記憶されている。因果テーブル310は、前後関係情報の一例であり、リンクID311と、前事象ID312と、後事象ID313と、強度314との情報を含んで構成される。各レコードを識別するためのキーは、リンクID311である。
リンクID311は、事象間の因果関係を示すリンクを一意に識別するための識別子である。前事象ID312は、事象間の因果関係のうち、因果の元となる事象(原因を示す事象)を一意に識別するための識別子である。後事象ID313は、事象間の因果関係のうち、因果の先となる事象(結果を示す事象)を一意に識別するための識別子である。強度314は、事象間の因果関係の強度を示す。なお、事象の抽象化において、元になる事象については、予め因果関係がユーザにより付与され(強度314も付与され)、例えば、元になる事象の抽象事象間の因果関係の強度314については、当該抽象事象に属する1つ下の抽象度の具象事象間の数をカウントすることにより算出される。
抽象事象関係テーブル320には、抽象化前の事象(子の事象)と抽象化後の事象(親の事象)との関係性に関するデータが記憶されている。抽象事象関係テーブル320は、親子関係情報の一例であり、抽象化ID321と、具象事象ID322と、抽象事象ID323との情報を含んで構成される。各レコードを識別するためのキーは、抽象化ID321である。
抽象化ID321は、事象を別の事象に抽象化したときの事象間の関係を一意に識別するための識別子である。具象事象ID322は、抽象化される事象を示す識別子である。抽象事象ID323は、抽象化された事象を示す識別子である。
事象属性テーブル330には、事象に関する場所、人/組織、日時の属性に関するデータが記憶されている。事象属性テーブル330は、事象および検索属性が対応付けられた絞込み情報の一例であり、事象ID331と、場所332と、人/組織333と、日時334との情報を含んで構成される。各レコードを識別するためのキーは、事象ID331である。
事象ID331は、事象を一意に識別するための識別子である。場所332は、事象の発生場所を示す。人/組織333は、事象を実行した主体を示す。日時334は、事象が発生した日時を示す。
人/組織管理テーブル340には、人/組織の構成に関するデータが記憶されている。人/組織管理テーブル340は、人/組織ID341と、名称342と、親ID(人/組織)343との情報を含んで構成される。各レコードを識別するためのキーは、人/組織ID341である。
人/組織ID341は、人/組織を一意に識別するための識別子である。名称342は、人/組織の名称を示す。親ID(人/組織)343は、人/組織ID341の人/組織から見て、構成上、1つ上位の人/組織(親の人/組織)を一意に識別するための識別子である。
図4Aおよび図4Bに、記事/文書DB132の一例を示す。記事/文書DB132においては、事象を抽出するための記事や文書に関するデータが記憶されている。記事/文書DB132は、記事/文書テーブル400(図4A)と、記事/文書−事象関係テーブル410(図4B)とを含んで構成される。
記事/文書テーブル400には、事象を抽出するための記事または文書に関するデータ等が記憶されている。記事/文書テーブル400は、事案情報の一例であり、記事/文書ID401と、記事/文書402と、掲載日403と、掲載ソース404との情報を含んで構成される。各レコードを識別するためのキーは、記事/文書ID401である。
記事/文書ID401は、記事または文書を一意に識別するための識別子である。記事/文書402は、事象を抽出するための記事または文書の具体的な内容を示す。掲載日403は、記事または文書が新聞、書類などに掲載された日時を示す。掲載ソース404は、記事または文書が掲載された新聞、書類名などを示す。
記事/文書−事象関係テーブル410には、記事または文書と、そこから抽出された事象間の関係を示すデータとが記憶されている。記事/文書−事象関係テーブル410は、記事/文書ID411と、事象ID412との情報を含んで構成される。各レコードを識別するためのキーは、記事/文書ID411と事象ID412とである。
記事/文書ID411は、記事または文書を一意に識別するための識別子である。事象ID412は、記事または文書からいくつか抽出される事象のうち、1つの事象を一意に識別するための識別子である。
図5Aおよび図5Bに、テキスト解析結果DB133の一例を示す。テキスト解析結果DB133には、記事または文書に記載されている単語の意味、品詞などを解析した解析結果に関するデータが記憶されている。テキスト解析結果DB133は、単語情報テーブル500(図5A)と、品詞テーブル510(図5B)とを含んで構成される。
単語情報テーブル500には、記事または文書に記載されている単語の意味などに関するデータが記憶されている。単語情報テーブル500は、単語ID501と、単語502と、意味ベクトル503と、出現頻度504と、抽象度505との情報を含んで構成される。各レコードを識別するためのキーは、単語ID501である。
単語ID501は、単語を一意に識別するための識別子である。単語502は、単語そのものを示す。意味ベクトル503は、一般的な技術として確立されている「単語埋め込みベクトル技術」を用いて、記事または文書の文章から単語の意味を200次元などの低次元ベクトルで表現したものである。出現頻度504は、単語が記事、新聞などに出現する頻度を示す。抽象度505は、出現頻度から算出された単語の抽象度、または語彙情報提供サービスから取得した単語の抽象度を示す。
品詞テーブル510には、記事または文書から抽出した単語の品詞に関するデータが記憶されている。品詞テーブル510は、単語ID511と、品詞512との情報を含んで構成される。各レコードを識別するためのキーは、単語ID511である。
単語ID511は、単語を一意に識別するための識別子である。品詞512は、名詞、動詞、サ変名詞など、単語の品詞を示すもので、一般的な技術として確立されている「形態素解析技術」を用いて、記事または文書の文章から単語の品詞を抽出したものである。
図6Aから図6Cに、管理DB134の一例を示す。管理DB134には、閾値、設定値、ユーザ情報、検索履歴などに関するデータが記憶されている。管理DB134は、設定テーブル600(図6A)と、ユーザ情報テーブル610(図6B)と、検索履歴テーブル620(図6C)とを含んで構成される。
設定テーブル600には、設定値(例えば、閾値)に関するデータが記憶されている。設定テーブル600は、設定ID601と、設定内容602と、設定値603との情報を含んで構成される。各レコードを識別するためのキーは、設定ID601である。
設定ID601は、システムに関する設定値を一意に識別するための識別子である。設定内容602は、設定内容を示す。設定値603は、設定内容に関する設定値を示す。
ユーザ情報テーブル610には、ユーザ情報に関するデータが記憶されている。ユーザ情報テーブル610は、ユーザID611と、関心事項612と、抽象度613との情報を含んで構成される。各レコードを識別するためのキーは、ユーザID611である。
ユーザID611は、ユーザを一意に識別するための識別子である。関心事項612は、ユーザにより入力されたキーワードの組で、ユーザが何に関心を持っているかを示す。抽象度613は、ユーザの関心事項の抽象度を示すもので、関心事項612の各単語の抽象度から算出される。
検索履歴テーブル620には、ユーザが検索した履歴に関するデータが記憶されている。検索履歴テーブル620は、ユーザID621と、日時622と、検索ワード623と、検索属性624との情報を含んで構成される。各レコードを識別するためのキーは、ユーザID621と日時622とである。
ユーザID621は、ユーザを一意に識別するための識別子である。日時622は、ユーザが検索した日時を示す。検索ワード623は、ユーザが検索した内容を示す。検索属性は、ユーザが検索する際に指定した検索対象の属性(場所、人/組織、事象の発生日時)を示す。
図7に、図2のステップS201で表示する事象の検索画面(入力画面)の一例を示す。事象の検索画面は、ユーザが今後の事象の推移を分析するために検索する事象に関する情報を入力するための画面であり、事象提示システム100の入出力装置142に表示される。事象の検索画面は、検索ワード701と、検索属性702と、検索ボタン703と、過去の検索704とを含んで構成される。
検索ワード701は、検索したい事象に関するキーワードを入力するための入力欄である。検索属性702は、検索したい事象を、場所、人/組織、日時で絞り込むための入力欄である。検索ボタン703は、検索ワード701、検索属性702で入力された検索の条件で検索を実行するためのボタンである。かかる検索画面により、ユーザからの事象の検索対象の条件を受け付ける。過去の検索704は、過去に検索された検索ワード701および検索属性702を一覧表で表示するものである。
なお、検索ワード701には、1つの単語だけでなく、複数の単語を入力してもよく、その場合は、AND条件、OR条件などを設定できるものとしてもよい。
また、検索属性702には、1つの属性だけでなく、複数の属性を入力してもよい。その場合は、AND条件、OR条件などを設定できるものとしてもよい。
また、ステップS210で取得する人/組織333は、事象を実行する人/組織として説明したが、事象の目的語の人/組織が格納されているものとして、事象の目的語の人/組織の構成を取得するものとしてもよい。
図8に、図2のステップS211で表示する事象の検索結果表示画面の一例を示す。事象の検索結果表示画面は、ユーザが検索した事象を表示する際に、その因果関係から、前後の事象も合わせて表示するものであり、事象提示システム100の入出力装置142に表示される。
事象の検索結果表示画面は、該当事象801と、検索内容802と、該当事象に関する記事/文書803と、前事象の記事/文書804と、後事象(予測結果)805と、俯瞰地図806と、人/組織の関係807と、因果モデル808と、戻るボタン809とを含んで構成される。
該当事象801は、検索対象の事象として検索された事象を示す。検索内容802は、検索を行ったときの検索ワードと検索属性とを示す。該当事象の記事/文書803は、該当事象801の具体的な事象と関連付く記事/文書の一覧を示す。前事象の記事/文書804は、該当事象に対して前の事象であると因果関係に基づいて判定された事象を示し、それに関連付く記事/文書を示す。後事象(予測結果)805は、該当事象に対して後の事象であると因果関係に基づいて判定された事象を示し、それに関連付く記事/文書を示す。なお、図8では、所定の期間(例えば直近1年間)の記事または文書が対象とされて表示されている。
俯瞰地図806は、該当事象801のうち、該当事象の記事/文書803でユーザがフォーカスした記事/文書の事象の発生場所の周辺地図(ユーザにより指定された事案の情報に関連する情報の一例)を示す。なお、例えば、検索属性で国が入力されていた場合、当該国の周辺地図が初期表示される。人/組織の関係807は、ユーザがフォーカスした記事/文書の事象を実行した人/組織が属する人/組織の構成(ユーザにより指定された事案の情報に関連する情報の一例)を示す。なお、例えば、検索属性で組織が入力されていた場合、当該組織の構成(行政区画などであってもよい。)が初期表示される。因果モデル808は、該当事象801、前事象の記事/文書804に示した前事象、後事象(予測結果)805に示した後事象と、事象間の因果関係を示した因果モデルを示す。戻るボタン809は、ユーザが事象の検索画面(図7)に戻るためのボタンである。かかる画面により、事象に係る情報をユーザに提示する。
ここで、図2に示した事象提示処理の準備段階として、データベースに格納している抽象事象に関するデータの生成処理の一例について、図9および図10を用いて説明する。
図9は、類似する複数の事象を統合して事象を抽象化する第1事象抽象化処理に係るフローチャートの一例を示す。
ステップS900では、事象提示システム100は、第1事象抽象化処理を開始する。
ステップS901では、管理データ受付部117は、事象の抽象度のレベル分けの設定値を、管理ユーザから入出力装置142を介して受け付け、管理DB134の設定テーブル600の設定内容602の「抽象度設定数」の設定値603に格納する。
ステップS902では、抽象度決定部118は、語彙情報提供システム170から、語彙情報提供システム170の単語の抽象度のレベル分け数を取得し、取得したレベル分け数とステップS901で格納した設定値603とを比較する。抽象度決定部118は、語彙情報提供システム170のレベル分け数の方が大きいと判定した場合、ステップS903に処理を移し、大きくないと判定した場合、ステップS904に処理を移す。
ステップS903では、抽象度決定部118は、設定値603に合わせて、レベル分けの数を統合する。例えば、設定値が「5」であり、レベル分け数が「8」である場合、抽象度決定部118は、レベル分けの2番目と3番目とを統合し、4番目と5番目とを統合し、6番目と7番目とを統合する。これにより、レベル分けの1番目、2番目−3番目、4番目−5番目、6番目−7番目、8番目の5段階として、設定値の抽象度に合わせることができる。なお、統合の仕方については、複数パターンあり得るが、何れのパターンでもよい。このように、抽象度決定部118は、レベル分け数に基づく単語の抽象度を、設定値の抽象度に合わせて抽象度を設定し直し、設定した抽象度を、テキスト解析結果DB133の単語情報テーブル500の単語502と抽象度505とに格納する。
ステップS904では、抽象度決定部118は、設定値603に合わせた抽象度に対して、レベル分け数を複数の抽象度に重複して割当てる。例えば、設定値が「10」であり、レベル分け数が「8」である場合、抽象度決定部118は、レベル分け数の4番目を、設定値の抽象度の4番目と5番目とに重複して割当て、レベル分け数の5番目を、設定値の抽象度の6番目と7番目とに重複して割当てる。これにより、レベル分け数の1番目、2番目、3番目、4番目、4番目(重複割当て)、5番目、5番目(重複割当て)、6番目、7番目、8番目の10段階として、設定値の抽象度に合わせることができる。なお、重複の仕方については複数パターンあり得るが、何れのパターンでもよい。このように、抽象度決定部118は、レベル分け数に基づく単語の抽象度を、設定値の抽象度に合わせて抽象度を設定し直し(前述の通り重複も許す。)、設定した抽象度を、テキスト解析結果DB133の単語情報テーブル500の単語502と抽象度505とに格納する。
ステップS905では、テキスト解析部112は、管理ユーザから指定された学習用のデータ(記事、文書等)から形態素解析技術で単語を抽出するとともに単語の品詞を抽出し、単語の出現頻度をカウントし、単語埋め込みベクトル技術で単語の意味ベクトルを生成する(学習)。テキスト解析部112は、抽出した単語と意味ベクトルと出現頻度とを、テキスト解析結果DB133の単語情報テーブル500の単語502、意味ベクトル503、出現頻度504に格納し、単語ID501を付与し、品詞テーブル510に同じ単語IDを単語ID511に格納し、抽出した品詞を品詞512に格納する。
ステップS906では、抽象度決定部118は、管理DB134の設定テーブル600の設定内容602の「抽象度設定数」の設定値603に基づいて、単語情報テーブル500の出現頻度504の多い単語から、設定値603の数だけ順にグループ分けし、出現頻度の多いグループの抽象度が大きくなるように抽象度を割り振る。ここで割り振った抽象度を抽象度505に上書きする。なお、ステップS906の処理においては、ステップS903で設定した語彙情報提供システム170の抽象度については、そのまま用いてもよい。
ステップS907では、テキスト解析部112は、管理ユーザから指定された分析対象の事象一覧の事象について、形態素解析技術で単語を抽出する。なお、ステップS907では、全ての事象を対象に形態素解析技術で単語を抽出してもよい。
ステップS908では、抽象事象生成部121は、サ変名詞および名詞に関して、意味の類似する単語を同じカテゴリに分類(クラスタリング)する。より具体的には、抽象事象生成部121は、品詞テーブル510で品詞512がサ変名詞の単語ID511に関して、単語情報テーブル500の単語ID501が一致するレコードの中で、意味ベクトル503の距離が相対的に近い単語ID501を、意味の類似する単語として同じカテゴリに分類する。同様に、品詞テーブル510で品詞512が名詞の単語ID511に関して、単語情報テーブル500の単語ID501が一致するレコードの中で、意味ベクトル503の距離が相対的に近い単語ID501を、意味の類似する単語として同じカテゴリに分類する。
ステップS909では、抽象事象生成部121は、ステップS908で分類したカテゴリの中で、カテゴリの重心から閾値の距離内にある単語ID501を意味ベクトル503に基づいて検索し、検索した単語の中で単語情報テーブル500の抽象度505が1つ上の単語(最も抽象度が低い単語の1つ上の抽象度の単語)を代表単語として選択する。
ステップS910では、抽象事象生成部121は、サ変名詞の代表単語を事象の動作を表す単語とし、名詞の代表単語を事象の目的語を表す単語して組み合わせ、組み合わさった事象を1つ上の抽象度の抽象事象として生成する。抽象事象生成部121は、生成した抽象事象の情報(事象302、単語ID:名詞303、単語ID:サ変名詞304、抽象度305)に事象ID301を付与して事象テーブル300に登録する。また、抽象事象生成部121は、1つ上の抽象度の抽象事象の元となるサ変名詞の元の単語(サ変名詞の代表単語が属するカテゴリ内の単語情報テーブル500の抽象度505が1つ下の他の単語)と、1つ上の抽象度の抽象事象の元となる名詞の元の単語(名詞の代表単語が属するカテゴリ内の単語情報テーブル500の抽象度505が1つ下の他の単語)とを組み合わせた事象を具象事象として生成する。抽象事象生成部121は、生成した具象事象の情報(事象302、単語ID:名詞303、単語ID:サ変名詞304、抽象度305)に事象ID301を付与して事象テーブル300に登録する。そして、抽象事象生成部121は、生成した1つ上の抽象度の抽象事象とその具象事象とを関連付けて、因果モデルDB131の抽象事象関係テーブル320の具象事象ID322と抽象事象ID323とに格納する。
ステップS911では、因果関係付与部122は、具象事象間の因果関係に基づいて、1つ上の抽象度の抽象事象間に因果関係を付与する。因果関係の付与においては、因果モデルDB131の因果テーブル310において、新たなリンクID311を生成し、因果関係を付与する事象として前事象ID312と後事象ID313とを登録する。最も低い抽象度の事象(具象事象)間の因果関係は、ユーザにより予め設定されているものとする。
ステップS912では、抽象事象生成部121は、意味の類似する抽象事象の単語を同じカテゴリに分類する。より具体的には、抽象事象生成部121は、ステップS910またはステップS914で生成した抽象事象の動作を示すサ変名詞の単語ID511に関して、単語情報テーブル500の単語ID501が一致するレコードの中で、意味ベクトル503の距離が相対的に近い単語ID501を、意味の類似する単語として同じカテゴリに分類する。同様に、ステップS910またはステップS914で生成した抽象事象の目的語を示す名詞の単語ID511に関して、単語情報テーブル500の単語ID501が一致するレコードの中で、意味ベクトル503の距離が相対的に近い単語ID501を、意味の類似する単語として同じカテゴリに分類する。
ステップS913では、抽象事象生成部121は、ステップS912で分類したカテゴリの中で、カテゴリの重心から閾値の距離内にある単語ID501を意味ベクトル503に基づいて検索し、検索した単語の中で単語情報テーブル500の抽象度505が1つ上の単語を代表単語として選択する。
ステップS914では、抽象事象生成部121は、サ変名詞の代表単語を事象の動作を表す単語とし、名詞の代表単語を事象の目的語を表す単語して組み合わせ、組み合わさった事象を1つ上の抽象度の抽象事象として生成する。抽象事象生成部121は、生成した抽象事象の情報(事象302、単語ID:名詞303、単語ID:サ変名詞304、抽象度305)に事象ID301を付与して事象テーブル300に登録する。また、抽象事象生成部121は、1つ上の抽象度の抽象事象の元となるサ変名詞の元の単語(サ変名詞の代表単語が属するカテゴリ内の単語情報テーブル500の抽象度505が1つ下の他の単語)と、1つ上の抽象度の抽象事象の元となる名詞の元の単語(名詞の代表単語が属するカテゴリ内の単語情報テーブル500の抽象度505が1つ下の他の単語)とを組み合わせた元の事象を具象事象として生成する。抽象事象生成部121は、生成した具象事象の情報(事象302、単語ID:名詞303、単語ID:サ変名詞304、抽象度305)に事象ID301を付与して事象テーブル300に登録する。そして、抽象事象生成部121は、生成した1つ上の抽象度の抽象事象と具象事象とを関連付けて、因果モデルDB131の抽象事象関係テーブル320の具象事象ID322と抽象事象ID323に格納する。
ステップS915では、因果関係付与部122は、ステップS911と同様に、1つ上の抽象度の抽象事象間に因果関係を付与する。なお、1つ上の抽象度の抽象事象の具象事象間の因果関係は、ステップS911または当該ステップS915で設定される。
ステップS916では、抽象事象生成部121は、ステップS912からステップS915までの処理の繰り返し数と、管理DB134の設定テーブル600の設定内容602の「抽象度設定数」の設定値603とを比較する。抽象事象生成部121は、繰り返し数が少ないと判定した場合、ステップS912に処理を移し、繰り返し数が設定値603以上になったと判定した場合、ステップS917に処理を移す。
ステップS917では、事象提示システム100は、第1事象抽象化処理を終了する。
なお、ステップS905では、管理ユーザが指定した記事、文書等を学習する例を挙げて説明したが、事象提示システム100は、インターネット、社内システム等を自動で検索し、新たな記事、文書等を自動で取得し、自動で学習することとしてもよい。
また、ステップS907では、管理ユーザから指定された分析対象の事象一覧から単語を抽出するものとしたが、事象の動作になり得るサ変名詞と、事象の目的語になり得る名詞とを組み合わせて事象を生成し、事象の生成に用いた単語を抽出した単語としてもよい。
図10は、因果関係の強さと分岐の少なさとに基づいて事象を抽象化する第2事象抽象化処理に係るフローチャートの一例を示す。なお、事象の抽象化については、第1事象抽象化処理により行われてもよいし、第2事象抽象化処理により行われてもよいし、第1および第2事象抽象化処理の両方により行われてもよい。
ステップS1000では、事象提示システム100は、第2事象抽象化処理を開始する。
ステップS1001では、抽象事象生成部121は、因果モデルDB131の因果テーブル310を取得する。
ステップS1002では、因果強度・分岐数判定部123は、ステップS1001で取得した因果テーブル310において、各リンクID311の強度314を取得する。
ステップS1003では、因果強度・分岐数判定部123は、ステップS1001で取得した因果テーブル310において、前事象ID312に対して、それに関連付く後事象ID313のレコード数をカウントし、前事象から後事象への分岐の回数として取得する。
ステップS1004では、因果強度・分岐数判定部123は、因果関係の強度314と分岐の回数とを閾値判定する。そのために、因果強度・分岐数判定部123は、管理DB134の設定テーブル600の設定内容602が「リンク強度の高閾値」と「リンク強度の低閾値」との設定値603を因果関係の強度314の閾値として取得し、設定内容602が「分岐回数の高閾値」と「分岐回数の低閾値」との設定値603を分岐の回数の閾値として取得する。因果強度・分岐数判定部123は、取得したこれらの閾値と、ステップS1002で取得した因果関係の強度314と、ステップS1003で取得した分岐の回数とに基づいて判定する。
因果強度・分岐数判定部123は、強度314がリンク強度の低閾値よりも大きく、かつ、分岐回数が分岐回数の低閾値よりも小さいと判定した場合、ステップS1006に処理を移す。因果強度・分岐数判定部123は、強度314がリンク強度の高閾値よりも大きく、かつ、分岐回数が分岐回数の高閾値よりも小さいと判定した場合、ステップS1005に処理を移す。因果強度・分岐数判定部123は、上記以外であると判定した場合、ステップS1008に処理を移す。
ステップS1005では、因果強度・分岐数判定部123は、1つの事象を複数の抽象事象に統合できるようにするために、事象のダミーを複製する。ダミーの事象については、事象IDの枝番で表現する。ステップS1004の判定によれば、分岐の回数が低閾値よりも大きく抽象化しても複数の抽象事象に跨る事象になってしまうが、強度314は、高閾値よりも大きいので、他の事象との統合も可能であると判定している。
ステップS1006では、抽象事象生成部121は、事象間の因果関係が強く、他への分岐回数が少ないので、事象間で1つの塊を形成しているものとして、これらの事象を抽象事象(1つの塊)に統合する。
ステップS1007では、抽象事象生成部121は、ステップS1006で統合した抽象事象において、事象間の中心にある事象を抽象事象の名称として選出する。より具体的には、抽象事象生成部121は、因果モデルDB131において、抽象事象内の中心にない事象を抽象事象関係テーブル320の具象事象ID322に格納し、中心にある抽象事象を抽象事象ID323に格納する。また、抽象事象生成部121は、抽象事象ID323と一致する事象テーブル300の事象ID301の抽象度305を1つ上げたレコードを生成する。さらに、抽象事象生成部121は、ステップS1005で生成したダミーの事象の事象ID(もとの事象の枝番)を事象テーブル300の事象ID301に登録する。なお、事象テーブル300の他の項目(事象302、単語ID:名詞303、単語ID:サ変名詞304、抽象度305)については、もとの事象のデータをコピーする。
ステップS1008では、抽象事象生成部121は、全ての事象に関して処理が終了したか否かを判定する。抽象事象生成部121は、未処理の事象があると判定した場合、ステップS1002に処理を移し、全て処理していると判定した場合、ステップS1009に処理を移す。
ステップS1009では、事象提示システム100は、第2事象抽象化処理を終了する。
ここで、図2の処理では、ユーザが入力した検索ワードに基づいて、ユーザに提示する事象の抽象度を決定している。それに加えてまたは替えて、ユーザの関心事項からユーザに適した抽象度を予め決定してもよい。また、関心事項から決定した抽象度の事象および因果関係も併せてユーザに提示してもよい。そのための処理の一例を図11に示す。
図11は、ユーザの関心事項からユーザの抽象度を判定して設定するユーザ抽象度設定処理に係るフローチャートの一例を示す。
ステップS1100では、事象提示システム100は、ユーザ抽象度設定処理を開始する。
ステップS1101では、抽象度決定部118は、ユーザの関心事項の入力をユーザから入出力装置142にて受け付ける。なお、ユーザの関心事項の入力は、事象提示システム100における検索ワードであってもよいし、インターネット上で目的とするウェブページ、情報などを検索したときの検索ワードであってもよいし、その他の入力であってもよい。
ステップS1102では、抽象度決定部118は、関心事項の単語を抽出し、ユーザ毎にリスト化して蓄積する。より具体的には、抽象度決定部118は、ステップS1101でユーザから入力された関心事項を形態素解析技術で単語に分割し、各単語を管理DB134のユーザ情報テーブル610の関心事項612に格納する。その際、抽象度決定部118は、ユーザのユーザID611と関連付けて格納する。なお、抽象度決定部118は、ユーザの関心事項の入力を検索履歴として検索履歴テーブル620に登録してもよい。
ステップS1103では、抽象度決定部118は、各ユーザID611において、関心事項612の単語(リストの単語)に関して、抽象度を取得可能であるかについて、テキスト解析結果DB133の単語情報テーブル500の単語502と抽象度505とを検索することで判定する。抽象度決定部118は、取得可能であると判定した場合、ステップS1104に処理を移し、取得不可能であると判定した場合、ステップS1105に処理を移す。
ステップS1104では、抽象度決定部118は、ステップS1103で検索した抽象度505を取得する。
ステップS1105では、抽象度決定部118は、当該ユーザID611における関心事項612の単語が他にもあるか否かを判定する。抽象度決定部118は、他にあると判定した場合、ステップS1103に処理を移し、他にないと判定した場合、ステップS1106に処理を移す。
ステップS1106では、抽象度決定部118は、ステップS1104で取得した抽象度505の平均値を計算し、平均値の小数点を四捨五入した整数をユーザID611の抽象レベルとしてユーザ情報テーブル610の抽象度613に格納する。なお、ユーザの抽象レベルの算出において、平均値を例に挙げて説明したが、中央値、最頻値などの代表値を用いてもよい。
ステップS1107では、抽象度決定部118は、ユーザID611で他にも抽象度613を設定していないユーザがいるか否かを判定する。抽象度決定部118は、他のユーザがいると判定した場合、ステップS1003に処理を移し、他にユーザがいないと判定した場合、ステップS1108に処理を移す。
ステップS1108では、事象提示システム100は、ユーザ抽象度設定処理を終了する。
以上のように、事象提示システム100は、類似する複数の事象を1つのグループに纏め、グループに意味を表す単語文を付与することで事象を抽象化する。また、抽象化された事象に因果関係を付与する。かかる構成によれば、抽象化された事象とその因果関係とをユーザに提示できるようになり、ユーザが抽象化されたレベルでの事象の推移を分析することを容易にする。
また、事象提示システム100は、様々な抽象度で事象を抽象化し、その因果関係を付与している。よって、ユーザへの提示の際には、ユーザの目的に合った抽象度の事象および因果関係を提示することができる。
(2)他の実施の形態
なお上述の実施の形態においては、本発明を事象提示システム100に適用するようにした場合について述べたが、本発明はこれに限らず、この他種々のシステム、事象提示装置、事象提示方法に広く適用することができる。
また上述の実施の形態においては、検索結果を出力する例として、検索結果表示画面として表示する場合について述べたが、本発明はこれに限らず、検索結果を紙などに印刷するようにしてもよいし、検索結果を音声として出力するようにしてもよいし、検索結果をファイルとしてメール送信するようにしてもよいし、その他の出力をするようにしてもよい。
また上述の実施の形態においては、説明の便宜上、XXテーブルを用いて各種のデータを説明したが、データ構造は限定されるものではなく、XX情報などと表現してもよい。
また、上記の説明において各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記憶装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。
また上述した構成については、本発明の要旨を超えない範囲において、適宜に、変更したり、組み替えたり、組み合わせたり、省略したりしてもよい。