快速實體鏈接器核心
該庫執行鏈接到目標參考知識庫(即Wikipedia)的查詢細分和實體。在當前版本中,它是針對查詢實體鏈接的量身定制的(或者是文本的簡短片段)。主要目標是完全無監督的鏈接器(平均在標準筆記本電腦上<1或2 ms/查詢),以便更複雜的方法可以在它的基礎上使用,並且可用的時間預算可用。這樣做的一個副作用是,鏈接器使用的數據袋佔據<3GB,使其適合在網格上運行(並使服務器機上的足跡非常低)。
在運行此項目之前,請安裝Maven。該項目帶有pom.xml ,在運行命令mvn install時應安裝所有依賴項。
庫執行查詢和文檔實體鏈接。它實現了不同的算法,這些算法返回置信度得分(〜對數可能性),這些算法應該(或多或少)在不同長度的文本之間可比,以便可以使用全局閾值進行鏈接。該程序使用兩個數據架構,一個大哈希和壓縮單詞和實體向量。哈希是由數據包生成的,該數據記錄記錄了共同發生的短語和實體。這些計數可能來自不同的來源,例如錨文本和查詢日誌。在錨文本中,只要有指向相應實體頁面的鏈接,我們就會存儲錨和實體計數。在查詢日誌中,只要單擊實體頁面,我們都會更新查詢和實體計數。單詞和實體向量文件是壓縮向量表示,以說明單詞/實體出現的上下文。圖書館提供了一種學習實體向量的方法。可以使用Word2Vec(例如Word2Vec)來生成Word矢量,也可以重複使用預訓練的單詞向量,例如Facebook的FastText項目中可用的矢量。
該庫還配備了兩套不同的工具,用於生成哈希和詞語vector文件。
如果您使用此庫,請引用以下論文:
@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-最佳列表中的晶格,並運行前後算法。
更多的相干算法正在實驗中。它們將在代碼的未來版本中添加。
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 >該類讀取每行查詢一個查詢的文件 - 它會拆分並獲取第一個元素。輸出格式是:
entity_type <TAB> query <TAB> modifier <TAB> entity_id
在哪裡
entity_type在數據包中給出query是原始查詢remove時, modifier是查詢字符串entity_id是檢索到的實體通常,您應該依靠閾值並可能堅持檢索到的頂級1實體,但這取決於您將如何使用它。
該軟件包還提供了代碼
有關此信息的更多信息可以在W2V軟件包中找到。
該工具利用一個數據包,該數據包存儲了來自不同來源的實體的計數和別名(提及)。最初,我們使用了錨文本和查詢日誌。以下描述瞭如何使用Hadoop群集從公共Wikipedia轉儲中挖掘和計算錨文本(或者如果沒有一個,則可以在一台計算機中使用Hadoop)。這是基於Cloud9工具包的代碼。
有關此信息的更多信息可以在IO包中找到。
####創建準解決實體功能哈希
數據包將包含兩個文件:一個文件,一個具有主機計數的文件,一個具有ID映射的實體。然後,您可以使用:
com.yahoo.semsearch.fastlinking.hash.QuasiSuccinctEntityHash
-i < datapack_file > -e < entity2id_file > -o < output_file > 提供以下預訓練的模型以執行與工具包鏈接的實體,並可以通過Yahoo! WebScope計劃用於研究目的。這些模型在Wikipedia上進行了培訓,並通過SA 4.0許可證使用Creative Commons進行了分發(請參見Models_license)。
英語哈希從2015年11月開始訓練Wikipedia
英語實體嵌入
西班牙哈希從2015年10月開始訓練Wikipedia
西班牙實體嵌入
中國哈希從2015年12月開始訓練Wikipedia
中國實體嵌入
Roi Blanco,Aasish Pappu