实体链接Entity Linking开源工具:dexter2

实体链接(Entity Linking)任务是确定文本中实体的身份。Dexter2是一个开源框架,利用维基百科进行实体链接。本文介绍了Dexter2的下载、使用方法,包括annotate、spot、get-id和get-desc等API的示例,以及如何用Python进行批量处理。
摘要由CSDN通过智能技术生成

实体链接(Entity Linking)

在自然语言处理中,实体链接,命名实体链接(NEL),命名实体消歧(NED),命名实体识别和消歧(NERD)或命名实体规范化(NEN),都是是确定实体(Entity)的Identity的任务。 例如,对于句子“巴黎是法国的首都”,Entity Linking的想法是确定句中“巴黎”指的是巴黎市,而不是巴黎希尔顿或任何其他可称为“巴黎”的实体。再例如,对于句子”James Bond is cool”,我们期望获得“James_Bond”这整个经过链接后的名字。

Dexter2

Dexter是一个Entity Linking的开源框架,其利用维基百科(英文)中的词条来实现实体链接。

下载

dexter on github
这里有编译好的二进制文件和source code,本文直接上编译好的bin file
windows的话在解压后的当前目录:

java -Xmx4000m -jar dexter-2.1.0.jar

或者在linux上

wget http://hpc.isti.cnr.it/~ceccarelli/dexter2.tar.gz
tar -xvzf dexter2.tar.gz
cd dexter2
java -Xmx4000m -jar dexter-2.1.0.jar

于是本地端口8080开启,如果是windows或者有可视化的linux上直接打开浏览器输入http://localhost:8080/dexter-webapp/dev/ 即可查看api。如果dexter是在服务器上的话那么直接用Python request利用url获取结果(见后文)。

使用

所有使用api可以参考本地或者官网 。都有可执行的例子。本文举例说明。

1. annotate, spot

  • annotate
    Performs the entity linking on a given text, annotating maximum n entities.

  • spot
    It only performs the first step of the entity linking process, i.e., find all the mentions that could refer to an entity

两者都是对一句query中的词进行entity linking。区别是annotate会找出最相关的前n个linking。按需使用。

例如,查找

Bob Dylan and Johnny Cash had formed a mutual admiration society even before they met in the early 1960s

中的linked entity

当然,可以直接输入网址进行demo查看。linking的confidence设置为0.5:

http://localhost:8080/dexter-webapp/api/rest/annotate?text=Bob%20Dylan%20and%20Johnny%20Cash%20had%20formed%20a%20mutual%20admiration%20society%20even%20before%20they%20met%20in%20the%20early%201960s&n=50&wn=false&debug=false&format=text&min-conf=0.
【资源说明】 基于链接实体回放的多源知识图谱终身表示学习python源码+项目操作说明.zip >知识图谱存储大量的结构化知识和丰富的语义信息,已被广泛应用于知识驱动的智能软件.随着智能应用的不断发展,它们对知识图谱的需求也在发生变化.而单一知识图谱往往具有数据不完备等缺点,难以满足需求.因此,支持新数据来源、融合多源知识已经成为迫切需求.传统的知识图谱表示学习和应用范式只考虑单一图谱,忽视了不同图谱间的知识迁移.多源知识图谱联合训练虽然可以带来性能提升,但不支持新增知识图谱的拓展表示.鉴于此,提出了多源知识图谱终身表示学习的新范式.给定一个知识图谱序列,终身表示学习的目标是在学习新知识图谱的同时,从已学习的知识图谱与模型中获得知识迁移.为实现这一目标,提出了一个基于链接实体回放的多源知识图谱终身表示学习框架.首先,设计一个以Transformer为编码器的知识图谱表示学习模型作为框架核心,利用关系相关性进行实体链接预测.其次,提出链接子图构造方法,基于实体对齐构建并回放新增知识图谱和已有知识图谱之间的链接子图进行终身学习和知识迁移.最后,采用动态结构方法,为每个知识图谱存储相应的模型参数快照来避免灾难性遗忘.多个链接预测基准数据集上的实验结果表明,所提出的表示学习模型可以取得最先进的性能,且提出的终身表示学习框架可以实现有效的知识迁移. 传统知识图谱表示学习与应用范式如图1(a)所示,随着任务不断到来,其根据不同任务需求选择不同知识图谱训练表示学习模型.在这一范式中,不同知识图谱的训练相互独立,没有利用知识图谱之间的互补性.近期的相关研究表明,通过实体对齐进行多源知识图谱联合训练,如图1(b)所示,可有效学到更具表达力的知识图谱向量表示,进而提高下游任务性能.但是联合训练不适用于任务不断更新和迭代的应用场景,会造成知识图谱的重复训练,导致资源浪费,且时间空间开销大.为了解决这些问题,本文提出多源知识图谱终身表示学习的范式.如图1(c)所示,随着任务不断迭代,不同的知识图谱也逐渐加入,终身表示学习(lifelong representation learning)的目标是在进行新知识图谱学习的同时,复用从先前知识图谱中学习到的语义信息,促进知识迁移,从而提高当前任务的效果. 方法 多源知识图谱终身表示学习存在以下难点:其一,如何设计高效可迁移的知识图谱表示学习模型,这是终身表示学习模型高性能的基础;其二,如何将已学习的知识迁移到新增知识图谱的表示模型中,这是在持续新增知识图谱序列上实现终身表示学习的关键,现有的独立训练和联合训练方法都无法做到这一点;其三,如何在终身学习的同时防止参数覆盖,避免灾难性遗忘.针对上述三个挑战,本文提出了一种结合链接实体回放与动态结构的终身表示学习框架LifeKE.具体来说LifeKE主要包含三项技术:一个基于关系相关性聚合信息的Transformer编码器,一种基于链接子图筛选与回放的高效知识迁移方法,和一个基于动态结构的模型扩展方式.复杂度分析与实验结果表明,LifeKE不仅在单KG上具有较强的表示学习能力,而且在新增的知识图谱序列上能够高效复用已学习知识指导新模型学习,同时能够以很低的参数成本保留已学习的知识. 代码依赖 基于Python 3.6和TensorFlow 1.15实现本文提出的框架.代码依赖如下: * Python 3.x (tested on Python 3.6) * Tensorflow 1.x (tested on Tensorflow 1.14 and 1.15) * Scipy * Numpy * Pandas * Scikit-learn ### 运行 如想在FB15K-237上运行所提出的表示模型,请执行: ```bash python lp_main.py --data_path ../dataset/fb15k-237/ ``` lp_main.py里面提供了FB15K-237的默认参数 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值