快速实体链接器核心
该库执行链接到目标参考知识库(即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