NLTK和Stanford NLP两个工具的安装配置
这里安装的是两个自然语言处理工具,nltk和stanford nlp。
声明:笔者操作系统是windows10,理论上windows都可以;
版本号:nltk 3.2
stanford nlp 3.6.0
jdk 1.8
重要文件在讲述过程中会以网盘链接给出,可随时下载。
注:笔者是通过anaconda安装的python,所以有关路径都与anaconda有关。
一、 nltk的安装
下载后直接运行exe文件进行安装,会自动匹配到python安装路径,如果没有找到路径则说明nltk版本不正确,或者说python版本不正确。
3. 打开python编辑器,输入“import nltk”,再输入“nltk.download()”,下载nltk数据包,在下载界面选中book模块,这个模块包含了许多数据案例和内置函数。
修改book下载目的路径建议如下:d:\developmenttools\anaconda3\nltk_data,也就是在anaconda下创建一个nltk_data的文件夹,将book下载目标路径放在此处即可,这样做便于管理和维护。如下如:
4、环境变量的配置:计算机→属性→高级系统设置→高级→环境变量-系统变量→path,在path中加入刚刚定的路径:d:\developmenttools\anaconda3\nltk_data
5、配置完成之后,打开python编辑器,输入from nltk.book import *,只要没有输出明显的错误,正确显示了相关信息,就表示nltk安装成功了,如下图:
二、stanford nlp工具的安装
3、然后进入windows的cmd命令行
从命令进入到刚刚复制的路径下:d:\developmenttools\anaconda3\nltk-develop ,然后输入python setup.py install,并执行 如下:
等待安装即可,由于笔者已经安装过了,就不展示安装后的信息了。
4、stanford nlp版本是3.6.0,所有文件可在网盘下载:https://pan.baidu.com/s/15y7gfy167cfljhvrurwmca
5、下面就来开始设置刚刚“stanfordnlp”文件夹下各个文件的环境变量,环境变量都是在系统变量的classpath中来操作。
设置环境变量的目的是为了能随时快速的调用,设置环境变量之后,以后的所有调用都不需要传输绝对路径的参数了。
(1)stanfordsegmenter环境变量的设置
进入“stanfordnlp”文件夹,将stanford-segmenter.jar的绝对路径拷贝到classpath下,分别如下:
注意,每一个不同路径之间要用分号分隔。
(2)slf4j-api.jar加入classpath环境变量。slf4j-api.jar是stanford-segmenter-2015-12-09.zip解压后含有的文件。
同理,将“stanfordnlp”中的slf4j-api.jar的绝对路径加入到classpath中去,如下:
(3)stanfordpostagger环境变量的设置
同理,进入“stanfordnlp”文件夹,将stanford-postagger.jar文件的绝对路径添加到classpath中,如下:
(4)stanfordnertagger环境变量的设置
同理,进入“stanfordnlp”文件夹,将stanford-ner.jar文件的绝对路径添加到classpath中,如下:
(5)将classifiers文件夹也添加入classpath环境变量。classifiers文件夹是从stanford-ner-2015-12-09.zip解压后含有的文件夹,直接复制提取的
(6)将models文件夹添加入classpath环境变量。models文件夹是stanford-postagger-full-2015-12-09.zip解压后含有的文件夹。环境变量如下:
(7)stanfordparser环境变量的设置
同理,进入“stanfordnlp”文件夹,将stanford-parser.jar和stanford-parser-3.6.0-models.jar分别添加到classpath环境变量中去,分别如下:
(8)stanfordneuraldependencyparser环境变量的设置
同上,进入“stanfordnlp”文件夹,分别将stanford-corenlp-3.6.0.jar和stanford-corenlp-3.6.0-models.jar添加入classpath环境变量,分别如下:
三、测试
由于stanford nlp工具安装最繁琐,也最容易出问题,于是特别展示对stanford nlp的测试,所有简短的代码都是在python编辑器中执行的,其它地方也可:
代码如下:
路径:相应路径是笔者前面安装所使用的路径,结合更改为自己电脑的实际路径。只要按照上述步骤将所有环境变量配置了,那么,在所有函数的调用中,函数参数就不用再输入绝对路径了,只需要直接输入相应的文件名即可,函数运行时自会在环境变量的路径下来找该文件,找不到的话就会报错的。
(1)中文分词
segmenter = stanfordsegmenter(
path_to_sihan_corpora_dict="d:\developmenttools\anaconda3\stanfordnlp\data\", path_to_model="d:\developmenttools\anaconda3\stanfordnlp\data\pku.gz", path_to_dict="d:\developmenttools\anaconda3\stanfordnlp\data\dict-chris6.ser.gz")
str="我在博客园开了一个博客,我的博客名字叫钝学累功。"
result = segmenter.segment(str)
tokenizer=stanfordtokenizer()
sent="good muffins cost $3.88\nin new york. please buy me\ntwo of them.\nthanks."
print(tokenizer.tokenize(sent))
(1)英文命名实体识别
from nltk.tag import stanfordnertagger
eng_tagger=stanfordnertagger(model_filename=r'd:\developmenttools\anaconda3\stanfordnlp\classifiers\english.all.3class.distsim.crf.ser.gz')
print(eng_tagger.tag('rami eid is studying at stony * university in ny'.split()))
3、词性标注
(1)英文词性标注
from nltk.tag import stanfordpostagger
eng_tagger=stanfordpostagger(model_filename=r'd:\developmenttools\anaconda3\stanfordnlp\models\english-bidirectional-distsim.tagger')
print(eng_tagger.tag('what is the airspeed of an unladen swallow ?'.split()))
(2)中文词性标注
from nltk.tag import stanfordpostagger
chi_tagger=stanfordpostagger(model_filename=r'chinese-distsim.tagger')
result="四川省 成都 信息 工程 大学 我 在 博客 园 开 了 一个 博客 , 我 的 博客 名叫 钝学累功 。 \r\n"
print(chi_tagger.tag(result.split()))
4、句法分析
(1)英文句法分析
from nltk.parse.stanford import stanfordparser
eng_parser=stanfordparser()
print(list(eng_parser.parse("the quick brown for jumps over the lazy dog".split())))
from nltk.parse.stanford import stanfordparser
chi_parser=stanfordparser()
sent=u'北海 已 成为 中国 对外开放 中 升起 的 一 颗 明星'
print(list(chi_parser.parse(sent.split())))
(1)英文依存句法分析
from nltk.parse.stanford import stanforddependencyparser
eng_parser=stanforddependencyparser()
res=list(eng_parser.parse("the quick brown fox jumps over the lazy dog".split()))
for row in res[0].triples():
print(row)
from nltk.parse.stanford import stanforddependencyparser
chi_parser=stanforddependencyparser()
res=list(chi_parser.parse(u'四川 已 成为 中国 西部 对外开放 中 升起 的 一 颗 明星'.split()))
for row in res[0].triples():
print(row)
总结,环境变量的设置总的来说是*的,但是要设置的便于自己识别和 维护,笔者只是提供了自己的设置方案。只要能正常运行上述测试代码,就表示stanford nlp和nltk安装成功了,之后开发可以结合两个工具一起使用。。。
参考链接:https://www.jianshu.com/p/4b3c7e7578e6
推荐阅读
-
Linux下进程管理工具Supervisor的安装配置和基本使用
-
NLTK和Stanford NLP两个工具的安装配置
-
Windows和Linux中php代码调试工具Xdebug的安装与配置详解
-
Docker.v19安装和配置Docker Compose编排工具的方法
-
IntelliJ IDEA开发工具的安装和配置
-
Windows和Linux中php代码调试工具Xdebug的安装与配置详解_PHP教程
-
Windows和Linux中php代码调试工具Xdebug的安装与配置详解_php实例
-
Linux下进程管理工具Supervisor的安装配置和基本使用
-
MongoDB客户端工具studio3t的下载安装和配置
-
Windows和Linux中php代码调试工具Xdebug的安装与配置详解