介绍几个专门面向中文的命名实体识别和关系抽取工具

知识图谱已经在人工智能的各个领域发挥越来越重要的作用,例如视觉问答、对话系统、推荐系统等。知识图谱构建是应用这些知识图谱的基础,而面对生活和企业中数据的爆发式增长,自动化知识图谱构建显得越来越重要。从非结构化文本中自动抽取三元组知识并构建知识图谱需要用到的核心技术就是命名实体识别和关系抽取,现在已经有了很多相关的具体算法和模型,对于这些大家可以看顶会论文和技术分享,我们主要来介绍几个专门面向中文的命名实体识别和关系抽取的工具。

 

1. 中文分词

中文自然语言处理与其它语言比如英语的最大不同之处在于英文中每个词直接由空格分隔开,但是中文是以字来分隔的,对于机器来说并不知道一句话中哪些字组成一个词。因此,在实现很多中文的自然语言处理功能时,需要先进行分词处理,将一句话中的中文词语分隔开。首先,我们来介绍一种最流行的中文分词工具jieba

jieba的官方github地址:https://github.com/fxsjy/

ieba在官方对jieba(标星24.5k+)的介绍中,我们看到是这样说的:

“结巴”中文分词:做最好的 Python 中文分词组件

不是人自吹,jieba确实是目前最好的中文分词工具,我们来看看这个小东西都有什么特点。

  1. 支持全自动安装:
    easy_install jieba
    或者
    pip install jieba / pip3 install jieba

    2. 对于同一个句子,支持四种分词模式:

  • 精确模式:试图将句子最精确地切开,适合文本分析。
  • 全模式:把句子中所有的可以成词的词语都扫描出来, 速度非常快,但不能解决歧义。
  • 搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
  • paddle模式:利用PaddlePaddle深度学习框架,训练序列标注(双向GRU)网络模型实现分词。同时支持词性标注。paddle模式使用需安装paddlepaddle-tiny:
pip install paddlepaddle-tiny==1.6.1

3. 支持繁体分词

4. 支持自定义词典

5. 算法上,采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合。对于未登录词,采用了基于汉字成词能力的 HMM 模型,使用了 Viterbi 算法。具体的jieba和用法可以参考官方github文档。

 

2. 命名实体识别

目前较为成熟的中文命名实体识别(NER)工具包括LTP,PyHanlp,Lac等。

2.1 语言技术平台(LTP)

语言技术平台(LTP) 是哈工大社会计算与信息检索研究中心 11 年的持续研发和推广,LTP 已经成为国内外最具影响力的中文处理基础平台,曾获 CoNLL 2009七国语言句法语义分析评测 总成绩第一名,中文信息学会钱伟长一等奖等重要成绩和荣誉。LTP提供包括中文分词、词性标注、命名实体识别、依存句法分析、语义角色标注等丰富、高效、精准的自然语言处理技术。目前,LTP 已经被 500 多家国内外研究机构和企业使用,多家大企业和科研机构付费使用。

LTP官方地址:http://ltp.ai/

要想用LTP实现中文命名实体识别非常简单,首选,只需要一行指令便可自动安装部署LTP:

pip install ltp

接着,需要加载模型:

from ltp import LTltp = LTP() # 默认加载 Small 模型

这时,就可以愉快的使用命名实体识别了:

from ltp import LTP
ltp = LTP()
seg, hidden = ltp.seg(["杨超越在1998年7月31日出生于江苏省盐城市大丰区。"])
ner = ltp.ner(hidden)tag, start, end = ner[0][0]print(tag,":", "".join(seg[0][start:end + 1]))]

利用LTP官方提供的在线演示系统:http://ltp.ai/demo.html

可以通过可视化直接看到对“杨超越在1998年7月31日出生于江苏省盐城市大丰区。”这句话的命名实体识别的效果:

从上面的结果可以看到,LTP可以识别出“杨超越”为人名,“江苏省”为地名,但是无法识别出例如“1998年”这种时间类型的实体,同时对于“盐城市”和“大丰区”这类地名也无法识别。

 

2.2 Pyhanlp

HanLP是一系列模型与算法组成的NLP工具包,目标是普及自然语言处理在生产环境中的应用。HanLP具备功能完善、性能高效、架构清晰、语料时新、可自定义的特点。内部算法经过工业界和学术界考验。目前,基于深度学习的HanLP 2.0正处于alpha测试阶段,未来将实现知识图谱、问答系统、自动摘要、文本语义相似度、指代消解、三元组抽取、实体链接等功能。

Pyhanlp的github项目官方地址:

https://github.com/hankcs/pyhanlp

