如何用Stanford coreNLP 做中英文指代分解

如何用Stanford coreNLP 做中英文指代分解

指代分解是NLP领域的一个重要课题,目前流行好用的的NLP很多,如NLTK,spaCy,polyglot,jieba等,但实现指代消解的NLP着实的少,目前可以找到的貌似只有spacy下的NeuralCoref;斯坦福的stanford coreNLP和复旦大学的FudanNLP三个。
其中spacy是工业级的NLP处理方式,使用python,运行速度最快,但可惜目前没有中文的指代分解。Stanford coreNLP和FudanNLP相比,后者精度过差,本文使用Standford coreNLP实现中英文指代分解的例子各一个。

一, 环境配置

Stanford coreNLP使用java实现,他也有python的接口,CSDN有很多博客有介绍,但python版的stanford coreNLP更新比java版的慢一些,本人仔细查找了python的stanford coreNLP之后并没有找到指代分解部分(可能我下载的版本过旧?),所以就不多介绍了。

1,更新Java版本以及下载必要的包

Java配置主要有以下注意点:
1, java版本需要JDK1.8
2, Stanford coreNLP的安装链接如下:
https://stanfordnlp.github.io/CoreNLP/

2,建立工程

在这根据官方指导,应该使用maven工程,工程建立的流程如下:
http://www.sfs.uni-tuebingen.de/~keberle/NLPTools/presentations/CoreNLP/NLP Tools - Stanford CoreNLP - Installation (1).pdf

3,导入需要包

最后导入需要的包,在这直接参照前辈的操作指南了,链接如下:
https://www.cnblogs.com/tec-vegetables/p/4153144.html
接着就可以开始愉快的指代分解之旅了:)

二, 英文指代分解代码及结果

代码如下:
1
2
3
4

运行输入:

Kosgi Santosh sent an email to Stanford University. He didn’t get a reply.

运行输出:

(指代链形式)
g

三, 中文指代分解代码及结果: 代码如下: 运行输入:

代码如下:
1
2

运行输入:

托马斯叹了口气,他知道自己又无法拒绝了,不由得怪自己心肠实在不够硬。其实他也不愿意把莉莉娅赶走,如果是平时,托马斯还会给她耐心讲解一些工作的事,但是今天的任务非同寻常,案件极端棘手,又牵扯数额巨大的跨国黑钱交易,他实在不能分心。从今天早上开始,他的心就一直跳得很厉害,隐隐有一种不祥的预感。“头儿,她出来了。”就在这时,查理突然喊道。

运行输出:

(指代链形式)
3

评价

英文的指代分解斯坦福已经做得不错了,但中文指代分解结果可以说真的很差。查完资料过后发现斯坦福的英文指代分解已经在用机器学习的算法了,但中文部分好像还没有上线。更新后再学习吧。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值