NLTK词性标注、命名实体识别、依存句法分析调用

首先,肯定还是先下载nltk

pip install nltk -i https://pypi.tuna.tsinghua.edu.cn/simple

此时,如果坚持运行nltk一般是会出现报错的

这是因为光在pip下载nltk还不足以支持其具体功能的运行,需要再下载对应资源,本图报错中就提醒我们下载punkt。

然而,按照报错提示去下载总是会因为网络问题而要么非常慢,要么下不了的,所以建议去nltk官网NLTK Data进行下载,会慢一点,但多半能成功。

下载完对应资源之后,将对应资源解压放到报错中返回的路径中的任意一个就可以了(注意:你的电脑本身可能不带有nltk_data文件夹,此时只要自己创建一个,然后把资源放进去就可以了)

其中,请注意各资源需要放在nltk_data不同的子文件夹下,本文所要用到的各子文件夹的资源有:

chunkers/maxent_ne_chunker、corpora/treebank、corpora/words、taggers/averaged_perceptron_tagger、tokenizers/punkt(一般来说子文件夹也是需要自己创建的)

然后就可以开始调试具体代码了。

命名实体识别代码如下:

import nltk
sentence = """Replace with your own sentence here."""
tokens = nltk.word_tokenize(sentence)
tagged = nltk.pos_tag(tokens)
entities = nltk.chunk.ne_chunk(tagged)
print(entities)

依存句法分析代码如下:

import nltk
sentence = 'He is a student'
words = nltk.word_tokenize(sentence)
sent_tag = nltk.pos_tag(words)
grammar = 'NP: {<DT>?<JJ>*<NN>}'
cp = nltk.RegexpParser(grammar)
result = cp.parse(sent_tag)
print(result)
result.draw()

         这里其实我还没搞懂具体语法结构应该怎么写,也就是grammar应该怎么赋值,所以建议写和这里sentence一样的语法结构的句子以保证返回结果能够理想

词性标注代码如下:

from nltk.tokenize import word_tokenize
from nltk.tag import pos_tag
sentence = "Replace with your sentence here."
tokens = word_tokenize(sentence)
tagged = pos_tag(tokens)
print(tagged)

具体要用到的nltk_data数据包我稍后试试能不能直接上传csdn

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值