首先,肯定还是先下载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