这里我们介绍的Pyhanlp是HanLP1.x的Python接口,支持自动下载与升级HanLP1.x,兼容py2、py3。安装Pyhanlp的步骤比LTP稍微复杂一步,首先需要安装JDK,官方下载地址为:

https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

需要注意的是,这里需要保证JDK的位数、操作系统位数和Python位数一致。然后设置JAVA_HOME环境变量,接着,就可以根据如下指令安装Pyhanlp了:

conda-forge jpype1==0.7.0      # (可选)conda安装jpype1更方便pip install pyhanlp

然后,就可以使用Pyhanlp来进行命名实体识别了,仍然需要通过类似于LTP的流程,先加载模型,再执行命名实体识别:

import pyhanlp
text = '杨超越在1998年7月31日出生于江苏省盐城市大丰区。'
NLPTokenizer = pyhanlp.JClass('com.hankcs.hanlp.tokenizer.NLPTokenizer')
NER = NLPTokenizer.segment(text)
print(NER)

为了和LTP的命名实体识别的效果进行对比,使用Pyhanlp官方提供的在线演示系统:http://hanlp.hankcs.com/

并针对同样的一个实例“杨超越在1998年7月31日出生于江苏省盐城市大丰区。”,用Pyhanlp对这句话的命名实体识别的效果为:

 

2.3 BosonNLP

BosonNLP实体识别引擎基于自主研发的结构化信息抽取算法,F1分数达到81%,相比于StanfordNER高出7个百分点。通过对行业语料的进一步学习,可以达到更高的准确率。

BosonNLP项目官方地址:http://static.bosonnlp.com/

BosonNLP 是一个更加商业化的中文语义分析API,其中,对于命名实体识别任务,可以识别时间、地点、人名、组织名、公司名、产品名、职位这几类实体。

安装这个工具非常简便:

pip install bosonnlp

接着,就可以调用这个API进行命名实体识别的任务了:

from bosonnlp import BosonNLP
import os
nlp = BosonNLP(os.environ['BOSON_API_TOKEN'])
nlp.ner('杨超越在1998年7月31日出生于江苏省盐城市大丰区。', sensitivity=2)

同样,为了和前两个工具LTP和Pyhanlp进行对比,针对同样的一个实例“杨超越在1998年7月31日出生于江苏省盐城市大丰区。”,使用BosonNLP官方提供的在线演示系统:http://static.bosonnlp.com/demo#overview-ner

用BosonNLP对这句话的命名实体识别的效果为:

可以看到,用BosonNLP这个工具,能够同时识别出这句话中的人名,时间和地名,相比前两个系统具有最好的命名实体识别的效果

 

当然,除了前面介绍的这个三个命名实体识别的工具,还有很多开源的工具可以使用,包括:

  • 百度的Lac:https://github.com/baidu/lac
  • 复旦大学的fnlp:https://github.com/FudanNLP/fnlp
  • 斯坦福的StanfordCoreNLP:https://stanfordnlp.github.io/CoreNLP/

 

3. 关系抽取

目前,专门面向中文的关系抽取工具并不多,泽宇搜集到的中文关系抽取工具有DeepKE,Jiagu和DeepDive。

3.1 DeepKE

DeepKE是浙江大学知识引擎实验室开发的中文关系抽取开源工具,项目官方地址是:

https://github.com/zjunlp/deepke

安装DeepKE,首先需要安装一些配置环境所需的依赖包:

  • python >= 3.6
  • torch >= 1.2
  • hydra-core >= 0.11
  • tensorboard >= 2.0
  • matplotlib >= 3.1
  • transformers >= 2.0
  • jieba >= 0.39

相比于前面介绍的命名实体识别工具,DeepKE的封装性相对没有那么强,目前只能通过源码安装方式:

git clone https://github.com/zjunlp/deepke.gitcd deepke
再采用 pip install -r requirements.txt 安装上述的相关依赖包。

然后,对于我们自己的关系抽取任务,使用DeepKE提供的模型对我们的数据集进行训练,所有的训练数据需要存储在 data/origin 文件夹中。接着,就可以训练关系抽取的模型了,DeepKE提供了7种不同的关系抽取模型,包括:

  • 基于 CNN 的关系抽取模型
  • 基于 BiLSTM 的关系抽取模型
  • 基于 PCNN 的远程监督关系抽取模型
  • 基于 Capsule 的关系抽取模型
  • 基于 Transformer 的关系抽取模型
  • 基于 GCN 的关系抽取模型
  • 基于 BERT 语言预训练模型的关系抽取模型

可以看到,DeepKE提供的所有模型都是基于深度学习的关系抽取模型,其中包括最新的基于Transformer、GCN和BERT的模型,具体的每种模型的使用可以参考官方提供的文档:

