两种在Python中使用Stanford CoreNLP的方法

这两种方法都需要提前下载CoreNLP最新的压缩包,再下载对应的语言jar包。从CoreNLP下载页面下载。将压缩包解压得到目录,再将语言的jar包放到这个目录下即可。并且要求java -version>=1.8。
接下来就是利用python对该工具的使用进行一个封装,这里主要给出两种常用的python wrapper。

1、使用stanfordcorenlp接口

见链接:Python中使用Stanford CoreNLP
这篇文档中将这种方法讲得很清楚,因此直接贴上链接,访问原文即可、、

2、使用官方Python接口python-stanford-corenlp

见链接:CoreNLP Python接口处理中文
在这篇文章中,作者是用的linux系统,并且拥有root权限。我这里提供另外两种不同环境的配置过程。

(1)windows 10 环境

在该环境下,配置环境变量与上文中的方法有一些不一样。具体方法是:
电脑右键->属性->高级属性->环境变量->新增->添加变量名javanlp,路径值为之前解压coreNLP得到的目录。

(2)linux 下不具有root权限的环境

在这种环境下,只需要在原文修改client.py里面初始化部分的代码的基础上再修改下即可。(路径:python-stanford-corenlp\corenlp\client.py)

1
2
3
4
5
# assert os.getenv(
# "JAVANLP_HOME") is not None, "Please define $JAVANLP_HOME where your CoreNLP Java checkout is"
start_cmd = 'java -Xmx{memory}g -cp "{javanlp}/*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -serverProperties StanfordCoreNLP-chinese.properties -port {port} -timeout {timeout}'.format(
memory=allocate_mem,
javanlp="/home/xiongzy/anaconda3/coreNLP/stanford-corenlp-full-2016-10-31",

注释掉:

1
2
# assert os.getenv(
# "JAVANLP_HOME") is not None, "Please define $JAVANLP_HOME where your CoreNLP Java checkout is"

将javanlp改为具体的值:

1
javanlp="/home/xiongzy/anaconda3/coreNLP/stanford-corenlp-full-2016-10-31"

然后进入python-stanford-corenlp目录重新重新安装即可python setup.py install

tips

(1)关闭server

每次第一种方法的代码中,每次使用后需要手动关闭server,nlp.close()。
第二种方法不用手动关闭,其自动关闭

(2)利用网页进行分析

当server处于开启状态时,可以通过ip:port(如:localhost:9000)打开网页版的分析器。效果如图。
Stanford coreNLP