2

クワッドダンプを使用して、フリーベース検索APIのローカルバージョンを構築しようとしています。名前を照合するためにどのアルゴリズムを使用しているのでしょうか。例として、freebase.comにアクセスして「ハイキング」と入力すると、次のようになります。

  • 「アポハイキング協会」
  • "ハイキング"
  • 「ジョージア州のハイキング」
  • 「バージニアの国有林のハイキング」
  • "ハイキングコース"
4

4 に答える 4

7

うわー、たくさんの推測!推測もせずに水を濁しすぎないようにしたいと思います。

オートコンプリートボックスは、基本的にFreebase Suggestを利用しており、FreebaseSuggestはFreebaseSearchサービスを利用しています。検索サービスによって照合のためにインデックスが付けられる文字列には、1)名前、2)指定された言語のすべてのエイリアス、3)関連するウィキペディアの記事からのリンクアンカーテキスト、4)識別子(Freebaseではキーと呼ばれる)が含まれます。ウィキペディアの記事のタイトル(およびリダイレクト)のように。

さまざまなものがどのように重み付け/ブーストされるかは明らかにされていませんが、しばらく遊んでみると、物事の感触をつかむことができます。APIからわかるように、タイプやその他の基準によるフィルタリング/重み付けを行う機能もあり、これはコンテキストに応じて機能する可能性があります。たとえば、アルバムにレコードレーベルを追加する場合、レコードレーベルとして入力されたトピックは、そうでないものに比べてブーストされます(ただし、他のタイプのものにアクセスして、ユースケースを考慮に入れることができます)。ターゲットトピックに適切なタイプがまだ適用されていない場合)。

これで、サービスがどのように機能するかについて少し洞察が得られますが、とにかくゼロから始めているので、必要なことを実行する検索サービスを構築してみませんか?

ところで、グーグル以前のメタウェブ検索の実装はLuceneの上に基づいていたので、それを出発点として使用するよりも間違いなく悪いことをする可能性があります。メーリングリストのアーカイブで詳細の一部を読むことができます

于 2012-03-26T22:47:32.523 に答える
2

おそらく、英語名、エイリアス、表示されたWikipediaスニペットなど、選択したフィールドに対して転置インデックスを使用します。アプリケーションでは、Luceneのようなものを使用してそれを実現できます。

アルゴリズムの面では、次の論文が良い概要だと思います

Zobel and Moffat(2006):「テキスト検索エンジン用の反転ファイル」

于 2012-03-26T08:31:06.057 に答える
1

ほとんどの場合、辞書式順序のトライです。

于 2012-03-26T06:00:26.080 に答える
1

利用可能なアルゴリズムは多数あります。ボイヤー-ムーア、スミス-ウォーターマン-ゴトー、クヌースモリス-プラットなどです。レーベンシュタインなどの距離の編集アルゴリズムも確認することをお勧めします。目的に最も適したものを見つけるために、いろいろと試してみる必要があります。

このようなアルゴリズムの実装は、シェフィールド大学のSimmetricsライブラリです。

于 2012-03-26T06:48:16.380 に答える