https://github.com/zjunlp/deepke/wiki

 

3.2 Jiagu

Jiagu使用大规模语料训练而成。将提供中文分词、词性标注、命名实体识别、情感分析、知识图谱关系抽取、关键词抽取、文本摘要、新词发现、情感分析、文本聚类等常用自然语言处理功能。

Jiagu是思知机器人公司开发的一个针对中文关系抽取的开源工具,Jiagu的项目官方地址是:

https://github.com/ownthink/Jiagu

安装Jiagu就非常方便,可以直接自动安装:

pip install -U jiagu

但是,Jiagu的关系抽取目前仅用于测试的功能,只能使用百科的描述进行测试。使用方法为:

import jiagu
text = '姚明1980年9月12日出生于上海市徐汇区,祖籍江苏省苏州市吴江区震泽镇,前中国职业篮球运动员,司职中锋,现任中职联公司董事长兼总经理。'
knowledge = jiagu.knowledge(text)
print(knowledge)

 

3.3 DeepDive

deepdive是由斯坦福大学InfoLab实验室开发的一个开源知识抽取系统。它通过弱监督学习,从非结构化的文本中抽取结构化的关系数据 。

斯坦福开源的DeepDive原本只能支持英文的关系抽取,国内最大的知识图谱开放平台OPENKG修改了DeepDive中自然语言处理的model包,使它支持中文,并提供中文使用手册,后续将持续更新一些针对中文的优化。

支持中文的DeepDive项目的官方地址为:

http://www.openkg.cn/dataset/cn-deepdive

希望这几个非常实用的面向中文的命名实体识别和关系抽取工具能够帮助大家实现非结构化知识抽取,快速自动构建知识图谱,并赋能各种融入知识的人工智能项目中。

 

往期精选:

速览EMNLP 2020上录取的知识图谱相关论文

介绍一些知识图谱的实际应用类项目

已嵌入微信公众号内的小图聊天机器人介绍和使用说明

知识图谱最新权威综述论文解读:知识表示学习部分

手把手教你搭建一个中式菜谱知识图谱可视化系统

 

如果对文章感兴趣欢迎关注知乎专栏“人工智能遇上知识图谱“,也欢迎关注同名微信公众号人工智能遇上知识图谱”,让我们一起学习并交流讨论人工智能与知识图谱技术。

                                                      

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/482152.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一文梳理类脑计算的前世今生 | 中科院自动化所研究员李国齐

来源:智源社区整理:王光华编辑:李梦佳导读:众所周知,人类大脑活动是复杂而连续的动力学过程,其复杂程度远超当前算力资源所能模拟的上限。大脑约有1000亿个神经元,100万亿个突触,单个…

常识推理相关最新研究进展

以深度学习为代表的智能感知技术已经取得了突破性进展,并已在各行各业产生了巨大的价值。目前,人工智能的研究领域已经逐渐从感知智能向认知智能领域过渡,其中,深度学习无法解决的一个主要问题是常识推理问题。常识知识是人类智能…

全球半导体厂商TOP 10

来源:数据观综合编辑:蒲蒲近日,IC Insights 分析了全球主要半导体供应商(不含纯代工厂)的市场份额,并公布排名前十的半导体厂商排名。从分析情况来看,全球半导体市场份额越来越集中于排名靠前的…

常识知识在AI不同领域应用的最新研究进展

上期,我们一起学习了常识推理的最新研究进展。这次,我们一起来看看常识知识在AI不同的领域都有哪些应用,泽宇找到几篇最新或有代表性的研究和大家分享学习。 Commonsense Knowledge Aware Conversation Generation with Graph Attention Aut…

MIT 团队的新测试,将 AI 推理与人类思维进行比较

来源:ScienceAI编辑:萝卜皮人工智能获得洞察力和做出决策的方式通常是神秘的,这引发了人们对机器学习的可信度的担忧。现在,在一项新研究中,研究人员揭示了一种新方法,用于比较人工智能软件的推理与人类推理…

年末巨制:知识图谱嵌入方法研究总结

泽宇对自己的研究方向也就是知识图谱嵌入(KG Embedding)技术进行了总结,并制作了一套slides,力求让大家只看slides就可以理解并掌握知识图谱嵌入的相关知识和最新研究情况,包括知识图谱嵌入的基本概念、方法分类和经典…

吴恩达:未来十年,人工智能将向以数据为中心转变

来源:AI前线作者:Eliza Strickland译者:平川策划:凌敏本文最初发布于 IEEE Spectrum。吴恩达在人工智能领域可谓声名显赫。2000 年底,他与斯坦福大学的学生一起开创了使用图形处理单元(GPU)训练…

知识图谱最新权威综述论文解读:时序知识图谱部分

