《NLTK基础教程》读书笔记 003期

和上一期出现相同的需要download的方法就不再赘述了,这里放上一个xml,直接用浏览器ctrl+F搜索好了
https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/index.xml


然后就是接下来POSTagger的import失败问题,貌似也是因为改名了,现在叫做StanfordPOSTagger
所以把第一行程序改成

from nltk.tag.stanford import StanfordPOSTagger

后面文件路径中多打了一个d,显而易见的typo
但是还有一个d应该是s,不好发现,下面放上这行正确的代码

stan_tagger = StanfordPOSTagger('./stanford-postagger-full/models/english-bidirectional-distsim.tagger','./stanford-postagger-full/stanford-postagger.jar')

之后会发现有一个新的LookupError

LookupError:

===========================================================================
NLTK was unable to find the java file!
Use software specific configuration paramaters or set the JAVAHOME environment variable.
===========================================================================

参考网页https://stackoverflow.com/questions/7404720/nltk-fails-to-find-the-java-executable
然后在代码开头加上下面几行即可运行

import os
java_path = "C:/Program Files/Java/jre1.8.0_162/bin/java.exe"
os.environ['JAVAHOME'] = java_path

java_path那个地方看自己电脑所安装的java在哪里即可,找到java.exe就好。如果没有安装java,请自行去Oracle找下载地址,在这里不再赘述


在使用三种N-gram标注器时的心得:
很明显,TrigramTagger参数的覆盖范围比较小,而实际精度则高一些。从另一方面来说,UnigramTagger的覆盖范围则会大一些,为了让准确率与反馈率之间保持一定的平衡


关于Brill标注器的使用,书中并没有给出代码,只有开放式题目,网上搜索了一些也并没有,也许有些博客和我一样都是默默无闻的,所以搜索引擎并找不到我们。
参考了一些如下的网页
http://stp.lingfil.uu.se/~bea/publ/megyesi-BrillsPoSTagger.pdf
https://stackoverflow.com/questions/31684393/how-to-interpret-nltk-brill-tagger-rules
http://www.nltk.org/api/nltk.tbl.html#nltk.tbl.rule.Rule


其中一个word_tokenize之前没有加上nltk.可能会报错


Stanford NER 标注器的jar也需要下载,这里找了一下,应该是如下链接
https://nlp.stanford.edu/software/stanford-ner-2018-02-27.zip

方法和BUG与一开始POSTagger相仿

猜你喜欢

转载自blog.csdn.net/bright_silmarillion/article/details/80976295
今日推荐