使用pke模块抽取中文关键短语所踩的坑

1.首先是pke的安装。

github上给出的安装方法是:pip install git+https://github.com/boudinfl/pke.git,但是安装不成功,因此直接从git上下载pke,然后解压,进入pke路径,再执行:python setup.py install

2.spacy模块中文模型的下载安装。

使用pke的时候,依赖spacy模块,内部需要做分词,词性标注或者解析等,因此需要安装spacy,spacy的安装很简单,直接pip install spacy就可以,但是需要下载对应的模型,对于中文来说,我下载的是zh_core_web_trf,直接使用python spacy download zh_core_web_trf,发现一直下载不成功,换一种方法,先去官网下载模型,然后执行:pip install /你的下载目录/zh_core_web_trf-3.2.0.tar.gz

3.pke代码使用。 

import pke
text = "3月21日,美国国务卿布林肯发表声明,宣布美方将对所谓侵犯人权的中国官员实施签证限制。对此,在今天(31日)的中国外交部例行记者会上,发言人汪文斌宣布,美方借口所谓人权问题炮制恶劣谎言,并以此为由干涉中国内政,抹黑中国形象,打压中方官员。这些行径毫无道德底线,严重违反国际法和国际关系基本准则,中方对此坚决反对。为维护中国主权安全发展利益,保护中方人员正当合法权益。根据中国反外国制裁法有关规定,中方决定对在涉华人权问题上炮制谎言,推动出台对华制裁、损害中方利益的美方官员对等采取签证限制。"
extractor = pke.unsupervised.MultipartiteRank()
extractor.load_document(input=text, language='zh',normalization='none')
extractor.candidate_selection()
extractor.candidate_weighting()
extractor.get_n_best(n=20)

在执行 extractor.load_document(input=text, language='zh',normalization='none'),报错:ValueError: tensorflow.__spec__ is None,这个是因为tensorflow 和transformers的版本不匹配造成的,tensorflow为1.14.0并且transformers版本3.4.0 是可以正常执行的

4.使用pke 中TopicRank和MultipartiteRank

extractor.load_document(input=text, language='zh',normalization='none',stoplist = []),stoplist这个参数是必须的,而且不能为空列表,否则会报错:TypeError: 'NoneType' object is not iterable

参考文献

1.NLP关键短语提取必备:从TextRank看PositionRank等四种花式变体的算法思想与开源实现

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值