从最近一两年有关知识图谱的顶会论文中可以发现,越来越多的国内外研究者开始关注动态时序知识图谱,可见时序知识图谱已经成为了一大研究趋势,相信之后会有更多相关研究出来。因此,这期我们对综述论文的时序知识图谱部分接着进行解…

CACM观点:超越联邦学习,让AI跨越公司边界

来源:AI科技评论 编译:张泷玲、杨柳编辑:维克多今年1月份,苏黎世联邦理工学院的Stefan Feuerriegelc教授在 《Communications of the ACM》期刊上刊文“Artificial Intelligence Across Company Borders”,在文中教授指…

知识图谱最新权威综述论文解读:知识图谱应用部分

知识图谱在人工智能的许多领域都发挥了重要作用,综述论文的这一章引入多个最新的基于深度学习的知识驱动方法,主要包括的应用领域有自然语言理解,推荐系统和问答系统。 1 自然语言理解 知识感知的自然语言理解通过将结构化的知识注入一个统一…

知识图谱和专家系统、知识工程、数据库等概念的比较

知识图谱虽然是Google在2012年公布其开发的搜索引擎时提出的名词,但是知识图谱的雏形早在1960左右就已经出现,因此,知识图谱其实是很多相关技术继承发展的结果。并且,和知识图谱类似的还有好几个概念:专家系统、知识工…

CICC城市大脑专委会成功举办“城市大脑成熟度评估专家研讨会”

来源:中国指挥与控制学会2020年以来,城市大脑已成为科技领域的新热点。作为一个新兴的前沿科技领域,不同企业、不同城市对城市大脑的理解并不相同,在建设的过程中没有统一的建设规范和标准作为指导,从而导致不同企业建…

“知识图谱+”系列:知识图谱+图神经网络

最近有很多朋友联系泽宇说想了解一些知识图谱和图神经网络(GNN)结合的研究。那泽宇当然要满足朋友们的要求啊,本期泽宇从知识图谱的几个不同研究方向总结了结合GNN的经典研究,也和大家一起分享。所有内容是泽宇查阅了很多顶会论文…

周志华:“数据、算法、算力” 人工智能三要素,在未来要加上“知识”!

来源:AI科技评论作者:李雨晨 编辑:丛末在CCF-GAIR 2020 的人工智能前沿专场上,南京大学计算机系主任、人工智能学院院长、CCF会士、ACM、AAAI、IEEE、IAPR Fellow周志华教授以“反绎学习”为题发表了大会报告。周志华表示&#x…

“知识图谱+”系列:知识图谱+强化学习

泽宇个人一直认为强化学习是建模动态系统最好的方法之一,通过与环境的不断交互,在动作选择和状态更新的动态过程中逐渐达到优化目标。因此,本期泽宇将从知识图谱结合强化学习的角度介绍几个不同的研究方向的内容,包括知识图谱推理…

吴恩达 | 未来十年,人工智能将向以数据为中心转变

来源:IEEE Spectrum访者:吴恩达 计算机科学家吴恩达在人工智能领域可谓声名显赫。2000 年底,他与斯坦福大学的学生一起开创了使用图形处理单元(GPU)训练深度学习模型的先河,并在 2011 年共同创立了谷歌大脑…

给几句话就能生成分子,看见分子也能生成描述,神秘的Google X把多模态AI做成了黑科技...

来源:机器学习研究组订阅AIscience 领域近来有了诸多进展。设想一下,医生写几句话来描述一种专门用于治疗患者的药物,AI 就能自动生成所需药物的确切结构。这听起来像是科幻小说,但随着自然语言和分子生物学交叉领域的进展&#x…

MIT新发现:细胞在分裂前会把垃圾带走

来源:生物通 细胞可以利用这种策略清除有毒的副产品,给后代一个干净的环境。麻省理工学院(MIT)的研究人员发现,在细胞开始分裂之前,它们会进行一些清理,将似乎不再需要的分子排出体外。利用他们开发的一种测量细胞干质…

图灵测试其实已经过时了

来源:立委NLP频道图灵测试的实质就是要让人机交互在限定时间内做到真假莫辨。玩过GPT3的同学们都清楚,其实这一点已经做到了。从这个角度看,图灵测试已经过时了。区别人和机器,需要寻找其他的标准。今天就唠一唠正在风口上的预训练…

揭示世界本质的「机器科学家」,比深度神经网络还强?

来源:AI科技评论作者:Charlie Wood编译:王玥、刘冰一编辑:陈彩娴我们正处于“GoPro 物理学”的风口浪尖。无论摄像机聚焦于什么事件,算法都可以识别其中潜在的物理方程。2017 年,西北大学化学与生物工程系的…