8

いくつかの単語を入力すると、関連する用語、フレーズ、または概念の多様なセットを返すユーティリティが必要です。注意点は、最初に用語の大きなグラフが必要になることです。そうしないと、この機能はあまり役に立ちません。

たとえば、「野球」を送信すると返されます

["shortstop", "Babe Ruth", "foul ball", "steroids", ... ]

Google Setsは、この種の機能を見つけることができる最良の例ですが、パブリック API がないため使用できません (そして、TOS に反対するつもりはありません)。また、単語を 1 つ入力しても、非常に多様な結果が得られるわけではありません。私は、接線で外れる解決策を探しています。

私が実験した最も近い方法は、WikiPedia の APIを使用してカテゴリとバックリンクを検索することですが、これらの結果を「関連性」または「人気」で直接並べ替える方法はありません。それがなければ、提案リストは膨大であちこちにあり、すぐには役に立たず、絞り込むのが非常に困難です.

A Thesaurus を使用することも最小限で済みますが、それでは固有名詞や接線に関連する用語 (上記の結果のいずれか) が除外されます。


オープン サービスがあれば喜んで再利用しますが、十分なものは見つかりませんでした。

私は、これを社内で十分に人口の多い開始セットで実装するか、これを提供する無料サービスを再利用する方法を探しています。

解決策はありますか? お早めにどうぞ!


更新: 信じられないほど緻密で有益な回答をありがとう。6 か月から 12 か月以内に、皆さんが提案したことを理解できるといいのですが、勝利の答えを選びます =)

4

3 に答える 3

10

WordNetに興味があるかもしれません。API を理解するには多少の言語知識が必要ですが、基本的にシステムは英単語間の意味ベースのリンクのデータベースであり、多かれ少なかれ探しているものです。必要に応じて、さらに情報を掘り下げることができると確信しています。

于 2009-02-21T02:00:16.530 に答える
8

Peter Norvig (Google のリサーチ ディレクター) は、Facebook Tech Talkで、 Google でこれをどのように行っているか (具体的には Google Sets について言及) について話しました。アイデアは、巨大なデータセット (たとえば Web 全体) に対する比較的単純なアルゴリズムは、小さなデータセットに対する複雑なアルゴリズムよりもはるかに優れているというものです。

出発点として、Google の n-gram コレクションを見ることができます。どのような概念がグループ化されているかがわかります。Norvig は、Google 内部では、 Google Translateなどで使用できる最大 7 グラムを持っていることをほのめかしました。

もっと野心的な人なら、ウィキペディアのすべての記事を希望する言語でダウンロードして、独自の n-gram データベースを作成することもできます。

単語が 1 つしかない場合、問題はさらに複雑になります。語義の曖昧さ回避の詳細については、この最近の論文をご覧ください。

簡単な問題ではありませんが、おっしゃる通り便利です。最後に、本当に成功した実装には、比較的単純なアルゴリズムと大量のデータがあることがわかると思います。

于 2009-02-21T16:07:49.957 に答える
5

次の 2 つの論文をご覧ください。

  • 検索エンジンのユーザー クエリのクラスタリング [pdf]
  • キーワードのクラスタリングによるトピック検出 [pdf]
  • 非常に単純化された説明での私の試みは次のとおりです。

    過去のユーザー クエリのデータベースがあれば、2 つのクエリ間の類似関数を定義できます。例: 共通語の数。ここで、データベース内の各クエリについて、他のクエリとの類似性を計算し、最も類似した k 個のクエリを記憶します。これらから重複しない単語を「関連用語」として返すことができます。

    ユーザーが検索する可能性のある情報を含むドキュメントのデータベースでも、このアプローチを採用できます。2 つの検索用語間の類似性は、両方を含むドキュメントの数を、いずれかを含むドキュメントの数で割った値として定義できます。テストする用語を決定するために、ドキュメントをスキャンして、あまりにも一般的な単語 (「and」、「the」など) またはあいまいすぎる単語を除外します。

    データが許せば、ドキュメントをコンテンツで比較するのではなく、どのクエリがユーザーにどの結果を選択させたかを確認できます。たとえば、「Celtics」と「Lakers」を検索しているユーザーが両方とも espn.com をクリックしたことを示すデータがある場合、これらの関連用語を呼び出すことができます。

    過去のユーザー クエリに関するデータがない状態でゼロから始める場合は、Wikipedia や、ドキュメントのデータベースとしてBag of Wordsデータセットを試すことができます。ユーザーの検索用語と結果のデータベースを探していて、冒険好きなら、AOL 検索データを参照してください。

    于 2009-02-21T15:09:42.263 に答える