虽然之前已经提出过这个问题,但我找不到相关的解决方案。
我正在尝试使用NLTK在python中使用Stanford API但是却遇到了这个问题。
我试图在Python中运行此代码。但是如下所述得到UNICODE错误
import nltk
import os
from nltk.parse import stanford
os.environ['STANFORD_PARSER']='D:\\stanford-postagger\\models'
os.environ['STANFORD_MODELS']='D:\\stanford-postagger\\models'
parser=stanford.StanfordParser(model_path="D:\\stanford-postagger\\models\\stanford-corenlp-2011-12-27-models\\edu\\stanford\\nlp\\models\\lexparser\\englishPCFG.ser.gz")
sentences=parser.raw_parse_sents(("Hello, My name is Robin","Whats your name?"))
追踪(最近一次通话): 文件"",第1行,in sentence = parser.raw_parse_sents(("你好,我的名字是Robin","你的名字是什么?")) 在raw_parse_sents中的文件" C:\ Python27 \ lib \ site-packages \ nltk \ parse \ stanford.py",第146行 return self._parse_trees_output(self._execute(cmd,' \ n' .join(句子),详细)) 文件" C:\ Python27 \ lib \ site-packages \ nltk \ parse \ stanford.py",第212行,在_execute中 stdout = PIPE,stderr = PIPE) 文件" C:\ Python27 \ lib \ site-packages \ nltk \ internals.py",第133行,在java中 打印(_decode_stdoutdata(错误)) 文件" C:\ Python27 \ lib \ site-packages \ nltk \ internals.py",第667行,在_decode_stdoutdata中 return stdoutdata.decode() UnicodeDecodeError:' ascii'编解码器无法解码位置2336中的字节0xac:序数不在范围内(128)
答案 0 :(得分:1)
首先,您提供的代码与Traceback不匹配:
sentences=parser.raw_parse_sents(("Hello, My name is Robin","Whats your name?"))
但您的代码显示:
list(parser.raw_parse("the quick brown fox jumps over the lazy dog"))
因此,您需要在出现问题时应用以下方法。当您使用python 2.7时,使用unicode()
方法可能会有所帮助:
sentences=parser.raw_parse_sents((unicode("Hello, My name is Robin"),unicode("Whats your name?")))
或(您提供的代码)
list(parser.raw_parse(unicode("the quick brown fox jumps over the lazy dog")))