(57)【特許請求の範囲】
【請求項１】
コンピュータに実装された、ソーシャル・ネットワーキング・システムにおいて通信の用語のトピックを決定するための方法であって、
トピックを各々表す複数のノードからなるノードの組を含む辞書を受け取る工程と、
通信元ユーザから通信を受け取る工程と、
該通信におけるアンカ用語を識別する工程と、
該アンカ用語に基づき、該アンカ用語と関係する主題を表す辞書ノードからなる候補ノードを識別する工程と、
該通信における該アンカ用語のコンテキストを決定する工程と、
該決定されたコンテキストに基づき、該候補ノードのうちの１つまたは複数の候補ノードの各々に対する得点を決定する工程と、
該決定された得点に基づき、該アンカ用語の意味を表す候補ノードを選択する工程と、を備える方法。
【請求項２】
辞書を受け取る工程は、
１対または複数対の記事がリンクされている記事のデータベースを検索する工程と、
該記事のうちの１つまたは複数の記事の各々に対して、該記事の前記トピックを含むノードを作成する工程と、
リンクされている記事に対応するノードの各対について、該ノードの対をエッジによって接続する工程と、
を備える、請求項１に記載の方法。
【請求項３】
記事の前記データベースは、各記事がウェブベースのデータベース内のウェブ・ページによって表されるウェブベースのデータベースを含み、２つの記事は、該記事の一方を表すウェブ・ページが他方の記事へのＵＲＬリンクを含む場合、リンクされている、請求項２に記載の方法。
【請求項４】
各ノードは、前記記事の前記トピックの同義語と代替的文法的表現とをさらに含む、請求項２に記載の方法。
【請求項５】
辞書を受け取る工程は、先に存在している辞書を更新する工程を含む、請求項１に記載の方法。
【請求項６】
受け取られた前記通信は、状態の更新を含む、請求項１に記載の方法。
【請求項７】
前記状態の更新は、前記通信元ユーザのソーシャル・ネットワーキング・システムのプロファイルにポストされる、請求項６に記載の方法。
【請求項８】
受け取られた前記通信は、電子メール、インスタント・メッセージ、およびテキストメッセージ又はＳＭＳメッセージのうちの１つを含む、請求項１に記載の方法。
【請求項９】
受け取られた前記通信は、コンテンツ項目に関するコメントを含む、請求項１に記載の方法。
【請求項１０】
前記通信は、ソーシャル・ネットワーキング・システムのユーザ・インターフェースを経由して受け取られる、請求項１に記載の方法。
【請求項１１】
前記通信におけるアンカ用語を識別する工程は、
前記通信を、英数字の組から各々なる１つまたは複数の用語に構文解析する工程と、
前記アンカ用語として用いるために該１つまたは複数の構文解析された用語のうちの１つを選択する工程と、
を含む、請求項１に記載の方法。
【請求項１２】
前記通信を１つまたは複数の用語に構文解析する工程の前に、冠詞、間投詞、接続詞、および前置詞が前記通信から取り除かれる、請求項１１に記載の方法。
【請求項１３】
前記通信を１つまたは複数の用語に構文解析する工程の前に、副詞と代名詞とが前記通信から取り除かれる、請求項１２に記載の方法。
【請求項１４】
構文解析された各用語は名詞を含む、請求項１１に記載の方法。
【請求項１５】
前記アンカ用語として用いるために前記１つまたは複数の構文解析された用語のうちの１つを選択する工程は、最も曖昧でない構文解析された用語を選択する工程を含む、請求項１１に記載の方法。
【請求項１６】
前記アンカ用語として用いるために前記１つまたは複数の構文解析された用語のうちの１つを選択する工程は、最も曖昧な構文解析された用語を選択する工程を含む、請求項１１に記載の方法。
【請求項１７】
前記アンカ用語に基づき候補ノードを識別する工程は、アンカ用語テキストを含む候補ノードについて前記辞書のキーワード・サーチを実行する工程を含む、請求項１に記載の方法。
【請求項１８】
前記通信における前記アンカ用語の前記コンテキストを決定する工程は、前記通信において前記アンカ用語以外の用語を決定する工程を含む、請求項１に記載の方法。
【請求項１９】
前記アンカ用語の前記コンテキストは前記アンカ用語を修飾する動詞を含む、請求項１８に記載の方法。
【請求項２０】
前記アンカ用語の前記コンテキストは前記アンカ用語と関係する名詞を含む、請求項１８に記載の方法。
【請求項２１】
前記通信における前記アンカ用語の前記コンテキストを決定する工程は、前記ソーシャル・ネットワーキング・システムのユーザによって前記アンカ用語を含む通信における前記アンカ用語のグローバル・コンテキストを決定する工程を含む、請求項１に記載の方法。
【請求項２２】
前記通信における前記アンカ用語の前記コンテキストを決定する工程は、前記通信元ユーザに接続された前記ソーシャル・ネットワーキング・システムのユーザによって前記アンカ用語を含む通信における前記アンカ用語のソーシャル・コンテキストを決定する工程を含む、請求項１に記載の方法。
【請求項２３】
前記通信における前記アンカ用語の前記コンテキストを決定する工程は、前記通信元ユーザと関係するユーザ情報を決定する工程を含む、請求項１に記載の方法。
【請求項２４】
前記通信元ユーザと関係するユーザ情報は前記通信元ユーザの関心を含む、請求項２３に記載の方法。
【請求項２５】
前記決定されたコンテキストに基づき候補ノードに対する得点を決定する工程は、
前記候補ノードに対する初期得点を決定する工程と、
前記決定されたコンテキストと関係する辞書ノードを識別する工程と、
該識別された辞書ノードが前記候補ノードと関係するという判断に応答して、前記候補ノードに対する該初期得点を増加させる工程と
を含む、請求項１に記載の方法。
【請求項２６】
前記決定された得点に基づき候補ノードを選択する工程は、最も高い得点を有する候補ノードを選択する工程を含む、請求項１に記載の方法。
【請求項２７】
前記アンカ用語の意味を表す蓋然性が低い１つまたは複数の候補ノードを決定する工程と、
該決定された１つまたは複数の候補ノードを考慮から排除する工程と、
を更に含む、請求項１に記載の方法。
【請求項２８】
辞書ノードの階層的編成からなるカテゴリ・ツリーを作成する工程を更に備え、各カテゴリ・ツリー・ノードはただ１つの親ノードと任意の数の子ノードとを有し、各ノードは該ノードの親ノードによって表されるトピックの部分集合を表し、各ノードはエッジによって該ノードの親ノードと該ノードの各子ノードとに接続されている、請求項２７に記載の方法。
【請求項２９】
前記アンカ用語の前記意味を表す蓋然性が低い１つまたは複数の候補ノードを決定する工程は、
各候補ノードについて、
前記通信において前記アンカ用語以外の用語を識別する工程と、
該識別された用語と関連する第１のカテゴリ・ツリー・ノードを決定する工程と、
前記候補ノードと関連する第２のカテゴリ・ツリー・ノードを決定する工程と、
該第１のカテゴリ・ツリー・ノードと該第２のカテゴリ・ツリー・ノードとの間の関連性の尺度を決定する工程と、
該決定された関連性の尺度に基づき、前記アンカ用語の前記意味を表す蓋然性が低い１つまたは複数の候補ノードを決定する工程と
を含む、請求項２８に記載の方法。
【請求項３０】
前記第１のカテゴリ・ツリー・ノードと前記第２のカテゴリ・ツリー・ノードとの間の前記決定された関連性の尺度は、前記カテゴリ・ツリーにおける前記第１のカテゴリ・ツリー・ノードと前記第２のカテゴリ・ツリー・ノードとの間の最小のエッジ数を含む、請求項２９に記載の方法。
【請求項３１】
前記アンカ用語の前記意味を表す蓋然性が低い１つまたは複数の候補ノードを決定する工程は、前記アンカ用語への関連性の所定の閾値を満たさないすべての候補ノードを決定する工程を含む、請求項２７に記載の方法。
【請求項３２】
前記アンカ用語の前記意味を表す蓋然性が低い１つまたは複数の候補ノードを決定する工程は、前記アンカ用語の前記意味を表す蓋然性が低い所定の数の候補ノードを決定する工程を含む、請求項２７に記載の方法。
【請求項３３】
前記決定された１つまたは複数の候補ノードを考慮から排除する工程は、前記候補ノードのうちの１つまたは複数の候補ノードの各々に対する得点を決定する工程の前に、前記決定された１つまたは複数の候補ノードを候補ノードの前記組から取り除く工程を含む、請求項２７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、広くは、ソーシャル・ネットワーキングに関し、特に、ソーシャル・ネットワーキング・システムのユーザの通信のトピックを推論することに関する。
【背景技術】
【０００２】
ソーシャル・ネットワーキング・システムは、通常、ユーザが自身の社会的な（ソーシャル）ネットワークの中で相互作用することを可能にする機構を提供する。ソーシャル・ネットワーキング・システムのユーザは、個人、または、企業その他、人以外のエンティティ（実体）など任意のそれ以外の実体であり得る。ソーシャル・ネットワーキング・システムによって追跡（トラッキング）され維持されるソーシャル・ネットワーキング・システムの情報はソーシャル・グラフとして記憶され得るが、このソーシャル・グラフには、複数のエッジによって相互接続される複数のノードが含まれる。ソーシャル・グラフのノードは、別のノードに対して作用し得る、および／または、別のノードによって作用を受け得るソーシャル・ネットワーキング・システムのオブジェクトを表すことができる。ソーシャル・ネットワーキング・システムのオブジェクトは、例えば、ソーシャル・ネットワーキング・システムのユーザ、人以外の実体、コンテンツ項目、グループ、ソーシャル・ネットワーキング・システムのページ、イベント、メッセージ、（人、場所、物、抽象的なアイデア、もしくはコンセプトなどの）主題、または、映画、バンド、もしくは書籍などソーシャル・ネットワーキング・システムの他のオブジェクトであり得る。
【０００３】
ソーシャル・グラフにおける複数のノードの間のエッジは、それらのノードの間の特定の種類の接続を表すが、それらのノードの一方によって他方に対して実行された行為の結果として生じ得る。ソーシャル・ネットワーキング・システムのユーザによるそのような行為の例には、ユーザ・プロファイルにソーシャル・ネットワーキング・システムのオブジェクトをリスト化すること、ソーシャル・ネットワーキング・システムのグループもしくはファン・ページに加入するもしくは参加すること、メッセージをソーシャル・ネットワーキング・システムの別のユーザに送ること、ソーシャル・ネットワーキング・システムのノードと関連する購入をすること、コンテンツ項目に関してコメントすること、またはイベントの招待に返事を出すこと（ＲＳＶＰ）が含まれる。
【０００４】
ソーシャル・グラフの部分集合は、主題辞書を含み得る。主題辞書（以下では、「辞書」と称する）は、ユーザのステータス・メッセージから推論することができる可能性のあるそれぞれのトピックに対するノードを含む。例えば、辞書ノードは、特定の人々、場所、歴史的事件、時間もしくは日付、動物、植物、コンセプト、または任意の他の主題を表すことができる。複数の辞書ノードの間のエッジは、それらのノードによって表される主題の間の関係を示すことができる。例えば、あるエッジは、「犬」という辞書ノードを「動物」という辞書ノードに接続することにより、犬はあるタイプの動物だということを表すことができる。同様に、あるエッジは、「１９４２」という辞書ノードを「第２次世界大戦」というノードに接続することにより、第２次世界大戦が部分的には１９４２年に生じたことを表せる。本明細書で用いられている「トピック」とは、通信における１つもしくは複数の単語の定義、意味、または主題を指す。
【０００５】
ソーシャル・ネットワーキング・システムによると、ユーザは、あるソーシャル・ネットワーキング・システムの空間の中で通信することが可能になり得る。例えば、ユーザは、ユーザ自身のプロファイルもしくはウォールに、または別のユーザのプロファイルもしくはウォールにメッセージをポストすることができ、ユーザ自身のコンテンツ項目もしくは別のユーザのコンテンツ項目（ウォール・ポスト、イメージ、動画、文書、その他など
）に関してコメントすることができ、インスタント・メッセージもしくは電子メールを別のユーザに送ることができ、グループ・ウォール上にもしくはファン・ページにメッセージをポストすることができ、１人または複数人の他のユーザに質問することができ、またはソーシャル・ネットワーキング・システムの中で任意の他の形式を有する通信も可能である。更に、通信がソーシャル・ネットワーキング・システムの外部で生じたとしても、ソーシャル・ネットワーキング・システムの中で、受信され、編成され、ユーザにルーティングすることが可能である。あるいは、通信がソーシャル・ネットワーキング・システムの内部から生じたとしても、ソーシャル・ネットワーキング・システムの外部に送信されることがあり得る。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ソーシャル・ネットワーキング・システムのユーザによる通信は、多くの場合、単純なテキストであり、ユーザによって、確立されている主題と手作業で関連付けられることはない。これにより、ソーシャル・ネットワーキング・システムが通信を特定の主題と相関させる能力は制限されるし、通信との関係でユーザにこれらの相関を表示する機能も制限される。更に、単語は多くの意味を有し得るし、自動化されたトピック認識は、結果的に、不正確に決定された曖昧な単語の意味を生じさせる可能性がある。したがって、ソーシャル・ネットワーキング・システムとの情報の接続性の豊かさを向上させ、より楽しめて有用な経験をソーシャル・ネットワーキング・システムのユーザに提供するように、通信の単語の基礎にあるトピックを決定するソリューションに対する必要性が存在する。
【課題を解決するための手段】
【０００７】
本発明の実施形態は、ソーシャル・ネットワーキング・システムの通信で論じられているトピックを推論する。一実施形態では、ソーシャル・ネットワーキング・システムのユーザから受け取られた通信（例えば、ポスト）において、アンカ用語が識別される。アンカ用語と一致する候補ノードが、辞書において識別される。この辞書では、それぞれの候補ノードが、アンカ用語に対する特定の意味を表している。一実施形態では、それぞれが主題を表す複数のノードを含む辞書が、データベースから作成される。辞書のノードを用いて、カテゴリ・ツリーもまた作成されることがあるが、このカテゴリ・ツリーは、アンカ用語の意味を表すものとしての考慮から候補ノードを除外するために用いられ得る。通信におけるアンカ用語のコンテキストが決定され、決定されたコンテキストに基づいて、それぞれの候補ノードに対して得点が決定される。ここで、アンカ用語のコンテキストには、アンカ用語の意味を決定する際に有益であり得るどのような情報もが含まれ得るのであり、例えば、このもしくは他の通信において用いられた他の用語に関する情報、アンカ用語の可能な意味に関連するユーザ・プロファイル情報、またはこの目的のために用いられる任意の他の情報などである。アンカ用語の意味を表す蓋然性が最も高い候補ノードが、決定された得点に基づいて選択され、次に、通信の推論されたトピックとして、この候補ノードがユーザの通信と関連付けられる。
【０００８】
ソーシャル・ネットワーキング・システムは、推論されたトピックを有する複数の通信に関するソーシャル情報を用いて、推論されたトピックの精度を向上させることができる。例えば、ユーザの友人があるトピックについて話している場合には、そのユーザもまた、トピックについて同じように話している蓋然性が、より高い。したがって、本発明の実施形態は、通信におけるアンカ用語の意味を推論するときには、そのアンカ用語のソーシャル・コンテキストを考慮に入れる。本明細書で用いられているアンカ用語のソーシャル・コンテキストとは、通信元ユーザに接続されているユーザたちの通信におけるアンカ用語のコンテキストを含み得る。例えば、通信元ユーザに接続されているユーザたちの通信における他の用語、通信元ユーザに接続されているユーザたちの関心、またはアンカ用語の意味を決定するのに用いられた任意の他の情報などである。
【０００９】
ソーシャル・ネットワーキング・システムは、ユーザに、そのユーザが通信をタイプしている間に、アンカ用語に対する意図されているトピックを明示的に識別するように促すことができる。本発明の実施形態は、候補ノードに、それがあるアンカ用語に対してユーザが意図している意味である蓋然性に基づいて、得点を与える。この得点は、ソーシャル・コンテキストを含めて本明細書に記載されているどのような技術にも基づくことがあり得る。システムは、ユーザに、候補ノードのメニューを提供することによって特定の候補ノードを選択することを促すが、このメニューは、決定された得点に従って順序が付けられていることがあり得る。
【図面の簡単な説明】
【００１０】
【図１】一実施形態によりソーシャル・ネットワーキング・システムの通信のトピックを決定する処理の図。
【図２】一実施形態によりソーシャル・ネットワーキング・システムの通信のトピックを決定するのに適しているシステム環境の高位ブロック図。
【図３】一実施形態によりソーシャル・ネットワーキング・システムの通信のための候補トピックを決定するのに用いられる主題辞書の図。
【図４】一実施形態によりソーシャル・ネットワーキング・システムの通信のための候補トピックの組を刈り込むのに用いられるカテゴリ・ツリーの図。
【図５】一実施形態によりソーシャル・ネットワーキング・システムの通信のトピックを決定する方法の例示的な実施形態。
【図６】一実施形態によりソーシャル・ネットワーキング・システムの通信の用語のトピックを決定する方法を図解するフローチャート。
【図７】一実施形態により主題辞書を作成する方法を図解するフローチャート。
【図８】一実施形態によりソーシャル・コンテキストを用いてソーシャル・ネットワーキング・システムの通信の用語のトピックを決定する方法を図解するフローチャート。
【図９】一実施形態により別のユーザの通信に基づき通信の用語のためのトピックを選択することをユーザに促すソーシャル・ネットワーキング・システムのインターフェースの例示的な実施形態。
【図１０】一実施形態により別のユーザの通信に基づき通信の用語のためのトピックを選択することをユーザに促す方法を図解するフローチャート。
【発明を実施するための形態】
【００１１】
これらの図面は、説明の目的だけのために、本発明の様々な実施形態を示している。当業者であれば、以下の議論から、本明細書で図解されている構造や方法に関する代替的な実施形態を、本明細書で説明されている本発明の原理から逸脱することなく用いることができるということを容易に認識するであろう。
【００１２】
全体像
ソーシャル・ネットワーキング・システムは、通常、ユーザがソーシャル・ネットワーキング・システムのコンテキストの内部と外部の両方にあるオブジェクトや他のユーザと相互作用することを可能にする機構を提供する。ソーシャル・ネットワーキング・システムのユーザは、個人か、または、企業その他、人以外の実体など任意のそれ以外の実体であり得る。ソーシャル・ネットワーキング・システムは、ユーザを表示しユーザがソーシャル・ネットワーキング・システムのオブジェクトおよび情報と相互作用することを可能にする一連の相互接続されたページから構成されるウェブベースのインターフェースを用い得る。例えば、ソーシャル・ネットワーキング・システムは、ソーシャル・ネットワーキング・システムのそれぞれのユーザのためのページを表示することがあり、その表示されるページは、ソーシャル・ネットワーキング・システムのそのユーザによって入力されたまたはそのユーザに関するオブジェクトおよび情報（例えば、ユーザの「プロファイル
」）から構成されている。また、ソーシャル・ネットワーキング・システムは、写真や動画を含むページを含むことがあるが、それらの写真や動画は、いくつかのコンセプトに向けられたものであったり、類似の関心を有するユーザ（「グループ」）に向けられたものであったり、または、他のユーザへの、他のユーザからの、もしくは他のユーザによる通信やソーシャル・ネットワーキング・システムの活動を含むものであったりする。ソーシャル・ネットワーキング・システムのページは、ソーシャル・ネットワーキング・システムの他のページへのリンクを含むことがあり、また、サーチ、リアルタイムでの通信、コンテンツ項目のアップロード、購入、広告、および任意の他のウェブベースの技術または機能など追加的な性能を含む場合もある。ソーシャル・ネットワーキング・システムのインターフェースはウェブ・ブラウザまたはウェブ・ブラウザではないアプリケーションからアクセス可能であり得ることに注意すべきである。なお、ウェブ・ブラウザではないアプリケーションとは、専用のソーシャル・ネットワーキング・システム用のモバイル・デバイスやコンピュータ・アプリケーションなどである。したがって、本明細書で用いられている「ページ」とは、ウェブ・ページ、アプリケーション・インターフェースもしくはディスプレイ、ウェブ・ページもしくはアプリケーション上に表示されるウィジット、ボックスもしくはそれ以外のグラフィカル・インターフェース、別のページ（ソーシャル・ネットワーキング・システムのコンテキストの内部でも外部でもあり得る）上のオーバレイ・ウィンドウ、またはそのソーシャル・ネットワーキング・システムの外部にありソーシャル・ネットワーキング・システムのプラグインもしくは統合性能を備えたウェブ・ページであり得る。
【００１３】
上述したように、ソーシャル・グラフは、エッジ（相互作用、活動、または関連性を表す）によって相互接続されたノード（ソーシャル・ネットワーキング・システムのオブジェクトを表す）の組を含む。ソーシャル・ネットワーキング・システムのオブジェクトは、ソーシャル・ネットワーキング・システムのユーザ、人以外の実体、コンテンツ項目、グループ、ソーシャル・ネットワーキング・システムのページ、場所、アプリケーション、主題、コンセプト、または映画、バンド、もしくは書籍などソーシャル・ネットワーキング・システムの他のオブジェクトであり得る。コンテンツ項目は、ソーシャル・ネットワーキング・システムのユーザもしくはそれ以外のオブジェクトが作成する、アップロードする、編集する、または相互作用する任意のものを含む。例えば、メッセージ、待ち行列（キュー）に入れられたメッセージ（例えば、電子メール）、テキストおよびＳＭＳ（ショート・メッセージ・サービス）メッセージ、コメント・メッセージ、任意の他の適切なメッセージング技術を用いて送られたメッセージ、ＨＴＴＰリンク、ＨＴＭＬファイル、イメージ、動画、オーディオ・クリップ、文書、文書エディット、カレンダ・エントリまたはイベント、およびそれ以外のコンピュータ関係のファイルなどである。主題およびコンセプトは、ソーシャル・グラフのコンテキストでは、任意の人、場所、物、または抽象的なアイデアを表すノードで構成される。
【００１４】
ソーシャル・ネットワーキング・システムは、ユーザが、そのユーザの興味に関する情報、教育および職務経験、連絡情報、ならびに他の履歴情報を、そのユーザのプロファイル・ページに入力して表示することを可能にすることができる。プロファイル・ページに含まれているそれぞれの学校、職場、興味（例えば、音楽、書籍、映画、テレビ番組、ゲーム、政治的意見、哲学、宗教、グループ、またはファン・ページ）、地理的位置、ネットワーク、または任意のそれ以外の情報は、ソーシャル・グラフにおけるノードによって表すことができる。ソーシャル・ネットワーキング・システムによると、ユーザは、写真、動画、文書、曲、またはそれ以外のコンテンツ項目をアップロードするまたは作成することができるようになり、また、イベントを作成して予定に組み込むことができるようになる。コンテンツ項目およびイベントは、ソーシャル・グラフにおけるノードによって表すことができる。
【００１５】
ソーシャル・ネットワーキング・システムは、そのソーシャル・ネットワーキング・システムの中にある人以外のオブジェクトと相互作用する様々な手段を提供することができる。例えば、ユーザは、グループを形成するもしくはグループに参加することができるし、または、そのソーシャル・ネットワーキング・システムの中のファン・ページのファンになることができる。更に、ユーザは、ソーシャル・ネットワーキング・システムのオブジェクトを作成する、ダウンロードする、見る、アップロードする、リンクする、タグ付けする、編集する、またはプレイすることができる。ユーザは、そのソーシャル・ネットワーキング・システムのコンテキストの外にあるソーシャル・ネットワーキング・システムのオブジェクトと相互作用することができる。例えば、ニュースのウェブサイトにある記事は、ユーザがクリックすることができる「いいね（ｌｉｋｅ）」ボタンを有している場合がある。このような例のそれぞれにおいては、ユーザとオブジェクトとの間の相互作用は、ユーザのノードとオブジェクトのノードとを接続するソーシャル・グラフにおけるエッジによって表すことができる。ユーザは、（モバイル・デバイス上のＧＰＳ受信機などの）位置検出機能を用いて、特定の位置に「チェックイン」することができ、エッジは、ソーシャル・グラフにおいて、ユーザのノードを位置のノードに接続することができる。
【００１６】
ソーシャル・ネットワーキング・システムは、ユーザが、自分たちとそのソーシャル・ネットワーキング・システムの他のユーザとを関連付け、それらのユーザとの関係を確立することを可能にする。２人のユーザがソーシャル・ネットワーキング・システムにおいて関係を確立すると、それらのユーザは、ソーシャル・ネットワーキング・システムのコンテキストの中において、「友だち（ｆｒｉｅｎｄ）」（または「つながり（ｃｏｎｎｅｃｔｉｏｎ）」）になる。ソーシャル・ネットワーキング・システムにおいて友人であるということにより、ユーザは、そうでない場合に関係のないユーザにとって利用可能であるよりも、相互についてのより多くの情報にアクセスすることができるようになる。例えば、友人であることで、ユーザは、別のユーザのプロファイルを見ること、別のユーザの友人に会うこと、または別のユーザの写真を見ることができるようになる場合がある。同様に、ソーシャル・ネットワーキング・システムにおいて友人になることによって、ユーザは、電子メール（そのソーシャル・ネットワーキング・システムの内部および外部の）、インスタント・メッセージ、テキスト・メッセージ、電話、または任意のそれ以外の通信インターフェースなど、別のユーザと通信するためのより大きなアクセスが許されることになり得る。最後に、友人であることにより、別のユーザによってアップロードされたコンテンツ項目を、見る、コメントする、ダウンロードする、支持する、またはそれ以外の態様で相互作用するためのアクセスが、ユーザに許される。ソーシャル・ネットワーキング・システムのコンテキストの中で、関係を確立すること、ユーザ情報を評価すること、通信すること、および相互作用することは、ソーシャル・ネットワーキング・システムの２人のユーザを表すノードの間のエッジによって表すことができる。
【００１７】
ソーシャル・ネットワーキング・システムにおいて関係を明確に確立することに加えて、共通の特性を備えている複数のユーザは、通信のトピックを決定する際に用いられるソーシャル・コンテキストを決定する目的で、接続されていると考えられる場合がある。一実施形態では、共通のネットワークに属する複数のユーザは、接続されていると考えられる。例えば、同じ学校に通う、同じ会社で働く、またはソーシャル・ネットワーキング・システムの同じグループに属する複数のユーザは、接続されていると考えることができる。一実施形態では、共通の履歴上の特徴を有する複数のユーザは、接続されていると考えられる。例えば、ユーザが生まれたまたは住んでいる地理的地域、ユーザの年齢、ユーザの性別、およびユーザの関係ステータスは、ユーザが接続されているかどうかを決定するのに用いることができる。一実施形態では、共通の関心を有する複数のユーザは、接続されていると考えられる。例えば、ユーザの映画の好み、音楽の好み、政治的立場、宗教的立場、または任意のそれ以外の関心は、ユーザが接続されているかどうかを決定するのに
用いることができる。一実施形態では、ソーシャル・ネットワーキング・システムの中で共通の行為を行った複数のユーザは、接続されていると考えられる。例えば、共通のオブジェクトを支持するまたは推薦する、共通のコンテンツ項目に対してコメントする、または共通のイベントに参加する（ＲＳＶＰ）複数のユーザは、接続されていると考えることができる。ソーシャル・ネットワーキング・システムは、以下で詳細に述べられるように、特定のユーザの通信のソーシャル・コンテンツを決定するまたは評価するために、ソーシャル・グラフを用いて特定のユーザと接続されているユーザを決定することができる。
【００１８】
ソーシャル・ネットワーキング・システムは、様々な通信チャネルをユーザに提供することができる。例えば、ソーシャル・ネットワーキング・システムは、ユーザが１人もしくは複数の他のユーザに電子メール、インスタント・メッセージ、またはテキスト／ＳＭＳメッセージを送ることを可能にし、ユーザがそのユーザ自身のウォールもしくはプロファイルまたは別のユーザのウォールもしくはプロファイルにメッセージをポストすることを可能にし、ユーザがグループもしくはファン・ページにメッセージをポストすることを可能にし、またはユーザがそのユーザ自身もしくは別のユーザによって作成されたもしくはアップロードされたイメージ、ウォール・ポストまたはそれ以外のコンテンツ項目にコメントすることを可能にする。一実施形態では、ユーザは、そのユーザ自身のプロファイルに、現在のイベント、心の状態、考え、感情、活動、または任意のそれ以外の現時点で関連する通信を示すステータス・メッセージをポストする。ソーシャル・ネットワーキング・システムは、ユーザが、そのソーシャル・ネットワーキング・システムの内部と外部の両方に通信することを可能にすることがあり得る。例えば、第１のユーザが第２のユーザに、ソーシャル・ネットワーキング・システムの中でのメッセージ、ソーシャル・ネットワーキング・システムを介しての電子メール、ソーシャル・ネットワーキング・システムの外部へのしかしそのソーシャル・ネットワーキング・システムから送信される電子メール、ソーシャル・ネットワーキング・システムの中でのインスタント・メッセージ、およびソーシャル・ネットワーキング・システムの外部へのしかしそのソーシャル・ネットワーキング・システムから送信されるインスタント・メッセージを、送ることができる。更に、第１のユーザは第２のユーザのプロファイル・ページにコメントする、または、第２のユーザによってアップロードされたコンテンツ項目など第２のユーザと関連するオブジェクトに対してコメントすることができる。ソーシャル・ネットワーキング・システムの中の任意の通信における用語に対するトピックは、以下でより詳細に述べられるように決定することができる。
【００１９】
図１は、一実施形態によりソーシャル・ネットワーキング・システムの通信のトピックを決定する処理に関する図である。図１の実施形態では、ソーシャル・ネットワーキング・システムのユーザ１００が、ソーシャル・ネットワーキング・システムのコンテキストの中で、通信１０５を作成する。通信１０５はアンカ用語モジュール１１０によって受け取られ、アンカ用語モジュール１１０は通信１０５をパージング（構文解析）してアンカ用語を識別する。アンカ用語とは、通信１０５における単語またはそれ以外の英数字のグループであり、その意味は、図１の実施形態の処理によって決定される。一実施形態では、単一の通信１０５において複数のアンカ用語が識別される。ただし、単純化する目的のために、本明細書での記述の残りの部分においては、単一のアンカ用語が識別される場合に限定する。
【００２０】
アンカ用語モジュール１１０は、あるアンカ用語に対する候補トピックを表す相互接続されたノードを含む辞書を含む辞書記憶モジュール１４０に結合され得る。辞書のノードは、上述したように、複数のノードの間の関連性に基づいて接続され得る。一実施形態では、アンカ用語モジュール１１０は、受け取られた通信１０５において、辞書記憶モジュール１４０に記憶されている辞書における１つまたは複数の関連するノードを用いて通信１０５においてある用語を識別することにより、アンカ用語を識別する。例えば、通信１
０５が「がんばれシャークス！」というテキストを含む場合には、アンカ用語モジュール１１０は、辞書に質問して、「シャークス」という用語を含むノードを識別することができる。この例では、辞書は、（動物の）サメ、サンノゼ・シャークス（ホッケー・チーム）、ジャンピング・ザ・シャーク（テレビ業界における業界用語であるテレビ番組の評価が下降する転換点）、ローン・シャーク（高利貸し）などのノードを識別するクエリに応答する可能性がある。アンカ用語モジュール１１０は、辞書にクエリを発する前にアンカ用語を識別する場合と、または、クエリに対する辞書からのフィードバックを受け取ったことに応答してアンカ用語を識別する場合とがあり得る。いずれの実施形態においても、アンカ用語モジュール１１０は、辞書記憶モジュール１４０から受け取られた識別された辞書ノードを、候補ノード１１５として出力することができる。本明細書で用いている「候補ノード」とは、識別されたアンカ用語に対する潜在的な意味を表す。
【００２１】
一実施形態では、候補ノード刈り込みモジュール１２０が、アンカ用語モジュール１１０から候補ノード１１５を受け取り、ユーザ１００から通信１０５を受け取り、アンカ用語とは関連しないと判断される特定の候補ノードを除外し、残った候補ノードを関連する候補ノード１２５として出力する。候補ノード刈り込みモジュール１２０は、それぞれの候補ノード１１５を考慮して、通信１０５におけるアンカ用語以外の用語を識別し分析することにより関連しない候補ノードを識別する。候補ノード刈り込みモジュール１２０は、候補ノードと通信１０５における識別された用語との間の類似性または関連性の尺度を決定するのに、カテゴリ・ツリーを用いることができる。候補ノード刈り込みモジュール１２０は、カテゴリ・ツリーから受け取られた類似性または関連性の尺度に基づいて、１つまたは複数の候補ノード１１５を取り除くことができ、残りの候補ノードが、関連する候補ノード１２５として出力される。
【００２２】
得点モジュール１２０は、候補ノード刈り込みモジュール１２０から関連する候補ノード１２５を受け取り、それらの関連する候補ノード１２５の中から、アンカ用語の意味を表す蓋然性が最も高い候補ノードを１つ選択する。一実施形態では、得点モジュール１３０は、受け取られた関連する候補ノード１２５のそれぞれに対して得点を生成する。候補ノードの得点は、通信１０５におけるアンカ用語に対するコンテキスト単語、ユーザの関心、グローバルな通信コンテキスト、およびソーシャル通信コンテキストに基づき得る。得点モジュール１３０は、次に、生成された候補ノードの得点に基づいて候補ノードを選択し、選択された候補ノードをトピック・ノード１３５として出力する。トピック・ノード１３５は、アンカ用語の意味を最もよく表す辞書ノードである。
【００２３】
システム・アーキテクチャ
図２は、一実施形態によりソーシャル・ネットワーキング・システムの通信のトピックを決定するのに適しているシステム環境の高位ブロック図である。このシステム環境は、クライアント・デバイス２１０ａ、２１０ｂ、および２１０ｃと、接続のためのネットワーク２００を経由して通信するソーシャル・ネットワーキング・システム２２０とを含む。接続のためのネットワーク２００は、インターネット、ローカル・エリア・ネットワーク、またはモジュールの間での通信を可能にする任意の他のネットワークであり得る。接続のためのネットワーク２００は、標準的な通信技術および／またはプロトコルを用いることができる。
【００２４】
クライアント・デバイス２１０は、携帯電話、ラップトップ、デスクトップ、ネットブック、タブレット、ケーブル・ボックス、またはテレビなど、ソーシャル・ネットワーキング・システムのコンテンツを送信または受信することができる任意のタイプのコンピューティング・デバイスを含み得る。図２にはクライアント・デバイス２１０が３つだけ示されているが、任意の数のクライアント・デバイスを一度にソーシャル・ネットワーキング・システム２３０に接続して通信を行うことができる。クライアント・デバイス２１０
のユーザは、ウェブ・ブラウザやネイティブなアプリケーションなどのアプリケーションを経由してソーシャル・ネットワーキング・システム２３０と相互作用し、コンテンツのブラウジング、通信のポストおよび送信、他のユーザとの通信の確立などソーシャル・ネットワーキング・システムの動作を実行する。
【００２５】
ソーシャル・ネットワーキング・システム２２０は、１つまたは複数のウェブ・サーバ上に存在する複数のページを含み得る。これらの複数のページが、ソーシャル・ネットワーキング・システムの情報を提供することができる。例えば、これらのページは、ユーザ・プロファイル、グループ・プロファイル、ファン・プロファイル、およびそれ以外のソーシャル・ネットワーキング・システムと関係するページのためのページを含み得る。これらのページは、ユーザの行為、プロファイル情報、関係情報、通信情報、グループ情報、ファン・ページ情報、推奨（ｅｎｄｏｒｓｅｍｅｎｔ）情報、およびコンテンツ項目をこれらに限定されるわけではないが含むオブジェクトおよび相互作用データだけでなく、通信、個人情報、ユーザ設定、グループ設定、サーチ結果、および広告など様々なソーシャル・ネットワーキング・システムのデータを含み得る。
【００２６】
図２の実施形態におけるソーシャル・ネットワーキング・システム２２０は、辞書作成モジュール２２５、カテゴリ・ツリー作成モジュール２３０、通信モジュール２３５、構文解析モジュール２４０、刈り込みモジュール２４５、得点モジュール２５０、グローバル・コンテキスト・モジュール２５５、ソーシャル・コンテキスト・モジュール２６０、およびソーシャル・コンテキスト・プロンプト・モジュール２６５を含む。更に、ソーシャル・ネットワーキング・システム２２０は、ソーシャル・グラフ・データ記憶モジュール２７０、辞書記憶モジュール１４０、およびカテゴリ・ツリー記憶モジュール１５０を含む。代替的な構成では、異なるおよび／または追加的／より少数のモジュールが、ソーシャル・ネットワーキング・システム２２０に含まれることがあり得る。例えば、グローバル・コンテキスト・モジュール２５５とソーシャル・コンテキスト・モジュール２６０の機能が、得点モジュール２５０によって実行されることもあり得る。
【００２７】
辞書作成モジュール２２５は、ソーシャル・ネットワーキング・システム２２０によって、通信の用語のトピックを決定する際に用いられる主題辞書を構築するのに用いられる。一実施形態では、辞書が、ソーシャル・グラフ・データ記憶モジュール２７０に、ソーシャル・グラフの部分集合として記憶される。あるいは、この辞書が、辞書記憶モジュール１４０に、ソーシャル・グラフとは独立に記憶されることもある。上述したように、この辞書は、複数のノードの間の関連性を表すエッジによって接続されている相互接続されたノードの組を含む。
【００２８】
辞書作成モジュール２２５は、辞書を一旦作成して、その辞書を時間の経過と共に組織的に更新するか、または、新たな辞書を一定周期ごとにゼロから作成することができる。一実施形態では、辞書作成モジュール２２５は、ウィキペディアなどの公衆に利用可能なデータベースに基づいて辞書を作成する。この実施形態では、それぞれのウィキペディアのページが辞書における１つのノードによって表され、ある与えられたページの中でリンクされているウィキペディアのページを表すノードは、その与えられたページを表すノードにエッジによって接続される。
【００２９】
一実施形態では、辞書作成モジュール２２５は、公衆に利用可能なデータベースに基づいて辞書を作成し、ソーシャル・グラフに基づいて、その辞書を増大させる。例えば、辞書作成モジュール２２５は、ウィキペディアの中では相互にリンクされていない会社Ａと会社Ｂとに対するウィキペディアのページを識別して、会社Ａを表すノードと会社Ｂを表すノードとが相互にリンクされていない辞書を作成することがあり得る。この例で、辞書作成モジュール２２５は、ソーシャル・グラフを用いて、辞書を修正することができる。
例えば、会社Ａと会社Ｂとがソーシャル・ネットワーキング・システム２２０を通じてジョイント・プロモーションを行う場合には、ソーシャル・ネットワーキング・システム２２０において会社Ａを表すノードと会社Ｂを表すノードとを、このプロモーションを表すエッジによって接続することが可能である。この例では、辞書作成モジュール２２５は、ソーシャル・グラフにおいてプロモーションを表すエッジを認識し、辞書において会社Ａを表すノードと会社Ｂを表すノードとをエッジを用いて接続することが可能になる。
【００３０】
上述した通り、辞書は、ソーシャル・グラフの部分集合として、ソーシャル・グラフに記憶することが可能である。この実施形態では、辞書作成モジュール２２５は、ソーシャル・グラフの進展に応じて、辞書を集成する。辞書作成モジュール２２５は、辞書を作成するのに用いられた公衆に利用可能なデータベースを周期的に走査（スキャン）して、その公衆に利用可能なデータベースのコンテンツの変化に基づき、辞書ノードの間のエッジを追加または削除することができる。辞書作成モジュール２２５は、通信の用語と辞書ノードとの間でのユーザによる明示的な関連付けに基づいて、辞書ノードの間のエッジを追加することがあり得る。例えば、ユーザが、「ＡＴ＆Ｔパークでアイスクリーム・サンドイッチを買いました！」という通信を作成する場合があり得るが、その場合、「アイスクリーム・サンドイッチ」という用語とアイスクリーム・サンドイッチを表すノードとを関連付けることができ、また、「ＡＴ＆Ｔパーク」という用語とサンフランシスコ・ジャイアンツの本拠地球場を表すノードとを関連付けることができる。この例では、辞書作成モジュール２２５は、ＡＴ＆Ｔパークのノードとアイスクリーム・サンドイッチのノードとの間のエッジを作成することができる。
【００３１】
図３は、一実施形態による例示的な主題辞書の図である。図３の実施形態では、例示的な辞書はノードＡ〜Ｈを含む。ノードＡは、ノードＡとノードＣとの間の関連性を表すエッジとノードＡとノードＥとの間の関連性を表すエッジとによって、ノードＣとノードＥとに接続されている。既に論じたように、ノードＡ、ノードＣ、およびノードＥは、ウィキペディアにおける記事を表すことができる。図３の実施形態では、ノードＡによって表される記事は、ノードＣによって表される記事へのリンクと、ノードＥによって表される記事へのリンクとを含み得るが、このことは、ノードＡをノードＣに接続するエッジと、ノードＡをノードＥに接続するエッジとによって表される。
【００３２】
カテゴリ・ツリー作成モジュール２３０は、ソーシャル・ネットワーキング・システム２２０によって、アンカ用語の意味として考察する際に候補辞書ノードの数を減少させるのに用いられるカテゴリ・ツリーを作成するのに用いられる。カテゴリ・ツリー作成モジュール２３０によって作成されるカテゴリ・ツリーは、カテゴリ・ツリー記憶モジュール１５０に記憶されるか、または、ソーシャル・グラフの主題として、ソーシャル・グラフ・データ記憶モジュール２７０に記憶され得る。一実施形態では、カテゴリ・ツリーは、辞書におけるすべてのノードの階層的な編成であり、それぞれのノードはただ１つの親ノードと任意の数の子ノードとを有し、それぞれのノードはノードの親ノードによって表される主題の部分集合を表す。
【００３３】
一実施形態では、カテゴリ・ツリー作成モジュール２３０は、ウィキペディアなどのデータベースのカテゴリ的なおよび階層的な編成を利用して、カテゴリ・ツリーを作成する。一実施形態では、カテゴリ・ツリー作成モジュール２３０は、それぞれの辞書ノードに対して、「最良の」親ノードを決定する。例えば、データベースは、カテゴリ・ツリーに変換することが可能なカテゴリ・グラフを含むことがある。データベースにおけるそれぞれのノードは複数個の潜在的親ノードを有する場合があるが、その場合、カテゴリ・ツリーにおいて用いるために１つの親ノードを決定するには、それぞれの潜在的な親ノードに対して得点を計算することと、計算された得点が最も高い潜在的な親ノードを選択することとが含まれ得る。
【００３４】
特定の子ノードの潜在的親ノードに対する得点を計算するのは、複数のファクタに基づくことがあり得る。一実施形態では、潜在的な親ノードであって、その潜在的な親ノードの子ノードまたは親ノードと（つまり、祖父母ノードから子ノードまでを考えて）共通する名詞、名詞句、動詞、動詞句、形容詞、形容詞句、副詞、および副詞句を有するノード・タイトルを有するような潜在的な親ノードは、そのような共通する文法的構成を有していない潜在的親ノードよりも、高い得点を得る。一実施形態では、「アメリカ合衆国における大学スポーツ（Ｃｏｌｌｅｇｅ  ｓｐｏｒｔｓ  ｉｎ  ｔｈｅ  Ｕｎｉｔｅｄ  Ｓｔａｔｅｓ）」のように、「ＢにおけるＡ（Ａ  ｉｎ  Ｂ）」という形式を有する潜在的親ノードは、他の形式のノードよりも高い得点を得る。同様に、「ピカソによる絵画（Ｐａｉｎｔｉｎｇｓ  ｂｙ  Ｐｉｃａｓｓｏ）」のように、「ＢによるＡ（Ａ  ｂｙ  Ｂ）」という形式を有する潜在的親ノードは、他の形式のノードよりも高い得点を得る。一実施形態では、「大学スポーツ（Ｃｏｌｌｅｇｅ  ｓｐｏｒｔｓ）」のように、ノード・タイトルにおいて複数の用語を有する潜在的親ノードは、ノード・タイトルにおいて複数の用語を有していないノードよりも高い得点を得る。一実施形態では、第２の潜在的親ノードよりも多くの子ノードを有している第１の潜在的親ノードは、第２の潜在的親ノードよりも高い得点を得る。
【００３５】
図４は、一実施形態による例示的なカテゴリ・ツリーの図である。図４の実施形態では、この例示的なカテゴリ・ツリーはノードａを含み、ノードａは子ノードｂ１、ｂ２、およびｂ３を有する。同様に、ノードｂ１は子ノードｃを有していて、ノードｃは今度は子ノードｆ１およびｆ２を有する、などである。図４の実施形態のカテゴリ・ツリーは、４つの階層レベルに編成されているが、他のカテゴリ・ツリーは任意の数のノードと階層レベルとを有することがあり得る。
【００３６】
カテゴリ・ツリーにおける任意の２つのノードの間の「距離」とは、そのカテゴリ・ツリーにおけるそれら２つのノードの間の最小エッジ数である。例えば、ノードｆ１とノードｅ２との間の距離は５であり、これは、ノードｆ１とノードｃとの間のカテゴリ・ツリーにおける第１のエッジ、ノードｃとノードｂ１との間の第２のエッジ、ノードｂ１とノードａとの間の第３のエッジ、ノードａとノードｂ３との間の第４のエッジ、およびノードｂ３とノードｅ２との間の第５のエッジを表している。
【００３７】
通信モジュール２３５は、ソーシャル・ネットワーキング・システム２２０のユーザが、ソーシャル・ネットワーキング・システム２３５の中で通信を作成することを可能にする。通信モジュール２３５は、通信を入力するために、ソーシャル・ネットワーキング・システムのあるページの中にＧＵＩを含み得る。例えば、通信モジュール２３５は、ソーシャル・ネットワーキング・システム２２０に後でアップロードされる通信を入力するためのソーシャル・ネットワーキング・システムのあるウェブ・ページまたはアプリケーションの中に、テキスト・フィールドを提供することができる。あるいは、通信モジュール２３５によって、ユーザが、ソーシャル・ネットワーキング・システム２２０の外部において通信を作成し、その通信をソーシャル・ネットワーキング・システム２２０に送信することが可能になる場合もある。例えば、ユーザが通信をテキスト／ＳＭＳメッセージ経由でソーシャル・ネットワーキング・システム２２０に送る場合には、通信モジュール２３５は、その通信を受け取り、その通信を適切に記憶／ルーティングする。
【００３８】
通信モジュール２３５は、ユーザが、様々な通信を作成することを可能にする。例えば、通信モジュール２３５により、ユーザは、電子メール、インスタント・メッセージ、テキスト／ＳＭＳメッセージ、ウォール・ポスト、ステータス・メッセージ、またはテキストを含む任意の他のタイプの通信を作成することができるようになる。通信モジュール２３５により、ユーザが通信を別のユーザに宛てることや、ユーザのウォール上へのポスト
のように、別のユーザには宛てられていない通信を作成することが可能になる。通信モジュール２３５によると、ユーザは、別のユーザまたはオブジェクトと通信における用語とを明示的に関連付けることにより、他のユーザや他のオブジェクトを通信においてタグ付けすることが可能になる。例えば、ユーザが「サブウェイでマイケル・ジョンソンと食事」というポストを行うと、「サブウェイ」という用語を、サブウェイ・レストランを表す辞書またはソーシャル・グラフにおけるノードとタグ付けし、「マイケル・ジョンソン」という用語を、そのユーザのマイケル・ジョンソンという名前の友人を表す辞書またはソーシャル・グラフにおけるノードとタグ付けすることができる。
【００３９】
構文解析（パージング）モジュール２４０は、通信を複数の用語の組に構文解析し、構文解析された用語のうちの１つまたは複数をアンカ用語として選択する。一実施形態では、構文解析モジュール２４０は、通信を、その通信の中の単語によって構文解析する。例えば、「ザ・サンフランシスコ・ジャイアンツがわたしの好みのチームです（Ｔｈｅ  ＳＦ  Ｇｉａｎｔｓ  ａｒｅ  ｍｙ  ｆａｖｏｒｉｔｅ  ｔｅａｍ）」という通信は、「ザ（Ｔｈｅ）」、「サンフランシスコ（ＳＦ）」、「ジャイアンツ（Ｇｉａｎｔｓ）」、「が（Ａｒｅ）」、「わたしの（Ｍｙ）」、「好みの（Ｆａｖｏｒｉｔｅ）」、「チーム（Ｔｅａｍ）」という７つの用語に構文解析され得る。一実施形態では、構文解析モジュール２４０は、通信を、２つまたはそれより多くの用語の組み合わせによって、構文解析する。前の例に続けて、構文解析モジュール２４０は、与えられた通信から、「サンフランシスコ・ジャイアンツ」という用語を、更に構文解析し得る。構文解析モジュール２４０は、通信を、単語とは独立に、複数の用語に構文解析することがあり得る。例えば、構文解析モジュール２４０は、通信を、６つの文字からなる用語など固定された文字の用語に構文解析することがあり得るし、または、通信を、通信における空白に基づいて用語に構文解析することもあり得る。例えば、構文解析モジュール２４０は、「ｂ４  わたしが  その  店  に  行く、どう  ａｎｙ１  何か  必要（ｂ４  ｉ  ｇｏ  ｔｏ  ｔｈｅ  ｓｔｏｒｅ，  ｄｏｅｓ  ａｎｙ１  ｎｅｅｄ  ａｎｙｔｈｉｎｇ）」という通信を、「ｂ４」と「ａｎｙ１」という用語を含むように構文解析することができる。
【００４０】
構文解析モジュール２４０は、ある通信を構文解析する前に、その通信から単語を取り除く場合がある。一実施形態では、構文解析モジュール２４０は、ある通信を構文解析する前に、その通信から、前置詞、接続詞、間投詞、および／または冠詞を除外する。一実施形態では、構文解析モジュール２４０は、通信を構文解析する前に、形容詞および／または代名詞をその通信から取り除く。一実施形態では、構文解析モジュール２４０は、通信を構文解析する前に、その通信から名詞以外のすべての用語を取り除く。構文解析モジュール２４０は、通信を構文解析する前に、その通信から単語の所定の組における単語を取り除くことがある。構文解析モジュール２４０は、構文解析の前に、通信における単語のスペルチェックを行い、誤って綴られたまたは省略形の単語を、正確に綴られている単語と交換することがあり得る。例えば、「Ｊｕｐｔｉｅｒ」という単語は「Ｊｕｐｉｔｅｒ」と交換され、「ｌ８ｅｒ」という単語は「ｌａｔｅｒ」と交換され得る。
【００４１】
構文解析モジュール２４０は、ある通信を用語の組に構文解析した後で、それらの用語の内の１つをアンカ用語として選択する。既に論じたように、ここで論じている原理は、構文解析モジュール２４０が与えられた通信に対して複数個のアンカ用語を選択するような実施形態にも応用される。しかし、単純化の目的だけのために、ここでの議論の残りの部分では、構文解析モジュール２４０がアンカ用語を１つだけ選択する実施形態に限定して論じることにする。一実施形態では、通信における第１のアンカ用語が選択され、第１のアンカ用語の意味が決定され、その後で、同じ通信において第２のアンカ用語が選択される。
【００４２】
構文解析モジュール２４０は、アンカ用語を複数の方法で選択することができる。一実
施形態では、構文解析モジュール２４０は、用語の組における最初の用語をアンカ用語として選択する。あるいは、構文解析モジュール２４０が、既に決定されている意味を有する用語の組において用語を識別して、意味がまだ決定されていない用語の組における最初の用語を選択する場合もある。一実施形態では、構文解析モジュール２４０は、アンカ用語を選択する前に辞書において用語の組の中のそれぞれの用語を参照し、辞書の結果の最も曖昧なまたは最も曖昧でない組を結果として生じるような用語を選択することがある。
【００４３】
構文解析モジュール２４０は、辞書における用語を参照して、その用語と関連する辞書ノードを識別する。構文解析モジュール２４０は、辞書記憶モジュール１４０に記憶されている辞書において用語を参照することができるし、または、ソーシャル・グラフ・データ記憶モジュール２７０にソーシャル・グラフの部分集合として記憶されている辞書において用語を参照することができる。一実施形態では、辞書において用語を参照することは、その用語を用いて辞書のキーワード・サーチを実行することを含む。例えば、「ベアーズ（Ｂｅａｒｓ）」という用語を用いて辞書に対してクエリが発せられる場合には、「ベアーズ」という単語をタイトルに含むすべての辞書ノードが返されることになり得る。例えば、シカゴ・ベアーズ、カリフォルニア・ベアーズ、およびバンドの「ザ・ベアーズ（Ｔｈｅ  Ｂｅａｒｓ）」を表すノードなどである。一実施形態では、辞書において用語を参照することは、更に、その用語の一般的な変形例を用いて辞書のキーワード・サーチを実行することを含む。例えば、その用語の複数形、その用語の単数形、その用語の過去形、その用語の未来形、その用語の現在形などである。先ほどの例を用いると、辞書にクエリを発することには、更に、タイトルに「ベア（Ｂｅａｒ）」という単語を含むノードに対してサーチをすることが含まれ、映画の「ザ・ベア（Ｔｈｅ  Ｂｅａｒ）」とテレビ・ホストのベア・グリルズとを表すノードのリターンが結果的に生じ得る。一実施形態では、辞書において用語を参照することは、その用語の同義語を辞書で参照することを含む。例えば、「セル・フォン」という用語を用いて辞書にクエリを発することは、「セル・フォン」、「モバイル・フォン」、「ワイヤレス・フォン」、「セル」、「フォン」などの用語について、辞書をキーワード・サーチすることを含むことがあり得る。
【００４４】
構文解析モジュール２４０は、用語を用いて辞書にクエリを発することに応答して、辞書から辞書ノードの組を受け取る。既に論じた通り、構文解析モジュール２４０は、辞書にクエリを発する前に、またはクエリを発した後に、アンカ用語を選択することができる。後者の実施形態においては、構文解析モジュール２４０は、構文解析された用語の組からの複数の用語を用いて辞書にクエリを発し、それに応答して、辞書からの辞書ノードの複数の組を受け取る。構文解析モジュール２４０は、辞書ノードの受け取られた組に基づいて、別の用語を選択する場合がある。例えば、構文解析モジュール２４０は、どの用語が辞書ノードの最小の受け取られた組と関連するのかに基づいて、または、どの用語が辞書ノードの最大の受け取られた組と関連するのかに基づいて、アンカ用語を選択することができる。
【００４５】
構文解析モジュール２４０は、アンカ用語に対して候補辞書ノードの組を決定する。候補ノードの組におけるそれぞれの候補ノードは、アンカ用語に対する可能性のある意味を表す。一実施形態では、候補ノードの組におけるそれぞれの候補ノードには、トピック・ノードとして選択するために得点が与えられる。別の実施形態では、候補ノードの組が、得点が与えられる前に、刈り込みモジュール２４５によって分析され、縮小される。この実施形態では、刈り込みモジュール２４５は、カテゴリ・ツリー記憶モジュール１５０に記憶されている、またはソーシャル・グラフ記憶モジュール２７０に記憶されているソーシャル・グラフの部分集合として記憶されているカテゴリ・ツリーにクエリを発し、候補ノードの組を縮小する。
【００４６】
刈り込みモジュール２４５は、通信において、アンカ用語以外の１つまたは複数の構文
解析された用語を選択し、そのようにして選択された１つまたは複数の構文解析された用語とそれぞれの候補ノードとを用いてカテゴリ・ツリーに質問する。一実施形態では、刈り込みモジュール２４５は、通信においてアンカ用語に隣接している用語を選択する。一実施形態では、刈り込みモジュール２４５は、アンカ用語から所定の距離の範囲内にある用語を選択する。例えば、刈り込みモジュール２４５は、アンカ用語から３つの用語の範囲内にある１つまたは複数の用語を選択することがあり得る。この例では、「今日モールで映画タイタニックを買いました（Ｂｏｕｇｈｔ  ｔｈｅ  ｍｏｖｉｅ  Ｔｉｔａｎｉｃ
ａｔ  ｔｈｅ  ｍａｌｌ  ｔｏｄａｙ）」という通信と「モール（ｍａｌｌ）」というアンカ用語とに対して、刈り込みモジュール２４５は、「モール」から３つの用語の範囲内にあるという理由で「タイタニック（Ｔｉｔａｎｉｃ）」という用語を選択し、「モール」から３つの用語の範囲内にないという理由で「映画（ｍｏｖｉｅ）」を選択しない、ということがあり得る。あるいは、候補ノード刈り込みモジュール１２０は、通信１０５におけるアンカ用語以外のすべての用語を選択することがあり得る。
【００４７】
それぞれの候補ノードに対して、刈り込みモジュール２４５は、刈り込みモジュール２４５によって選択された１つまたは複数の通信の用語と候補ノードとを用いて、カテゴリ・ツリーにクエリを発し、候補ノードと１つまたは複数の選択された用語との間の類似性または関連性の尺度を決定する。一実施形態では、カテゴリ・ツリーは、上述したように、階層的に編成された辞書ノードの組を含む。この実施形態では、候補ノードと１つまたは複数の選択された用語との間の類似性または関連性の尺度は、候補ノードと刈り込みモジュール２４５によって選択された１つまたは複数の通信の用語のうちの１つを表すノードとの間のカテゴリ・ツリーのエッジの数を表す距離である。
【００４８】
刈り込みモジュール２４５は、類似性または関連性の受け取られた尺度に基づき、アンカ用語の意味を表す蓋然性が最も高いトピック・ノードとしての考慮から、候補ノードを取り除く。一実施形態では、刈り込みモジュール２４５は、刈り込みモジュール２４５によって選択された通信の用語との類似性または関連性の所定の閾値または相対的な閾値を満たさない候補ノードを、取り除く。例えば、刈り込みモジュール２４５は、通信における選択された用語を表すノードからの平均距離が５またはそれより大きな候補ノードを取り除くことがあるし、または、選択された用語に最も類似していないまたは最も関連していない３つの候補ノードを取り除くことがある。刈り込みモジュール２４５によって取り除かれた候補ノードは、トピック・ノードとしての選択のために記憶されることはない。
【００４９】
得点モジュール２５０は、通信における他の用語、ユーザの関心および好み、グローバルな通信コンテキスト、およびソーシャル通信コンテキストに基づいて、候補ノードに対する得点を作成し、作成された候補ノードの得点に基づいて、アンカ用語の意味を最もよく表すと判断されるトピック・ノードとして、候補ノードを１つ選択する。一実施形態では、得点モジュール２５０は、グローバル・コンテキスト・モジュール２５５からグローバルな通信コンテキストを受け取り、ソーシャル・コンテキスト・モジュール２６０からソーシャル通信コンテキストを受け取る。別の実施形態では、得点モジュール２５０は、グローバル・コンテキスト・モジュール２５５とソーシャル・コンテキスト・モジュール２６０とによって後で調節される候補ノードの得点を作成する。得点モジュール２５０は、それぞれの候補ノードに対して、ある得点を作成し、それを維持することもあり得る。一実施形態では、得点モジュール２５０によって作成された得点は、数字であって、０から１までの範囲にある。得点モジュール２５０は、それぞれの候補ノードに、例えば０．５である初期得点を割り当てる場合もある。一実施形態では、得点モジュール２５０は、分析されたそれぞれの追加的なファクタに対して、初期の候補ノードの得点を調節する。
【００５０】
得点モジュール２５０は、最も高い候補ノードの得点を有する候補ノードを、アンカ用語の意味を最もよく表すトピック・ノードとして選択することがあり得る。一実施形態で
は、得点モジュール２５０は、識別された１つのアンカ用語に対して１回、トピック・ノードを選択する。別の実施形態では、得点モジュール２５０は、候補ノードに対して得点を再度作成することがあり得るし、また、あるユーザがアンカ用語を含む通信を見るたびに、１つの候補ノードを、トピック・ノードとして再度選択することがあり得る。例えば、アンカ用語を含む通信を含むニュースフィードがリフレッシュされるたびに、得点モジュール２５０は、候補ノードの得点を作成して調整することがあり得るし、最も高い得点を有する候補ノードを選択することもあり得る。
【００５１】
候補ノードの得点は、通信におけるアンカ用語と関連するコンテキスト単語に基づくことがあり得る。一実施形態では、得点モジュール２５０は、通信におけるアンカ用語を修飾する動詞を分析する。例えば、「ハリー・ポッターを見ています（Ｗａｔｃｈｉｎｇ  Ｈａｒｒｙ  Ｐｏｔｔｅｒ）」という通信におけるアンカ用語である「ハリー・ポッター」に対して、得点モジュール２５０は、ハリー・ポッターの映画と関連する候補ノードの方に、ハリー・ポッターの書籍と関連する候補ノードよりも高い得点を与えることがあり得るが、この理由は、「見ている」という動詞が、書籍ではなくて映画を含意するからである。一実施形態では、ソーシャル・ネットワーキング・システム２２０における通信は、候補ノードに得点を与えて特定の辞書ノードと関連する特定の動詞、形容詞、または他の用語を決定する前に、練習用のフレーズにおいて分析される。この実施形態では、練習用のフレーズの用語／ノードの関係データが、通信におけるコンテキスト単語に基づいて候補ノードを決定する際に用いられる。
【００５２】
候補ノードの得点は、通信におけるアンカ用語以外の用語と候補ノードとの間の関連性に基づくことがあり得る。一実施形態では、候補ノードの得点は、アンカ用語以外の通信の用語と刈り込みモジュール２４５によって決定された候補ノードとの間の類似性または関連性の尺度に基づくことがあり得る。例えば、カテゴリ・ツリーにおいて他の通信の用語との間の平均距離が３である第１の候補ノードは、カテゴリ・ツリーにおいて他の通信の用語との間の平均距離が５である第２の候補ノードよりも、大きな得点が与えられることがある。一実施形態では、候補ノードの得点は、候補ノードと通信におけるアンカ用語以外の用語を表すノードとの間の経路の数に基づくことがあり得る。一実施形態では、候補ノードの得点は、候補ノードによって表されているウィキペディアの記事と通信におけるアンカ用語以外の用語を表すノードとが、「ウィキペディアとのリンクについて学ぶ」（ｈｔｔｐ：／／ｗｗｗ．ｃｓ．ｗａｉｋａｔｏ．ａｃ．ｎｚ／〜ｄｎｋ２／ｐｕｂｌｉｃａｔｉｏｎｓ／ＣＩＫＭ０８−ＬｅａｒｎｉｎｇＴｏＬｉｎｋＷｉｔｈＷｉｋｉｐｅｄｉａ．ｐｄｆ）において論じられているように、関連している確率に基づくことがあり得る。
【００５３】
候補ノードの得点は、ユーザの関心、履歴情報、地理的情報、またはソーシャル・ネットワーキング・システムでの活動に基づき得る。一実施形態では、得点モジュール２５０は、ユーザによってユーザのプロファイルに入力された情報などユーザの関心情報を検索し、検索されたプロファイル情報に基づいて候補ノードの得点を調節する。例えば、「シャークス（ホッケー・チーム）」という候補ノードは、ユーザが「サンノゼ・シャークス」をユーザのプロファイルの好きなスポーツ・チームのセクションに入力している場合、ユーザが「ホッケー」をユーザのプロファイルの趣味のセクションに入力している場合、またはユーザが「シャークス  ホッケー」のグループに参加している場合には、「シャークス（動物のサメ）」の候補ノードよりも高い得点を与えられることがあり得る。ソーシャル・ネットワーキング・システム２２０のユーザと関連するどのような情報でも、候補ノードの得点を作成および／または調節するのに用いられ得るのであり、これには、以下に限定されることはないが、現在の都市もしくは場所、故郷、生まれた都市もしくは国、性別、誕生日、性的指向、話す言語、出身校、勤め先、宗教的立場、政治的立場、音楽の好み、本の好み、映画の好み、テレビ番組の好み、ゲームの好み、するスポーツ、好きな
スポーツ・チーム、好きな運動選手、好きな趣味もしくは活動、関心、ソーシャル・ネットワーキング・システムのグループもしくはファン・ページ、ソーシャル・ネットワーキング・システム２２０の中でのユーザ活動、またはこのユーザと関連する任意のそれ以外の情報が、含まれる。
【００５４】
候補ノードの得点は、先に確立されている日付に基づき得る。一実施形態では、得点モジュール２５０が、現在の日付が確立された休日、歴史的イベント、またはそれ以外の日付に基づく出来事と一致するかどうかを判断し、これらの出来事に基づいて候補ノードの得点を調節する。休日、歴史的イベント、およびそれ以外の出来事は、例えば、ウィキペディアのような公衆に利用可能なデータベースから決定されるか、または手作業により前もって決定され得る。この実施形態では、得点モジュール２５０により現在の日付が知られている確立された日付と一致すると判断さえる場合には、得点モジュール２５０が、その確立されている日付と関連する候補ノードについて、その候補ノードの得点を増加させることがあり得る。例えば、得点モジュール２５０によって現在の日付が７月４日であると判断され、かつ、得点モジュール２５０により候補ノードである「ファイヤワークス（花火製造技術）」が７月４日という日付と関連していると判断される場合には、得点モジュール２５０は、候補ノードである「ファイヤワークス（花火製造技術）」に関して、その候補ノードの得点を増加させる。
【００５５】
候補ノードの得点は、予測されている出来事およびイベントに基づくことがあり得る。一実施形態では、得点モジュール２５０が、現在の日付または時刻が予測されているイベントの日付および時刻と一致するかどうかを判断し、それらの出来事に基づいて候補ノードの得点を調節する。スポーツ・イベント、コンサート、パーティ、パレード、選挙、卒業式、セール、または任意のそれ以外の出来事もしくはイベントも、例えば、ウィキペディアや、得点モジュール２５０にとって利用可能な出来事およびイベントの日付および時刻を確立する任意のそれ以外のソースから、決定され得る。この実施形態では、得点モジュール２５０により現在の日付および時刻が予測されている出来事またはイベントの日付および時刻と一致すると判断される場合には、得点モジュール２５０が、その予測されている出来事またはイベントと関連する候補ノードについて、その候補ノードの得点を増加させることがあり得る。例えば、得点モジュール２５０によりゴンザーガ大学のバスケットボールの試合が現在の日付および時刻の間に行われると予測されており、得点モジュール２５０により候補ノードである「ブルドッグズ（バスケットボール・チーム）」がゴンザーガ大学と関連していると判断される場合には、得点モジュール２５０が、候補ノードである「ブルドッグズ（バスケットボール・チーム）」について、候補ノードの得点を増加させる。同様に、得点モジュール２５０により現在の日付がアメリカ合衆国上院のための選挙の日であると判断され、得点モジュール２５０により候補ノードである「バーバラ・ボクサ（アメリカ合衆国上院議員）」がアメリカ合衆国上院のための選挙データと関連していると判断される場合には、得点モジュール２５０が、候補ノードである「バーバラ・ボクサ（アメリカ合衆国上院議員）」について、候補ノードの得点を増加させる。
【００５６】
グローバル・コンテキスト・モジュール２５５とソーシャル・コンテキスト・モジュール２６０とは、グローバルなソーシャル・ネットワーキング・システムの通信と通信元ユーザに接続されているユーザの通信との分析に基づいて、それぞれが、候補ノードの得点を調節することができる。一実施形態では、候補ノードの得点は、一定の量だけ、または分析された通信と関係する量だけ、増加または減少される。一実施形態では、分析された通信が集計され、この集計に基づいて候補ノードの得点が調節される。例えば、分析された通信の５０％が第１の候補の得点への増加を支持し、分析された通信の２０％が第２の候補の得点への増加を支持する場合には、第１の候補ノードの得点は５０％だけ増加され、第２の候補ノードの得点は２０％だけ増加され得る。一実施形態では、グローバル・コンテキスト・モジュール２５５とソーシャル・コンテキスト・モジュール２６０とが、そ
れぞれの候補ノードのために、グローバル・コンテキストの得点とソーシャル・コンテキストの得点とをそれぞれ生じる。この実施形態では、候補ノードの得点は、関連するグローバル・コンテキストの得点および／またはソーシャル・コンテキストの得点を用いて、候補ノードの得点を加算するまたは乗算することによって、調節され得る。
【００５７】
グローバル・コンテキスト・モジュール２５５は、グローバルなソーシャル・ネットワーキング・システムの活動に基づいて、候補ノードの得点を調節する。一実施形態では、グローバル・コンテキスト・モジュール２５５は、ソーシャル・ネットワーキング・システム２２０の全体にわたるユーザの通信を分析して、候補ノードの関連性と関係する情報を識別する。一実施形態では、グローバル・コンテキスト・モジュール２５５は、分析された通信において、アンカ用語以外の用語を識別して、これらの識別された用語に基づいて候補ノードの得点を調節する。例えば、「がんばれシャークス！」という通信における「シャークス」というアンカ用語に対して、グローバル・コンテキスト・モジュール２５５は、「シャーク」という単語を含む他のすべての通信を分析することがあり得る。この例では、グローバル・コンテキスト・モジュール２５５は、「ホッケー」という単語もまた含むこれらの通信の部分集合を識別することがある。したがって、グローバル・コンテキスト・モジュール２５５は、「シャークス（ホッケー・チーム）」という候補ノードの得点を増加させて、「シャーク（動物のサメ）」というノードの得点を減少させることがあり得る。更にこの例についての議論を続けると、グローバル・コンテキスト・モジュール２５５は、「シャークス（ホッケー・チーム）」という候補と関連するグローバルな通信において「がんばれ」という用語を識別して、「がんばれシャークス！」という通信に対する「シャークス（ホッケー・チーム）」という候補ノードの得点を適切に増加させ得る。
【００５８】
一実施形態では、グローバル・コンテキスト・モジュール２５５によるソーシャル・ネットワーキング・システム２２０の全体にわたる通信の分析には、時間的制約がある。例えば、グローバル・コンテキスト・モジュール２５５は、先行する１時間の間に、または先行する１０分の間に作成されたユーザの通信を分析するだけである場合があり得る。一実施形態では、ソーシャル・ネットワーキング・システム２２０の全体にわたり分析された通信の効果は、時間減衰モデルに従って重み付けされる。ここで、時間減衰モデルとは、最も近い時点での通信が最も重く重み付けされ、最も遠い通信が最も軽く重み付けされるようなモデルである。
【００５９】
一実施形態では、グローバル・コンテキスト・モジュール２５５は、ソーシャル・ネットワーキング・システム２２０の全体にわたり通信において識別されたアンカ用語を用いるユーザと関連するユーザ情報を分析する。この実施形態では、グローバル・コンテキスト・モジュール２５５は、特定のユーザ情報を、アンカ用語と、また、潜在的なアンカ用語の意味と関連付け、これらの関連を用いて、候補ノードの得点を調節または重み付けすることができる。例えば、グローバル・コンテキスト・モジュール２５５は、「シャークス」という用語を含むユーザからの通信を識別し、これらのユーザの部分集合が「ホッケー」を関心のあるものとしてリストに含めていることを判断して、「シャークス（ホッケー・チーム）」という候補ノードに対する得点を適切に増加させることができる。この例では、グローバル・コンテキスト・モジュール２５５は、通信元ユーザも「ホッケー」を関心対象としてリストに含めている場合にのみ、「シャークス（ホッケー・チーム）」の候補ノードに対する得点を増加させることができる。
【００６０】
一実施形態では、グローバル・コンテキスト・モジュール２５５によるソーシャル・ネットワーキング・システム２２０の全体にわたる通信の分析には、他のユーザがアンカ用語とソーシャル・ネットワーキング・システムのオブジェクトとを明示的に関連付けているかどうかを判断することが含まれる。グローバル・コンテキスト・モジュール２５５は
、アンカ用語を含んでおりそのアンカ用語をソーシャル・ネットワーキング・システムのオブジェクトと関連付ける通信の部分集合を識別することができる。例えば、「シャーク」という単語を含む通信の部分集合は、サンノゼ・シャークス・グループと関連付けることが可能であるし、または、サンノゼ・シャークスのタグを含むことも可能である。この例では、グローバル・コンテキスト・モジュール２５５は、「シャークス（ホッケー・チーム）」の候補ノードに対する得点を適切に増加させることができる。
【００６１】
ソーシャル・コンテキスト・モジュール２６０は、通信元ユーザと接続されているユーザのソーシャル・ネットワーキング・システムでの活動に基づいて、候補ノードの得点を調節する。一実施形態では、ソーシャル・コンテキスト・モジュール２６０は、（通信元ユーザの友人など）通信元ユーザとの接続を明示的に確立しているユーザの通信活動に基づいて、候補ノードの得点を調節する。あるいは、ソーシャル・コンテキスト・モジュール２６０は、通信元ユーザと共通のネットワークを共有するユーザの通信活動、共通の履歴上の特性、共通の関心、またはソーシャル・ネットワーキング・システムでの共通の活動に基づいて、候補ノードの得点を調節することができる。
【００６２】
ソーシャル・コンテキスト・モジュール２６０は、通信元ユーザに接続されているユーザの通信であってアンカ用語を含んでいる通信を分析し、候補ノードの妥当性と関連する情報を識別する。ソーシャル・コンテキスト・モジュール２６０は、アンカ用語を含んでおりそのアンカ用語が候補ノードと関連付けられている通信を識別することがあり、その場合には、ソーシャル・コンテキスト・モジュール２６０は、関連する候補ノードに対する得点を増加させる。一実施形態では、アンカ用語は、通信元ユーザと接続されているユーザによって、ある候補ノードと明示的に関係付けられる。例えば、通信元ユーザと接続されているユーザからの「がんばろう、ジャイアンツ！」という通信における「ジャイアンツ」というアンカ用語は、「サンフランシスコ・ジャイアンツ」というソーシャル・ネットワーキング・システムのオブジェクトにタグ付けすることができる。この例では、ソーシャル・コンテキスト・モジュール２６０は、候補ノードである「サンフランシスコ・ジャイアンツ（野球チーム）」に対する得点を増加させることがあり得る。一実施形態では、アンカ用語は、通信元ユーザと接続されているユーザによって、通信におけるある候補ノードと非明示的に関連付けられている。例えば、ソーシャル・ネットワーキング・システム２２０は、通信元ユーザと接続されているユーザからの通信におけるアンカ用語である「ジャイアンツ」がサンフランシスコ・ジャイアンツと関連付けられているということを、推論することができる。この実施形態では、ソーシャル・コンテキスト・モジュール２６０は、「サンフランシスコ・ジャイアンツ（野球チーム）」と関連する候補ノードに対する得点を増加させることがあり得る。
【００６３】
一実施形態では、ソーシャル・コンテキスト・モジュール２６０が、分析された通信においてアンカ用語以外の１つまたは複数の用語を識別し、それらの識別された用語に基づいて、候補ノードの得点を調節する。識別された用語のうちの１つまたは複数は特定の候補ノードと関連していることがあるが、その場合には、特定の候補ノードの得点を適切に増加させることができる。例えば、「ジャイアンツ」というアンカ用語に対しては、通信元ユーザと接続されているユーザが、「がんばれ、ジャイアンツの野球！」というメッセージをポストすることがあり得る。この例では、ソーシャル・コンテキスト・モジュール２６０は、野球という用語を識別し、それが「サンフランシスコ・ジャイアンツ（野球チーム）」という候補ノードと関連していると判断して、この候補ノードに対する得点を適切に増加させる。
【００６４】
グローバル・コンテキスト・モジュール２５５と同様に、ソーシャル・コンテキスト・モジュール２６０によるソーシャル・ネットワーキング・システム２２０の全体にわたる通信の分析は、時間的に制約されていることがあり得る。例えば、ソーシャル・コンテキ
スト・モジュール２６０は、通信元ユーザと接続されているユーザによって先行する１時間または先行する１０分の間に作成された通信を分析するだけであり得る。一実施形態では、分析された通信の効果は時間減衰モデルに従って重み付けがなされるが、その場合に、最も近い通信が最も重い重み付けがなされ、最も離れている通信は最も軽い重み付けがなされる。
【００６５】
一実施形態では、ソーシャル・コンテキスト・モジュール２６０は、通信元ユーザに接続されておりアンカ用語を含む通信を作成するユーザと関連するユーザ情報を、分析する。この実施形態では、ソーシャル・コンテキスト・モジュール２６０は、特定のユーザ情報を、アンカ用語と、そして潜在的なアンカ用語の意味と、関連付けることができ、そして、それらの関連性を用いて、候補ノードの得点を調節するまたは重み付けすることができる。例えば、ソーシャル・コンテキスト・モジュール２６０は、通信元ユーザと接続されているユーザからの、「ジャイアンツ」という用語を含む通信を識別することができ、これらのユーザの部分集合は「野球」を関心としてリストに含めていると判断することができて、「サンフランシスコ・ジャイアンツ（野球チーム）」という候補ノードに対する得点を適切に増加させることがあり得る。この例では、ソーシャル・コンテキスト・モジュール２６０は、通信元ユーザも「野球」を関心対象としてリストに含めている場合にのみ、候補ノードに対する得点を増加させることができる。
【００６６】
ソーシャル・コンテキスト・プロンプト・モジュール２６５は、通信元ユーザの通信において曖昧な用語を検出することがあり、通信元ユーザと接続されているユーザに、その曖昧な用語を通信において用いるときにその曖昧な用語の意味を選択することを促すことがあり得る。一実施形態では、検出された曖昧な用語は、構文解析モジュール２４０によって選択されたアンカ用語である。同様に、ソーシャル・コンテキスト・プロンプト・モジュール２６５は、通信元ユーザと接続されているユーザに、構文解析モジュールによって決定された候補ノードをユーザに向けて表示することにより、その曖昧な用語に対する意味を選択するように促すことがあり得る。
【００６７】
一実施形態では、ソーシャル・コンテキスト・プロンプト・モジュール２６５は、ソーシャル・ネットワーキング・システム２２０のそれぞれのユーザに対して、接続されているユーザによって通信において用いられる曖昧な用語のリストを追跡する。曖昧な用語のこの追跡は、時間的な制約があり得るのであって、例えば、２日間、１２時間、３０分、または任意の所定の時間期間のうちのある期間に限定されている場合がある。曖昧な用語のリストには、推論された意味を有するアンカ用語を含めて、すべての識別されたアンカ用語が含まれ得る。一実施形態では、信頼性に関する所定の閾値よりも下にある推論された意味を有するアンカ用語だけが、ソーシャル・コンテキスト・プロンプト・モジュール２６５によって追跡される。
【００６８】
一実施形態では、ソーシャル・コンテキスト・プロンプト・モジュール２６５は、あるユーザによる通信における追跡されている曖昧な用語の使用を検出する。あるユーザによる通信において追跡されている曖昧な用語の使用を検出することは、追跡されている曖昧な用語のうちの１つをユーザがいつ入力し始め、しかし、その曖昧な用語の入力をまだ完了していないのかを判断するテキスト予測の使用を含み得る。追跡されている曖昧な用語の使用を検出することに応答して、ソーシャル・コンテキスト・プロンプト・モジュール２６５は、その曖昧な用語に対する可能性のある意味のリストを、ユーザに向けて表示する。ユーザに向けて表示された可能性のある意味のリストは、（既に論じたように）先に識別された候補ノードを含み得る。あるいは、ユーザに向けて表示された可能性のある意味のリストは、部分的に入力された曖昧な用語のテキストを含む追跡されている曖昧な用語に限定されることもあり得る。
【００６９】
一実施形態では、ソーシャル・コンテキスト・プロンプト・モジュール２６５は、辞書記憶モジュール１４０に記憶されている、またはソーシャル・グラフ・データ記憶モジュール２７０の部分集合である辞書にクエリを発して、追跡された曖昧な用語と関連する候補ノードを決定する。候補ノードの得点を、決定された候補ノードに対して決定することができ、ユーザに向けて表示される可能性のある意味のリストは、決定された候補ノードの得点に基づいて順序付けられている。一実施形態では、ユーザに向けて表示されている可能性のある意味のリストは、候補ノードの得点に基づいて選択された候補ノードの部分集合を含む。
【００７０】
ソーシャル・コンテキスト・プロンプト・モジュール２６５は、曖昧な用語に対する可能性のある意味のリストを、通信モジュール２３５を経由して通信インターフェースの中に、その曖昧な用語のユーザに向けて表示することができる。例えば、ユーザが、通信モジュール２３５によって表示されている通信インターフェースのテキスト入力ボックスの中で曖昧な用語を含む通信を作成する場合には、ソーシャル・コンテキスト・プロンプト・モジュール２６５が、そのテキスト入力ボックスの下に、またはそのテキスト入力ボックスの内部に、可能性のある意味のリストを表示することができる。ユーザは、曖昧な用語に対する可能性のある意味のリストにある複数の意味のうちの１つを選択することができる。先ほどの例について更に論じると、ユーザは、テキスト・ボックスの下に、または、テキスト・ボックスの内部に表示されている意味のうちの１つをクリックする、または、それ以外の方法で選択することができる。
【００７１】
曖昧な用語に対する意味を選択することの結果として、その曖昧な用語と選択された意味とのソーシャル・コンテキスト・プロンプト・モジュール２６５による関連付けが生じる。一実施形態では、その曖昧な用語は、選択された意味を表すテキストと交換される。例えば、「ジャイアンツ」というテキストは、ユーザによって選択されるときに、「サンフランシスコ・ジャイアンツ」と交換され得る。一実施形態では、曖昧な用語の単純なテキストが、選択されるとユーザをソーシャル・ネットワーキング・システムのページに導くハイパーリンクされているテキストや、または選択された意味と関連するオブジェクトのために宛てられている他のウェブ・ページと交換される。先ほどの例に即して更に論じるならば、単純なテキストである「ジャイアンツ」は、クリックされるとユーザをサンフランシスコ・ジャイアンツのファン・ページに導くソーシャル・ネットワーキング・システムのＵＲＬと交換することができる。
【００７２】
ソーシャル・コンテキスト・プロンプト・モジュール２６５が曖昧なアンカ用語をある意味と関連付けることに応答して、得点モジュール２５０、グローバル・コンテキスト・モジュール２５５、およびソーシャル・コンテキスト・モジュール２６０は、そのアンカ用語と関連する候補ノードの得点を調節することができるし、また、そのアンカ用語の意味を最もよく表すトピック・ノードとして、ある候補ノードを再度選択することがあり得る。例えば、得点モジュール２５０が、「がんばれシャークス！」という通信におけるアンカ用語である「シャークス」に対して、「シャークス（動物のサメ）」という候補ノードを最初に選択した場合には、得点モジュール２５０は、通信元ユーザと接続されているユーザによる１つまたは複数の通信においてソーシャル・コンテキスト・プロンプト・モジュール２６５が用語「シャークス」をサンノゼ・シャークスと関連付けることに応答して、「サンノゼ・シャークス（ホッケー・チーム）」という候補ノードを再度選択することがあり得る。更に、得点モジュール２５０、グローバル・コンテキスト・モジュール２５５、およびソーシャル・コンテキスト・モジュール２６０は、通信元ユーザに接続されているユーザに対するアンカ用語と関連する候補ノードの得点を調節することがあり、また、通信元ユーザに接続されているユーザの通信におけるアンカ用語の意味を最もよく表すトピック・ノードとして、ある候補ノードを再度選択することがあり得る。
【００７３】
動作
図５は、一実施形態によりソーシャル・ネットワーキング・システムの通信のトピックを決定する処理の例示的な実施形態である。ソーシャル・ネットワーキング・システム２２０は、通信元ユーザから通信５００を受け取る。図５の実施形態では、通信５００は、「カリフォルニア対スタンフォードのフットボールを見ている！がんばれベアーズ！（Ｗａｔｃｈｉｎｇ  Ｃａｌｉｆｏｒｎｉａ−Ｓｔａｎｆｏｒｄ  ｆｏｏｔｂａｌｌ！  Ｇｏ
ｂｅａｒｓ！）」である。通信５００が構文解析され、アンカ用語５１０として、アンカ用語「カリフォルニア（Ｃａｌｉｆｏｒｎｉａ）」が選択される。
【００７４】
候補ノード５２０が、このアンカ用語カリフォルニア５１０に対して、選択される。既に論じたように、例えばキーワード・サーチを用いて辞書に対してクエリが発せられ、このアンカ用語に関連する候補ノードが識別される。図５の実施形態では、識別された候補ノード５２０は、カリフォルニア（州）、カリフォルニア大学（学校）、ＵＳＳカリフォルニア（船舶）、およびカリフォルニア・ガールズ（曲）である。
【００７５】
候補ノード５２０は、オプションではあるが、刈り込みモジュール５３０によって刈り込まれる。図５の実施形態では、刈り込みモジュール５３０は、アンカ用語であるカリフォルニア５１０から２語の範囲内にある「スタンフォード（Ｓｔａｎｆｏｒｄ）」および「フットボール（ｆｏｏｔｂａｌｌ）」という用語５４０を選択する。この特定の実施形態では「ベアーズ（ｂｅａｒｓ）」という用語は選択されていないが、その理由は、通信５１０におけるアンカ用語であるカリフォルニア５１０からの距離であることに注意してほしい。選択された用語５４０は分析され、選択された用語５４０と候補ノード５２０との間の関係が決定される。既に論じたように、カテゴリ・ツリーに対しては、選択された用語５４０と候補ノード５２０とを用いてクエリが発せられ得る。図５の実施形態における刈り込みモジュール５３０は、候補ノードであるＵＳＳカリフォルニア（船舶）とカリフォルニア・ガールズ（曲）とを取り除く。
【００７６】
図５の実施形態では、得点モジュール５６０が、残りの候補ノード５５０に対する初期得点を受け取り、生成する。得点モジュール５６０は、通信５００における他の用語に基づいて、候補ノードの得点を調節する。この実施形態では、得点モジュール５６０は、動詞「見ている（ｗａｔｃｈｉｎｇ）」と、名詞「スタンフォード」、「フットボール」および「ベアーズ」とに基づいて、候補ノードの得点を調節する。得点モジュール５６０は、また、ユーザ１００に関連する情報と、アンカ用語であるカリフォルニア５１０のグローバルおよびソーシャル・コンテキストとに基づいて、候補ノードの得点を調節する。この実施形態では、生成された候補ノードの得点５７０は、候補ノードのカリフォルニア（州）に対して３６％であり、候補ノードのカリフォルニア大学（学校）に対して８５％である。候補ノードのカリフォルニア大学（学校）は、「カリフォルニア対スタンフォードのフットボールを見ている！がんばれベアーズ！」という通信５００におけるアンカ用語であるカリフォルニア５１０の意味を最もよく表す辞書ノード５８０として、選択される。
【００７７】
図６は、一実施形態によるソーシャル・ネットワーキング・システムの通信の用語のトピックを決定する処理を図解しているフローチャートである。図６の実施形態では、辞書とカテゴリ・ツリーとが作成される（６００）。別の実施形態では、辞書もしくはカテゴリ・ツリー、またはその両方が前もって作成される。辞書とカテゴリ・ツリーとをゼロから作成する代わりに、図６の処理によって、既存の辞書とカテゴリ・ツリーとが更新されることもあり得る。既に論じたように、辞書とカテゴリ・ツリーとは、ウィキペディアなどの既存のデータベースに基づいて作成することができるのであって、その場合、辞書とカテゴリ・ツリーとにおけるノードは、ウィキペディアのあるページを表す。
【００７８】
通信が、通信元ユーザから受け取られる（６１０）。通信は、通信元ユーザのウォールもしくはプロファイルにポストされたステータス・メッセージ、電子メール、インスタント・メッセージ、別のユーザのウォールもしくはプロファイルにポストされたメッセージ、コンテンツ項目に関するコメント、テキスト／ＳＭＳメッセージ、または任意の他の形式を有するテキスト・ベースの通信を含み得る。辞書を用いて、通信におけるアンカ用語が識別される（６２０）。一実施形態では、通信は構文解析された複数の用語に構文解析され、構文解析された用語のうちの１つがアンカ用語として選択される。
【００７９】
アンカ用語と関連する候補ノードが、辞書において識別される（６３０）。一実施形態では、辞書ノードのキーワード・サーチが、アンカ用語と関連する候補ノードを識別するために、アンカ用語を用いて実行される。オプションであるが、アンカ用語の意味を表す蓋然性が低い候補ノードは、カテゴリ・ツリーを用いて刈り込まれる（６４０）。
【００８０】
通信のコンテキスト、アンカ用語のグローバル・コンテキスト、およびアンカ用語のソーシャル・コンテキストが、決定される（６５０）。一実施形態では、通信のコンテキストは、アンカ用語と通信元ユーザと関連する情報（ユーザのプロファイルにリスト化されているユーザの好みや関心など）とは他の通信における用語を含む。アンカ用語のグローバル・コンテキストは、ソーシャル・ネットワーキング・システムの他のすべてのユーザによる通信であって、そのアンカ用語とこれらのユーザと関連する情報とを含む通信における用語を含み得る。アンカ用語のソーシャル・コンテキストは、通信元ユーザと接続されているソーシャル・ネットワーキング・システムのユーザによる通信であって、そのアンカ用語とこれらのユーザと関連する情報とを含む通信における用語を含み得る。
【００８１】
候補ノードに対する得点は、通信のコンテキスト、アンカ用語のグローバル・コンテキスト、およびアンカ用語のソーシャル・コンテキストに基づいて、決定される（６６０）。アンカ用語を表す蓋然性が最も高い候補ノードは、候補ノードの得点に基づいて選択される（６７０）。例えば、最も高い得点を有する候補ノードが、そのアンカ用語の意味を表す蓋然性が最も高い候補ノードとして選択される。
【００８２】
図７は、一実施形態により主題辞書を作成する処理を図解しているフローチャートである。リンクされた複数の記事のデータベースが検索される（７００）。一実施形態では、このデータベースはウィキペディアである。データベースにおけるそれぞれの記事に対し、辞書グラフにおいて、ノードが作成される（７１０）。オプションであるが、それぞれの記事の主題に対する同義語と代替的な文法的テキスト・フォーマットとが、それぞれの記事のノードと関連付けられる（７２０）。例えば、「ＳＪシャークス」と「シャークス・ホッケー」とは、辞書ノードであるサンノゼ・シャークス（ホッケー・チーム）と関連付けることができる。辞書グラフにおけるノードは、それらのノードに対応する記事がリンクされている場合には、エッジによって接続される（７３０）。例えば、ウィキペディアの記事である「サーフボード（Ｓｕｒｆｂｏａｒｄ）」がウィキペディアの記事である「大洋（Ｏｃｅａｎ）」へのＵＲＬリンクを含む場合には、サーフボードの辞書ノードは、大洋の辞書ノードに、エッジによって接続される。
【００８３】
図８は、一実施形態により、ソーシャル・コンテキストを用いてソーシャル・ネットワーキング・システムの通信の用語のトピックを決定する処理を図解するフローチャートである。図８の実施形態では、通信が、通信元ユーザから受け取られる（８００）。アンカ用語は、辞書を用いて、通信において識別される（８１０）。既に論じたように、既存の辞書を用いることが可能であるし、または、ウィキペディアのような、相互にリンクされた記事の公衆に利用可能なデータベースから作成することもできる。アンカ用語と関連する候補ノードが、辞書において、識別される（８２０）。
【００８４】
通信元ユーザと接続されているユーザからの通信でありアンカ用語を含むものが識別される（８３０）。既に論じたように、通信元ユーザと接続されているユーザは、通信元ユーザの友人もしくは家族、通信元ユーザと共通する履歴情報を有するユーザ、通信元ユーザと同じネットワークにおけるユーザ、および／または通信元ユーザと類似の関心を有するユーザを含み得る。候補ノードの得点は、少なくとも部分的には識別された通信に基づいて、決定される（８４０）。例えば、候補ノードの得点は、通信におけるアンカ用語以外の用語や、通信元ユーザと接続されているユーザと関連する情報など、識別された通信のコンテキストに基づいて決定され得る。
【００８５】
図９は、一実施形態により別のユーザの通信に基づいて通信の用語に対するトピックを選択することをユーザに促す、ソーシャル・ネットワーキング・システムのインターフェースの例示的な実施形態である。ユーザは、ステータス・メッセージである「カリフォルニアを見ています！（Ｗａｔｃｈｉｎｇ  Ｃａｌｉｆｏｒｎｉａ！）」を、ステータス・ボックスに入力する（９００）。「カリフォルニア（Ｃａｌｉｆｏｒｎｉａ）」という用語がアンカ用語として識別され（９０２）、「見ています（Ｗａｔｃｈｉｎｇ）」という用語がコンテキスト用語として識別される（９０４）。ソーシャル・ネットワーキング・システムは、ユーザの１つまたは複数の友人の通信において「カリフォルニア」という用語を識別し、それに応答して、ソーシャル・ネットワーキング・システムは、カリフォルニアという用語に対する最良の意味を選択することをユーザに促す。
【００８６】
図９の実施形態では、ソーシャル・ネットワーキング・システムは、ドロップダウン・ボックスにおいて、複数のトピックを表示する（９０６）。表示されているトピックは、カリフォルニアという用語に対する候補ノードであり、これには、カリフォルニア・ゴールデン・ベアーズ（フットボール・チーム）９０８、カリフォルニア・ゴールデン・ベアーズ（野球チーム）９１０、カリフォルニア大学（公立大学）９１２、およびカリフォルニア（アメリカ合衆国の州）９１４が含まれる。表示されている候補ノードは、ユーザの友人の通信から、または「カリフォルニアを見ています！」というユーザの通信から決定され得る。図９の実施形態では、候補ノードの得点は表示されているそれぞれの候補ノードに対して決定され、候補ノードは、決定された候補ノードの得点に基づいて順序付けがなされている。次に、ユーザは、カリフォルニアというアンカ用語を最もよく表す意味として、候補ノードのうちの１つを選択することができる。
【００８７】
図１０は、一実施形態により別のユーザの通信に基づいて通信の用語に対するトピックを選択するように、ユーザに促す処理を図解しているフローチャートである。第１の通信は、通信元ユーザから受け取られる（１０００）。辞書を用いて、アンカ用語が、第１の通信において識別される（１０１０）。そのアンカ用語を含んでおり通信元ユーザに接続されているユーザの第２の通信が、識別される（１０２０）。そのアンカ用語と関連する候補ノードが、辞書において識別される（１０３０）。ユーザは、識別された候補ノードに基づいてそのアンカ用語に対する意味を選択するように促される（１０４０）。例えば、ユーザが通信において「シャークス」という用語をタイプする場合には、「シャークス」という用語と関連する候補ノードが、ユーザがその中から選択するために表示される。
【００８８】
まとめ
本発明の実施形態に関する以上の記載は説明の目的のために提供されたものであって、網羅的であること、または、開示された形式自体に本発明を限定することを意図していない。当業者であれば、以上の開示から多くの修正および改変が可能であることを理解できるはずである。
【００８９】
ここでの記載のいくつかの部分では、情報に対する演算のアルゴリズムと記号的表現との観点から、本発明の実施形態を説明している。これらのアルゴリズムによる記載と表現
とは、データ処理技術における当業者によって、仕事の実質を他の当業者に効率的に伝えるために、広く用いられているものである。これらの演算は、機能的、計算論的または論理的に記載されているが、コンピュータ・プログラムまたはそれと同等の電気回路やマイクロコードなどによって実装されるものと理解される。更に、演算のこれらの構成は、一般性を失うことなく、モジュールとして言及することが時には便利であることが判明している。記載された演算とそれと関連するモジュールとは、ソフトウェア、ファームウェア、ハードウェアおよびこれらの任意の組み合わせとして、具体化が可能であり得る。
【００９０】
本明細書に記載されている工程、動作、または処理は、１つまたは複数のハードウェアまたはソフトウェア・モジュールを、単独または他のデバイスと組み合わせて用いることにより、実行または実装が可能である。一実施形態では、ソフトウェア・モジュールは、コンピュータ・プログラム・コードを含むコンピュータ可読媒体で構成されるコンピュータ・プログラム・プロダクトを用いて実装される。なお、コンピュータ・プログラム・コードは、記載されている工程、動作、または処理の任意のものまたは全部を行うコンピュータ・プロセッサによって実行可能である。
【００９１】
本発明の実施形態は、本明細書に記載されている動作を実行する装置にも関係し得る。この装置は、要求された目的のために特に構築され得るし、および／または、コンピュータに記憶されているコンピュータ・プログラムによって選択的に付勢されるまたは再構成される汎用計算機を構成し得る。このようなコンピュータ・プログラムは、非一時的であって有体物であるコンピュータ可読記憶媒体、または、コンピュータ・システム・バスに結合され得る電子的命令を記憶するのに適した任意のタイプの媒体に、記憶され得る。更に、この明細書において言及されているどの計算システムも、単一のプロセッサを含み得るか、または、計算性能の向上のために複数プロセッサの設計を用いたアーキテクチャであり得る。
【００９２】
本発明の実施形態は、本明細書に記載されている計算方法によって作成されるプロダクトとも関係し得る。このようなプロダクトは、計算方法の結果として生じる情報を含み得る。この情報は、非一時的であって有体物であるコンピュータ可読記憶媒体上に記憶され、コンピュータ・プログラム・プロダクトまたは本明細書に記載されているそれ以外のデータの組み合わせの任意の実施形態を含み得る。
【００９３】
最後に、本明細書において用いられている言葉は、主に、読みやすく説明的であることを目的として選択されたものであり、本発明の主題の輪郭を画定する、または境界を明確にするように選択されたものではない。したがって、本発明の範囲は、この詳細な説明ではなく、この詳細な説明に基づく出願に由来する任意の請求項によって限界付けられることが意図されている。よって、本発明の実施形態に関する開示は、本発明の範囲について説明的であることを意図しており、本発明の範囲を画定することは意図していない。本発明の範囲は、以下の特許請求の範囲において明確にされている。
【図１】
0005944498.tif 000002
【図２】
0005944498.tif 000003
【図３】
0005944498.tif 000004
【図４】
0005944498.tif 000005
【図５】
0005944498.tif 000006
【図６】
0005944498.tif 000007
【図７】
0005944498.tif 000008
【図８】
0005944498.tif 000009
【図９】
0005944498.tif 000010
【図１０】
0005944498.tif 000011