特開2015-225371(P2015-225371A)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧
特開2015-225371関連ノードを探索する方法、並びに、そのコンピュータ、及びコンピュータ・プログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2015-225371(P2015-225371A)
(43)【公開日】2015年12月14日
(54)【発明の名称】関連ノードを探索する方法、並びに、そのコンピュータ、及びコンピュータ・プログラム
(51)【国際特許分類】
   G06F 17/30 20060101AFI20151117BHJP
【FI】
   G06F17/30 419B
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【全頁数】41
(21)【出願番号】特願2014-108020(P2014-108020)
(22)【出願日】2014年5月26日
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.FACEBOOK
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
(74)【代理人】
【識別番号】100108501
【弁理士】
【氏名又は名称】上野 剛史
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【復代理人】
【識別番号】100085545
【弁理士】
【氏名又は名称】松井 光夫
(74)【復代理人】
【識別番号】100118599
【弁理士】
【氏名又は名称】村上 博司
(72)【発明者】
【氏名】稲垣 猛
(57)【要約】
【課題】本発明は、テキストの中に明示的に出てこない関連や人間が発見しづらい関連を明らかにすることを可能にすることを目的とする。
【解決手段】
本発明は関連ノードを探索する技法であり、当該技法は、第1ノードが選択されることに応じて、上記第1ノードから2ホップでつながるノードのうち、第1の関連度が規定値以上のノードを第1の関連ノードとして表示すること、及び、上記第1の関連ノードのうちの少なくとも1つが選択されることに応じて、当該選択された第1の関連ノードを、上記第1ノードを包含した第2ノードとして表示することを含む。また、当該技法は、上記第2ノードから2ホップでつながるノードのうち、第2の関連度が規定値以上のノードを第2の関連ノードとして表示することを含みうる。
【選択図】図3C
【特許請求の範囲】
【請求項1】
関連ノードを探索する方法であって、コンピュータが、
第1ノードが選択されることに応じて、前記第1ノードから2ホップでつながるノードのうち、第1の関連度が規定値以上のノードを第1の関連ノードとして表示するステップと、
前記第1の関連ノードのうちの少なくとも1つが選択されることに応じて、当該選択された第1の関連ノードを、前記第1ノードを包含した第2ノードとして表示するステップと、
を実行することを含む、前記方法。
【請求項2】
前記コンピュータが、
前記第2ノードから2ホップでつながるノードのうち、第2の関連度が規定値以上のノードを第2の関連ノードとして表示するステップ
をさらに実行することを含む、請求項1に記載の方法。
【請求項3】
前記コンピュータが、
前記第2の関連ノードのうちの少なくとも1つが選択されることに応じて、当該選択された第2の関連ノードを、前記第2ノードを包含した第3ノードとして表示するステップ
をさらに実行することを含む、請求項2に記載の方法。
【請求項4】
前記選択された第1の関連ノードを、前記第1ノードを包含した第2ノードとして表示するステップが、
前記第1ノードと前記選択された第1の関連ノードとの間に、内部リンクを追加するステップ
をさらに含む、請求項1に記載の方法。
【請求項5】
前記選択された第1の関連ノードを、前記当該第1ノードを包含した第2ノードとして表示するステップが、
前記第1ノードと前記選択された第1の関連ノードとを0ホップとして繰り込むステップ
をさらに含む、請求項4に記載の方法。
【請求項6】
前記選択された第2の関連ノードを、前記第2ノードを包含した第3ノードとして表示するステップが、
前記第2ノードと前記選択された第2の関連ノードとの間に、内部リンクを追加するステップ
をさらに含む、請求項3に記載の方法。
【請求項7】
前記選択された第2の関連ノードを、前記第2ノードを包含した第3ノードとして表示するステップが、
前記第2ノードと前記選択された第2の関連ノードとを0ホップとして繰り込むステップ
をさらに含む、請求項6に記載の方法。
【請求項8】
前記第1の関連度及び前記第2の関連度それぞれが、トリプルを用いて計算される、請求項2に記載の方法。
【請求項9】
前記トリプルが、{主語,述語,目的語}で表現される、請求項8に記載の方法。
【請求項10】
同じトリプルの出現回数がトリプルとして格納される、請求項9に記載の方法。
【請求項11】
前記コンピュータが、
各{主語−述語}に対して、{目的語}を変えたときの{主語−述語−目的語}の出現回数から得られる値、
各{述語−目的語}に対して、{主語}を変えたときの{主語−述語−目的語}の出現回数から得られる値、及び、
指定された{述語}の全ての出現回数から得られる値
を算出し、当該算出した値それぞれをトリプルとして格納するステップ
をさらに実行することを含む、請求項10に記載の方法。
【請求項12】
前記コンピュータが、
前記第1ノードから2ホップでつながるノードそれぞれの各エッジ上のスコアを、
同じトリプルの出現回数、
各{主語−述語}に対して、{目的語}を変えたときの{主語−述語−目的語}の出現回数から得られる値、
各{述語−目的語}に対して、{主語}を変えたときの{主語−述語−目的語}の出現回数から得られる値、及び、
指定された{述語}の全ての出現回数から得られる値
に基づいて算出し、当該算出したスコアそれぞれをトリプルとして格納するステップ
をさらに実行することを含む、請求項11に記載の方法。
【請求項13】
前記コンピュータが、
前記第1ノードと当該第1のノードから2ホップでつながる一つのノードとの間に複数のエッジがある場合、当該複数のエッジそれぞれのスコアに基づいて当該複数のエッジ全体のスコアを算出し、当該算出したスコアをトリプルとして格納するステップであって、当該算出されたスコアを、前記第1ノードから2ホップでつながる一つのノードへのスコアとする、前記格納するステップ
をさらに実行することを含む、請求項12に記載の方法。
【請求項14】
前記選択された第1の関連ノードを、前記第1ノードを包含した第2ノードとして表示するステップが、
前記第1ノードと前記選択された第1の関連ノードとの間に、内部リンクを追加するステップ
をさらに含み、
前記コンピュータが、
前記第1ノードと前記選択された第1の関連ノードとの間に追加された前記内部リンク上のスコアを、
同じトリプルの出現回数、
各{主語−述語}に対して、{目的語}を変えたときの{主語−述語−目的語}の出現回数から得られる値、
各{述語−目的語}に対して、{主語}を変えたときの{主語−述語−目的語}の出現回数から得られる値、及び、
指定された{述語}の全ての出現回数から得られる値
に基づいて算出し、当該算出したスコアをトリプルとして格納するステップ
をさらに実行することを含む、請求項12に記載の方法。
【請求項15】
前記コンピュータが、
前記第2の関連ノードが選択されることに応じて、当該選択された第2の関連ノードを、前記第2ノードを包含した第3ノードとして表示するステップ
をさらに実行することを含み、
前記選択された第2の関連ノードを、前記第2ノードを包含した第3ノードとして表示するステップが、
前記第2ノードと前記選択された第2の関連ノードとの間に、内部リンクを追加するステップ
をさらに実行することを含み、
前記コンピュータが、
前記第2ノードと前記選択された第2の関連ノードとの間に追加された前記内部リンク上のスコアを、
同じトリプルの出現回数、
各{主語−述語}に対して、{目的語}を変えたときの{主語−述語−目的語}の出現回数から得られる値、
各{述語−目的語}に対して、{主語}を変えたときの{主語−述語−目的語}の出現回数から得られる値、及び、
指定された{述語}の全ての出現回数から得られる値
に基づいて算出し、当該算出したスコアをトリプルとして格納するステップ
をさらに実行することを含む、請求項14に記載の方法。
【請求項16】
前記コンピュータが、
前記第2ノード中に包含されて表示されている第1ノードが選択されることに応じて、前記第2ノードの表示を前記第1ノード及び前記第1の関連ノードの表示に戻すステップ
をさらに実行することを含む、請求項1に記載の方法。
【請求項17】
関連ノードを探索する為のコンピュータであって、
第1ノードが選択されることに応じて、前記第1ノードから2ホップでつながるノードのうち、第1の関連度が規定値以上のノードを第1の関連ノードとして表示する関連ノード表示手段と、
前記第1の関連ノードのうちの少なくとも1つが選択されることに応じて、当該選択された第1の関連ノードを、前記第1ノードを包含した第2ノードとして表示する包含ノード表示手段と
を備えている、前記コンピュータ。
【請求項18】
前記関連ノード表示手段が、
前記第2ノードから2ホップでつながるノードのうち、第2の関連度が規定値以上のノードを第2の関連ノードとしてさらに表示する、請求項17に記載のコンピュータ。
【請求項19】
前記包含ノード表示手段が、
前記第2の関連ノードのうちの少なくとも1つが選択されることに応じて、当該選択された第2の関連ノードを、前記第2ノードを包含した第3ノードとしてさらに表示する、請求項18に記載のコンピュータ。
【請求項20】
関連ノードを探索する為のコンピュータ・プログラムであって、請求項1〜16のいずれか一項に記載の方法の各ステップを実行させる、前記コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、関連ノードを探索する技法に関する。特には、本発明は、2ホップでつながる関連ノードを探索する技法に関する。
【背景技術】
【0002】
テキスト解析の手法を用いて、テキスト文書から知識を細かな部品データとして取り出すことができる。例えば、特定の金属の名称とともに文節で使われる名詞や動詞などを取り出すことができる。しかしながら、このように機械的に抽出される部品データは非常に雑多であり、しかも玉石混淆である。従って、これら部品データをそのままでは活用することが出来ない場合が多い。
【0003】
下記特許文献1は、Jenaアプリケーションプログラムインターフェース(API)(12)を利用することによって、資源記述フレームワーク(RDF)ベースの情報(10)にアクセスすることと、コンポーネント技術(14)ベースのソフトウェアシステムを使用することであって、それによって、前記Jena APIにアクセスする、コンポーネント技術(14)ベースのソフトウェアシステムを使用することとを含む方法を記載する(請求項1)。また、下記特許文献1は、RDFモデルを使用してコード化されるMETADATAを作成することを記載する(段落0009)。
【0004】
下記特許文献2は、問い合わせのレコードに対するRDF表現を作成する方法を記載する(請求項1)。
【0005】
下記特許文献3は、ユーザが個別に取得するRDFによって記述されたプロファイル情報をデータベースに蓄積し管理するプロファイル管理装置を記載する(請求項1)。
【0006】
下記特許文献4は、電子トークン(200)は、XMLフォーマットとRDFフォーマットとのうちの少なくとも一方で指定されることを記載する(請求項5)。
下記特許文献5は、レベル指定手段により指定されたレベルと同じレベルに属すると属性推論手段により判断された属性を持つノード或いはリンクを検索手段によりデータベース手段から検索させ、そのノード或いはリンクを統合して1つの仮想的なノード或いはリンクとして表示するマップ生成手段とを具備することを特徴とするハイパーメディアのマップ表示システムを記載する(請求項1)。
【0007】
下記特許文献6は、離散的な状態、あるいは点とそれらの間の関係が付加情報とともに多数記述されてなる対象情報について、上記状態あるいは点をそれぞれノードとし、これら複数のノードとこれらノード間を接続するアークとより構成されるグラフにモデル化すると共に、アークで接続されるノード間に上記付加情報を持たせたグラフを生成表示するグラフ表示処理装置を記載する(請求項1)。
【0008】
下記特許文献7は、階層構造的に連携する情報データを有し、該データをノードおよびその連携状態をラインで構成するツリー構造で表現して3次元グラフィックによる錐形上に配置し、その際上位階層ノードを錐形の上方に配置し、上位階層から順次錐の裾の方向へ放射状に分散配置させることで情報データを俯瞰的に表示させることを特徴とする情報視覚化方法を記載する(請求項1)。
【0009】
下記特許文献8は、階層関係にある要素の集合をツリー構造で画面表示する機能を有するコンピュータを、階層関係にある要素の集合の中から1つを表示ツリーのルートノードとして設定するルートノード設定処理手段、要素の親要素をノードの親ノードとすることができない場合には要素の親要素をノードの子ノードとするツリー構造を形成し、該子ノードが親要素であることを判別可能に表示するツリー構造表示処理手段、として機能させるツリー構造表示プログラムを記載する(請求項1)。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開2004−318831号公報
【特許文献2】特開2013−218554号公報
【特許文献3】特開2006−302085号公報
【特許文献4】特開2005−327285号公報
【特許文献5】特開平8−76951号公報
【特許文献6】特開平8−255253号公報
【特許文献7】特開2000−47778号公報
【特許文献8】特開2007−26210号公報
【非特許文献】
【0011】
【非特許文献1】”RDF”, W3C Semantic Web, Feb 25, 2014<URL:http://www.w3.org/RDF/>から入手可能
【非特許文献2】”RDF 1.1 Concepts and Abstract Syntax”, W3C Recommendation, Feb 25,2014<URL:http://www.w3.org/TR/2014/REC-rdf11-concepts-20140225/>から入手可能
【発明の概要】
【発明が解決しようとする課題】
【0012】
統計的な解析を使用することによって、機械的に抽出される部品データから有用な情報を抽出できる可能性がある。例えば、ソーシャル・ネットワーキング・サービス(SNS)(例えば、Facebook、Twitter、Google+、Myspace、LinkedIn、LINE)で、商品に関する書き込みや映画に関する書き込みと、それを書いたユーザとの組み合わせを特定することができれば、特定された組み合わせを集計することにより、特定の商品に言及しているユーザが好んで言及する傾向にある映画のジャンルを特定することが可能になる。当該特定は、上記ユーザに対して、より効果的な広告を例えば上記SNS上で提供することを可能にする。
【0013】
そこで、本発明は、テキストの中に明示的に出てこない関連や人間が発見しづらい関連を明らかにすることを可能にすることを目的とする。
【0014】
また、従来の統計的な解析手法では、目的ごとにデータベースのスキーマをデザインし、テキスト解析から得られるデータを当該データを解析可能なソフトウェア、例えばIBM(登録商標) Cognos(登録商標) Business Intelligenceで解析可能なレイアウトに集計し直して入れる必要があった。
【0015】
そこで、本発明は、上記したような集計のし直しをすることなしに、上記ソフトウェアでデータ解析をすることを可能にすることを目的とする。
【0016】
また、本発明は、非構造化データを活用する為のソフトウェア、例えばIBM(登録商標) Content Analyticsに実装することによって、単純検索ではなく、意味を踏まえた検索などの高度な検索による分析手法の提供を可能にする分析環境を提供することを目的とする。
【課題を解決するための手段】
【0017】
本発明は、関連ノードを探索する方法を提供する。当該技法は、上記関連ノードを探索する方法、並びに、上記関連ノードを探索する為のコンピュータ、コンピュータ・プログラム及びコンピュータ・プログラム製品を包含しうる。
【0018】
(本発明に従う第1の態様)
【0019】
本発明に従う第1の態様において、関連ノードを探索する方法は、コンピュータが、
第1ノードが選択されることに応じて、上記第1ノードから2ホップでつながるノードのうち、第1の関連度が規定値以上のノードを第1の関連ノードとして表示するステップと、
上記第1の関連ノードのうちの少なくとも1つが選択されることに応じて、当該選択された第1の関連ノードを、上記第1ノードを包含した第2ノードとして表示するステップと、
を実行することを含む。上記コンピュータは、上記第1の関連ノードを表示するステップを、上記1ノードがユーザによって又は上記コンピュータによって選択されることに応じて実施しうる。
【0020】
本発明の一つの実施態様において、上記方法は、上記コンピュータが、
上記第2ノードから2ホップでつながるノードのうち、第2の関連度が規定値以上のノードを第2の関連ノードとして表示するステップ
をさらに実行することを含みうる。上記コンピュータは、上記第2の関連ノードを表示するステップを、上記第2ノードがユーザによって又は上記コンピュータによって選択されることに応じて実施しうる。
【0021】
本発明の一つの実施態様において、上記方法は、上記コンピュータが、
上記第2の関連ノードのうちの少なくとも1つが選択されることに応じて、当該選択された第2の関連ノードを、上記第2ノードを包含した第3ノードとして表示するステップ
をさらに実行することを含みうる。
【0022】
本発明の一つの実施態様において、上記選択された第1の関連ノードを、上記第1ノードを包含した第2ノードとして表示するステップが、
上記第1ノードと上記選択された第1の関連ノードとの間に、内部リンクを追加するステップ
をさらに含みうる。
【0023】
本発明の一つの実施態様において、上記選択された第1の関連ノードを、上記当該第1ノードを包含した第2ノードとして表示するステップが、
上記第1ノードと上記選択された第1の関連ノードとを0ホップとして繰り込むステップ
をさらに含みうる。
【0024】
本発明の一つの実施態様において、上記選択された第2の関連ノードを、上記第2ノードを包含した第3ノードとして表示するステップが、
上記第2ノードと上記選択された第2の関連ノードとの間に、内部リンクを追加するステップ
をさらに含みうる。
【0025】
本発明の一つの実施態様において、上記選択された第2の関連ノードを、上記第2ノードを包含した第3ノードとして表示するステップが、
上記第2ノードと上記選択された第2の関連ノードとを0ホップとして繰り込むステップ
をさらに含みうる。
【0026】
本発明の一つの実施態様において、上記第1の関連度及び上記第2の関連度それぞれが、トリプルを用いて計算されうる。
【0027】
本発明の一つの実施態様において、上記トリプルが、{主語,述語,目的語}で表現されうる。
【0028】
本発明の一つの実施態様において、同じトリプルの出現回数がトリプルとして格納されうる。
【0029】
本発明の一つの実施態様において、上記方法は、上記コンピュータが、
各{主語−述語}に対して、{目的語}を変えたときの{主語−述語−目的語}の出現回数から得られる値、
各{述語−目的語}に対して、{主語}を変えたときの{主語−述語−目的語}の出現回数から得られる値、及び、
指定された{述語}の全ての出現回数から得られる値
を算出し、当該算出した値それぞれをトリプルとして格納するステップ
をさらに実行することを含みうる。
【0030】
本発明の一つの実施態様において、上記方法は、上記コンピュータが、
上記第1ノードから2ホップでつながるノードそれぞれの各エッジ上のスコアを、
同じトリプルの出現回数、
各{主語−述語}に対して、{目的語}を変えたときの{主語−述語−目的語}の出現回数から得られる値、
各{述語−目的語}に対して、{主語}を変えたときの{主語−述語−目的語}の出現回数から得られる値、及び、
指定された{述語}の全ての出現回数から得られる値
に基づいて算出し、当該算出したスコアそれぞれをトリプルとして格納するステップ
をさらに実行することを含みうる。
【0031】
本発明の一つの実施態様において、上記方法は、上記コンピュータが、
上記第1ノードと当該第1のノードから2ホップでつながる一つのノードとの間に複数のエッジがある場合、当該複数のエッジそれぞれのスコアに基づいて当該複数のエッジ全体のスコアを算出し、当該算出したスコアをトリプルとして格納するステップであって、当該算出されたスコアを、上記第1ノードから2ホップでつながる一つのノードへのスコアとする、上記格納するステップ
をさらに実行することを含みうる。
【0032】
本発明の一つの実施態様において、上記選択された第1の関連ノードを、上記第1ノードを包含した第2ノードとして表示するステップが、
上記第1ノードと上記選択された第1の関連ノードとの間に、内部リンクを追加するステップ
をさらに含みうる。そして、上記方法は、上記コンピュータが、
上記第1ノードと上記選択された第1の関連ノードとの間に追加された上記内部リンク上のスコアを、
同じトリプルの出現回数、
各{主語−述語}に対して、{目的語}を変えたときの{主語−述語−目的語}の出現回数から得られる値、
各{述語−目的語}に対して、{主語}を変えたときの{主語−述語−目的語}の出現回数から得られる値、及び、
指定された{述語}の全ての出現回数から得られる値
に基づいて算出し、当該算出したスコアをトリプルとして格納するステップ
をさらに実行することを含みうる。
【0033】
本発明の一つの実施態様において、上記方法は、上記コンピュータが、
上記第2の関連ノードが選択されることに応じて、当該選択された第2の関連ノードを、上記第2ノードを包含した第3ノードとして表示するステップ
をさらに実行することを含み、
上記選択された第2の関連ノードを、上記第2ノードを包含した第3ノードとして表示するステップが、
上記第2ノードと上記選択された第2の関連ノードとの間に、内部リンクを追加するステップ
をさらに実行することを含みうる。そして、上記方法は、上記コンピュータが、
上記第2ノードと上記選択された第2の関連ノードとの間に追加された上記内部リンク上のスコアを、
同じトリプルの出現回数、
各{主語−述語}に対して、{目的語}を変えたときの{主語−述語−目的語}の出現回数から得られる値、
各{述語−目的語}に対して、{主語}を変えたときの{主語−述語−目的語}の出現回数から得られる値、及び、
指定された{述語}の全ての出現回数から得られる値
に基づいて算出し、当該算出したスコアをトリプルとして格納するステップ
をさらに実行することを含みうる。
【0034】
本発明の一つの実施態様において、上記方法は、上記コンピュータが、
上記第2ノード中に包含されて表示されている第1ノードが選択されることに応じて、上記第2ノードの表示を上記第1ノード及び上記第1の関連ノードの表示に戻すステップ
をさらに実行することを含みうる。
【0035】
本発明の一つの実施態様において、上記方法は、上記コンピュータが、
上記第3ノード中に包含されて表示されている第2ノードが選択されることに応じて、上記第3ノードの表示を上記第2ノード及び上記第2の関連ノードの表示に戻すステップ
をさらに実行することを含みうる。
【0036】
(本発明に従う第2の態様)
【0037】
本発明に従う第2の態様において、関連ノードを探索する為のコンピュータであって、
第1ノードが選択されることに応じて、上記第1ノードから2ホップでつながるノードのうち、第1の関連度が規定値以上のノードを第1の関連ノードとして表示する関連ノード表示手段と、
上記第1の関連ノードのうちの少なくとも1つが選択されることに応じて、当該選択された第1の関連ノードを、上記第1ノードを包含した第2ノードとして表示する包含ノード表示手段と
を備えている。
【0038】
本発明の一つの実施態様において、上記関連ノード表示手段がさらに、上記第2ノードから2ホップでつながるノードのうち、第2の関連度が規定値以上のノードを第2の関連ノードとして表示しうる。
【0039】
本発明の一つの実施態様において、上記包含ノード表示手段がさらに、上記第2の関連ノードのうちの少なくとも1つが選択されることに応じて、当該選択された第2の関連ノードを、上記第2ノードを包含した第3ノードとして表示しうる。
【0040】
本発明の一つの実施態様において、上記包含ノード表示手段がさらに、上記第1ノードと上記選択された第1の関連ノードとの間に、内部リンクを追加しうる。
【0041】
本発明の一つの実施態様において、上記包含ノード表示手段がさらに、上記第1ノードと上記選択された第1の関連ノードとを0ホップとして繰り込みうる。
【0042】
本発明の一つの実施態様において、上記包含ノード表示手段がさらに、上記第2ノードと上記選択された第2の関連ノードとの間に、内部リンクを追加しうる。
【0043】
本発明の一つの実施態様において、上記包含ノード表示手段がさらに、上記第2ノードと上記選択された第2の関連ノードとを0ホップとして繰り込みうる。
【0044】
本発明の一つの実施態様において、上記トリプル抽出手段が、上記トリプルを{主語,述語,目的語}で表現しうる。
【0045】
本発明の一つの実施態様において、上記トリプル抽出手段が、同じトリプルの出現回数をトリプルとして格納しうる。
【0046】
本発明の一つの実施態様において、上記コンピュータが、上記第1の関連度及び上記第2の関連度それぞれを、トリプルを用いて計算する統計情報算出手段をさらに備えうる。
【0047】
本発明の一つの実施態様において、上記統計情報算出手段が、
各{主語−述語}に対して、{目的語}を変えたときの{主語−述語−目的語}の出現回数から得られる値、
各{述語−目的語}に対して、{主語}を変えたときの{主語−述語−目的語}の出現回数から得られる値、及び、
指定された{述語}の全ての出現回数から得られる値
を算出し、当該算出した値それぞれをトリプルとして格納しうる。
【0048】
本発明の一つの実施態様において、上記統計情報算出手段がさらに、
上記第1ノードから2ホップでつながるノードそれぞれの各エッジ上のスコアを、
同じトリプルの出現回数、
各{主語−述語}に対して、{目的語}を変えたときの{主語−述語−目的語}の出現回数から得られる値、
各{述語−目的語}に対して、{主語}を変えたときの{主語−述語−目的語}の出現回数から得られる値、及び、
指定された{述語}の全ての出現回数から得られる値
に基づいて算出し、当該算出したスコアそれぞれをトリプルとして格納しうる。
【0049】
本発明の一つの実施態様において、上記統計情報算出手段がさらに、上記第1ノードと当該第1のノードから2ホップでつながる一つのノードとの間に複数のエッジがある場合、当該複数のエッジそれぞれのスコアに基づいて当該複数のエッジ全体のスコアを算出し、当該算出したスコアをトリプルとして格納しうる。上記算出されたスコアは、上記第1ノードから2ホップでつながる一つのノードへのスコアである。
【0050】
本発明の一つの実施態様において、上記包含ノード表示手段がさらに、上記第1ノードと上記選択された第1の関連ノードとの間に、内部リンクを追加しうる。そして、上記統計情報算出手段がさらに、上記第1ノードと上記選択された第1の関連ノードとの間に追加された上記内部リンク上のスコアを、
同じトリプルの出現回数、
各{主語−述語}に対して、{目的語}を変えたときの{主語−述語−目的語}の出現回数から得られる値、
各{述語−目的語}に対して、{主語}を変えたときの{主語−述語−目的語}の出現回数から得られる値、及び、
指定された{述語}の全ての出現回数から得られる値
に基づいて算出し、当該算出したスコアをトリプルとして格納しうる。
【0051】
本発明の一つの実施態様において、上記包含ノード表示手段がさらに、上記第2の関連ノードが選択されることに応じて、当該選択された第2の関連ノードを、上記第2ノードを包含した第3ノードとして表示しうる。そして、上記包含ノード表示手段がさらに、上記第2ノードと上記選択された第2の関連ノードとの間に、内部リンクを追加しうる。そして、上記統計情報算出手段がさらに、上記第2ノードと上記選択された第2の関連ノードとの間に追加された上記内部リンク上のスコアを、
同じトリプルの出現回数、
各{主語−述語}に対して、{目的語}を変えたときの{主語−述語−目的語}の出現回数から得られる値、
各{述語−目的語}に対して、{主語}を変えたときの{主語−述語−目的語}の出現回数から得られる値、及び、
指定された{述語}の全ての出現回数から得られる値
に基づいて算出し、当該算出したスコアをトリプルとして格納しうる。
【0052】
本発明の一つの実施態様において、上記関連ノード表示手段がさらに、上記第3ノード中に包含されて表示されている第1ノードが選択されることに応じて、上記第2ノードの表示を上記第1ノード及び上記第1の関連ノードの表示に戻しうる。
【0053】
本発明の一つの実施態様において、上記関連ノード表示手段がさらに、上記第3ノード中に包含されて表示されている第2ノードが選択されることに応じて、上記第3ノードの表示を上記第2ノード及び上記第2の関連ノードの表示に戻しうる。
【0054】
(本発明に従う第3の態様)
【0055】
本発明に従う第3の態様において、関連ノードを探索する為のコンピュータ・プログラム又はコンピュータ・プログラム製品は、コンピュータに、上記本発明に従う第1の方法の各ステップを実行させる。
【0056】
本発明の実施態様に従うコンピュータ・プログラムは、一つ又は複数のフレキシブル・ディスク、MO、CD−ROM、DVD、BD、ハードディスク装置、USBに接続可能なメモリ媒体、ROM、MRAM、RAM等の任意のコンピュータ読み取り可能な記録媒体に格納することができる。当該コンピュータ・プログラムは、上記記録媒体への格納のために、通信回線で接続する他のコンピュータ、例えばサーバからダウンロードしたり、又は他の記録媒体から複製したりすることができる。また、本発明の実施態様に従うコンピュータ・プログラムは、圧縮し、又は複数に分割して、単一又は複数の記録媒体に格納することもできる。また、様々な形態で、本発明の実施態様に従うコンピュータ・プログラム製品を提供することも勿論可能であることにも留意されたい。本発明の実施態様に従うコンピュータ・プログラム製品は、例えば、上記コンピュータ・プログラムを記録した記憶媒体、又は、上記コンピュータ・プログラムを伝送する伝送媒体を包含しうる。
【0057】
本発明の上記概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの構成要素のコンビネーション又はサブコンビネーションもまた、本発明となりうることに留意すべきである。
【0058】
本発明の実施態様において使用されるコンピュータの各ハードウェア構成要素を、複数のマシンと組み合わせ、それらに機能を配分し実施する等の種々の変更は当業者によって容易に想定され得ることは勿論である。それらの変更は、当然に本発明の思想に包含される概念である。ただし、これらの構成要素は例示であり、そのすべての構成要素が本発明の必須構成要素となるわけではない。
【0059】
また、本発明は、ハードウェア、ソフトウェア、又は、ハードウェア及びソフトウェアの組み合わせとして実現可能である。ハードウェアとソフトウェアとの組み合わせによる実行において、上記コンピュータ・プログラムのインストールされたコンピュータにおける実行が典型的な例として挙げられる。かかる場合、当該コンピュータ・プログラムが当該コンピュータのメモリにロードされて実行されることにより、当該コンピュータ・プログラムは、当該コンピュータを制御し、本発明に係る処理を実行させる。当該コンピュータ・プログラムは、任意の言語、コード、又は、表記によって表現可能な命令群から構成されうる。そのような命令群は、当該コンピュータが特定の機能を直接的に、又は、1.他の言語、コード若しくは表記への変換及び、2.他の媒体への複製、のいずれか一方若しくは双方が行われた後に、本発明の実施態様に従う処理を実行することを可能にするものである。
【発明の効果】
【0060】
本発明の実施態様に従い関連ノードを探索することによって、テキストの中に明示的に出てこない関連や人間が発見しづらい関連を明らかにすることが可能になる。
【0061】
また、本発明の実施態様に従い関連ノードを探索することによって、上記したような集計のし直しをすることなしに、上記ソフトウェアでデータ解析をすることが可能になる。
【0062】
また、本発明は、単純検索ではなく、意味を踏まえた検索などの高度な検索による分析手法の提供を可能にする分析環境を提供することが可能になる。
【図面の簡単な説明】
【0063】
図1】本発明の実施態様において使用されうるコンピュータ又は本発明の実施態様に従うコンピュータの一例を示した図である。
図2】本発明の実施態様において使用されうるトリプル、及び、当該トリプルから作られるグラフを示す図である。
図3A】本発明の実施態様において使用されうる複数のノードとノード間をつなぐエッジとを備えているグラフ、並びに、起点ノード及び当該起点ノードから2ホップでつながるノードを説明する為のグラフを示す。
図3B】本発明の実施態様において使用されうる複数のノードとノード間をつなぐエッジとを備えているグラフ、並びに、図3Aに示すグラフ上の起点ノードから2ホップ毎につながるノードを1ホップとして繰り込んで表示することを説明する為のグラフを示す。
図3C】本発明の実施態様において使用されうる複数のノードとノード間をつなぐエッジとを備えているグラフ、並びに、起点ノードから2ホップ毎につながるノードを説明する為のグラフを示す。
図4A】本発明の実施態様に従い、図3Cに示すグラフに基づいて、起点ノードから2ホップでつながるノードのうち、関連度が規定値以上のノードを第1の関連ノードとして表示し、そして当該第1の関連ノードのうちの少なくとも1つが選択されることに応じて、当該選択された第1の関連ノードを、上記第1ノードを包含した第2ノードとして表示する態様、並びに、上記起点ノードを変更する態様を説明する為の図である。
図4B】本発明の実施態様に従い、図3Cに示すグラフに基づいて、起点ノードから2ホップでつながるノードのうち、関連度が規定値以上のノードを第1の関連ノードとして表示し、そして当該第1の関連ノードのうちの少なくとも1つが選択されることに応じて、当該選択された第1の関連ノードを、上記第1ノードを包含した第2ノードとして表示する態様、並びに、上記起点ノードを変更する態様を説明する為の図である。
図5A】本発明の実施態様において使用されうるトリプル{主語,述語,目的語}の一例である。
図5B】本発明の実施態様において使用されうる、図5Aに示すトリプル、並びに、図5Aに示すトリプルから算出される値(統計情報)を格納したトリプルを有するテーブルを示す。
図5C】本発明の実施態様において使用されうるノード及びエッジを備えているグラフ、並びに、当該グラフに基づいて、始点ノードから終点ノードへのスコアを計算する態様を説明する為の図である。
図5D】本発明の実施態様において使用されうるノード(包含ノードを含む)及びエッジを備えているグラフ、並びに、当該グラフに基づいて、始点ノードから終点ノードへのスコアを計算する態様を説明する為の図である。
図5E】本発明の実施態様に従い、起点ノードから2ホップでつながるノードを表示し、表示されたノードのうちの一つのノードを選択する態様を示す画面例である。
図5F】本発明の実施態様に従い、包含ノードから2ホップでつながる包含ノードを表示する態様を示す画面例である。
図6A】本発明の実施態様に従い、関連ノードを探索する処理の為のフローチャートの例を示し、詳細には、分析対象の入力処理の為のフローチャート及びノードの分析及び表示作業の処理の為のフローチャートを示す。
図6B】分析対象文書の入力処理の為の上記フローチャートのうち、統計情報を追加する処理の為のフローチャートの例を示す。
図6C】ノードの分析及び表示作業の処理の為の上記フローチャートのうち、関連ノードを表示する処理の為のフローチャートの例を示す。
図6D】ノードの分析及び表示作業の処理の為の上記フローチャートのうち、包含ノードを表示する処理の為のフローチャートの例を示す。
図7】本発明の実施態様に従い、単ノードでのリンク出現回数を計算する例、及び包含ノードでのリンク出現回数を計算する例を説明する為のノードの例を示す。
図8図1に従うハードウェア構成を好ましくは備えており、本発明の実施態様に従い関連ノードを探索するコンピュータの機能ブロック図の一例を示した図である。
図9】本発明の実施態様に従い関連ノードを探索した結果を示す図である。
【発明を実施するための形態】
【0064】
本発明の実施形態を、以下に図面に従って説明する。以下の図を通して、特に断らない限り、同一の符号は同一の対象を指す。本発明の実施形態は、本発明の好適な態様を説明するためのものであり、本発明の範囲をここで示すものに限定する意図はないことを理解されたい。
【0065】
図1は、本発明の実施態様において使用されうるコンピュータ又は本発明の実施態様に従うコンピュータの一例を示した図である。当該コンピュータは例えば、コンピュータ、例えばサーバ・コンピュータ、デスクトップ・コンピュータ、ノート・コンピュータ、若しくは一体型パソコンでありうるが、これらに制限されるものではない。
【0066】
コンピュータ(101)は、CPU(102)とメイン・メモリ(103)とを備えており、これらはバス(104)に接続されている。CPU(102)は例えば、32ビット又は64ビットのアーキテクチャに基づくものである。当該CPU(102)は例えば、インテル社のCore(商標) iシリーズ、Core(商標) 2シリーズ、Atom(商標)シリーズ、Xeon(登録商標)シリーズ、Pentium(登録商標)シリーズ若しくはCeleron(登録商標)シリーズ、AMD(Advanced Micro Devices)社のAシリーズ、Phenom(商標)シリーズ、Athlon(商標)シリーズ、Turion(登録商標)シリーズ若しくはSempron(商標)、又は、インターナショナル・ビジネス・マシーンズ・コーポレーションのPower(商標)シリーズでありうる。
【0067】
バス(104)には、ディスプレイ・コントローラ(105)を介して、ディスプレイ(106)、例えば液晶ディスプレイ(LCD)が接続されうる。また、液晶ディスプレイ(LCD)は例えば、タッチパネル・ディスプレイ又はフローティング・タッチ・ディスプレイであてもよい。ディスプレイ(106)は、コンピュータ(101)上で動作中のソフトウェア(例えば、本発明の実施態様に従うコンピュータ・プログラム又は当該コンピュータ(101)上で動作中の任意の各種コンピュータ・プログラム(例えば、任意の各種コンピュータ・プログラム))が稼働することによって表示されるオブジェクトを、適当なグラフィック・インタフェースで表示するために使用されうる。また、ディスプレイ(106)は例えば、ウェブ・ブラウザ・アプリケーションの画面を出力しうる。
【0068】
バス(104)には任意的に、例えばSATA又はIDEコントローラ(107)を介して、ディスク(108)、例えばハードディスク又はソリッド・ステート・ドライブ(SSD)が接続されうる。
【0069】
バス(104)には任意的に、例えばSATA又はIDEコントローラ(107)を介して、ドライブ(109)、例えばCD、DVD又はBDドライブが接続されうる。
【0070】
バス(104)には、周辺装置コントローラ(110)を介して、例えばキーボード・マウス・コントローラ又はUSBバスを介して、任意的に、キーボード(111)及びマウス(112)が接続されうる。
【0071】
ディスク(108)には、オペレーティング・システム、例えばメインフレーム用に開発されたオペレーティング・システム(例えば、z/OS、z/VM、若しくはz/VSE)、Windows(登録商標)、UNIX(登録商標)、MacOS(登録商標)、及びAndroid(登録商標)、並びにJ2EEなどのJava(登録商標)処理環境、Java(登録商標)アプリケーション、Java(登録商標)仮想マシン(VM)、Java(登録商標)実行時(JIT)コンパイラを提供するプログラム、本発明の実施態様に従うコンピュータ・プログラム、及びその他の任意の各種コンピュータ・プログラム、並びにデータが、メイン・メモリ(103)にロード可能なように記憶されうる。
【0072】
ディスク(108)は、コンピュータ(101)内に内蔵されていてもよく、当該コンピュータ(101)がアクセス可能なようにケーブルを介して接続されていてもよく、又は、当該コンピュータ(101)がアクセス可能なように有線又は無線ネットワークを介して接続されていてもよい。
【0073】
ドライブ(109)は、必要に応じて、CD−ROM、DVD−ROM又はBDからプログラム、例えばオペレーティング・システム、アプリケーション・プログラム又は本発明の実施態様に従うコンピュータ・プログラムをディスク(108)にインストールするために使用されうる。
【0074】
通信インタフェース(114)は、例えばイーサネット(登録商標)・プロトコルに従う。通信インタフェース(114)は、通信コントローラ(113)を介してバス(104)に接続され、コンピュータ(101)を通信回線(115)に有線又は無線接続する役割を担い、コンピュータ(101)のオペレーティング・システムの通信機能のTCP/IP通信プロトコルに対して、ネットワーク・インタフェース層を提供する。なお、通信回線は例えば、無線LAN接続規格に基づく無線LAN環境、IEEE802.11a/b/g/nなどのWi-Fi無線LAN環境、又は携帯電話網環境(例えば、3G又は4G環境)でありうる。
【0075】
図2は、本発明の実施態様において使用されうるトリプル、及び、当該トリプルから作られるグラフを示す図である。
【0076】
トリプルとは、テキスト・データから抽出されたデータの汎用的な収納形式の一つである。トリプルは、例えばリソース記述フレームワーク(Resource Description Framework;RDF)のメタデータのモデルであり、3つの値の組み合わせが用いられる。トリプルは例えば、主語(subject)、述語(predicate)、及び目的語(object)の3つの要素でリソースに関する関係情報を表現するものである。RDFとは、W3Cにより規格化されている(W3C:REC-rdf-syntax-19990222)(非特許文献1及び2を参照)。
【0077】
トリプルは例えば、トリプル={主語,述語,目的語}の組からなる形式で表現されうる(201)。主語は記述対象のリソースであり、述語は主語の特徴や主語と目的語との関係を示し、及び、目的語は、主語との関係のある物や述語の値である。ここで、トリプルで使用される「主語」、「述語」及び「目的語」という語は、言語の文法学上の意味における主語、述語及び目的語の意味とは異なる使い方がされる場合もあるということに留意されたい。
【0078】
トリプルは例えば、トリプル={Subject,SubjectOfVerb,Object}(202)、又は、トリプル={Subject,ObjectOfVerb,Object}(202)の組からなる形式でも表現されうる(201)。
【0079】
以下に、テキスト・データから抽出されたデータが「Jimmy plays the Guitar」というセンテンスである場合を考える。
【0080】
図2に示すグラフ(211)は、上記センテンス「Jimmy plays the Guitar」から、上記2つのトリプルを使用して作成されるグラフを示す。当該グラフは、トリプル={”play”,SubjectOfVerb,”Jimmy”}(204)及びトリプル={”play”,ObjectOfVerb,”Guitar”}(205)の2つのトリプルから構成される。
【0081】
グラフ(211)は、矢印(224,225)の起点となる丸い囲み(221)を有し、当該丸い囲み(221)は{Subject}のノードを示す。また、グラフ(211)は、ノード(221)を起点とする矢印(224,225)を有し、当該矢印(224,225)は述語を示す。さらに、グラフ(211)は、矢印(224,225)の終点となる丸い囲み(222,223)を有し、当該丸い囲み(222,223)は{Object}のノードを示す。
【0082】
ノード(221)は、トリプル={”play”,SubjectOfVerb,”Jimmy”}(204)及びトリプル={”play”,ObjectOfVerb,”Guitar”}(205)の共通する主語{play}を示す。
【0083】
矢印{SubjectOfVerb}(224)は、トリプル={”play”,SubjectOfVerb,”Jimmy”}(204)の述語を示す。また、矢印{ObjectOfVerb}(225)は、トリプル={”play”,ObjectOfVerb,”Guitar”}(205)の述語を示す。
【0084】
ノード(222)は、トリプル={”play”,SubjectOfVerb,”Jimmy”}(204)の述語{Jimmy}を示す。また、ノード(223)は、トリプル={”play”,ObjectOfVerb,”Guitar”}(205)の述語{Guitar}を示す。
【0085】
トリプルは、トリプル・ストア(triple store)に格納される。トリプル・ストアは、トリプルを格納する。また、トリプル・ストアは、トリプルを検索する為に使用される。
【0086】
図3A図3Cは、本発明の実施態様において使用されうる複数のノードとノード間をつなぐエッジとを備えているグラフ、並びに、本発明の実施態様に従い関連ノードを探索した結果、表示される関連ノードを示す。
【0087】
図3Aは、起点ノード及び当該起点ノードから2ホップでつながるノードを説明する為のグラフ(301,302)を示す。
【0088】
SNS(例えば、Twitter(登録商標))上の多くのユーザ(312〜314)が、車のモデルA(311)及び映画X(315)を言及しているとする。
【0089】
・グラフ(301)について
【0090】
グラフ(301)は、多くのユーザ(312〜314)の上記言及それぞれから抽出されたデータを、トリプルを使用してグラフ化したものを示す。グラフ(301)は、基本的な関係として、車のモデルA(311)が、映画X(315)と、SNS上のユーザ1(312)、ユーザ2(313)及びユーザ3(314)によって関連付けられていることを示す。すなわち、車のモデルA(311)と映画X(315)とが統計的により強い関係を示すことがグラフ(301)上のリンクとして認識される。
【0091】
グラフ(301)に示されているように、車のモデルA(311)のノードは、映画X(315)のノードと2ホップで(すなわち、2つのエッジを介して)つながっている。
【0092】
SNS上の多くのユーザ(322〜326)が、車のモデルA(311)及び映画X(315)、車のモデルA(311)及び映画Y(328)、車のモデルA(311)及び映画Z(329)を言及しているとする。また、SNS上の多くのユーザ(330〜334)が、洋服L(335)及び映画X(327)、洋服L(335)及び映画Y(328)、洋服L(335)及び映画Z(329)を言及しているとする。但し、この例において、車のモデルA(311)と洋服L(335)との関係は、直接的には各ユーザ(312〜314及び322〜326)のSNS上で観測されなかったとする。
【0093】
・グラフ(302)について
【0094】
グラフ(302)は、多くのユーザ(322〜326及び330〜334)の上記言及それぞれから抽出されたデータを、トリプルを使用してグラフ化したものを示す。グラフ(302)は、基本的な関係として、グラフ(301)と同様に、車のモデルA(321)が、映画X(327)と、SNS上のユーザ1(322)、ユーザ2(323)及びユーザ3(324)によって関連付けられていること以外に、車のモデルA(321)が、映画Y(328)と、SNS上のユーザ2(323)、ユーザ3(324)及びユーザ4(325)によって関連付けられていること、車のモデルA(321)が、映画Z(329)と、SNS上のユーザ4(325)及びユーザ5(326)によって関連付けられていることを示す。すなわち、車のモデルA(321)と映画X(327)、映画Y(328)及び映画Z(329)とが統計的により強い関係を示すことがグラフ(302)上のリンクとして認識される。また、グラフ(302)は、さらに、基本的な関係として、洋服L(335)が、映画X(327)と、SNS上のユーザ6(330)及びユーザ7(331)によって関連付けられていること、洋服L(335)が、映画Y(328)と、SNS上のユーザ7(331)、ユーザ8(332)及びユーザ9(333)によって関連付けられていること、並びに、洋服L(335)が、映画Z(329)と、SNS上のユーザ9(333)及びユーザ10(334)によって関連付けられていることを示す。すなわち、洋服L(335)と映画X(327)、映画Y(328)及び映画Z(329)とが統計的により強い関係を示すことがグラフ(302)上のリンクとして認識される。
【0095】
グラフ(302)に示されているように、車のモデルA(321)のノードは、映画X(327)、映画Y(328)及び映画Z(329)それぞれのノードと2ホップでつながっている。また、洋服L(335)のノードは、映画X(327)、映画Y(328)及び映画Z(329)それぞれのノードと2ホップでつながっている。
【0096】
図3Bは、図3Aに示すグラフ(302)上の起点ノード(321)から2ホップ毎につながるノードを1ホップとして表示する(すなわち、1つのエッジを介して表示する)ことを説明する為のグラフ(303)を示す。
【0097】
グラフ(303)は、本発明の実施態様に従い関連ノードを探索した結果、表示される関連ノードを示す。
【0098】
グラフ(303)は、図3Aに示すグラフ(302)からユーザの各ノードの表記を省略している。すなわち、グラフ(303)は、2ホップ毎につながるノードを1ホップとして表示している。
【0099】
車のモデルA(341)のノードが、グラフ(303)上の起点ノード(341)であるとする。グラフ(303)は、起点ノードである車のモデルA(341)と間接的に関連する種々のノードを示している。すなわち、グラフ(303)は、当該起点ノード(341)から2ホップ毎につながるノードを1ホップとして表示している。
【0100】
グラフ(303)は、車のモデルA(311)のノードが、洋服L(346)及び洋服M(347)、靴S(348)及び靴T(349)、スポーツD(350)及びスポーツE(351)、風景J(352)及び風景K(353)、並びに、レストランP(354)及びレストランQ(355)の各ノードと間接的に関連していることを示す。
【0101】
このようにして、ユーザは、グラフ(303)から、車のモデルA(311)が、例えばスポーツD(350)やスポーツE(351)に関連することを発見することが可能になる。
【0102】
図3Cは、図3Bに示すグラフ(303)において、起点ノード(314)から2ホップ毎につながるノードを表示し、当該表示されたノードにおいて関連ノードを検索する態様を示す。
【0103】
グラフ(304)は、グラフ(303)と同様に、本発明の実施態様に従い関連ノードを探索した結果、表示される関連ノードを示す。
【0104】
グラフ(304)において、太字で示す矢印(361、362、363、364、365、366、及び367)はそれぞれ、起点ノードから4ホップ毎につながる関連ノード(346、347、350、351、352、353、及び356)を指す。すなわち、太字で示す矢印(361、362、363、364、365、366、及び367)は、洋服L(346)及び洋服M(347)、靴S(348)及び靴T(349)、スポーツD(350)及びスポーツE(351)、風景J(352)及び風景K(353)、並びに、レストランP(354)及びレストランQ(355)の各ノードが、起点ノードである車のモデルA(311)に関連するノード(関連ノード)であることを示す。
【0105】
上記で述べたように、図3B及び図3Cそれぞれに示すグラフ(303、304)を用いて、本発明の実施態様に従い関連ノードを探索することによって、SNS上の多くのユーザの言及から明示的に出てこない関連や人間が発見しづらい関連を明らかにすることが可能になる。
【0106】
図4A図4Bそれぞれは、図3Cに示すグラフ(304)に基づいて、起点ノードから2ホップでつながるノードのうち、関連度が規定値以上のノードを第1の関連ノードとして表示し、そして当該第1の関連ノードのうちの少なくとも1つが選択されることに応じて、当該選択された第1の関連ノードを、上記第1ノードを包含した第2ノードとして表示する態様、並びに、上記起点ノードを変更する態様を説明する為の図である。
【0107】
図4Aは、ユーザが、起点ノードである車のモデルA(411)から関連ノードを探索する態様、及び、起点ノードを他のノードに変更する態様を説明する為の画面例を示す。当該画面は、コンピュータ(例えば、図1に示すコンピュータ101)に接続された表示装置(例えば、図1に示すディスプレイ(106))上に表示されるものでありうる。図4Aに示す各画面では、ノード間をつなぐエッジの表示が省略されている。
【0108】
画面(401)は、起点ノード(特許請求の範囲の記載の「第1ノード」に対応する)が車のモデルA(411)であり、車のモデルA(411)から2ホップでつながれるノードのうち、スコア、すなわち関連度(特許請求の範囲の記載の「第1の関連度」に対応する)が規定値以上の関連ノード(特許請求の範囲の記載の「第1の関連ノード」に対応する)が、映画X(412)、映画Y(413)及び映画Z(414)、並びに、本S(415)であることを示す。起点ノードである車のモデルA(411)は、画面(401)の中央に表示されうる。
【0109】
ユーザが、映画に関連するノードにさらに関連するノードを知りたいとする。そこで、ユーザは、映画に関する関連ノード、すなわち映画X(412)、映画Y(413)及び映画Z(414)のうちの少なくとも一つの関連ノードを、例えばポインティング・デバイスを使用して選択する。
【0110】
コンピュータ(101)は、上記一つの関連ノードが選択されたことに応じて、当該選択された関連ノードに関連するノードを選択する。例えば、ユーザによって選択された関連ノードが映画X(412)のノードである場合には、コンピュータ(101)は、当該選択された関連ノードと同じテーマである映画に関する関連ノード、すなわち、映画Y(413)及び映画Z(414)を自動的に選択しうる。そして、コンピュータ(101)は、起点ノードである車のモデルA(411)のノードと、映画X(412)、映画Y(413)及び映画Z(414)の各ノードとを包含するノード(421)(以下、包含ノード(421)という)(特許請求の範囲の記載の「第2ノード」に対応する)を作成する。包含ノード(421)では、車のモデルA(411)のノードと映画X(412)、映画Y(413)及び映画Z(414)の各ノードとが0ホップとして繰り込まれている。このように、各ノードを0ホップとして繰り込み(renormalization)することで、包含ノードが1つのノードとして扱われうる。また、包含ノード(421)では、車のモデルA(411)のノードと映画X(412)、映画Y(413)及び映画Z(414)の各ノードとの間に、ノードを直接的にリンクする為の内部リンクが追加されている。なお、内部リンクは、画面上に表示されない。内部リンクが画面上に表示される場合、当該内部リンクはグラフのエッジとして表示される。
【0111】
包含ノード(421)は起点ノードである車のモデルA(411)のノードを含んでいるので、包含ノード(421)が起点ノードになる。
【0112】
画面(402)は、起点ノードが包含ノード(421)であり、包含ノード(421)から2ホップでつながるノードのうち、関連度(特許請求の範囲の記載の「第2の関連度」に対応する)が規定値以上の関連ノード(特許請求の範囲の記載の「第2の関連ノード」に対応する)が、洋服L(422)、洋服M(423)、風景J(424)及び風景K(445)であることを示す。言い換えれば、画面(402)は、車のモデルA(411)のノードから4ホップでつながる関連ノードを表示している。起点ノードである包含ノード(421)は、画面(402)の中央に表示されうる。上記繰り込みにより、ノードのクラスタ(関連ノードが繰り込まれた包含ノード)に含まれるノードの数が増えて行き、グラフの始点がマクロなスケールに移行していくことが可能になる。また、上記繰り込みを繰り返すことによって、グラフの始点がマクロなスケールに段階的に移行していくことが可能になる。
【0113】
次に、ユーザが、起点ノードを包含ノード(421)から関連ノードである洋服L(422)に変更したいとする。ユーザは、洋服L(422)のアイコンを例えばポインティング・デバイスを使用して選択し例えば画面(402)中央にドラッグ・アンド・ドロップしたとする。
【0114】
画面(403)は、起点ノードが洋服L(422)であり、洋服L(422)から2ホップでつながるノードのうち、関連度が規定値以上の関連ノードが、包含ノード(432)、靴S(433)及び靴T(434)、並びに包含ノード(435)であることを示す。包含ノード(432)は、画面(402)の起点ノードと同じであり、車のモデルAのノードに映画X、映画Y及び映画Zの各ノードが包含されたものである。包含ノード(433)は、食事RのノードにレストランP及びレストランQの各ノードが包含されたものである。起点ノードである洋服L(422)は、画面(403)の中央に表示されうる。
【0115】
次に、ユーザが、靴に関連するノードにさらに関連するノードを知りたいとする。そこで、ユーザは、靴に関する関連ノード、すなわち靴S(433)及び靴T(434)のうちの少なくとも一つの関連ノードを、例えばポインティング・デバイスを使用して選択する。
【0116】
コンピュータ(101)は、上記一つの関連ノードが選択されたことに応じて、当該選択された関連ノードに関連するノードを選択する。例えば、ユーザによって選択された関連ノードが靴S(433)のノードである場合には、コンピュータ(101)は、当該選択された関連ノードと同じテーマである靴に関する関連ノード、すなわち、靴T(434)を自動的に選択しうる。そして、コンピュータ(101)は、起点ノードである洋服L(431)のノードと、靴S(433)及び靴T(434)の各ノードとを包含するノード(441)(以下、包含ノード(441)という)を作成する。包含ノード(441)では、洋服L(431)のノードと靴S(433)及び靴T(434)の各ノードとが0ホップとして繰り込まれている。また、包含ノード(441)では、洋服L(431)のノードと靴S(433)及び靴T(434)の各ノードとの間に、ノードを直接的にリンクする為の内部リンクが追加されている。なお、内部リンクは、画面上に表示されない。
【0117】
包含ノード(441)は起点ノードである洋服L(431)のノードを含んでいるので、包含ノード(441)が起点ノードになる。
【0118】
画面(404)は、起点ノードが包含ノード(441)であり、包含ノード(441)から2ホップでつながるノードのうち、関連度が規定値以上の関連ノードが、スポーツD(443)及びスポーツE(444)、並びに包含ノード(442)であることを示す。言い換えれば、画面(404)は、洋服L(431)のノードから4ホップでつながる関連ノードを表示している。起点ノードである包含ノード(441)は、画面(404)の中央に表示されうる。
【0119】
次に、ユーザが、包含ノード(441)中の洋服L(431)のノードに関連する関連ノードの表示に戻りたいとする。そこで、ユーザは、包含ノード(441)中の洋服L(431)のノード内を例えばポインティング・デバイスを使用してクリックする。
【0120】
コンピュータ(101)は、上記クリックを検出することに応じて、画面(409)を図4Bに示す画面(408)に切り替える。このようにして、グラフの始点がミクロなスケールに戻ることが可能になる。また、ミクロなスケールに戻ることを繰り返すことによって、グラフの始点がミクロなスケールに段階的に移行していくことが可能になる。
【0121】
上記で述べたように、図4Aの各画面中のノードを選択しながら、本発明の実施態様に従い関連ノードを探索し、及び任意的に、さらにこれらの選択及び探索を繰り返すことによって、SNS上の多くのユーザの言及から明示的に出てこない関連や人間が発見しづらい関連を明らかにすることが可能になる。
【0122】
また、上記した繰り込によるマクロなスケールへの移行と、上記ミクロなスケールへの移行とを組み合わせて行うことによって、グラフの内部リンクの張り直しをすることが可能になり、またノードによって示される語の整理をすることが容易になる。
【0123】
図4Bは、図4Aと同様に、ユーザが、起点ノードである車のモデルA(411)から関連ノードを探索する態様、及び、起点ノードを他のノードに変更する態様を説明する為の画面例を示す。当該画面は、コンピュータ(例えば、図1に示すコンピュータ101)に接続された表示装置(例えば、図1に示すディスプレイ(106))上に表示されるものでありうる。図4Bに示す各画面はノード間をつなぐエッジの表示を有している点で、図4Aに示す各画面と異なる。
【0124】
画面(406)はノード間をつなぐエッジ(451、452、453及び454)の表示を有している点で図4Aに示す画面(401)と異なるが、それ以外は画面(401)と同じである。従って、画面(406)の説明は、画面(401)の上記説明を参照されたい。
【0125】
ユーザが、映画に関連するノードにさらに関連するノードを知りたいとする。そこで、ユーザは、映画に関する関連ノード、すなわち映画X(412)、映画Y(413)及び映画Z(414)のうちの少なくとも一つの関連ノード又は、車のモデルA(411)のノードから上記関連ノード(412、413及び414)へのエッジ(それぞれ、451、452及び453)のうちの少なくとも一つのエッジを、例えばポインティング・デバイスを使用して選択する。
【0126】
コンピュータ(101)は、上記一つの関連ノードが選択されたことに応じて、当該選択された関連ノードに関連するノードを選択する(すなわち、関連ノードの直接的な選択である)。例えば、ユーザによって選択された関連ノードが映画X(412)のノードである場合には、コンピュータ(101)は、当該選択された関連ノードと同じテーマである映画に関する関連ノード、すなわち、映画Y(413)及び映画Z(414)を自動的に選択しうる。代替的には、コンピュータ(101)は、上記一つのエッジが選択されたことに応じて、当該選択されたエッジの先にある関連ノードに関連するノードを選択する(すなわち、関連ノードの間接的な選択である)。例えば、ユーザによって選択されたエッジが映画X(412)のノードへのエッジ(451)である場合には、コンピュータ(101)は、当該選択されたエッジの先にある映画X(412)、並びに、映画X(412)と同じテーマである映画に関する関連ノード、すなわち、映画Y(413)及び映画Z(414)を自動的に選択しうる。そして、コンピュータ(101)は、起点ノードである車のモデルA(411)のノードと、映画X(412)、映画Y(413)及び映画Z(414)の各ノードとを包含するノード(421)(以下、包含ノード(421)という)を作成する。包含ノード(421)では、車のモデルA(411)のノードと映画X(412)、映画Y(413)及び映画Z(414)の各ノードとが0ホップとして繰り込まれている。また、包含ノード(421)では、車のモデルA(411)のノードと映画X(412)、映画Y(413)及び映画Z(414)の各ノードとの間に、ノードを直接的にリンクする為の内部リンクが追加されている。なお、内部リンクは、画面上に表示されない。
【0127】
画面(407)はノード間をつなぐエッジ(461、462、463及び464)の表示を有している点で図4Aに示す画面(402)と異なるが、それ以外は画面(402)と同じである。従って、画面(407)の説明は、画面(402)の上記説明を参照されたい。
【0128】
次に、ユーザが、起点ノードを包含ノード(421)から関連ノードである洋服L(422)に変更したいとする。ユーザは、洋服L(422)のアイコンを例えばポインティング・デバイスを使用して選択し例えば画面(402)中央にドラッグ・アンド・ドロップしたとする。
【0129】
画面(408)はノード間をつなぐエッジ(471、472、473及び474)の表示を有している点で図4Aに示す画面(403)と異なるが、それ以外は画面(403)と同じである。従って、画面(408)の説明は、画面(403)の上記説明を参照されたい。
【0130】
次に、ユーザが、靴に関連するノードにさらに関連するノードを知りたいとする。そこで、ユーザは、靴に関する関連ノード、すなわち靴S(433)及び靴T(434)のうちの少なくとも一つの関連ノード又は、洋服L(431)のノードから上記関連ノード(433及び434)へのエッジ(それぞれ、472及び474)のうちの少なくとも一つのエッジを、例えばポインティング・デバイスを使用して選択する。
【0131】
コンピュータ(101)は、上記一つの関連ノードが選択されたことに応じて、当該選択された関連ノードに関連するノードを選択する。例えば、ユーザによって選択された関連ノードが靴S(433)のノードである場合には、コンピュータ(101)は、当該選択された関連ノードと同じテーマである靴に関する関連ノード、すなわち、靴T(434)を自動的に選択しうる。代替的には、コンピュータ(101)は、上記一つのエッジが選択されたことに応じて、当該選択されたエッジの先にある関連ノードに関連するノードを選択する。例えば、ユーザによって選択されたエッジが靴S(433)のノードへのエッジ(472)である場合には、コンピュータ(101)は、当該選択されたエッジの先にある靴S(433)、並びに、靴S(433)と同じテーマである靴に関する関連ノード、すなわち、靴T(434)を自動的に選択しうる。そして、コンピュータ(101)は、起点ノードである洋服L(431)のノードと、靴S(433)及び靴T(434)の各ノードを包含するノード(441)(以下、包含ノード(441)という)を作成する。包含ノード(441)では、洋服L(431)のノードと靴S(433)及び靴T(434)の各ノードとが0ホップとして繰り込まれている。また、包含ノード(441)では、洋服L(431)のノードと靴S(433)及び靴T(434)の各ノードとの間に、ノードを直接的にリンクする為の内部リンクが追加されている。なお、内部リンクは、画面上に表示されない。
【0132】
画面(409)はノード間をつなぐエッジ(481、482、及び483)の表示を有している点で図4Aに示す画面(404)と異なるが、それ以外は画面(404)と同じである。従って、画面(409)の説明は、画面(404)の上記説明を参照されたい。
【0133】
上記で述べたように、図4Bの各画面中のノード又はエッジを選択しながら、本発明の実施態様に従い関連ノードを探索し、及び任意的に、さらにこれらの選択及び探索を繰り返すことによって、SNS上の多くのユーザの言及から明示的に出てこない関連や人間が発見しづらい関連を明らかにすることが可能になる。
【0134】
図5A図5Fは、起点ノードから2ホップでつながるノードのうち、関連度が規定値以上のノードを第1の関連ノードとして表示し、そして当該第1の関連ノードのうちの少なくとも1つが選択されることに応じて、当該選択された第1の関連ノードを、上記第1ノードを包含した第2ノードとして表示する態様、並びに、上記関連度を算出する態様を説明する為の図である。
【0135】
図5Aは、本発明の実施態様において使用されうるトリプル{主語,述語,目的語}の一例である。トリプルは、当業者に知られている任意の形式で格納されうる。以下では、トリプルがテーブルの形式で格納されていることを示すが、トリプルの格納形式はこれに限定されるものでない。
【0136】
テーブル(501)は、分析対象の第1の文書をテキスト解析することによって得られたデータから抽出したトリプル(501A)、並びに、上記抽出したトリプルの上記第1の文書中での出現回数(C;count)を格納したトリプル(501B)を示す。
【0137】
トリプル(501A)は、4つのトリプル{”コーヒー”,”合う”,”ケーキ”}、{”ミネラルウォーター”,”合う”,”ステーキ”}、{”ジュース”,”合う”,”ケーキ”}及び{”ジュース”,”合う”,”ステーキ”}を示す。
【0138】
トリプル(501B)は、上記4つのトリプル(501A)それぞれの出現回数をトリプルとして格納したものである。例えば、トリプル{”コーヒー合うケーキ”,”C”,”2”}は、トリプル{”コーヒー”,”合う”,”ケーキ”}が、上記第1の文書中に2回出現したことを示す。
【0139】
テーブル(502)は、分析対象の第2の文書(第1の文書と異なる)をテキスト解析することによって得られたデータから抽出したトリプル(502A)、並びに、上記抽出したトリプルの上記第2の文書中での出現回数を格納したトリプル(502B)を示す。
【0140】
トリプル(502A)は、4つのトリプル{”学生”,”注文する”,”ケーキ”}、{”学生”,”注文する”,”ステーキ”}、{”会社員”,”注文する”,”ステーキ”}及び{”会社員”,”注文する”,”パスタ”}を示す。
【0141】
トリプル(502B)は、上記4つのトリプル(502A)それぞれの出現回数をトリプルとして格納したものである。例えば、トリプル{”学生注文するケーキ”,”C”,”10”}は、トリプル{”学生”,”注文する”,”ケーキ”}が、上記第2の文書中に10回出現したことを示す。
【0142】
図5Bは、図5Aに示すトリプル、並びに、図5Aに示すトリプルから算出される値(統計情報)を格納したトリプルを有するテーブルを示す。
【0143】
テーブル(503)は、テーブル(501)に示すトリプル(501A及び501B)に加えて、トリプル(503C)を追加したものである。
【0144】
トリプル(501C)は、4つのトリプル(503A;501Aと同じ)から算出されたものである。当該算出は、指定された述語(エッジの種類)ごとに、下記に示す5つの式(1)〜(5)に従い行われる。
(1)SA
各{主語−述語}に対して、{目的語}を変えたときの{主語−述語−目的語}の出現回数の平均値;
(2)SS
各{主語−述語}に対して、{目的語}を変えたときの{主語−述語−目的語}の出現回数の総和;
(3)OA
各{述語−目的語}に対して、{主語}を変えたときの{主語−述語−目的語}の出現回数の平均値;
(4)OS
各{述語−目的語}に対して、{主語}を変えたときの{主語−述語−目的語}の出現回数の総和;
(5)T
指定された{述語}の全ての出現回数の総和。ここで、指定された{述語}とは、ユーザにより指定される場合、コンピュータ(101)により自動的に指定される場合がありうる。また、1又は複数の{述語}が指定されうる。複数の{述語}が指定された場合、当該指定された複数の{述語}それぞれの出現回数の総和が算出される。
【0145】
上記算出結果は、トリプル(501C)に示されているように、トリプルとして格納される。
【0146】
テーブル(504)は、テーブル(502)に示すトリプル(502A及び502B)に加えて、トリプル(504C)を追加したものである。
【0147】
トリプル(504C)は、4つのトリプル(504A;502Aと同じ)から算出されたものである。当該算出は、指定された述語(エッジの種類)ごとに、上記した5つの式(1)〜(5)に従い行われる。
【0148】
図5Cは、本発明の実施態様において使用されうるノード及びエッジを備えているグラフ、並びに、当該グラフに基づいて、始点ノードから終点ノードへのスコアを計算する態様を説明する為の図である。
【0149】
グラフ(505)は、図5Bに示すテーブル(503)及びテーブル(504)それぞれに示すトリプルに基づいて作成されたものである。
【0150】
グラフ(505)が、図5Bに示すテーブル(503)及びテーブル(504)それぞれに示すトリプルに基づいてどのように作成されるか、及び、当該グラフに基づいて、始点ノードから終点ノードへのスコアをどのように計算するかを以下に説明する。
【0151】
ユーザが、起点となる主語若しくは目的語又は、主語若しくは目的語のノードを、起点ノードとして指定したとする。代替的には、コンピュータ(101)が、例えば出願回数の多い主語又は目的語を起点ノードとして指定したとする。
【0152】
コンピュータ(101)は、上記指定に応じて、グラフ(505)を生成する。グラフ(505)は、起点ノードとして指定された主語が{学生}(521)である場合を示す。
【0153】
次に、ユーザが、リンクとなる述語を指定する。代替的には、コンピュータ(101)が、リンクとなる述語を指定する。一般的には、例えば2つ以上の複数の述語のチェーンにより、2ホップ以上のリンクの経路のパターンが指定可能である。
【0154】
例えば、図2に示すグラフ(211)では、SubjectOfVerb(−)−ObjectOfVerb(+)として、SubjectOfVerb(−)を逆方向に、ObjectOfVerb(+)を順方向に辿るリンクのチェーンが指定できる。図2に示すグラフ(211)では、当該チェーンの指定によって、”Jimmy”(204)と”Guitar”(205)をつなげるパスが指定されうる。一般に、”Jimmy”(204)と”Guitar”(205)をつなげるパスは複数存在しうる。例えば、「Jimmy plays the Guitar」及び「Jimmy breaks the Guitar」というセンテンスが存在したとすると、”play”と”break”を経由する2つの経路が存在することになる。
【0155】
図5Cに示すグラフ(505)では、ノードをつなぐエッジとなる述語として、述語{合う}(エッジ;531及び533)及び述語{注文する}(エッジ;532、534、535及び536)が指定されていることを示す。
【0156】
上記のようにして生成されたグラフ(505)は、起点ノードとして学生(521)を有し、且つ、ケーキ(522)、ステーキ(523)、コーヒー(524)、ジュース(525)及びミネラルウォーター(526)の各ノード、並びに、それらノード間のエッジを備えている。
【0157】
始点ノードから終点ノードへのスコア(各エッジの確率でもある)の計算は、図5Bに示すトリプル(503B及び503C)及びトリプル(504B及び504C)を用いて算出されうる。始点ノードと終点ノードとの相間は、始点ノードから終点ノードへの全てのパスのスコアの積算により算出されうる。
【0158】
パス上のスコアは、以下の式により算出されうる。
P=(log((C×T)/(SA×OA)))/OS
【0159】
ここで、SA/Tは、{主語−述語}の出現確率であり、OA/Tは、{述語−目的語}の出現確率である。よって、T×(SA/T)×(OA/T)=(SA×OA)/Tは、特定の{主語−述語−目的語}の出現期待値である。従って、(C×T)/(SA×OA)は上記出現期待値からの偏差(deviation)を表す。さらに、(log((C×T)/(SA×OA)))/OSとすることによって、C×T)/(SA×OA)に対してTf−Idfの補正を加える。代替的には、(C×T)/(SA×OA)に対して、当業者に知られたその他の任意の補正を加えうる。このことによって、ポピュラーな{目的語}からの影響を抑えることが可能である。
【0160】
グラフ(505)において、例えば、エッジ531上のスコアP1、及びエッジ532上のスコアP2は、それぞれ、以下のようにして求められる。
【0161】
スコアP1の計算:
C=10,T=27,SA=6,OA=10,OS=10;
P1=(log((C×T)/(SA×OA)))/OS=
(log((27×10)/(6×10)))/10=0.15
【0162】
スコアP2の計算:
C=2,T=23,SA=2,OA=6,OS=12;
P2=(log((C×T)/(SA×OA)))/OS=
(log((2×23)/(2×6)))/12=0.11
【0163】
その他のエッジ533上のスコアP3、エッジ534上のスコアP4、エッジ535上のスコアP5、及びエッジ536上のスコアも、上記と同様にして算出される。
【0164】
また、グラフ(505)において、例えば、学生(521)からコーヒー(524)へのスコアSは、以下のようにして求められる。
S=P1×P2=0.15×0.11=0.0165
【0165】
また、図5Cにおいて、例えば、複数の経路が存在する学生(521)からジュース(525)へのスコアSは、以下の式により算出される。
S=P1×P4+P3×P5
【0166】
コンピュータ(101)は、上記のようにして、あるノードから別のノードへのスコアを算出する。そして、積算されたスコアが規定値以上であるノード(上記別のノード)が、上記あるノードに対して関連の高い関連ノードとして抽出される。
【0167】
起点ノードである学生(521)から2ホップでつながるノード、すなわちコーヒー(524)、ジュース(525)及びミネラルウォーター(526)のうち、関連度が規定値以上のノードが例えばコーヒー(524)及びジュース(525)である場合には、コーヒー(524)及びジュース(525)が関連ノードとして抽出される。
【0168】
図5Dは、本発明の実施態様において使用されうるノード(包含ノードを含む)及びエッジを備えているグラフ、並びに、当該グラフに基づいて、始点ノードから終点ノードへのスコアを計算する態様を説明する為の図である。
【0169】
グラフ(506)は、テーブル(507)及びテーブル(508)それぞれに示すトリプルに基づいて作成されたものである。
【0170】
グラフ(506)は、包含ノード(541)及び包含ノード(547)、大学(544)、モール(545)及び自動販売機(546)の各ノード、及び、並びにそれらノード間のエッジを備えている。
【0171】
グラフ(506)において、例えば、包含ノード(541)(学生(521)+ジュース(543))から包含ノード(547)(自転車(548)+徒歩(549))へのスコアSは、以下のようにして求められる。
S=P1×P5+P2×P6+P3×P6+P4×P7
【0172】
図5E及び図5Fは、本発明の実施態様に従い、起点ノードから2ホップでつながるノードを表示し、表示されたノードのうちの一つのノードを選択する態様、並びに、包含ノードから2ホップでつながる包含ノードを表示する態様を示す画面例である。
【0173】
図5Eに示す画面(551)は、ユーザが検索キーワード「学生」を入力して表示された画面を示す。
【0174】
コンピュータ(101)は、ユーザにより入力された検索キーワード「学生」を起点ノードするグラフを作成し、画面上に表示する。当該グラフの一部は、図5A及び図5Bに示すトリプルに基づいて作成されたものである。
【0175】
画面(551)は、起点ノードである学生(561)のノード、並びに、当該起点ノードから2ホップでつながるノードのうち、関連度が規定値以上である関連ノード、すなわち、コーヒー(562)、ミネラルウォーター(563)、ジュース(564)、参考書(565)、コミック(566)及び小説(567)の各ノード、並びに、起点ノードから各ノードへのエッジを示している。
【0176】
ユーザが、ジュース(564)のノード又は、学生(561)のノードからジュース(564)のノードをつなぐエッジを、例えばポインティング・デバイスを使用して選択したとする。
【0177】
コンピュータ(101)は、ジュース(564)のノードが選択されたことに応じて、当該選択されたノードに関連するノード、すなわちコーヒー(562)及びミネラルウォーター(563)の各ノードとジュース(564)のノードとをグループ化する。選択されたノードに関連するノードとは、当該選択されたノードの語と相間の高い語、又は、当該選択されたノードの語が例えば名詞である場合には当該名詞の述語(動詞)を用いる他の名詞でありうる。例えば、選択されたノードの語が「Guitar」である場合には、当該名詞の述語「play」を用いる他の名詞「Organ」、「Violin」及び「Moog」でありうる。代替的には、コンピュータ(101)は、学生(561)のノードからジュース(564)のノードをつなぐエッジが選択されたことに応じて、当該選択されたエッジの先にあるジュース(564)のノードに関連するノード、すなわちコーヒー(562)及びミネラルウォーター(563)の各ノードとジュース(564)のノードとをグループ化する。
【0178】
図5Eに示す画面(552)は、上記グループ化が行われた後の画面を示す。グループ化されなかったノード(575、576及び577)は、グループ化されたノード(572、573及び574)と区別するように例えば影が付されうる。
【0179】
図5Fに示す画面(553)は、上記グループ化されたノードを、起点ノードである学生(561)のノードを包含した包含ノード(581)を備えているグラフを示す。また、当該グラフは、包含ノード(581)から2ホップでつながるノードのうち、関連度が規定値以上の包含ノードである関連ノード(582、583、584及び585)を備えている。
【0180】
図6A図6Dは、本発明の実施態様に従い、関連ノードを探索する処理の為のフローチャートの例を示し、詳細には、分析対象文書の入力処理の為のフローチャートの例、並びに、ノードの分析及び表示作業の処理の為のフローチャートの例を示す。
【0181】
以下に述べるフローチャートの説明において、コンピュータ(101)が各ステップの主体として記載するが、分析対象文書の入力処理をするコンピュータとノードの分析及び表示作業の処理をするコンピュータとは同一であってもよく又は異なっていてもよい。また、分析対象文書の入力処理及びノードの分析及び表示作業の処理それぞれは、1又は複数のコンピュータ上で分散して実行されてもよい。
【0182】
図6Aは、分析対象文書の入力処理の為のフローチャート、並びに、ノードの分析及び表示作業の処理の為のフローチャートを示す。
【0183】
ステップ601において、コンピュータ(101)は、分析対象文書の入力処理を開始する。分析対象文書は例えば、テキスト・データ又は、音声データをテキスト・データに変換したものでありうる。
【0184】
ステップ602において、コンピュータ(101)は、分析対象文書を格納した記憶装置又は記憶媒体(607)から分析対象文書を読み取る。
【0185】
ステップ603において、コンピュータ(101)は、語彙辞書摘出ルール(608)を使用して、当業者に知られた任意の手法を使用して、上記読み取った分析対象文書のテキスト解析を行う。コンピュータ(101)は、当該テキスト解析によりデータ、例えばメタデータを得る。
【0186】
ステップ604において、コンピュータ(101)は、ステップ603で得られたデータを受け取り、当該データからトリプルを抽出する。なお、コンピュータ(101)はステップ602及びステップ603を実行すること無しに、他のコンピュータが上記分析対象文書をテキスト解析して得られたデータを、当該他のコンピュータ又は当該解析したデータを格納した記憶媒体から受け取ってもよい。コンピュータ(101)は、上記抽出したトリプルを、例えばトリプル・ストア(609)に格納しうる。トリプル・ストアは例えば、RDFストアでありうる。トリプル・ストアに格納されるデータは互いにリンクしており、グラフとしての形態情報を保持しうる。
【0187】
ステップ605において、コンピュータ(101)は、ステップ604で抽出した上記トリプルから、上記分析対象文書中での同じトリプルの出現回数(C)を求める。コンピュータ(101)は、当該求めた出現回数をトリプルとして、例えばトリプル・ストア(609)に格納しうる。
【0188】
また、コンピュータ(101)は、ステップ604で抽出した上記トリプル及び上記同じトリプルの出現回数についてのトリプルから、統計情報を算出する。コンピュータ(101)は、統計情報として、(1)各{主語−述語}に対して、{目的語}を変えたときの{主語−述語−目的語}の出現回数から得られる値;(2)各{述語−目的語}に対して、{主語}を変えたときの{主語−述語−目的語}の出現回数から得られる値;、及び(3)指定された{述語}の全ての出現回数から得られる値、を算出しうる。統計情報は例えば、上記で述べた(1)SA、(2)SS、(3)OA、(4)OS、及び(5)Tでありうる。コンピュータ(101)は、上記算出した統計情報をトリプルとして、例えばトリプル・ストア(609)に格納しうる。ステップ605の処理の詳細は、下記図6Bの説明において述べる。
【0189】
ステップ606において、コンピュータ(101)は、分析対象文書の入力処理を終了する。
【0190】
ステップ611において、コンピュータ(101)は、ノードの分析及び表示作業を開始する。
【0191】
ステップ612において、コンピュータ(101)は、ユーザが入力した検索キーワードを受信する。また、コンピュータは、任意的に、ユーザが指定した述語を受信する。ユーザは、上記検索キーワードを、例えば検索キーワードを入力する欄に直接入力したり、検索キーワードを検索キーワードリストから選択したりすることによって入力することができる。また、検索キーワードは、1単語でなくともよく、複数の単語からなるものであってもよい。
【0192】
ステップ613において、コンピュータ(101)は、検索キーワードに関連付けられたトリプルをトリプル・ストア(609)から取得する。
【0193】
ステップ614において、コンピュータ(101)は、包含ノードを表示するかを判断する。包含ノードを表示することに応じて、コンピュータ(101)は処理をステップ615に進める。一方、包含ノードを表示しないことに応じて、コンピュータ(101)は処理をステップ616に進める。
【0194】
ステップ615において、コンピュータ(101)は、包含ノードを含むグラフを表示する。ステップ615の処理の詳細は、下記図6Cの説明において述べる。
【0195】
ステップ616において、コンピュータ(101)は、関連ノードを含むグラフを表示する。ステップ616の処理の詳細は、下記図6Cの説明において述べる。
【0196】
ステップ617において、コンピュータ(101)は、包含ノードに含められたノード間に、内部リンクを追加しうる。内部リンクは、グラフ上に表示されなくともよい。そして、コンピュータ(101)は、追加した内部リンクをトリプルとして、例えばトリプル・ストア(609)に格納しうる。
【0197】
また、コンピュータ(101)は、内部リンクを追加した後のグラフについての統計情報を再計算しうる。そして、コンピュータ(101)は、当該計算した統計情報をトリプルとして、例えばトリプル・ストア(609)に格納しうる。
【0198】
さらに、コンピュータ(101)は、包含ノードに含められた複数のノードを0ホップとして繰り込みうる。
【0199】
ステップ618において、コンピュータ(101)は、ノードの分析及び表示作業を終了する。
【0200】
図6Bは、分析対象文書の入力処理の為の上記フローチャートのうち、統計情報を追加する処理の為のフローチャートの例を示す。
【0201】
ステップ621において、コンピュータ(101)は、統計情報の追加処理を開始する。
【0202】
ステップ622において、コンピュータ(101)は、トリプル・ストア(609)からトリプルを取り出し、上記分析対象文書中での同じトリプルの出現回数(C)を取得する。
【0203】
ステップ623において、コンピュータ(101)は、新たに入力されたトリプルが、トリプル・ストア(609)から上記トリプルと同じ場合には、上記出現回数を例えば1インクリメントする。コンピュータ(101)は、当該インクリメントした出現回数に更新したトリプルをトリプル・ストア(609)に格納しうる。
【0204】
ステップ624において、コンピュータ(101)は、新たに入力されたトリプルの全てについてステップ623の処理が終了したかを判断する。コンピュータ(101)は、未処理のトリプルがあることに応じて、処理をステップ622に戻し、ステップ622〜ステップ624の処理を繰り返す。一方、コンピュータ(101)は、未処理のトリプルがないことに応じて、処理をステップ625に進める。
【0205】
ステップ625において、コンピュータ(101)は、上記した統計情報、例えば、(1)SA、(2)SS、(3)OA、(4)OS、及び(5)Tを算出する。コンピュータ(101)は、上記算出した統計情報をトリプルとして、トリプル・ストア(609)に格納しうる。
【0206】
ステップ626において、コンピュータ(101)は、統計情報の追加処理を終了する。
【0207】
図6Cは、ノードの分析及び表示作業の処理の為の上記フローチャートのうち、関連ノードを表示する処理の為のフローチャートの例を示す。
【0208】
ステップ631において、コンピュータ(101)は、関連ノードの分析及び表示処理を開始する。
【0209】
ステップ632において、コンピュータ(101)は、図6Aに示すステップ612で受信した検索キーワードなどに従い、始点ノードを指定する。検索キーワードで指定された始点ノードは、グラフ上の起点ノードでもある。代替的には、コンピュータ(101)は、ネットワーク全体のマクロ俯瞰図を表示し、当該表示されたマクロ俯瞰図中の特定の場所がユーザによってポイントされることによって、当該ポイントされた部分に関連付けられたキーワードなどに従い、始点ノードを指定しうる。また、コンピュータ(101)はさらに、任意的に、上記ステップ612で受信した述語に従い、当該述語を指定する。
【0210】
ステップ633において、コンピュータ(101)は、トリプル・ストア(609)を参照し、始点ノードから出ている全ての述語又は指定された述語について、2ホップでつながる全ての終点ノードの一覧リストを作成する。
【0211】
ステップ634において、コンピュータ(101)は、ステップ633で作成した一覧リストからノードを取得する。
【0212】
ステップ635において、コンピュータ(101)は、始点ノードと終点ノードとをつなぐ全ての経路について、C、SA、OS(但し、目的語が始点の場合には、OSの代わりにSS)、OS及び述語に対するTを、トリプル・ストア(609)から取得する。コンピュータ(101)は、当該取得したC、SA、OS(但し、目的語が始点の場合には、OSの代わりにSS)、OS及び述語に対するTを用いて、終点ノードのスコアを計算する。そして、コンピュータ(101)は、当該計算したスコアをトリプルとして、トリプル・ストア(609)へ格納する。
【0213】
ステップ636において、コンピュータ(101)は、ステップ635で計算したスコア(関連度である)が規定値以上であるかを判断する。当該スコアが規定値以上であるかは、例えばスコアが所定の値よりも大きいか、又は、対象となる関連ノードをスコア順に並べた場合に当該順位が所定の順位(例えば、順位が高いものから5番目など)よりも高いかにより判断されうる。コンピュータ(101)は、上記スコアが規定値以上であることに応じて、処理をステップ637に進める。一方、コンピュータ(101)は、上記スコアが規定値以上でないことに応じて、処理をステップ638に進める。
【0214】
ステップ637において、コンピュータ(101)は、ステップ635で計算したスコア(関連度である)が規定値以上であるノードを関連ノードとして表示すべき表示リストに追加する。
【0215】
ステップ638において、コンピュータ(101)は、ステップ633で作成した一覧リストから全てのノードを取得済みであるかを判断する。コンピュータ(101)は、全てのノードを取得済みであることに応じて、処理をステップ639に進める。一方、コンピュータ(101)は、全てのノードを取得済みでないことに応じて、処理をステップ634に戻して、ステップ634〜ステップ638の処理を繰り返す。なお、ステップ634〜ステップ638の処理が繰り返される場合、ステップ636の関連度の規定値は繰り返し毎に同じ値であってもよく、又は、繰り返し毎に異なる値であってもよい。
【0216】
ステップ639において、コンピュータ(101)は、表示リストにある関連ノードを、起点ノードとともに表示する。
【0217】
ステップ640において、コンピュータ(101)は、関連ノードの分析及び表示処理を終了する。
【0218】
図6Dは、ノードの分析及び表示作業の処理の為の上記フローチャートのうち、包含ノードを表示する処理の為のフローチャートの例を示す。
【0219】
ステップ641において、コンピュータ(101)は、包含ノードの分析及び表示処理を開始する。
【0220】
ステップ642において、コンピュータ(101)は、終点ノードへつなぐ述語のペア(2ホップ)を選択する。
【0221】
ステップ643において、コンピュータ(101)は、トリプル・ストア(609)を参照し、上記ステップ612で受信した述語の主語となる始点ノードの始点一覧リストを作成する。
【0222】
ステップ644において、コンピュータ(101)は、ステップ643で作成した始点一覧リストから始点ノードを取得する。
【0223】
ステップ645において、コンピュータ(101)は、トリプル・ストア(609)を参照し、上記ステップ612で受信した始点ノードから指定された述語を通じてつながる終点ノードのうち、ノード間を接続する当該述語の全てのエッジのスコアの合計値が高い終点ノードで、終点ノードの終点一覧リストを作成する。
【0224】
ステップ646において、コンピュータ(101)は、ステップ645で作成した終点一覧リストから始点ノードを取得する。
【0225】
ステップ647において、コンピュータ(101)は、包含ノードを新たな主語とし、始点ノード及び終点ノードを予約述語<同一グループ>で目的語として接続し、これをトリプルとして例えばトリプル・ストア(609)に格納する。
【0226】
ステップ648において、コンピュータ(101)は、トリプル・ストア(609)を参照し、始点ノード及び終点ノードに接続されている述語一覧リストを作成する。
【0227】
ステップ649において、コンピュータ(101)は、ステップ648で作成した述語一覧リストから述語を取得する。
【0228】
ステップ650において、コンピュータ(101)は、始点ノード及び終点ノードに、ステップ649で取得した上記述語に付随する出現回数Cから、新たに包含ノードの統計情報、例えばC,SA,OS(但し、目的語が始点の場合には、OSの代わりにSS),OS及び述語に対するTを再計算して、トリプル・ストア(609)を更新する。
【0229】
ステップ651において、コンピュータ(101)は、述語一覧リストの全てのノードを取得済みであるかを判断する。コンピュータ(101)は、述語一覧リストの全てのノードを取得済みであることに応じて、処理をステップ652に進める。一方、コンピュータ(101)は、述語一覧リストの全てのノードを取得済みでないことに応じて、処理をステップ649に戻して、ステップ649〜ステップ651の処理を繰り返す。
【0230】
ステップ652において、コンピュータ(101)は、終点一覧リストの全てのノードを取得済みであるかを判断する。コンピュータ(101)は、終点一覧リストの全てのノードを取得済みであることに応じて、処理をステップ653に進める。一方、コンピュータ(101)は、終点一覧リストの全てのノードを取得済みでないことに応じて、処理をステップ646に戻して、ステップ646〜ステップ652の処理を繰り返す。
【0231】
ステップ653において、コンピュータ(101)は、始点一覧リストの全てのノードを取得済みであるかを判断する。コンピュータ(101)は、始点一覧リストの全てのノードを取得済みであることに応じて、処理を終了ステップ654に進める。一方、コンピュータ(101)は、始点一覧リストの全てのノードを取得済みでないことに応じて、処理をステップ644に戻して、ステップ644〜ステップ653の処理を繰り返す。
【0232】
ステップ654において、コンピュータ(101)は、包含ノードの分析及び表示処理を終了する。
【0233】
図7は、本発明の実施態様に従い、単ノードでのエッジ出現回数を計算する例、及び包含ノードでのエッジ出現回数を計算する例を説明する為のノードの例を示す。
【0234】
グラフ(701)は、単ノードでのエッジ出現回数を計算する為に、エッジに付された文字列を示す。コンピュータ(101)は、当該文字列を述語とし、出現回数を目的語として、出現回数のトリプルを生成しうる。
【0235】
グラフ(702)は、包含ノードでのエッジ出現回数を計算する例、及び包含ノードでのエッジ出現回数を計算する例を説明する為のノードの例を示す。
【0236】
コンピュータ(101)は、包含ノードでのエッジの出現回数は、各エッジの出現回数の平均値として算出しうる。
C(6,X)={C(1,X)+C(2,X)+C(3,X)}/3
C(X,7)={C(X,4)+C(X,5)}/2
C(6,Y)={C(1,Y)+C(2,Y)+C(3,Y)}/3
C(Y,7)={C(Y,4)+C(Y,5)}/2
C(6,Z)={C(1,Z)+C(2,Z)+C(3,Z)}/3
C(Z,7)={C(Z,4)+C(Z,5)}/2
【0237】
図8は、図1に従うハードウェア構成を好ましくは備えており、本発明の実施態様に従い関連ノードを探索するコンピュータの機能ブロック図の一例を示した図である。
【0238】
コンピュータ(101)は、テキスト解析手段(811)、トリプル抽出手段(812)、統計情報算出手段(813)、及び表示手段(814)を備えている。表示手段(814)は、関連ノード表示手段(815)及び包含ノード表示手段(816)を備えている。なお、テキスト解析手段(811)は、コンピュータ(101)と異なるコンピュータ、仮想コンピュータ又はスレッドが備えていてもよい。
【0239】
テキスト解析手段(811)は、分析対象文書を格納した記憶装置又は記憶媒体(607)から分析対象文書を読み取る。テキスト解析手段(811)は、語彙辞書摘出ルール(608)を使用して、当業者に知られた任意の手法を使用して上記読み取った分析対象文書のテキスト解析を行う。
【0240】
テキスト解析手段(811)は、図6Aに記載のステップ602〜603を実行しうる。
【0241】
トリプル抽出手段(812)は、テキスト解析手段(811)が分析したデータを受け取り、当該データからトリプルを抽出する(図5Aに記載のテーブル(501)及びテーブル(502)を参照)。トリプル抽出手段(812)は、上記抽出したトリプルを、例えばトリプル・ストア(609)に格納しうる。
【0242】
また、トリプル抽出手段(812)は、上記分析対象文書中での同じトリプルの出現回数(C)を求め、当該求めた出現回数をトリプルとして、例えばトリプル・ストア(609)に格納しうる。
【0243】
トリプル抽出手段(812)は、図6Aに記載のステップ604を実行しうる。
【0244】
統計情報算出手段(813)は、トリプル抽出手段(812)が抽出したトリプル及びトリプル抽出手段(812)が求めた出現回数についてのトリプルから統計情報を算出する。例えば、統計情報算出手段(813)は、上記第1の関連度及び上記第2の関連度それぞれを、トリプルを用いて計算する。
【0245】
また、統計情報算出手段(813)は、各{主語−述語}に対して、{目的語}を変えたときの{主語−述語−目的語}の出現回数から得られる値、
各{述語−目的語}に対して、{主語}を変えたときの{主語−述語−目的語}の出現回数から得られる値、及び、
指定された{述語}の全ての出現回数から得られる値
を算出し、当該算出した値それぞれをトリプルとしてトリプル・ストア(609)に格納しうる。
【0246】
また、統計情報算出手段(813)は、さらに、
上記第1ノードから2ホップでつながるノードそれぞれの各エッジ上のスコアを、
同じトリプルの出現回数、
各{主語−述語}に対して、{目的語}を変えたときの{主語−述語−目的語}の出現回数から得られる値、
各{述語−目的語}に対して、{主語}を変えたときの{主語−述語−目的語}の出現回数から得られる値、及び、
指定された{述語}の全ての出現回数から得られる値
に基づいて算出し、当該算出したスコアそれぞれをトリプルとしてトリプル・ストア(609)に格納しうる。
【0247】
また、統計情報算出手段(813)は、指定された述語(エッジの種類)ごとに、上記で述べた(1)SA、(2)SS、(3)OA、(4)OS、及び(5)Tを算出しうる。
【0248】
また、統計情報算出手段(813)は、さらに、上記第1ノードと当該第1のノードから2ホップでつながる一つのノードとの間に複数のエッジがある場合、当該複数のエッジそれぞれのスコアに基づいて当該複数のエッジ全体のスコアを算出し、当該算出したスコアをトリプルとして格納しうる。上記算出されたスコアは、上記第1ノードから2ホップでつながる一つのノードへのスコアである。
【0249】
統計情報算出手段(813)は、図6Aに記載のステップ605及び図6Bの記載のステップ621〜626、並びに、図6Aに記載のステップ612を実行しうる。
【0250】
関連ノード表示手段(815)は、第1ノードが選択されることに応じて、上記第1ノードから2ホップでつながるノードのうち、第1の関連度が規定値以上のノードを第1の関連ノードとして表示する。
【0251】
包含ノード表示手段(816)は、上記第1の関連ノードのうちの少なくとも1つが選択されることに応じて、当該選択された第1の関連ノードを、上記第1ノードを包含した第2ノードとして表示する。
【0252】
包含ノード表示手段(816)は、さらに、上記第1ノードと上記選択された第1の関連ノードとの間に、内部リンクを追加しうる。
【0253】
包含ノード表示手段(816)は、さらに、上記第1ノードと上記選択された第1の関連ノードとを0ホップとして繰り込みうる。
【0254】
また、関連ノード表示手段(815)は、さらに、上記第2ノードから2ホップでつながるノードのうち、第2の関連度が規定値以上のノードを第2の関連ノードとして表示しうる。
【0255】
また、包含ノード表示手段(816)は、さらに、上記第2の関連ノードのうちの少なくとも1つが選択されることに応じて、当該選択された第2の関連ノードを、上記第2ノードを包含した第3ノードとして表示しうる。
【0256】
また、包含ノード表示手段(816)は、さらに、上記第2ノードと上記選択された第2の関連ノードとの間に、内部リンクを追加しうる。
【0257】
また、包含ノード表示手段(816)は、さらに、上記第2ノードと上記選択された第2の関連ノードとを0ホップとして繰り込みうる。
【0258】
表示手段(814)は、図6Aに記載のステップ614を実行しうる。
【0259】
関連ノード表示手段(815)は、図6Aに記載のステップ616、並びに、図6Cに記載のステップ631〜640を実行しうる。
【0260】
包含ノード表示手段(816)は、図6Aに記載のステップ615及び617、並びに、図6Dに記載のステップ641〜654を実行しうる。
【0261】
図9は、本発明の実施態様に従い関連ノードを探索した結果を示す図である。
【0262】
グラフ(901)は、本発明に従い公開発明を解析した結果を示す。起点ノードとして「gold」(911)を指定し、さらに、当該「gold」の関連ノードとして発見された「iridium」(912)や「rhenium」(913)を新たに起点ノードとして追加することにより、動詞や他の名詞を介在して、「gold」(911)、「iridium」(912)及び「rhenium」(913)それぞれに関連する単語が抽出されている。このように、当該グラフ(901)を用いることにより、用いられるコンテキストが類似した単語を発見することが可能になる。
図1
図2
図3A
図3B
図3C
図4A
図4B
図5A
図5B
図5C
図5D
図6A
図6B
図6C
図6D
図7
図8
図9
図5E
図5F