特許第5944498号(P5944498)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ フェイスブック,インク.の特許一覧

特許5944498ソーシャル・ネットワーキング・システムの通信からのトピックの推論法
<>
  • 特許5944498-ソーシャル・ネットワーキング・システムの通信からのトピックの推論法 図000002
  • 特許5944498-ソーシャル・ネットワーキング・システムの通信からのトピックの推論法 図000003
  • 特許5944498-ソーシャル・ネットワーキング・システムの通信からのトピックの推論法 図000004
  • 特許5944498-ソーシャル・ネットワーキング・システムの通信からのトピックの推論法 図000005
  • 特許5944498-ソーシャル・ネットワーキング・システムの通信からのトピックの推論法 図000006
  • 特許5944498-ソーシャル・ネットワーキング・システムの通信からのトピックの推論法 図000007
  • 特許5944498-ソーシャル・ネットワーキング・システムの通信からのトピックの推論法 図000008
  • 特許5944498-ソーシャル・ネットワーキング・システムの通信からのトピックの推論法 図000009
  • 特許5944498-ソーシャル・ネットワーキング・システムの通信からのトピックの推論法 図000010
  • 特許5944498-ソーシャル・ネットワーキング・システムの通信からのトピックの推論法 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5944498
(24)【登録日】2016年6月3日
(45)【発行日】2016年7月5日
(54)【発明の名称】ソーシャル・ネットワーキング・システムの通信からのトピックの推論法
(51)【国際特許分類】
   G06F 17/30 20060101AFI20160621BHJP
   G06F 13/00 20060101ALI20160621BHJP
【FI】
   G06F17/30 210A
   G06F17/30 170A
   G06F17/30 340A
   G06F13/00 560A
