------------------------------------------说正题--------------------------------
上一篇博文Python自然语言处理(一)介绍了如何利用NLTK自带的函数快速进行NLP任务,适用于对NLP处理要求不高的场景。
如果对NLP的效果有较高要求的话,那些NLTK自带的函数可能就无法满足要求了。
幸好,NLTK可以调用第三方的NLP工具。Stanford NLP Tools 是非常优秀的NLP工具,下面介绍如何在Python中使用它们。
NLTK自带的类支持部分Stanford NLP Tools, 但是我本机测试始终无法运行,不知是Stanford NLP Tools升级的原因还是我电脑的原因。这里利用第三方工具包使用Stanford NLP Tools。
一、使用StanfordNER
首先,需要下载StanfordNER工具包,点这里下载
还需要下载一个第三方工具包Pyner, 点这里下载
下载完成后,依次进行下列操作:
1. 安装Pyner
解压下载的Pyner,命令行中将工作目录切换到Pyner文件夹下, 输入命令 :python setup.py install 完成安装
2. 解压StanfordNER工具包,命令行中将工作目录切换到StanfordNER文件夹下,输入以下命令以服务的方式运行StanfordNER
命令:java -mx1000m -cp stanford-ner.jar edu.stanford.nlp.ie.NERServer -loadClassifier classifiers/english.muc.7class.distsim.crf.ser.gz -port 8080 -outputFormat inlineXML
3.上面两步正确完成之后,下面可以很方便的用python调用StanfordNER了。
二、使用StanfordParser
首先,需要下载 StanfordParser,测试支持1.6.4版本,其它版本未测,点此下载
还需要安装第三方工具包Stanford-parser-python, 点此下载
注意:Stanford-parser-python需要用到另一个工具包JPype,如果尚未安装,需要先安装JPype. 安装教程
下面配置Stanford-parser-python
1. 在工程下新建python包,将stanford-parser-python解压后拷贝进去,我的例子中包名为stanford-parser
2. 打开parser.py文件,进行配置
在打开的文件中找到startJvm函数,将其修改为上图样式
其中,stanford_parser_home配置为stanford parser在你本机的所在目录
将此Parser的构造函数红线标注的部分修改为:
self.pcfg_model_fname = "%s/englishPCFG.ser.gz" % stanford_parser_home
现在终于配置完成,可以使用StanfordParser了
执行结果:
三、使用StanfordPosTag
StanfordParser同时进行了PosTag操作,直接可以利用StanfordParser进行PosTag。
按照二的步骤配置好StanfordParser之后,很容易进行PosTag
下面自定义PosTag方法:
执行结果: