高速エンティティリンカーコア
このライブラリは、ターゲットリファレンスナレッジベース(つまり、ウィキペディア)にリンクするクエリセグメンテーションとエンティティを実行します。現在のバージョンでは、テーラード + +クエリエンティティリンクに向かっています(または、テキストの短い断片)。主な目標は、完全に監視されていない非常に高速なリンカー(標準のラップトップで平均して平均1または2ミリ秒/クエリ)を持つことでした。そのため、より洗練されたアプローチが適切な時間予算を利用でき、それに加えて動作します。これの副作用は、リンカーが使用するデータパックが<3GBを占有し、グリッドで実行するのに適している(そしてサーバーマシンのフットプリントを非常に低くする)ことです。
このプロジェクトを実行する前に、Mavenをインストールしてください。このプロジェクトには、コマンドmvn installを実行するときにすべての依存関係をインストールするpom.xmlが付属しています。
ライブラリは、クエリとドキュメントエンティティのリンクを実行します。信頼性スコア(〜ログの尤度)を返すさまざまなアルゴリズムを実装します。これは、異なる長さのテキストで(多かれ少なかれ)匹敵する必要があるため、リンクにグローバルなしきい値を使用できます。このプログラムは、2つのデータストラクチャ、1つの大きなハッシュと圧縮ワードおよびエンティティベクトルで動作します。ハッシュは、一緒に協力するフレーズとエンティティのカウントを記録するデータパックから生成されます。これらのカウントは、たとえばアンカーテキストやクエリログなど、さまざまなソースから来る可能性があります。アンカーテキストでは、対応するエンティティページへのリンクがある場合はいつでも、アンカーとエンティティがカウントされます。 [エンティティ]ページにクリックすると、クエリログでは、クエリとエンティティカウントを更新します。単語とエンティティベクトルファイルは、単語/エンティティが表示されるコンテキストを説明する圧縮ベクトル表現です。ライブラリは、エンティティベクトルを学習する方法を提供します。単語ベクトルは、Word2Vecなどの一般的なツールを使用して生成できます。または、FacebookのFastTextプロジェクトで利用できるような事前に訓練された単語ベクトルを再利用できます。
ライブラリには、ハッシュファイルと単語ベクトルファイルを生成するための2つの異なるツールセットも付属しています。
このライブラリを使用する場合は、次の論文を引用してください。
@inproceedings{Blanco:WSDM2015,
Address = {New York, NY, USA},
Author = {Blanco, Roi and Ottaviano, Giuseppe and Meij, Edgar},
Booktitle = {Proceedings of the Eight ACM International Conference on Web Search and Data Mining},
Location = {Shanghai, China},
Numpages = {10},
Publisher = {ACM},
Series = {WSDM 15},
Title = {Fast and Space-Efficient Entity Linking in Queries},
Year = {2015}
}
@inproceedings{Pappu:WSDM2017,
Address = {New York, NY, USA},
Author = {Pappu, Aasish, and Blanco, Roi, and Mehdad, Yashar and Stent, Amanda, and Thadani, Kapil},
Booktitle = {Proceedings of the Tenth ACM International Conference on Web Search and Data Mining},
Location = {Cambridge, UK},
Numpages = {10},
Publisher = {ACM},
Series = {WSDM 17},
Title = {Lightweight Multilingual Entity Extraction and Linking},
Year = {2017}
}
異なる概念モデルを使用するさまざまなランカー/リンカーがあります。いくつかの実装の詳細を含むアルゴリズムの全体的な説明は次のとおりです。
クエリ用にリンクする高速およびスペース効率の良いエンティティ
使用するメインクラスはcom.yahoo.semsearch.fastlinking.FastEntityLinkerです
クラスは、利用可能なオプションをリストするために--helpで呼び出すことができます。 Stdinを介したインタラクティブリンクを提供します(カスタム出力形式が必要な場合は、コードを編集するか、クラスを拡張します)。
最初に、以下に示すリンクに従って、WebScopeからデータセットをダウンロードします。
例の使用コール:
mvn exec:java -Dexec.mainClass=com.yahoo.semsearch.fastlinking.FastEntityLinker
-Dexec.args= " en/english-nov15.hash " CoherentEntityLinkerクラスは、各エンティティのエンティティリンクのエンティティメントとnベストリストを入力として採用します。 n-bestリストから格子を構築し、順方位のアルゴリズムを実行します。
より多くのコヒーレンシーアルゴリズムが実験中です。それらは、コードの将来のバージョンに追加されます。
mvn clean compile exec:java
-Dexec.mainClass=com.yahoo.semsearch.fastlinking.CoherentEntityLinkerWrapper
-Dexec.args= " en/enwiki.wiki2vec.d300.compressed en/english-nov15.hash test.txt "
-Dexec.classpathScope=compileマッピングファイルをエンティティリンカー引数(以下)に含めることができます。これは、統合エンティティカテゴリを人間の読み取り可能なエンティティカテゴリにマッピングします。
次のコマンドは、Hadoopグリッドでリンカーを実行します。
hadoop jar FEL-0.1.0-fat.jar
com.yahoo.semsearch.fastlinking.utils.RunFELOntheGrid
-Dmapred.map.tasks=100
-Dmapreduce.map.java.opts=-Xmx3g
-Dmapreduce.map.memory.mb=3072
-Dmapred.job.queue.name=adhoc
-files en/english-nov15.hash#hash, src/main/bash/id-type.tsv#mapping
< inputfile >
< outputfile >クラスは、1行に1つのクエリがあるファイルを読み取ります - 分割して最初の要素を取得します。出力形式は次のとおりです。
entity_type <TAB> query <TAB> modifier <TAB> entity_id
どこ
entity_type datapackに与えられますqueryは元のクエリですremoveときのmodifierはクエリ文字列ですentity_idは取得されたエンティティです一般的に、取得した上位1エンティティにしきい値を依存し、場合によっては固執する必要がありますが、これはあなたがそれをどのように使用するかによって異なります。
このパッケージはコードも提供します
これに関する詳細は、W2Vパッケージにあります。
このツールは、さまざまなソースからエンティティのカウントとエイリアス(言及)を保存するデータパックを使用しています。もともと、アンカーテキストとクエリログを使用しました。以下は、Hadoopクラスターを使用して、パブリックウィキペディアダンプからアンカーテキストをマイニングして計算する方法について説明します(または、1つのマシンでHadoopを使用できます)。これは、Cloud9 Toolkitのコードに基づいています。
これに関する詳細は、IOパッケージにあります。
#### Quasi-Succingエンティティを作成するには、ハッシュが機能します
DataPackには2つのファイルが含まれます。1つはエンティティごとのカウントを使用し、もう1つはIDマッピングのエンティティです。次に、以下を使用してハッシュできます。
com.yahoo.semsearch.fastlinking.hash.QuasiSuccinctEntityHash
-i < datapack_file > -e < entity2id_file > -o < output_file > 次の事前に訓練されたモデルが提供されており、ツールキットとリンクするエンティティを実行し、Yahoo!で入手できます。研究目的のためのWebScopeプログラム。これらのモデルはウィキペディアでトレーニングされ、SA 4.0ライセンスでCreative Commonsを使用して配布されます(Models_licenseを参照)。
2015年11月のウィキペディアから訓練された英語のハッシュ
英語のエンティティの埋め込み
2015年10月のウィキペディアから訓練されたスペインのハッシュ
スペインのエンティティの埋め込み
2015年12月のウィキペディアから訓練された中国のハッシュ
中国のエンティティの埋め込み
Roi Blanco、Aasish Pappu