StanfordPOSTagger的用法

或者:

然后,

由说明文档可知,nltk.tag.stanford module是与斯坦福标识符交互的模块。要到https://nlp.stanford.edu/software下载Tagger models。

然后运行StanfordPOSTagger模块说明文档中给的例子的代码:

 

 由错误信息可知和StanfordPOSTagger类的源码可知,需要_JAR默认为'stanford-posttagger.jar'文件,要到https://nlp.stanford.edu/software下载stanford-postagger.jar文件。

通过观察,打开Stanford POS Tagger链接,

下载.jar文件,一个是英语的POS标注器,一个是所有语言的POS标注器的.jar文件。

下载之后,解压文件

找到stanford-postagger.jar文件,并将其所在路径赋值给StanfordPOSTagger的path_to_jar参数

错误提示说,StanfordPOSTagger类的__init__()初始化函数缺少一个'model_filename'的参数,查看StanfordPOSTagger类的__init__()初始化函数源码

 

继续看源码

model_filename的参数需要赋值

这里报错很矛盾,明明存在却说找不到,那么修改stanford-postagger.jar名称试试

还是找不到,修改一下path_to_jar

报错信息改变,说明已经解决了stanford-postagger.jar问题了,这里提示找不到model_filename参数变量中的文件,那么由说明文档中的例子可知,修改model_filename参数的值为english-bidirectional-distsim.tagger,这里path_to_jar是stanford-postagger.jar文件的路径,model_filename是POS标识器的名称。

还是找不到,将english-bidirectional-distsim.tagger的绝对路径赋值给model_filename

上述问题,POS标识器和jar文件已经解决,出现新的问题,提示说找不到java文件,配置java环境变量,发现配置之后还是老样子错误,那么根据提示,在程序中添加代码:(参考:https://weibo.com/p/23041888fb77570102veu9?sudaref=blog.csdn.net&display=0&retcode=6102)

java_path = "C:Program FilesJavajre1.8.0_181\binjava.exe"
os.environ['JAVAHOME'] = java_path

 

THAT'S OK!

参考:https://stackoverflow.com/questions/34726200/nltk-was-unable-to-find-stanford-postagger-jar-set-the-classpath-environment-va

原文地址:https://www.cnblogs.com/wisir/p/10561544.html