【請求項の数】33
【全頁数】30
(21)【出願番号】特願2014-516994(P2014-516994)
(86)(22)【出願日】2012年6月6日
(65)【公表番号】特表2014-524076(P2014-524076A)
(43)【公表日】2014年9月18日
(86)【国際出願番号】US2012041105
(87)【国際公開番号】WO2012177396
(87)【国際公開日】20121227
【審査請求日】2015年6月5日
(31)【優先権主張番号】13/167,701
(32)【優先日】2011年6月24日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】508178054
【氏名又は名称】フェイスブック,インク.
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】ラジャラム、ジリダー
【審査官】 吉田 誠
(56)【参考文献】
【文献】 特開2009−99088(JP,A)
【文献】 特表2007−500899(JP,A)
【文献】 米国特許出願公開第2010/0114887(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/30
G06F 13/00
(57)【特許請求の範囲】
【請求項1】
コンピュータに実装された、ソーシャル・ネットワーキング・システムにおいて通信の用語のトピックを決定するための方法であって、
トピックを各々表す複数のノードからなるノードの組を含む辞書を受け取る工程と、
通信元ユーザから通信を受け取る工程と、
該通信におけるアンカ用語を識別する工程と、
該アンカ用語に基づき、該アンカ用語と関係する主題を表す辞書ノードからなる候補ノードを識別する工程と、
該通信における該アンカ用語のコンテキストを決定する工程と、
該決定されたコンテキストに基づき、該候補ノードのうちの1つまたは複数の候補ノードの各々に対する得点を決定する工程と、
該決定された得点に基づき、該アンカ用語の意味を表す候補ノードを選択する工程と、を備える方法。
【請求項2】
辞書を受け取る工程は、
1対または複数対の記事がリンクされている記事のデータベースを検索する工程と、
該記事のうちの1つまたは複数の記事の各々に対して、該記事の前記トピックを含むノードを作成する工程と、
リンクされている記事に対応するノードの各対について、該ノードの対をエッジによって接続する工程と、
を備える、請求項1に記載の方法。
【請求項3】
記事の前記データベースは、各記事がウェブベースのデータベース内のウェブ・ページによって表されるウェブベースのデータベースを含み、2つの記事は、該記事の一方を表すウェブ・ページが他方の記事へのURLリンクを含む場合、リンクされている、請求項2に記載の方法。
【請求項4】
各ノードは、前記記事の前記トピックの同義語と代替的文法的表現とをさらに含む、請求項2に記載の方法。
【請求項5】
辞書を受け取る工程は、先に存在している辞書を更新する工程を含む、請求項1に記載の方法。
【請求項6】
受け取られた前記通信は、状態の更新を含む、請求項1に記載の方法。
【請求項7】
前記状態の更新は、前記通信元ユーザのソーシャル・ネットワーキング・システムのプロファイルにポストされる、請求項6に記載の方法。
【請求項8】
受け取られた前記通信は、電子メール、インスタント・メッセージ、およびテキストメッセージ又はSMSメッセージのうちの1つを含む、請求項1に記載の方法。
【請求項9】
受け取られた前記通信は、コンテンツ項目に関するコメントを含む、請求項1に記載の方法。
【請求項10】
前記通信は、ソーシャル・ネットワーキング・システムのユーザ・インターフェースを経由して受け取られる、請求項1に記載の方法。
【請求項11】
前記通信におけるアンカ用語を識別する工程は、
前記通信を、英数字の組から各々なる1つまたは複数の用語に構文解析する工程と、
前記アンカ用語として用いるために該1つまたは複数の構文解析された用語のうちの1つを選択する工程と、
を含む、請求項1に記載の方法。
【請求項12】
前記通信を1つまたは複数の用語に構文解析する工程の前に、冠詞、間投詞、接続詞、および前置詞が前記通信から取り除かれる、請求項11に記載の方法。
【請求項13】
前記通信を1つまたは複数の用語に構文解析する工程の前に、副詞と代名詞とが前記通信から取り除かれる、請求項12に記載の方法。
【請求項14】
構文解析された各用語は名詞を含む、請求項11に記載の方法。
【請求項15】
前記アンカ用語として用いるために前記1つまたは複数の構文解析された用語のうちの1つを選択する工程は、最も曖昧でない構文解析された用語を選択する工程を含む、請求項11に記載の方法。
【請求項16】
前記アンカ用語として用いるために前記1つまたは複数の構文解析された用語のうちの1つを選択する工程は、最も曖昧な構文解析された用語を選択する工程を含む、請求項11に記載の方法。
【請求項17】
前記アンカ用語に基づき候補ノードを識別する工程は、アンカ用語テキストを含む候補ノードについて前記辞書のキーワード・サーチを実行する工程を含む、請求項1に記載の方法。
【請求項18】
前記通信における前記アンカ用語の前記コンテキストを決定する工程は、前記通信において前記アンカ用語以外の用語を決定する工程を含む、請求項1に記載の方法。
【請求項19】
前記アンカ用語の前記コンテキストは前記アンカ用語を修飾する動詞を含む、請求項18に記載の方法。
【請求項20】
前記アンカ用語の前記コンテキストは前記アンカ用語と関係する名詞を含む、請求項18に記載の方法。
【請求項21】
前記通信における前記アンカ用語の前記コンテキストを決定する工程は、前記ソーシャル・ネットワーキング・システムのユーザによって前記アンカ用語を含む通信における前記アンカ用語のグローバル・コンテキストを決定する工程を含む、請求項1に記載の方法。
【請求項22】
前記通信における前記アンカ用語の前記コンテキストを決定する工程は、前記通信元ユーザに接続された前記ソーシャル・ネットワーキング・システムのユーザによって前記アンカ用語を含む通信における前記アンカ用語のソーシャル・コンテキストを決定する工程を含む、請求項1に記載の方法。
【請求項23】
前記通信における前記アンカ用語の前記コンテキストを決定する工程は、前記通信元ユーザと関係するユーザ情報を決定する工程を含む、請求項1に記載の方法。
【請求項24】
前記通信元ユーザと関係するユーザ情報は前記通信元ユーザの関心を含む、請求項23に記載の方法。
【請求項25】
前記決定されたコンテキストに基づき候補ノードに対する得点を決定する工程は、
前記候補ノードに対する初期得点を決定する工程と、
前記決定されたコンテキストと関係する辞書ノードを識別する工程と、
該識別された辞書ノードが前記候補ノードと関係するという判断に応答して、前記候補ノードに対する該初期得点を増加させる工程と
を含む、請求項1に記載の方法。
【請求項26】
前記決定された得点に基づき候補ノードを選択する工程は、最も高い得点を有する候補ノードを選択する工程を含む、請求項1に記載の方法。
【請求項27】
前記アンカ用語の意味を表す蓋然性が低い1つまたは複数の候補ノードを決定する工程と、
該決定された1つまたは複数の候補ノードを考慮から排除する工程と、
を更に含む、請求項1に記載の方法。
【請求項28】
辞書ノードの階層的編成からなるカテゴリ・ツリーを作成する工程を更に備え、各カテゴリ・ツリー・ノードはただ1つの親ノードと任意の数の子ノードとを有し、各ノードは該ノードの親ノードによって表されるトピックの部分集合を表し、各ノードはエッジによって該ノードの親ノードと該ノードの各子ノードとに接続されている、請求項27に記載の方法。
【請求項29】
前記アンカ用語の前記意味を表す蓋然性が低い1つまたは複数の候補ノードを決定する工程は、
各候補ノードについて、
前記通信において前記アンカ用語以外の用語を識別する工程と、
該識別された用語と関連する第1のカテゴリ・ツリー・ノードを決定する工程と、
前記候補ノードと関連する第2のカテゴリ・ツリー・ノードを決定する工程と、
該第1のカテゴリ・ツリー・ノードと該第2のカテゴリ・ツリー・ノードとの間の関連性の尺度を決定する工程と、
該決定された関連性の尺度に基づき、前記アンカ用語の前記意味を表す蓋然性が低い1つまたは複数の候補ノードを決定する工程と
を含む、請求項28に記載の方法。
【請求項30】
前記第1のカテゴリ・ツリー・ノードと前記第2のカテゴリ・ツリー・ノードとの間の前記決定された関連性の尺度は、前記カテゴリ・ツリーにおける前記第1のカテゴリ・ツリー・ノードと前記第2のカテゴリ・ツリー・ノードとの間の最小のエッジ数を含む、請求項29に記載の方法。
【請求項31】
前記アンカ用語の前記意味を表す蓋然性が低い1つまたは複数の候補ノードを決定する工程は、前記アンカ用語への関連性の所定の閾値を満たさないすべての候補ノードを決定する工程を含む、請求項27に記載の方法。
【請求項32】
前記アンカ用語の前記意味を表す蓋然性が低い1つまたは複数の候補ノードを決定する工程は、前記アンカ用語の前記意味を表す蓋然性が低い所定の数の候補ノードを決定する工程を含む、請求項27に記載の方法。
【請求項33】
前記決定された1つまたは複数の候補ノードを考慮から排除する工程は、前記候補ノードのうちの1つまたは複数の候補ノードの各々に対する得点を決定する工程の前に、前記決定された1つまたは複数の候補ノードを候補ノードの前記組から取り除く工程を含む、請求項27に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、広くは、ソーシャル・ネットワーキングに関し、特に、ソーシャル・ネットワーキング・システムのユーザの通信のトピックを推論することに関する。
【背景技術】
【0002】
ソーシャル・ネットワーキング・システムは、通常、ユーザが自身の社会的な(ソーシャル)ネットワークの中で相互作用することを可能にする機構を提供する。ソーシャル・ネットワーキング・システムのユーザは、個人、または、企業その他、人以外のエンティティ(実体)など任意のそれ以外の実体であり得る。ソーシャル・ネットワーキング・システムによって追跡(トラッキング)され維持されるソーシャル・ネットワーキング・システムの情報はソーシャル・グラフとして記憶され得るが、このソーシャル・グラフには、複数のエッジによって相互接続される複数のノードが含まれる。ソーシャル・グラフのノードは、別のノードに対して作用し得る、および/または、別のノードによって作用を受け得るソーシャル・ネットワーキング・システムのオブジェクトを表すことができる。ソーシャル・ネットワーキング・システムのオブジェクトは、例えば、ソーシャル・ネットワーキング・システムのユーザ、人以外の実体、コンテンツ項目、グループ、ソーシャル・ネットワーキング・システムのページ、イベント、メッセージ、(人、場所、物、抽象的なアイデア、もしくはコンセプトなどの)主題、または、映画、バンド、もしくは書籍などソーシャル・ネットワーキング・システムの他のオブジェクトであり得る。
【0003】
ソーシャル・グラフにおける複数のノードの間のエッジは、それらのノードの間の特定の種類の接続を表すが、それらのノードの一方によって他方に対して実行された行為の結果として生じ得る。ソーシャル・ネットワーキング・システムのユーザによるそのような行為の例には、ユーザ・プロファイルにソーシャル・ネットワーキング・システムのオブジェクトをリスト化すること、ソーシャル・ネットワーキング・システムのグループもしくはファン・ページに加入するもしくは参加すること、メッセージをソーシャル・ネットワーキング・システムの別のユーザに送ること、ソーシャル・ネットワーキング・システムのノードと関連する購入をすること、コンテンツ項目に関してコメントすること、またはイベントの招待に返事を出すこと(RSVP)が含まれる。
【0004】
ソーシャル・グラフの部分集合は、主題辞書を含み得る。主題辞書(以下では、「辞書」と称する)は、ユーザのステータス・メッセージから推論することができる可能性のあるそれぞれのトピックに対するノードを含む。例えば、辞書ノードは、特定の人々、場所、歴史的事件、時間もしくは日付、動物、植物、コンセプト、または任意の他の主題を表すことができる。複数の辞書ノードの間のエッジは、それらのノードによって表される主題の間の関係を示すことができる。例えば、あるエッジは、「犬」という辞書ノードを「動物」という辞書ノードに接続することにより、犬はあるタイプの動物だということを表すことができる。同様に、あるエッジは、「1942」という辞書ノードを「第2次世界大戦」というノードに接続することにより、第2次世界大戦が部分的には1942年に生じたことを表せる。本明細書で用いられている「トピック」とは、通信における1つもしくは複数の単語の定義、意味、または主題を指す。
【0005】
ソーシャル・ネットワーキング・システムによると、ユーザは、あるソーシャル・ネットワーキング・システムの空間の中で通信することが可能になり得る。例えば、ユーザは、ユーザ自身のプロファイルもしくはウォールに、または別のユーザのプロファイルもしくはウォールにメッセージをポストすることができ、ユーザ自身のコンテンツ項目もしくは別のユーザのコンテンツ項目(ウォール・ポスト、イメージ、動画、文書、その他など
)に関してコメントすることができ、インスタント・メッセージもしくは電子メールを別のユーザに送ることができ、グループ・ウォール上にもしくはファン・ページにメッセージをポストすることができ、1人または複数人の他のユーザに質問することができ、またはソーシャル・ネットワーキング・システムの中で任意の他の形式を有する通信も可能である。更に、通信がソーシャル・ネットワーキング・システムの外部で生じたとしても、ソーシャル・ネットワーキング・システムの中で、受信され、編成され、ユーザにルーティングすることが可能である。あるいは、通信がソーシャル・ネットワーキング・システムの内部から生じたとしても、ソーシャル・ネットワーキング・システムの外部に送信されることがあり得る。
【発明の概要】
【発明が解決しようとする課題】
【0006】
ソーシャル・ネットワーキング・システムのユーザによる通信は、多くの場合、単純なテキストであり、ユーザによって、確立されている主題と手作業で関連付けられることはない。これにより、ソーシャル・ネットワーキング・システムが通信を特定の主題と相関させる能力は制限されるし、通信との関係でユーザにこれらの相関を表示する機能も制限される。更に、単語は多くの意味を有し得るし、自動化されたトピック認識は、結果的に、不正確に決定された曖昧な単語の意味を生じさせる可能性がある。したがって、ソーシャル・ネットワーキング・システムとの情報の接続性の豊かさを向上させ、より楽しめて有用な経験をソーシャル・ネットワーキング・システムのユーザに提供するように、通信の単語の基礎にあるトピックを決定するソリューションに対する必要性が存在する。
【課題を解決するための手段】
【0007】
本発明の実施形態は、ソーシャル・ネットワーキング・システムの通信で論じられているトピックを推論する。一実施形態では、ソーシャル・ネットワーキング・システムのユーザから受け取られた通信(例えば、ポスト)において、アンカ用語が識別される。アンカ用語と一致する候補ノードが、辞書において識別される。この辞書では、それぞれの候補ノードが、アンカ用語に対する特定の意味を表している。一実施形態では、それぞれが主題を表す複数のノードを含む辞書が、データベースから作成される。辞書のノードを用いて、カテゴリ・ツリーもまた作成されることがあるが、このカテゴリ・ツリーは、アンカ用語の意味を表すものとしての考慮から候補ノードを除外するために用いられ得る。通信におけるアンカ用語のコンテキストが決定され、決定されたコンテキストに基づいて、それぞれの候補ノードに対して得点が決定される。ここで、アンカ用語のコンテキストには、アンカ用語の意味を決定する際に有益であり得るどのような情報もが含まれ得るのであり、例えば、このもしくは他の通信において用いられた他の用語に関する情報、アンカ用語の可能な意味に関連するユーザ・プロファイル情報、またはこの目的のために用いられる任意の他の情報などである。アンカ用語の意味を表す蓋然性が最も高い候補ノードが、決定された得点に基づいて選択され、次に、通信の推論されたトピックとして、この候補ノードがユーザの通信と関連付けられる。
【0008】
ソーシャル・ネットワーキング・システムは、推論されたトピックを有する複数の通信に関するソーシャル情報を用いて、推論されたトピックの精度を向上させることができる。例えば、ユーザの友人があるトピックについて話している場合には、そのユーザもまた、トピックについて同じように話している蓋然性が、より高い。したがって、本発明の実施形態は、通信におけるアンカ用語の意味を推論するときには、そのアンカ用語のソーシャル・コンテキストを考慮に入れる。本明細書で用いられているアンカ用語のソーシャル・コンテキストとは、通信元ユーザに接続されているユーザたちの通信におけるアンカ用語のコンテキストを含み得る。例えば、通信元ユーザに接続されているユーザたちの通信における他の用語、通信元ユーザに接続されているユーザたちの関心、またはアンカ用語の意味を決定するのに用いられた任意の他の情報などである。
【0009】
ソーシャル・ネットワーキング・システムは、ユーザに、そのユーザが通信をタイプしている間に、アンカ用語に対する意図されているトピックを明示的に識別するように促すことができる。本発明の実施形態は、候補ノードに、それがあるアンカ用語に対してユーザが意図している意味である蓋然性に基づいて、得点を与える。この得点は、ソーシャル・コンテキストを含めて本明細書に記載されているどのような技術にも基づくことがあり得る。システムは、ユーザに、候補ノードのメニューを提供することによって特定の候補ノードを選択することを促すが、このメニューは、決定された得点に従って順序が付けられていることがあり得る。
【図面の簡単な説明】
【0010】
図1】一実施形態によりソーシャル・ネットワーキング・システムの通信のトピックを決定する処理の図。
図2】一実施形態によりソーシャル・ネットワーキング・システムの通信のトピックを決定するのに適しているシステム環境の高位ブロック図。
図3】一実施形態によりソーシャル・ネットワーキング・システムの通信のための候補トピックを決定するのに用いられる主題辞書の図。
図4】一実施形態によりソーシャル・ネットワーキング・システムの通信のための候補トピックの組を刈り込むのに用いられるカテゴリ・ツリーの図。
図5】一実施形態によりソーシャル・ネットワーキング・システムの通信のトピックを決定する方法の例示的な実施形態。
図6】一実施形態によりソーシャル・ネットワーキング・システムの通信の用語のトピックを決定する方法を図解するフローチャート。
図7】一実施形態により主題辞書を作成する方法を図解するフローチャート。
図8】一実施形態によりソーシャル・コンテキストを用いてソーシャル・ネットワーキング・システムの通信の用語のトピックを決定する方法を図解するフローチャート。
図9】一実施形態により別のユーザの通信に基づき通信の用語のためのトピックを選択することをユーザに促すソーシャル・ネットワーキング・システムのインターフェースの例示的な実施形態。
図10】一実施形態により別のユーザの通信に基づき通信の用語のためのトピックを選択することをユーザに促す方法を図解するフローチャート。
【発明を実施するための形態】
【0011】
これらの図面は、説明の目的だけのために、本発明の様々な実施形態を示している。当業者であれば、以下の議論から、本明細書で図解されている構造や方法に関する代替的な実施形態を、本明細書で説明されている本発明の原理から逸脱することなく用いることができるということを容易に認識するであろう。
【0012】
全体像
ソーシャル・ネットワーキング・システムは、通常、ユーザがソーシャル・ネットワーキング・システムのコンテキストの内部と外部の両方にあるオブジェクトや他のユーザと相互作用することを可能にする機構を提供する。ソーシャル・ネットワーキング・システムのユーザは、個人か、または、企業その他、人以外の実体など任意のそれ以外の実体であり得る。ソーシャル・ネットワーキング・システムは、ユーザを表示しユーザがソーシャル・ネットワーキング・システムのオブジェクトおよび情報と相互作用することを可能にする一連の相互接続されたページから構成されるウェブベースのインターフェースを用い得る。例えば、ソーシャル・ネットワーキング・システムは、ソーシャル・ネットワーキング・システムのそれぞれのユーザのためのページを表示することがあり、その表示されるページは、ソーシャル・ネットワーキング・システムのそのユーザによって入力されたまたはそのユーザに関するオブジェクトおよび情報(例えば、ユーザの「プロファイル
」)から構成されている。また、ソーシャル・ネットワーキング・システムは、写真や動画を含むページを含むことがあるが、それらの写真や動画は、いくつかのコンセプトに向けられたものであったり、類似の関心を有するユーザ(「グループ」)に向けられたものであったり、または、他のユーザへの、他のユーザからの、もしくは他のユーザによる通信やソーシャル・ネットワーキング・システムの活動を含むものであったりする。ソーシャル・ネットワーキング・システムのページは、ソーシャル・ネットワーキング・システムの他のページへのリンクを含むことがあり、また、サーチ、リアルタイムでの通信、コンテンツ項目のアップロード、購入、広告、および任意の他のウェブベースの技術または機能など追加的な性能を含む場合もある。ソーシャル・ネットワーキング・システムのインターフェースはウェブ・ブラウザまたはウェブ・ブラウザではないアプリケーションからアクセス可能であり得ることに注意すべきである。なお、ウェブ・ブラウザではないアプリケーションとは、専用のソーシャル・ネットワーキング・システム用のモバイル・デバイスやコンピュータ・アプリケーションなどである。したがって、本明細書で用いられている「ページ」とは、ウェブ・ページ、アプリケーション・インターフェースもしくはディスプレイ、ウェブ・ページもしくはアプリケーション上に表示されるウィジット、ボックスもしくはそれ以外のグラフィカル・インターフェース、別のページ(ソーシャル・ネットワーキング・システムのコンテキストの内部でも外部でもあり得る)上のオーバレイ・ウィンドウ、またはそのソーシャル・ネットワーキング・システムの外部にありソーシャル・ネットワーキング・システムのプラグインもしくは統合性能を備えたウェブ・ページであり得る。
【0013】
上述したように、ソーシャル・グラフは、エッジ(相互作用、活動、または関連性を表す)によって相互接続されたノード(ソーシャル・ネットワーキング・システムのオブジェクトを表す)の組を含む。ソーシャル・ネットワーキング・システムのオブジェクトは、ソーシャル・ネットワーキング・システムのユーザ、人以外の実体、コンテンツ項目、グループ、ソーシャル・ネットワーキング・システムのページ、場所、アプリケーション、主題、コンセプト、または映画、バンド、もしくは書籍などソーシャル・ネットワーキング・システムの他のオブジェクトであり得る。コンテンツ項目は、ソーシャル・ネットワーキング・システムのユーザもしくはそれ以外のオブジェクトが作成する、アップロードする、編集する、または相互作用する任意のものを含む。例えば、メッセージ、待ち行列(キュー)に入れられたメッセージ(例えば、電子メール)、テキストおよびSMS(ショート・メッセージ・サービス)メッセージ、コメント・メッセージ、任意の他の適切なメッセージング技術を用いて送られたメッセージ、HTTPリンク、HTMLファイル、イメージ、動画、オーディオ・クリップ、文書、文書エディット、カレンダ・エントリまたはイベント、およびそれ以外のコンピュータ関係のファイルなどである。主題およびコンセプトは、ソーシャル・グラフのコンテキストでは、任意の人、場所、物、または抽象的なアイデアを表すノードで構成される。
【0014】
ソーシャル・ネットワーキング・システムは、ユーザが、そのユーザの興味に関する情報、教育および職務経験、連絡情報、ならびに他の履歴情報を、そのユーザのプロファイル・ページに入力して表示することを可能にすることができる。プロファイル・ページに含まれているそれぞれの学校、職場、興味(例えば、音楽、書籍、映画、テレビ番組、ゲーム、政治的意見、哲学、宗教、グループ、またはファン・ページ)、地理的位置、ネットワーク、または任意のそれ以外の情報は、ソーシャル・グラフにおけるノードによって表すことができる。ソーシャル・ネットワーキング・システムによると、ユーザは、写真、動画、文書、曲、またはそれ以外のコンテンツ項目をアップロードするまたは作成することができるようになり、また、イベントを作成して予定に組み込むことができるようになる。コンテンツ項目およびイベントは、ソーシャル・グラフにおけるノードによって表すことができる。
【0015】
ソーシャル・ネットワーキング・システムは、そのソーシャル・ネットワーキング・システムの中にある人以外のオブジェクトと相互作用する様々な手段を提供することができる。例えば、ユーザは、グループを形成するもしくはグループに参加することができるし、または、そのソーシャル・ネットワーキング・システムの中のファン・ページのファンになることができる。更に、ユーザは、ソーシャル・ネットワーキング・システムのオブジェクトを作成する、ダウンロードする、見る、アップロードする、リンクする、タグ付けする、編集する、またはプレイすることができる。ユーザは、そのソーシャル・ネットワーキング・システムのコンテキストの外にあるソーシャル・ネットワーキング・システムのオブジェクトと相互作用することができる。例えば、ニュースのウェブサイトにある記事は、ユーザがクリックすることができる「いいね(like)」ボタンを有している場合がある。このような例のそれぞれにおいては、ユーザとオブジェクトとの間の相互作用は、ユーザのノードとオブジェクトのノードとを接続するソーシャル・グラフにおけるエッジによって表すことができる。ユーザは、(モバイル・デバイス上のGPS受信機などの)位置検出機能を用いて、特定の位置に「チェックイン」することができ、エッジは、ソーシャル・グラフにおいて、ユーザのノードを位置のノードに接続することができる。
【0016】
ソーシャル・ネットワーキング・システムは、ユーザが、自分たちとそのソーシャル・ネットワーキング・システムの他のユーザとを関連付け、それらのユーザとの関係を確立することを可能にする。2人のユーザがソーシャル・ネットワーキング・システムにおいて関係を確立すると、それらのユーザは、ソーシャル・ネットワーキング・システムのコンテキストの中において、「友だち(friend)」(または「つながり(connection)」)になる。ソーシャル・ネットワーキング・システムにおいて友人であるということにより、ユーザは、そうでない場合に関係のないユーザにとって利用可能であるよりも、相互についてのより多くの情報にアクセスすることができるようになる。例えば、友人であることで、ユーザは、別のユーザのプロファイルを見ること、別のユーザの友人に会うこと、または別のユーザの写真を見ることができるようになる場合がある。同様に、ソーシャル・ネットワーキング・システムにおいて友人になることによって、ユーザは、電子メール(そのソーシャル・ネットワーキング・システムの内部および外部の)、インスタント・メッセージ、テキスト・メッセージ、電話、または任意のそれ以外の通信インターフェースなど、別のユーザと通信するためのより大きなアクセスが許されることになり得る。最後に、友人であることにより、別のユーザによってアップロードされたコンテンツ項目を、見る、コメントする、ダウンロードする、支持する、またはそれ以外の態様で相互作用するためのアクセスが、ユーザに許される。ソーシャル・ネットワーキング・システムのコンテキストの中で、関係を確立すること、ユーザ情報を評価すること、通信すること、および相互作用することは、ソーシャル・ネットワーキング・システムの2人のユーザを表すノードの間のエッジによって表すことができる。
【0017】
ソーシャル・ネットワーキング・システムにおいて関係を明確に確立することに加えて、共通の特性を備えている複数のユーザは、通信のトピックを決定する際に用いられるソーシャル・コンテキストを決定する目的で、接続されていると考えられる場合がある。一実施形態では、共通のネットワークに属する複数のユーザは、接続されていると考えられる。例えば、同じ学校に通う、同じ会社で働く、またはソーシャル・ネットワーキング・システムの同じグループに属する複数のユーザは、接続されていると考えることができる。一実施形態では、共通の履歴上の特徴を有する複数のユーザは、接続されていると考えられる。例えば、ユーザが生まれたまたは住んでいる地理的地域、ユーザの年齢、ユーザの性別、およびユーザの関係ステータスは、ユーザが接続されているかどうかを決定するのに用いることができる。一実施形態では、共通の関心を有する複数のユーザは、接続されていると考えられる。例えば、ユーザの映画の好み、音楽の好み、政治的立場、宗教的立場、または任意のそれ以外の関心は、ユーザが接続されているかどうかを決定するのに
用いることができる。一実施形態では、ソーシャル・ネットワーキング・システムの中で共通の行為を行った複数のユーザは、接続されていると考えられる。例えば、共通のオブジェクトを支持するまたは推薦する、共通のコンテンツ項目に対してコメントする、または共通のイベントに参加する(RSVP)複数のユーザは、接続されていると考えることができる。ソーシャル・ネットワーキング・システムは、以下で詳細に述べられるように、特定のユーザの通信のソーシャル・コンテンツを決定するまたは評価するために、ソーシャル・グラフを用いて特定のユーザと接続されているユーザを決定することができる。
【0018】
ソーシャル・ネットワーキング・システムは、様々な通信チャネルをユーザに提供することができる。例えば、ソーシャル・ネットワーキング・システムは、ユーザが1人もしくは複数の他のユーザに電子メール、インスタント・メッセージ、またはテキスト/SMSメッセージを送ることを可能にし、ユーザがそのユーザ自身のウォールもしくはプロファイルまたは別のユーザのウォールもしくはプロファイルにメッセージをポストすることを可能にし、ユーザがグループもしくはファン・ページにメッセージをポストすることを可能にし、またはユーザがそのユーザ自身もしくは別のユーザによって作成されたもしくはアップロードされたイメージ、ウォール・ポストまたはそれ以外のコンテンツ項目にコメントすることを可能にする。一実施形態では、ユーザは、そのユーザ自身のプロファイルに、現在のイベント、心の状態、考え、感情、活動、または任意のそれ以外の現時点で関連する通信を示すステータス・メッセージをポストする。ソーシャル・ネットワーキング・システムは、ユーザが、そのソーシャル・ネットワーキング・システムの内部と外部の両方に通信することを可能にすることがあり得る。例えば、第1のユーザが第2のユーザに、ソーシャル・ネットワーキング・システムの中でのメッセージ、ソーシャル・ネットワーキング・システムを介しての電子メール、ソーシャル・ネットワーキング・システムの外部へのしかしそのソーシャル・ネットワーキング・システムから送信される電子メール、ソーシャル・ネットワーキング・システムの中でのインスタント・メッセージ、およびソーシャル・ネットワーキング・システムの外部へのしかしそのソーシャル・ネットワーキング・システムから送信されるインスタント・メッセージを、送ることができる。更に、第1のユーザは第2のユーザのプロファイル・ページにコメントする、または、第2のユーザによってアップロードされたコンテンツ項目など第2のユーザと関連するオブジェクトに対してコメントすることができる。ソーシャル・ネットワーキング・システムの中の任意の通信における用語に対するトピックは、以下でより詳細に述べられるように決定することができる。
【0019】
図1は、一実施形態によりソーシャル・ネットワーキング・システムの通信のトピックを決定する処理に関する図である。図1の実施形態では、ソーシャル・ネットワーキング・システムのユーザ100が、ソーシャル・ネットワーキング・システムのコンテキストの中で、通信105を作成する。通信105はアンカ用語モジュール110によって受け取られ、アンカ用語モジュール110は通信105をパージング(構文解析)してアンカ用語を識別する。アンカ用語とは、通信105における単語またはそれ以外の英数字のグループであり、その意味は、図1の実施形態の処理によって決定される。一実施形態では、単一の通信105において複数のアンカ用語が識別される。ただし、単純化する目的のために、本明細書での記述の残りの部分においては、単一のアンカ用語が識別される場合に限定する。
【0020】
アンカ用語モジュール110は、あるアンカ用語に対する候補トピックを表す相互接続されたノードを含む辞書を含む辞書記憶モジュール140に結合され得る。辞書のノードは、上述したように、複数のノードの間の関連性に基づいて接続され得る。一実施形態では、アンカ用語モジュール110は、受け取られた通信105において、辞書記憶モジュール140に記憶されている辞書における1つまたは複数の関連するノードを用いて通信105においてある用語を識別することにより、アンカ用語を識別する。例えば、通信1
05が「がんばれシャークス!」というテキストを含む場合には、アンカ用語モジュール110は、辞書に質問して、「シャークス」という用語を含むノードを識別することができる。この例では、辞書は、(動物の)サメ、サンノゼ・シャークス(ホッケー・チーム)、ジャンピング・ザ・シャーク(テレビ業界における業界用語であるテレビ番組の評価が下降する転換点)、ローン・シャーク(高利貸し)などのノードを識別するクエリに応答する可能性がある。アンカ用語モジュール110は、辞書にクエリを発する前にアンカ用語を識別する場合と、または、クエリに対する辞書からのフィードバックを受け取ったことに応答してアンカ用語を識別する場合とがあり得る。いずれの実施形態においても、アンカ用語モジュール110は、辞書記憶モジュール140から受け取られた識別された辞書ノードを、候補ノード115として出力することができる。本明細書で用いている「候補ノード」とは、識別されたアンカ用語に対する潜在的な意味を表す。
【0021】
一実施形態では、候補ノード刈り込みモジュール120が、アンカ用語モジュール110から候補ノード115を受け取り、ユーザ100から通信105を受け取り、アンカ用語とは関連しないと判断される特定の候補ノードを除外し、残った候補ノードを関連する候補ノード125として出力する。候補ノード刈り込みモジュール120は、それぞれの候補ノード115を考慮して、通信105におけるアンカ用語以外の用語を識別し分析することにより関連しない候補ノードを識別する。候補ノード刈り込みモジュール120は、候補ノードと通信105における識別された用語との間の類似性または関連性の尺度を決定するのに、カテゴリ・ツリーを用いることができる。候補ノード刈り込みモジュール120は、カテゴリ・ツリーから受け取られた類似性または関連性の尺度に基づいて、1つまたは複数の候補ノード115を取り除くことができ、残りの候補ノードが、関連する候補ノード125として出力される。
【0022】
得点モジュール120は、候補ノード刈り込みモジュール120から関連する候補ノード125を受け取り、それらの関連する候補ノード125の中から、アンカ用語の意味を表す蓋然性が最も高い候補ノードを1つ選択する。一実施形態では、得点モジュール130は、受け取られた関連する候補ノード125のそれぞれに対して得点を生成する。候補ノードの得点は、通信105におけるアンカ用語に対するコンテキスト単語、ユーザの関心、グローバルな通信コンテキスト、およびソーシャル通信コンテキストに基づき得る。得点モジュール130は、次に、生成された候補ノードの得点に基づいて候補ノードを選択し、選択された候補ノードをトピック・ノード135として出力する。トピック・ノード135は、アンカ用語の意味を最もよく表す辞書ノードである。
【0023】
システム・アーキテクチャ
図2は、一実施形態によりソーシャル・ネットワーキング・システムの通信のトピックを決定するのに適しているシステム環境の高位ブロック図である。このシステム環境は、クライアント・デバイス210a、210b、および210cと、接続のためのネットワーク200を経由して通信するソーシャル・ネットワーキング・システム220とを含む。接続のためのネットワーク200は、インターネット、ローカル・エリア・ネットワーク、またはモジュールの間での通信を可能にする任意の他のネットワークであり得る。接続のためのネットワーク200は、標準的な通信技術および/またはプロトコルを用いることができる。
【0024】
クライアント・デバイス210は、携帯電話、ラップトップ、デスクトップ、ネットブック、タブレット、ケーブル・ボックス、またはテレビなど、ソーシャル・ネットワーキング・システムのコンテンツを送信または受信することができる任意のタイプのコンピューティング・デバイスを含み得る。図2にはクライアント・デバイス210が3つだけ示されているが、任意の数のクライアント・デバイスを一度にソーシャル・ネットワーキング・システム230に接続して通信を行うことができる。クライアント・デバイス210
のユーザは、ウェブ・ブラウザやネイティブなアプリケーションなどのアプリケーションを経由してソーシャル・ネットワーキング・システム230と相互作用し、コンテンツのブラウジング、通信のポストおよび送信、他のユーザとの通信の確立などソーシャル・ネットワーキング・システムの動作を実行する。
【0025】
ソーシャル・ネットワーキング・システム220は、1つまたは複数のウェブ・サーバ上に存在する複数のページを含み得る。これらの複数のページが、ソーシャル・ネットワーキング・システムの情報を提供することができる。例えば、これらのページは、ユーザ・プロファイル、グループ・プロファイル、ファン・プロファイル、およびそれ以外のソーシャル・ネットワーキング・システムと関係するページのためのページを含み得る。これらのページは、ユーザの行為、プロファイル情報、関係情報、通信情報、グループ情報、ファン・ページ情報、推奨(endorsement)情報、およびコンテンツ項目をこれらに限定されるわけではないが含むオブジェクトおよび相互作用データだけでなく、通信、個人情報、ユーザ設定、グループ設定、サーチ結果、および広告など様々なソーシャル・ネットワーキング・システムのデータを含み得る。
【0026】
図2の実施形態におけるソーシャル・ネットワーキング・システム220は、辞書作成モジュール225、カテゴリ・ツリー作成モジュール230、通信モジュール235、構文解析モジュール240、刈り込みモジュール245、得点モジュール250、グローバル・コンテキスト・モジュール255、ソーシャル・コンテキスト・モジュール260、およびソーシャル・コンテキスト・プロンプト・モジュール265を含む。更に、ソーシャル・ネットワーキング・システム220は、ソーシャル・グラフ・データ記憶モジュール270、辞書記憶モジュール140、およびカテゴリ・ツリー記憶モジュール150を含む。代替的な構成では、異なるおよび/または追加的/より少数のモジュールが、ソーシャル・ネットワーキング・システム220に含まれることがあり得る。例えば、グローバル・コンテキスト・モジュール255とソーシャル・コンテキスト・モジュール260の機能が、得点モジュール250によって実行されることもあり得る。
【0027】
辞書作成モジュール225は、ソーシャル・ネットワーキング・システム220によって、通信の用語のトピックを決定する際に用いられる主題辞書を構築するのに用いられる。一実施形態では、辞書が、ソーシャル・グラフ・データ記憶モジュール270に、ソーシャル・グラフの部分集合として記憶される。あるいは、この辞書が、辞書記憶モジュール140に、ソーシャル・グラフとは独立に記憶されることもある。上述したように、この辞書は、複数のノードの間の関連性を表すエッジによって接続されている相互接続されたノードの組を含む。
【0028】
辞書作成モジュール225は、辞書を一旦作成して、その辞書を時間の経過と共に組織的に更新するか、または、新たな辞書を一定周期ごとにゼロから作成することができる。一実施形態では、辞書作成モジュール225は、ウィキペディアなどの公衆に利用可能なデータベースに基づいて辞書を作成する。この実施形態では、それぞれのウィキペディアのページが辞書における1つのノードによって表され、ある与えられたページの中でリンクされているウィキペディアのページを表すノードは、その与えられたページを表すノードにエッジによって接続される。
【0029】
一実施形態では、辞書作成モジュール225は、公衆に利用可能なデータベースに基づいて辞書を作成し、ソーシャル・グラフに基づいて、その辞書を増大させる。例えば、辞書作成モジュール225は、ウィキペディアの中では相互にリンクされていない会社Aと会社Bとに対するウィキペディアのページを識別して、会社Aを表すノードと会社Bを表すノードとが相互にリンクされていない辞書を作成することがあり得る。この例で、辞書作成モジュール225は、ソーシャル・グラフを用いて、辞書を修正することができる。
例えば、会社Aと会社Bとがソーシャル・ネットワーキング・システム220を通じてジョイント・プロモーションを行う場合には、ソーシャル・ネットワーキング・システム220において会社Aを表すノードと会社Bを表すノードとを、このプロモーションを表すエッジによって接続することが可能である。この例では、辞書作成モジュール225は、ソーシャル・グラフにおいてプロモーションを表すエッジを認識し、辞書において会社Aを表すノードと会社Bを表すノードとをエッジを用いて接続することが可能になる。
【0030】
上述した通り、辞書は、ソーシャル・グラフの部分集合として、ソーシャル・グラフに記憶することが可能である。この実施形態では、辞書作成モジュール225は、ソーシャル・グラフの進展に応じて、辞書を集成する。辞書作成モジュール225は、辞書を作成するのに用いられた公衆に利用可能なデータベースを周期的に走査(スキャン)して、その公衆に利用可能なデータベースのコンテンツの変化に基づき、辞書ノードの間のエッジを追加または削除することができる。辞書作成モジュール225は、通信の用語と辞書ノードとの間でのユーザによる明示的な関連付けに基づいて、辞書ノードの間のエッジを追加することがあり得る。例えば、ユーザが、「AT&Tパークでアイスクリーム・サンドイッチを買いました!」という通信を作成する場合があり得るが、その場合、「アイスクリーム・サンドイッチ」という用語とアイスクリーム・サンドイッチを表すノードとを関連付けることができ、また、「AT&Tパーク」という用語とサンフランシスコ・ジャイアンツの本拠地球場を表すノードとを関連付けることができる。この例では、辞書作成モジュール225は、AT&Tパークのノードとアイスクリーム・サンドイッチのノードとの間のエッジを作成することができる。
【0031】
図3は、一実施形態による例示的な主題辞書の図である。図3の実施形態では、例示的な辞書はノードA〜Hを含む。ノードAは、ノードAとノードCとの間の関連性を表すエッジとノードAとノードEとの間の関連性を表すエッジとによって、ノードCとノードEとに接続されている。既に論じたように、ノードA、ノードC、およびノードEは、ウィキペディアにおける記事を表すことができる。図3の実施形態では、ノードAによって表される記事は、ノードCによって表される記事へのリンクと、ノードEによって表される記事へのリンクとを含み得るが、このことは、ノードAをノードCに接続するエッジと、ノードAをノードEに接続するエッジとによって表される。
【0032】
カテゴリ・ツリー作成モジュール230は、ソーシャル・ネットワーキング・システム220によって、アンカ用語の意味として考察する際に候補辞書ノードの数を減少させるのに用いられるカテゴリ・ツリーを作成するのに用いられる。カテゴリ・ツリー作成モジュール230によって作成されるカテゴリ・ツリーは、カテゴリ・ツリー記憶モジュール150に記憶されるか、または、ソーシャル・グラフの主題として、ソーシャル・グラフ・データ記憶モジュール270に記憶され得る。一実施形態では、カテゴリ・ツリーは、辞書におけるすべてのノードの階層的な編成であり、それぞれのノードはただ1つの親ノードと任意の数の子ノードとを有し、それぞれのノードはノードの親ノードによって表される主題の部分集合を表す。
【0033】
一実施形態では、カテゴリ・ツリー作成モジュール230は、ウィキペディアなどのデータベースのカテゴリ的なおよび階層的な編成を利用して、カテゴリ・ツリーを作成する。一実施形態では、カテゴリ・ツリー作成モジュール230は、それぞれの辞書ノードに対して、「最良の」親ノードを決定する。例えば、データベースは、カテゴリ・ツリーに変換することが可能なカテゴリ・グラフを含むことがある。データベースにおけるそれぞれのノードは複数個の潜在的親ノードを有する場合があるが、その場合、カテゴリ・ツリーにおいて用いるために1つの親ノードを決定するには、それぞれの潜在的な親ノードに対して得点を計算することと、計算された得点が最も高い潜在的な親ノードを選択することとが含まれ得る。
【0034】
特定の子ノードの潜在的親ノードに対する得点を計算するのは、複数のファクタに基づくことがあり得る。一実施形態では、潜在的な親ノードであって、その潜在的な親ノードの子ノードまたは親ノードと(つまり、祖父母ノードから子ノードまでを考えて)共通する名詞、名詞句、動詞、動詞句、形容詞、形容詞句、副詞、および副詞句を有するノード・タイトルを有するような潜在的な親ノードは、そのような共通する文法的構成を有していない潜在的親ノードよりも、高い得点を得る。一実施形態では、「アメリカ合衆国における大学スポーツ(College sports in the United States)」のように、「BにおけるA(A in B)」という形式を有する潜在的親ノードは、他の形式のノードよりも高い得点を得る。同様に、「ピカソによる絵画(Paintings by Picasso)」のように、「BによるA(A by B)」という形式を有する潜在的親ノードは、他の形式のノードよりも高い得点を得る。一実施形態では、「大学スポーツ(College sports)」のように、ノード・タイトルにおいて複数の用語を有する潜在的親ノードは、ノード・タイトルにおいて複数の用語を有していないノードよりも高い得点を得る。一実施形態では、第2の潜在的親ノードよりも多くの子ノードを有している第1の潜在的親ノードは、第2の潜在的親ノードよりも高い得点を得る。
【0035】
図4は、一実施形態による例示的なカテゴリ・ツリーの図である。図4の実施形態では、この例示的なカテゴリ・ツリーはノードaを含み、ノードaは子ノードb1、b2、およびb3を有する。同様に、ノードb1は子ノードcを有していて、ノードcは今度は子ノードf1およびf2を有する、などである。図4の実施形態のカテゴリ・ツリーは、4つの階層レベルに編成されているが、他のカテゴリ・ツリーは任意の数のノードと階層レベルとを有することがあり得る。
【0036】
カテゴリ・ツリーにおける任意の2つのノードの間の「距離」とは、そのカテゴリ・ツリーにおけるそれら2つのノードの間の最小エッジ数である。例えば、ノードf1とノードe2との間の距離は5であり、これは、ノードf1とノードcとの間のカテゴリ・ツリーにおける第1のエッジ、ノードcとノードb1との間の第2のエッジ、ノードb1とノードaとの間の第3のエッジ、ノードaとノードb3との間の第4のエッジ、およびノードb3とノードe2との間の第5のエッジを表している。
【0037】
通信モジュール235は、ソーシャル・ネットワーキング・システム220のユーザが、ソーシャル・ネットワーキング・システム235の中で通信を作成することを可能にする。通信モジュール235は、通信を入力するために、ソーシャル・ネットワーキング・システムのあるページの中にGUIを含み得る。例えば、通信モジュール235は、ソーシャル・ネットワーキング・システム220に後でアップロードされる通信を入力するためのソーシャル・ネットワーキング・システムのあるウェブ・ページまたはアプリケーションの中に、テキスト・フィールドを提供することができる。あるいは、通信モジュール235によって、ユーザが、ソーシャル・ネットワーキング・システム220の外部において通信を作成し、その通信をソーシャル・ネットワーキング・システム220に送信することが可能になる場合もある。例えば、ユーザが通信をテキスト/SMSメッセージ経由でソーシャル・ネットワーキング・システム220に送る場合には、通信モジュール235は、その通信を受け取り、その通信を適切に記憶/ルーティングする。
【0038】
通信モジュール235は、ユーザが、様々な通信を作成することを可能にする。例えば、通信モジュール235により、ユーザは、電子メール、インスタント・メッセージ、テキスト/SMSメッセージ、ウォール・ポスト、ステータス・メッセージ、またはテキストを含む任意の他のタイプの通信を作成することができるようになる。通信モジュール235により、ユーザが通信を別のユーザに宛てることや、ユーザのウォール上へのポスト
のように、別のユーザには宛てられていない通信を作成することが可能になる。通信モジュール235によると、ユーザは、別のユーザまたはオブジェクトと通信における用語とを明示的に関連付けることにより、他のユーザや他のオブジェクトを通信においてタグ付けすることが可能になる。例えば、ユーザが「サブウェイでマイケル・ジョンソンと食事」というポストを行うと、「サブウェイ」という用語を、サブウェイ・レストランを表す辞書またはソーシャル・グラフにおけるノードとタグ付けし、「マイケル・ジョンソン」という用語を、そのユーザのマイケル・ジョンソンという名前の友人を表す辞書またはソーシャル・グラフにおけるノードとタグ付けすることができる。
【0039】
構文解析(パージング)モジュール240は、通信を複数の用語の組に構文解析し、構文解析された用語のうちの1つまたは複数をアンカ用語として選択する。一実施形態では、構文解析モジュール240は、通信を、その通信の中の単語によって構文解析する。例えば、「ザ・サンフランシスコ・ジャイアンツがわたしの好みのチームです(The SF Giants are my favorite team)」という通信は、「ザ(The)」、「サンフランシスコ(SF)」、「ジャイアンツ(Giants)」、「が(Are)」、「わたしの(My)」、「好みの(Favorite)」、「チーム(Team)」という7つの用語に構文解析され得る。一実施形態では、構文解析モジュール240は、通信を、2つまたはそれより多くの用語の組み合わせによって、構文解析する。前の例に続けて、構文解析モジュール240は、与えられた通信から、「サンフランシスコ・ジャイアンツ」という用語を、更に構文解析し得る。構文解析モジュール240は、通信を、単語とは独立に、複数の用語に構文解析することがあり得る。例えば、構文解析モジュール240は、通信を、6つの文字からなる用語など固定された文字の用語に構文解析することがあり得るし、または、通信を、通信における空白に基づいて用語に構文解析することもあり得る。例えば、構文解析モジュール240は、「b4 わたしが その 店 に 行く、どう any1 何か 必要(b4 i go to the store, does any1 need anything)」という通信を、「b4」と「any1」という用語を含むように構文解析することができる。
【0040】
構文解析モジュール240は、ある通信を構文解析する前に、その通信から単語を取り除く場合がある。一実施形態では、構文解析モジュール240は、ある通信を構文解析する前に、その通信から、前置詞、接続詞、間投詞、および/または冠詞を除外する。一実施形態では、構文解析モジュール240は、通信を構文解析する前に、形容詞および/または代名詞をその通信から取り除く。一実施形態では、構文解析モジュール240は、通信を構文解析する前に、その通信から名詞以外のすべての用語を取り除く。構文解析モジュール240は、通信を構文解析する前に、その通信から単語の所定の組における単語を取り除くことがある。構文解析モジュール240は、構文解析の前に、通信における単語のスペルチェックを行い、誤って綴られたまたは省略形の単語を、正確に綴られている単語と交換することがあり得る。例えば、「Juptier」という単語は「Jupiter」と交換され、「l8er」という単語は「later」と交換され得る。
【0041】
構文解析モジュール240は、ある通信を用語の組に構文解析した後で、それらの用語の内の1つをアンカ用語として選択する。既に論じたように、ここで論じている原理は、構文解析モジュール240が与えられた通信に対して複数個のアンカ用語を選択するような実施形態にも応用される。しかし、単純化の目的だけのために、ここでの議論の残りの部分では、構文解析モジュール240がアンカ用語を1つだけ選択する実施形態に限定して論じることにする。一実施形態では、通信における第1のアンカ用語が選択され、第1のアンカ用語の意味が決定され、その後で、同じ通信において第2のアンカ用語が選択される。
【0042】
構文解析モジュール240は、アンカ用語を複数の方法で選択することができる。一実
施形態では、構文解析モジュール240は、用語の組における最初の用語をアンカ用語として選択する。あるいは、構文解析モジュール240が、既に決定されている意味を有する用語の組において用語を識別して、意味がまだ決定されていない用語の組における最初の用語を選択する場合もある。一実施形態では、構文解析モジュール240は、アンカ用語を選択する前に辞書において用語の組の中のそれぞれの用語を参照し、辞書の結果の最も曖昧なまたは最も曖昧でない組を結果として生じるような用語を選択することがある。
【0043】
構文解析モジュール240は、辞書における用語を参照して、その用語と関連する辞書ノードを識別する。構文解析モジュール240は、辞書記憶モジュール140に記憶されている辞書において用語を参照することができるし、または、ソーシャル・グラフ・データ記憶モジュール270にソーシャル・グラフの部分集合として記憶されている辞書において用語を参照することができる。一実施形態では、辞書において用語を参照することは、その用語を用いて辞書のキーワード・サーチを実行することを含む。例えば、「ベアーズ(Bears)」という用語を用いて辞書に対してクエリが発せられる場合には、「ベアーズ」という単語をタイトルに含むすべての辞書ノードが返されることになり得る。例えば、シカゴ・ベアーズ、カリフォルニア・ベアーズ、およびバンドの「ザ・ベアーズ(The Bears)」を表すノードなどである。一実施形態では、辞書において用語を参照することは、更に、その用語の一般的な変形例を用いて辞書のキーワード・サーチを実行することを含む。例えば、その用語の複数形、その用語の単数形、その用語の過去形、その用語の未来形、その用語の現在形などである。先ほどの例を用いると、辞書にクエリを発することには、更に、タイトルに「ベア(Bear)」という単語を含むノードに対してサーチをすることが含まれ、映画の「ザ・ベア(The Bear)」とテレビ・ホストのベア・グリルズとを表すノードのリターンが結果的に生じ得る。一実施形態では、辞書において用語を参照することは、その用語の同義語を辞書で参照することを含む。例えば、「セル・フォン」という用語を用いて辞書にクエリを発することは、「セル・フォン」、「モバイル・フォン」、「ワイヤレス・フォン」、「セル」、「フォン」などの用語について、辞書をキーワード・サーチすることを含むことがあり得る。
【0044】
構文解析モジュール240は、用語を用いて辞書にクエリを発することに応答して、辞書から辞書ノードの組を受け取る。既に論じた通り、構文解析モジュール240は、辞書にクエリを発する前に、またはクエリを発した後に、アンカ用語を選択することができる。後者の実施形態においては、構文解析モジュール240は、構文解析された用語の組からの複数の用語を用いて辞書にクエリを発し、それに応答して、辞書からの辞書ノードの複数の組を受け取る。構文解析モジュール240は、辞書ノードの受け取られた組に基づいて、別の用語を選択する場合がある。例えば、構文解析モジュール240は、どの用語が辞書ノードの最小の受け取られた組と関連するのかに基づいて、または、どの用語が辞書ノードの最大の受け取られた組と関連するのかに基づいて、アンカ用語を選択することができる。
【0045】
構文解析モジュール240は、アンカ用語に対して候補辞書ノードの組を決定する。候補ノードの組におけるそれぞれの候補ノードは、アンカ用語に対する可能性のある意味を表す。一実施形態では、候補ノードの組におけるそれぞれの候補ノードには、トピック・ノードとして選択するために得点が与えられる。別の実施形態では、候補ノードの組が、得点が与えられる前に、刈り込みモジュール245によって分析され、縮小される。この実施形態では、刈り込みモジュール245は、カテゴリ・ツリー記憶モジュール150に記憶されている、またはソーシャル・グラフ記憶モジュール270に記憶されているソーシャル・グラフの部分集合として記憶されているカテゴリ・ツリーにクエリを発し、候補ノードの組を縮小する。
【0046】
刈り込みモジュール245は、通信において、アンカ用語以外の1つまたは複数の構文
解析された用語を選択し、そのようにして選択された1つまたは複数の構文解析された用語とそれぞれの候補ノードとを用いてカテゴリ・ツリーに質問する。一実施形態では、刈り込みモジュール245は、通信においてアンカ用語に隣接している用語を選択する。一実施形態では、刈り込みモジュール245は、アンカ用語から所定の距離の範囲内にある用語を選択する。例えば、刈り込みモジュール245は、アンカ用語から3つの用語の範囲内にある1つまたは複数の用語を選択することがあり得る。この例では、「今日モールで映画タイタニックを買いました(Bought the movie Titanic
at the mall today)」という通信と「モール(mall)」というアンカ用語とに対して、刈り込みモジュール245は、「モール」から3つの用語の範囲内にあるという理由で「タイタニック(Titanic)」という用語を選択し、「モール」から3つの用語の範囲内にないという理由で「映画(movie)」を選択しない、ということがあり得る。あるいは、候補ノード刈り込みモジュール120は、通信105におけるアンカ用語以外のすべての用語を選択することがあり得る。
【0047】
それぞれの候補ノードに対して、刈り込みモジュール245は、刈り込みモジュール245によって選択された1つまたは複数の通信の用語と候補ノードとを用いて、カテゴリ・ツリーにクエリを発し、候補ノードと1つまたは複数の選択された用語との間の類似性または関連性の尺度を決定する。一実施形態では、カテゴリ・ツリーは、上述したように、階層的に編成された辞書ノードの組を含む。この実施形態では、候補ノードと1つまたは複数の選択された用語との間の類似性または関連性の尺度は、候補ノードと刈り込みモジュール245によって選択された1つまたは複数の通信の用語のうちの1つを表すノードとの間のカテゴリ・ツリーのエッジの数を表す距離である。
【0048】
刈り込みモジュール245は、類似性または関連性の受け取られた尺度に基づき、アンカ用語の意味を表す蓋然性が最も高いトピック・ノードとしての考慮から、候補ノードを取り除く。一実施形態では、刈り込みモジュール245は、刈り込みモジュール245によって選択された通信の用語との類似性または関連性の所定の閾値または相対的な閾値を満たさない候補ノードを、取り除く。例えば、刈り込みモジュール245は、通信における選択された用語を表すノードからの平均距離が5またはそれより大きな候補ノードを取り除くことがあるし、または、選択された用語に最も類似していないまたは最も関連していない3つの候補ノードを取り除くことがある。刈り込みモジュール245によって取り除かれた候補ノードは、トピック・ノードとしての選択のために記憶されることはない。
【0049】
得点モジュール250は、通信における他の用語、ユーザの関心および好み、グローバルな通信コンテキスト、およびソーシャル通信コンテキストに基づいて、候補ノードに対する得点を作成し、作成された候補ノードの得点に基づいて、アンカ用語の意味を最もよく表すと判断されるトピック・ノードとして、候補ノードを1つ選択する。一実施形態では、得点モジュール250は、グローバル・コンテキスト・モジュール255からグローバルな通信コンテキストを受け取り、ソーシャル・コンテキスト・モジュール260からソーシャル通信コンテキストを受け取る。別の実施形態では、得点モジュール250は、グローバル・コンテキスト・モジュール255とソーシャル・コンテキスト・モジュール260とによって後で調節される候補ノードの得点を作成する。得点モジュール250は、それぞれの候補ノードに対して、ある得点を作成し、それを維持することもあり得る。一実施形態では、得点モジュール250によって作成された得点は、数字であって、0から1までの範囲にある。得点モジュール250は、それぞれの候補ノードに、例えば0.5である初期得点を割り当てる場合もある。一実施形態では、得点モジュール250は、分析されたそれぞれの追加的なファクタに対して、初期の候補ノードの得点を調節する。
【0050】
得点モジュール250は、最も高い候補ノードの得点を有する候補ノードを、アンカ用語の意味を最もよく表すトピック・ノードとして選択することがあり得る。一実施形態で
は、得点モジュール250は、識別された1つのアンカ用語に対して1回、トピック・ノードを選択する。別の実施形態では、得点モジュール250は、候補ノードに対して得点を再度作成することがあり得るし、また、あるユーザがアンカ用語を含む通信を見るたびに、1つの候補ノードを、トピック・ノードとして再度選択することがあり得る。例えば、アンカ用語を含む通信を含むニュースフィードがリフレッシュされるたびに、得点モジュール250は、候補ノードの得点を作成して調整することがあり得るし、最も高い得点を有する候補ノードを選択することもあり得る。
【0051】
候補ノードの得点は、通信におけるアンカ用語と関連するコンテキスト単語に基づくことがあり得る。一実施形態では、得点モジュール250は、通信におけるアンカ用語を修飾する動詞を分析する。例えば、「ハリー・ポッターを見ています(Watching Harry Potter)」という通信におけるアンカ用語である「ハリー・ポッター」に対して、得点モジュール250は、ハリー・ポッターの映画と関連する候補ノードの方に、ハリー・ポッターの書籍と関連する候補ノードよりも高い得点を与えることがあり得るが、この理由は、「見ている」という動詞が、書籍ではなくて映画を含意するからである。一実施形態では、ソーシャル・ネットワーキング・システム220における通信は、候補ノードに得点を与えて特定の辞書ノードと関連する特定の動詞、形容詞、または他の用語を決定する前に、練習用のフレーズにおいて分析される。この実施形態では、練習用のフレーズの用語/ノードの関係データが、通信におけるコンテキスト単語に基づいて候補ノードを決定する際に用いられる。
【0052】
候補ノードの得点は、通信におけるアンカ用語以外の用語と候補ノードとの間の関連性に基づくことがあり得る。一実施形態では、候補ノードの得点は、アンカ用語以外の通信の用語と刈り込みモジュール245によって決定された候補ノードとの間の類似性または関連性の尺度に基づくことがあり得る。例えば、カテゴリ・ツリーにおいて他の通信の用語との間の平均距離が3である第1の候補ノードは、カテゴリ・ツリーにおいて他の通信の用語との間の平均距離が5である第2の候補ノードよりも、大きな得点が与えられることがある。一実施形態では、候補ノードの得点は、候補ノードと通信におけるアンカ用語以外の用語を表すノードとの間の経路の数に基づくことがあり得る。一実施形態では、候補ノードの得点は、候補ノードによって表されているウィキペディアの記事と通信におけるアンカ用語以外の用語を表すノードとが、「ウィキペディアとのリンクについて学ぶ」(http://www.cs.waikato.ac.nz/〜dnk2/publications/CIKM08−LearningToLinkWithWikipedia.pdf)において論じられているように、関連している確率に基づくことがあり得る。
【0053】
候補ノードの得点は、ユーザの関心、履歴情報、地理的情報、またはソーシャル・ネットワーキング・システムでの活動に基づき得る。一実施形態では、得点モジュール250は、ユーザによってユーザのプロファイルに入力された情報などユーザの関心情報を検索し、検索されたプロファイル情報に基づいて候補ノードの得点を調節する。例えば、「シャークス(ホッケー・チーム)」という候補ノードは、ユーザが「サンノゼ・シャークス」をユーザのプロファイルの好きなスポーツ・チームのセクションに入力している場合、ユーザが「ホッケー」をユーザのプロファイルの趣味のセクションに入力している場合、またはユーザが「シャークス ホッケー」のグループに参加している場合には、「シャークス(動物のサメ)」の候補ノードよりも高い得点を与えられることがあり得る。ソーシャル・ネットワーキング・システム220のユーザと関連するどのような情報でも、候補ノードの得点を作成および/または調節するのに用いられ得るのであり、これには、以下に限定されることはないが、現在の都市もしくは場所、故郷、生まれた都市もしくは国、性別、誕生日、性的指向、話す言語、出身校、勤め先、宗教的立場、政治的立場、音楽の好み、本の好み、映画の好み、テレビ番組の好み、ゲームの好み、するスポーツ、好きな
スポーツ・チーム、好きな運動選手、好きな趣味もしくは活動、関心、ソーシャル・ネットワーキング・システムのグループもしくはファン・ページ、ソーシャル・ネットワーキング・システム220の中でのユーザ活動、またはこのユーザと関連する任意のそれ以外の情報が、含まれる。
【0054】
候補ノードの得点は、先に確立されている日付に基づき得る。一実施形態では、得点モジュール250が、現在の日付が確立された休日、歴史的イベント、またはそれ以外の日付に基づく出来事と一致するかどうかを判断し、これらの出来事に基づいて候補ノードの得点を調節する。休日、歴史的イベント、およびそれ以外の出来事は、例えば、ウィキペディアのような公衆に利用可能なデータベースから決定されるか、または手作業により前もって決定され得る。この実施形態では、得点モジュール250により現在の日付が知られている確立された日付と一致すると判断さえる場合には、得点モジュール250が、その確立されている日付と関連する候補ノードについて、その候補ノードの得点を増加させることがあり得る。例えば、得点モジュール250によって現在の日付が7月4日であると判断され、かつ、得点モジュール250により候補ノードである「ファイヤワークス(花火製造技術)」が7月4日という日付と関連していると判断される場合には、得点モジュール250は、候補ノードである「ファイヤワークス(花火製造技術)」に関して、その候補ノードの得点を増加させる。
【0055】
候補ノードの得点は、予測されている出来事およびイベントに基づくことがあり得る。一実施形態では、得点モジュール250が、現在の日付または時刻が予測されているイベントの日付および時刻と一致するかどうかを判断し、それらの出来事に基づいて候補ノードの得点を調節する。スポーツ・イベント、コンサート、パーティ、パレード、選挙、卒業式、セール、または任意のそれ以外の出来事もしくはイベントも、例えば、ウィキペディアや、得点モジュール250にとって利用可能な出来事およびイベントの日付および時刻を確立する任意のそれ以外のソースから、決定され得る。この実施形態では、得点モジュール250により現在の日付および時刻が予測されている出来事またはイベントの日付および時刻と一致すると判断される場合には、得点モジュール250が、その予測されている出来事またはイベントと関連する候補ノードについて、その候補ノードの得点を増加させることがあり得る。例えば、得点モジュール250によりゴンザーガ大学のバスケットボールの試合が現在の日付および時刻の間に行われると予測されており、得点モジュール250により候補ノードである「ブルドッグズ(バスケットボール・チーム)」がゴンザーガ大学と関連していると判断される場合には、得点モジュール250が、候補ノードである「ブルドッグズ(バスケットボール・チーム)」について、候補ノードの得点を増加させる。同様に、得点モジュール250により現在の日付がアメリカ合衆国上院のための選挙の日であると判断され、得点モジュール250により候補ノードである「バーバラ・ボクサ(アメリカ合衆国上院議員)」がアメリカ合衆国上院のための選挙データと関連していると判断される場合には、得点モジュール250が、候補ノードである「バーバラ・ボクサ(アメリカ合衆国上院議員)」について、候補ノードの得点を増加させる。
【0056】
グローバル・コンテキスト・モジュール255とソーシャル・コンテキスト・モジュール260とは、グローバルなソーシャル・ネットワーキング・システムの通信と通信元ユーザに接続されているユーザの通信との分析に基づいて、それぞれが、候補ノードの得点を調節することができる。一実施形態では、候補ノードの得点は、一定の量だけ、または分析された通信と関係する量だけ、増加または減少される。一実施形態では、分析された通信が集計され、この集計に基づいて候補ノードの得点が調節される。例えば、分析された通信の50%が第1の候補の得点への増加を支持し、分析された通信の20%が第2の候補の得点への増加を支持する場合には、第1の候補ノードの得点は50%だけ増加され、第2の候補ノードの得点は20%だけ増加され得る。一実施形態では、グローバル・コンテキスト・モジュール255とソーシャル・コンテキスト・モジュール260とが、そ
れぞれの候補ノードのために、グローバル・コンテキストの得点とソーシャル・コンテキストの得点とをそれぞれ生じる。この実施形態では、候補ノードの得点は、関連するグローバル・コンテキストの得点および/またはソーシャル・コンテキストの得点を用いて、候補ノードの得点を加算するまたは乗算することによって、調節され得る。
【0057】
グローバル・コンテキスト・モジュール255は、グローバルなソーシャル・ネットワーキング・システムの活動に基づいて、候補ノードの得点を調節する。一実施形態では、グローバル・コンテキスト・モジュール255は、ソーシャル・ネットワーキング・システム220の全体にわたるユーザの通信を分析して、候補ノードの関連性と関係する情報を識別する。一実施形態では、グローバル・コンテキスト・モジュール255は、分析された通信において、アンカ用語以外の用語を識別して、これらの識別された用語に基づいて候補ノードの得点を調節する。例えば、「がんばれシャークス!」という通信における「シャークス」というアンカ用語に対して、グローバル・コンテキスト・モジュール255は、「シャーク」という単語を含む他のすべての通信を分析することがあり得る。この例では、グローバル・コンテキスト・モジュール255は、「ホッケー」という単語もまた含むこれらの通信の部分集合を識別することがある。したがって、グローバル・コンテキスト・モジュール255は、「シャークス(ホッケー・チーム)」という候補ノードの得点を増加させて、「シャーク(動物のサメ)」というノードの得点を減少させることがあり得る。更にこの例についての議論を続けると、グローバル・コンテキスト・モジュール255は、「シャークス(ホッケー・チーム)」という候補と関連するグローバルな通信において「がんばれ」という用語を識別して、「がんばれシャークス!」という通信に対する「シャークス(ホッケー・チーム)」という候補ノードの得点を適切に増加させ得る。
【0058】
一実施形態では、グローバル・コンテキスト・モジュール255によるソーシャル・ネットワーキング・システム220の全体にわたる通信の分析には、時間的制約がある。例えば、グローバル・コンテキスト・モジュール255は、先行する1時間の間に、または先行する10分の間に作成されたユーザの通信を分析するだけである場合があり得る。一実施形態では、ソーシャル・ネットワーキング・システム220の全体にわたり分析された通信の効果は、時間減衰モデルに従って重み付けされる。ここで、時間減衰モデルとは、最も近い時点での通信が最も重く重み付けされ、最も遠い通信が最も軽く重み付けされるようなモデルである。
【0059】
一実施形態では、グローバル・コンテキスト・モジュール255は、ソーシャル・ネットワーキング・システム220の全体にわたり通信において識別されたアンカ用語を用いるユーザと関連するユーザ情報を分析する。この実施形態では、グローバル・コンテキスト・モジュール255は、特定のユーザ情報を、アンカ用語と、また、潜在的なアンカ用語の意味と関連付け、これらの関連を用いて、候補ノードの得点を調節または重み付けすることができる。例えば、グローバル・コンテキスト・モジュール255は、「シャークス」という用語を含むユーザからの通信を識別し、これらのユーザの部分集合が「ホッケー」を関心のあるものとしてリストに含めていることを判断して、「シャークス(ホッケー・チーム)」という候補ノードに対する得点を適切に増加させることができる。この例では、グローバル・コンテキスト・モジュール255は、通信元ユーザも「ホッケー」を関心対象としてリストに含めている場合にのみ、「シャークス(ホッケー・チーム)」の候補ノードに対する得点を増加させることができる。
【0060】
一実施形態では、グローバル・コンテキスト・モジュール255によるソーシャル・ネットワーキング・システム220の全体にわたる通信の分析には、他のユーザがアンカ用語とソーシャル・ネットワーキング・システムのオブジェクトとを明示的に関連付けているかどうかを判断することが含まれる。グローバル・コンテキスト・モジュール255は
、アンカ用語を含んでおりそのアンカ用語をソーシャル・ネットワーキング・システムのオブジェクトと関連付ける通信の部分集合を識別することができる。例えば、「シャーク」という単語を含む通信の部分集合は、サンノゼ・シャークス・グループと関連付けることが可能であるし、または、サンノゼ・シャークスのタグを含むことも可能である。この例では、グローバル・コンテキスト・モジュール255は、「シャークス(ホッケー・チーム)」の候補ノードに対する得点を適切に増加させることができる。
【0061】
ソーシャル・コンテキスト・モジュール260は、通信元ユーザと接続されているユーザのソーシャル・ネットワーキング・システムでの活動に基づいて、候補ノードの得点を調節する。一実施形態では、ソーシャル・コンテキスト・モジュール260は、(通信元ユーザの友人など)通信元ユーザとの接続を明示的に確立しているユーザの通信活動に基づいて、候補ノードの得点を調節する。あるいは、ソーシャル・コンテキスト・モジュール260は、通信元ユーザと共通のネットワークを共有するユーザの通信活動、共通の履歴上の特性、共通の関心、またはソーシャル・ネットワーキング・システムでの共通の活動に基づいて、候補ノードの得点を調節することができる。
【0062】
ソーシャル・コンテキスト・モジュール260は、通信元ユーザに接続されているユーザの通信であってアンカ用語を含んでいる通信を分析し、候補ノードの妥当性と関連する情報を識別する。ソーシャル・コンテキスト・モジュール260は、アンカ用語を含んでおりそのアンカ用語が候補ノードと関連付けられている通信を識別することがあり、その場合には、ソーシャル・コンテキスト・モジュール260は、関連する候補ノードに対する得点を増加させる。一実施形態では、アンカ用語は、通信元ユーザと接続されているユーザによって、ある候補ノードと明示的に関係付けられる。例えば、通信元ユーザと接続されているユーザからの「がんばろう、ジャイアンツ!」という通信における「ジャイアンツ」というアンカ用語は、「サンフランシスコ・ジャイアンツ」というソーシャル・ネットワーキング・システムのオブジェクトにタグ付けすることができる。この例では、ソーシャル・コンテキスト・モジュール260は、候補ノードである「サンフランシスコ・ジャイアンツ(野球チーム)」に対する得点を増加させることがあり得る。一実施形態では、アンカ用語は、通信元ユーザと接続されているユーザによって、通信におけるある候補ノードと非明示的に関連付けられている。例えば、ソーシャル・ネットワーキング・システム220は、通信元ユーザと接続されているユーザからの通信におけるアンカ用語である「ジャイアンツ」がサンフランシスコ・ジャイアンツと関連付けられているということを、推論することができる。この実施形態では、ソーシャル・コンテキスト・モジュール260は、「サンフランシスコ・ジャイアンツ(野球チーム)」と関連する候補ノードに対する得点を増加させることがあり得る。
【0063】
一実施形態では、ソーシャル・コンテキスト・モジュール260が、分析された通信においてアンカ用語以外の1つまたは複数の用語を識別し、それらの識別された用語に基づいて、候補ノードの得点を調節する。識別された用語のうちの1つまたは複数は特定の候補ノードと関連していることがあるが、その場合には、特定の候補ノードの得点を適切に増加させることができる。例えば、「ジャイアンツ」というアンカ用語に対しては、通信元ユーザと接続されているユーザが、「がんばれ、ジャイアンツの野球!」というメッセージをポストすることがあり得る。この例では、ソーシャル・コンテキスト・モジュール260は、野球という用語を識別し、それが「サンフランシスコ・ジャイアンツ(野球チーム)」という候補ノードと関連していると判断して、この候補ノードに対する得点を適切に増加させる。
【0064】
グローバル・コンテキスト・モジュール255と同様に、ソーシャル・コンテキスト・モジュール260によるソーシャル・ネットワーキング・システム220の全体にわたる通信の分析は、時間的に制約されていることがあり得る。例えば、ソーシャル・コンテキ
スト・モジュール260は、通信元ユーザと接続されているユーザによって先行する1時間または先行する10分の間に作成された通信を分析するだけであり得る。一実施形態では、分析された通信の効果は時間減衰モデルに従って重み付けがなされるが、その場合に、最も近い通信が最も重い重み付けがなされ、最も離れている通信は最も軽い重み付けがなされる。
【0065】
一実施形態では、ソーシャル・コンテキスト・モジュール260は、通信元ユーザに接続されておりアンカ用語を含む通信を作成するユーザと関連するユーザ情報を、分析する。この実施形態では、ソーシャル・コンテキスト・モジュール260は、特定のユーザ情報を、アンカ用語と、そして潜在的なアンカ用語の意味と、関連付けることができ、そして、それらの関連性を用いて、候補ノードの得点を調節するまたは重み付けすることができる。例えば、ソーシャル・コンテキスト・モジュール260は、通信元ユーザと接続されているユーザからの、「ジャイアンツ」という用語を含む通信を識別することができ、これらのユーザの部分集合は「野球」を関心としてリストに含めていると判断することができて、「サンフランシスコ・ジャイアンツ(野球チーム)」という候補ノードに対する得点を適切に増加させることがあり得る。この例では、ソーシャル・コンテキスト・モジュール260は、通信元ユーザも「野球」を関心対象としてリストに含めている場合にのみ、候補ノードに対する得点を増加させることができる。
【0066】
ソーシャル・コンテキスト・プロンプト・モジュール265は、通信元ユーザの通信において曖昧な用語を検出することがあり、通信元ユーザと接続されているユーザに、その曖昧な用語を通信において用いるときにその曖昧な用語の意味を選択することを促すことがあり得る。一実施形態では、検出された曖昧な用語は、構文解析モジュール240によって選択されたアンカ用語である。同様に、ソーシャル・コンテキスト・プロンプト・モジュール265は、通信元ユーザと接続されているユーザに、構文解析モジュールによって決定された候補ノードをユーザに向けて表示することにより、その曖昧な用語に対する意味を選択するように促すことがあり得る。
【0067】
一実施形態では、ソーシャル・コンテキスト・プロンプト・モジュール265は、ソーシャル・ネットワーキング・システム220のそれぞれのユーザに対して、接続されているユーザによって通信において用いられる曖昧な用語のリストを追跡する。曖昧な用語のこの追跡は、時間的な制約があり得るのであって、例えば、2日間、12時間、30分、または任意の所定の時間期間のうちのある期間に限定されている場合がある。曖昧な用語のリストには、推論された意味を有するアンカ用語を含めて、すべての識別されたアンカ用語が含まれ得る。一実施形態では、信頼性に関する所定の閾値よりも下にある推論された意味を有するアンカ用語だけが、ソーシャル・コンテキスト・プロンプト・モジュール265によって追跡される。
【0068】
一実施形態では、ソーシャル・コンテキスト・プロンプト・モジュール265は、あるユーザによる通信における追跡されている曖昧な用語の使用を検出する。あるユーザによる通信において追跡されている曖昧な用語の使用を検出することは、追跡されている曖昧な用語のうちの1つをユーザがいつ入力し始め、しかし、その曖昧な用語の入力をまだ完了していないのかを判断するテキスト予測の使用を含み得る。追跡されている曖昧な用語の使用を検出することに応答して、ソーシャル・コンテキスト・プロンプト・モジュール265は、その曖昧な用語に対する可能性のある意味のリストを、ユーザに向けて表示する。ユーザに向けて表示された可能性のある意味のリストは、(既に論じたように)先に識別された候補ノードを含み得る。あるいは、ユーザに向けて表示された可能性のある意味のリストは、部分的に入力された曖昧な用語のテキストを含む追跡されている曖昧な用語に限定されることもあり得る。
【0069】
一実施形態では、ソーシャル・コンテキスト・プロンプト・モジュール265は、辞書記憶モジュール140に記憶されている、またはソーシャル・グラフ・データ記憶モジュール270の部分集合である辞書にクエリを発して、追跡された曖昧な用語と関連する候補ノードを決定する。候補ノードの得点を、決定された候補ノードに対して決定することができ、ユーザに向けて表示される可能性のある意味のリストは、決定された候補ノードの得点に基づいて順序付けられている。一実施形態では、ユーザに向けて表示されている可能性のある意味のリストは、候補ノードの得点に基づいて選択された候補ノードの部分集合を含む。
【0070】
ソーシャル・コンテキスト・プロンプト・モジュール265は、曖昧な用語に対する可能性のある意味のリストを、通信モジュール235を経由して通信インターフェースの中に、その曖昧な用語のユーザに向けて表示することができる。例えば、ユーザが、通信モジュール235によって表示されている通信インターフェースのテキスト入力ボックスの中で曖昧な用語を含む通信を作成する場合には、ソーシャル・コンテキスト・プロンプト・モジュール265が、そのテキスト入力ボックスの下に、またはそのテキスト入力ボックスの内部に、可能性のある意味のリストを表示することができる。ユーザは、曖昧な用語に対する可能性のある意味のリストにある複数の意味のうちの1つを選択することができる。先ほどの例について更に論じると、ユーザは、テキスト・ボックスの下に、または、テキスト・ボックスの内部に表示されている意味のうちの1つをクリックする、または、それ以外の方法で選択することができる。
【0071】
曖昧な用語に対する意味を選択することの結果として、その曖昧な用語と選択された意味とのソーシャル・コンテキスト・プロンプト・モジュール265による関連付けが生じる。一実施形態では、その曖昧な用語は、選択された意味を表すテキストと交換される。例えば、「ジャイアンツ」というテキストは、ユーザによって選択されるときに、「サンフランシスコ・ジャイアンツ」と交換され得る。一実施形態では、曖昧な用語の単純なテキストが、選択されるとユーザをソーシャル・ネットワーキング・システムのページに導くハイパーリンクされているテキストや、または選択された意味と関連するオブジェクトのために宛てられている他のウェブ・ページと交換される。先ほどの例に即して更に論じるならば、単純なテキストである「ジャイアンツ」は、クリックされるとユーザをサンフランシスコ・ジャイアンツのファン・ページに導くソーシャル・ネットワーキング・システムのURLと交換することができる。
【0072】
ソーシャル・コンテキスト・プロンプト・モジュール265が曖昧なアンカ用語をある意味と関連付けることに応答して、得点モジュール250、グローバル・コンテキスト・モジュール255、およびソーシャル・コンテキスト・モジュール260は、そのアンカ用語と関連する候補ノードの得点を調節することができるし、また、そのアンカ用語の意味を最もよく表すトピック・ノードとして、ある候補ノードを再度選択することがあり得る。例えば、得点モジュール250が、「がんばれシャークス!」という通信におけるアンカ用語である「シャークス」に対して、「シャークス(動物のサメ)」という候補ノードを最初に選択した場合には、得点モジュール250は、通信元ユーザと接続されているユーザによる1つまたは複数の通信においてソーシャル・コンテキスト・プロンプト・モジュール265が用語「シャークス」をサンノゼ・シャークスと関連付けることに応答して、「サンノゼ・シャークス(ホッケー・チーム)」という候補ノードを再度選択することがあり得る。更に、得点モジュール250、グローバル・コンテキスト・モジュール255、およびソーシャル・コンテキスト・モジュール260は、通信元ユーザに接続されているユーザに対するアンカ用語と関連する候補ノードの得点を調節することがあり、また、通信元ユーザに接続されているユーザの通信におけるアンカ用語の意味を最もよく表すトピック・ノードとして、ある候補ノードを再度選択することがあり得る。
【0073】
動作
図5は、一実施形態によりソーシャル・ネットワーキング・システムの通信のトピックを決定する処理の例示的な実施形態である。ソーシャル・ネットワーキング・システム220は、通信元ユーザから通信500を受け取る。図5の実施形態では、通信500は、「カリフォルニア対スタンフォードのフットボールを見ている!がんばれベアーズ!(Watching California−Stanford football! Go
bears!)」である。通信500が構文解析され、アンカ用語510として、アンカ用語「カリフォルニア(California)」が選択される。
【0074】
候補ノード520が、このアンカ用語カリフォルニア510に対して、選択される。既に論じたように、例えばキーワード・サーチを用いて辞書に対してクエリが発せられ、このアンカ用語に関連する候補ノードが識別される。図5の実施形態では、識別された候補ノード520は、カリフォルニア(州)、カリフォルニア大学(学校)、USSカリフォルニア(船舶)、およびカリフォルニア・ガールズ(曲)である。
【0075】
候補ノード520は、オプションではあるが、刈り込みモジュール530によって刈り込まれる。図5の実施形態では、刈り込みモジュール530は、アンカ用語であるカリフォルニア510から2語の範囲内にある「スタンフォード(Stanford)」および「フットボール(football)」という用語540を選択する。この特定の実施形態では「ベアーズ(bears)」という用語は選択されていないが、その理由は、通信510におけるアンカ用語であるカリフォルニア510からの距離であることに注意してほしい。選択された用語540は分析され、選択された用語540と候補ノード520との間の関係が決定される。既に論じたように、カテゴリ・ツリーに対しては、選択された用語540と候補ノード520とを用いてクエリが発せられ得る。図5の実施形態における刈り込みモジュール530は、候補ノードであるUSSカリフォルニア(船舶)とカリフォルニア・ガールズ(曲)とを取り除く。
【0076】
図5の実施形態では、得点モジュール560が、残りの候補ノード550に対する初期得点を受け取り、生成する。得点モジュール560は、通信500における他の用語に基づいて、候補ノードの得点を調節する。この実施形態では、得点モジュール560は、動詞「見ている(watching)」と、名詞「スタンフォード」、「フットボール」および「ベアーズ」とに基づいて、候補ノードの得点を調節する。得点モジュール560は、また、ユーザ100に関連する情報と、アンカ用語であるカリフォルニア510のグローバルおよびソーシャル・コンテキストとに基づいて、候補ノードの得点を調節する。この実施形態では、生成された候補ノードの得点570は、候補ノードのカリフォルニア(州)に対して36%であり、候補ノードのカリフォルニア大学(学校)に対して85%である。候補ノードのカリフォルニア大学(学校)は、「カリフォルニア対スタンフォードのフットボールを見ている!がんばれベアーズ!」という通信500におけるアンカ用語であるカリフォルニア510の意味を最もよく表す辞書ノード580として、選択される。
【0077】
図6は、一実施形態によるソーシャル・ネットワーキング・システムの通信の用語のトピックを決定する処理を図解しているフローチャートである。図6の実施形態では、辞書とカテゴリ・ツリーとが作成される(600)。別の実施形態では、辞書もしくはカテゴリ・ツリー、またはその両方が前もって作成される。辞書とカテゴリ・ツリーとをゼロから作成する代わりに、図6の処理によって、既存の辞書とカテゴリ・ツリーとが更新されることもあり得る。既に論じたように、辞書とカテゴリ・ツリーとは、ウィキペディアなどの既存のデータベースに基づいて作成することができるのであって、その場合、辞書とカテゴリ・ツリーとにおけるノードは、ウィキペディアのあるページを表す。
【0078】
通信が、通信元ユーザから受け取られる(610)。通信は、通信元ユーザのウォールもしくはプロファイルにポストされたステータス・メッセージ、電子メール、インスタント・メッセージ、別のユーザのウォールもしくはプロファイルにポストされたメッセージ、コンテンツ項目に関するコメント、テキスト/SMSメッセージ、または任意の他の形式を有するテキスト・ベースの通信を含み得る。辞書を用いて、通信におけるアンカ用語が識別される(620)。一実施形態では、通信は構文解析された複数の用語に構文解析され、構文解析された用語のうちの1つがアンカ用語として選択される。
【0079】
アンカ用語と関連する候補ノードが、辞書において識別される(630)。一実施形態では、辞書ノードのキーワード・サーチが、アンカ用語と関連する候補ノードを識別するために、アンカ用語を用いて実行される。オプションであるが、アンカ用語の意味を表す蓋然性が低い候補ノードは、カテゴリ・ツリーを用いて刈り込まれる(640)。
【0080】
通信のコンテキスト、アンカ用語のグローバル・コンテキスト、およびアンカ用語のソーシャル・コンテキストが、決定される(650)。一実施形態では、通信のコンテキストは、アンカ用語と通信元ユーザと関連する情報(ユーザのプロファイルにリスト化されているユーザの好みや関心など)とは他の通信における用語を含む。アンカ用語のグローバル・コンテキストは、ソーシャル・ネットワーキング・システムの他のすべてのユーザによる通信であって、そのアンカ用語とこれらのユーザと関連する情報とを含む通信における用語を含み得る。アンカ用語のソーシャル・コンテキストは、通信元ユーザと接続されているソーシャル・ネットワーキング・システムのユーザによる通信であって、そのアンカ用語とこれらのユーザと関連する情報とを含む通信における用語を含み得る。
【0081】
候補ノードに対する得点は、通信のコンテキスト、アンカ用語のグローバル・コンテキスト、およびアンカ用語のソーシャル・コンテキストに基づいて、決定される(660)。アンカ用語を表す蓋然性が最も高い候補ノードは、候補ノードの得点に基づいて選択される(670)。例えば、最も高い得点を有する候補ノードが、そのアンカ用語の意味を表す蓋然性が最も高い候補ノードとして選択される。
【0082】
図7は、一実施形態により主題辞書を作成する処理を図解しているフローチャートである。リンクされた複数の記事のデータベースが検索される(700)。一実施形態では、このデータベースはウィキペディアである。データベースにおけるそれぞれの記事に対し、辞書グラフにおいて、ノードが作成される(710)。オプションであるが、それぞれの記事の主題に対する同義語と代替的な文法的テキスト・フォーマットとが、それぞれの記事のノードと関連付けられる(720)。例えば、「SJシャークス」と「シャークス・ホッケー」とは、辞書ノードであるサンノゼ・シャークス(ホッケー・チーム)と関連付けることができる。辞書グラフにおけるノードは、それらのノードに対応する記事がリンクされている場合には、エッジによって接続される(730)。例えば、ウィキペディアの記事である「サーフボード(Surfboard)」がウィキペディアの記事である「大洋(Ocean)」へのURLリンクを含む場合には、サーフボードの辞書ノードは、大洋の辞書ノードに、エッジによって接続される。
【0083】
図8は、一実施形態により、ソーシャル・コンテキストを用いてソーシャル・ネットワーキング・システムの通信の用語のトピックを決定する処理を図解するフローチャートである。図8の実施形態では、通信が、通信元ユーザから受け取られる(800)。アンカ用語は、辞書を用いて、通信において識別される(810)。既に論じたように、既存の辞書を用いることが可能であるし、または、ウィキペディアのような、相互にリンクされた記事の公衆に利用可能なデータベースから作成することもできる。アンカ用語と関連する候補ノードが、辞書において、識別される(820)。
【0084】
通信元ユーザと接続されているユーザからの通信でありアンカ用語を含むものが識別される(830)。既に論じたように、通信元ユーザと接続されているユーザは、通信元ユーザの友人もしくは家族、通信元ユーザと共通する履歴情報を有するユーザ、通信元ユーザと同じネットワークにおけるユーザ、および/または通信元ユーザと類似の関心を有するユーザを含み得る。候補ノードの得点は、少なくとも部分的には識別された通信に基づいて、決定される(840)。例えば、候補ノードの得点は、通信におけるアンカ用語以外の用語や、通信元ユーザと接続されているユーザと関連する情報など、識別された通信のコンテキストに基づいて決定され得る。
【0085】
図9は、一実施形態により別のユーザの通信に基づいて通信の用語に対するトピックを選択することをユーザに促す、ソーシャル・ネットワーキング・システムのインターフェースの例示的な実施形態である。ユーザは、ステータス・メッセージである「カリフォルニアを見ています!(Watching California!)」を、ステータス・ボックスに入力する(900)。「カリフォルニア(California)」という用語がアンカ用語として識別され(902)、「見ています(Watching)」という用語がコンテキスト用語として識別される(904)。ソーシャル・ネットワーキング・システムは、ユーザの1つまたは複数の友人の通信において「カリフォルニア」という用語を識別し、それに応答して、ソーシャル・ネットワーキング・システムは、カリフォルニアという用語に対する最良の意味を選択することをユーザに促す。
【0086】
図9の実施形態では、ソーシャル・ネットワーキング・システムは、ドロップダウン・ボックスにおいて、複数のトピックを表示する(906)。表示されているトピックは、カリフォルニアという用語に対する候補ノードであり、これには、カリフォルニア・ゴールデン・ベアーズ(フットボール・チーム)908、カリフォルニア・ゴールデン・ベアーズ(野球チーム)910、カリフォルニア大学(公立大学)912、およびカリフォルニア(アメリカ合衆国の州)914が含まれる。表示されている候補ノードは、ユーザの友人の通信から、または「カリフォルニアを見ています!」というユーザの通信から決定され得る。図9の実施形態では、候補ノードの得点は表示されているそれぞれの候補ノードに対して決定され、候補ノードは、決定された候補ノードの得点に基づいて順序付けがなされている。次に、ユーザは、カリフォルニアというアンカ用語を最もよく表す意味として、候補ノードのうちの1つを選択することができる。
【0087】
図10は、一実施形態により別のユーザの通信に基づいて通信の用語に対するトピックを選択するように、ユーザに促す処理を図解しているフローチャートである。第1の通信は、通信元ユーザから受け取られる(1000)。辞書を用いて、アンカ用語が、第1の通信において識別される(1010)。そのアンカ用語を含んでおり通信元ユーザに接続されているユーザの第2の通信が、識別される(1020)。そのアンカ用語と関連する候補ノードが、辞書において識別される(1030)。ユーザは、識別された候補ノードに基づいてそのアンカ用語に対する意味を選択するように促される(1040)。例えば、ユーザが通信において「シャークス」という用語をタイプする場合には、「シャークス」という用語と関連する候補ノードが、ユーザがその中から選択するために表示される。
【0088】
まとめ
本発明の実施形態に関する以上の記載は説明の目的のために提供されたものであって、網羅的であること、または、開示された形式自体に本発明を限定することを意図していない。当業者であれば、以上の開示から多くの修正および改変が可能であることを理解できるはずである。
【0089】
ここでの記載のいくつかの部分では、情報に対する演算のアルゴリズムと記号的表現との観点から、本発明の実施形態を説明している。これらのアルゴリズムによる記載と表現
とは、データ処理技術における当業者によって、仕事の実質を他の当業者に効率的に伝えるために、広く用いられているものである。これらの演算は、機能的、計算論的または論理的に記載されているが、コンピュータ・プログラムまたはそれと同等の電気回路やマイクロコードなどによって実装されるものと理解される。更に、演算のこれらの構成は、一般性を失うことなく、モジュールとして言及することが時には便利であることが判明している。記載された演算とそれと関連するモジュールとは、ソフトウェア、ファームウェア、ハードウェアおよびこれらの任意の組み合わせとして、具体化が可能であり得る。
【0090】
本明細書に記載されている工程、動作、または処理は、1つまたは複数のハードウェアまたはソフトウェア・モジュールを、単独または他のデバイスと組み合わせて用いることにより、実行または実装が可能である。一実施形態では、ソフトウェア・モジュールは、コンピュータ・プログラム・コードを含むコンピュータ可読媒体で構成されるコンピュータ・プログラム・プロダクトを用いて実装される。なお、コンピュータ・プログラム・コードは、記載されている工程、動作、または処理の任意のものまたは全部を行うコンピュータ・プロセッサによって実行可能である。
【0091】
本発明の実施形態は、本明細書に記載されている動作を実行する装置にも関係し得る。この装置は、要求された目的のために特に構築され得るし、および/または、コンピュータに記憶されているコンピュータ・プログラムによって選択的に付勢されるまたは再構成される汎用計算機を構成し得る。このようなコンピュータ・プログラムは、非一時的であって有体物であるコンピュータ可読記憶媒体、または、コンピュータ・システム・バスに結合され得る電子的命令を記憶するのに適した任意のタイプの媒体に、記憶され得る。更に、この明細書において言及されているどの計算システムも、単一のプロセッサを含み得るか、または、計算性能の向上のために複数プロセッサの設計を用いたアーキテクチャであり得る。
【0092】
本発明の実施形態は、本明細書に記載されている計算方法によって作成されるプロダクトとも関係し得る。このようなプロダクトは、計算方法の結果として生じる情報を含み得る。この情報は、非一時的であって有体物であるコンピュータ可読記憶媒体上に記憶され、コンピュータ・プログラム・プロダクトまたは本明細書に記載されているそれ以外のデータの組み合わせの任意の実施形態を含み得る。
【0093】
最後に、本明細書において用いられている言葉は、主に、読みやすく説明的であることを目的として選択されたものであり、本発明の主題の輪郭を画定する、または境界を明確にするように選択されたものではない。したがって、本発明の範囲は、この詳細な説明ではなく、この詳細な説明に基づく出願に由来する任意の請求項によって限界付けられることが意図されている。よって、本発明の実施形態に関する開示は、本発明の範囲について説明的であることを意図しており、本発明の範囲を画定することは意図していない。本発明の範囲は、以下の特許請求の範囲において明確にされている。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10