我正在尝试运行以下代码行:
import os
os.environ['JAVAHOME'] = 'path/to/java.exe'
os.environ['STANFORD_PARSER'] = 'path/to/stanford-parser.jar'
os.environ['STANFORD_MODELS'] = 'path/to/stanford-parser-3.8.0-models.jar'
from nltk.parse.stanford import StanfordDependencyParser
dep_parser = StanfordDependencyParser(model_path="path/to/englishPCFG.ser.gz")
sentence = "sample sentence ..."
# Dependency Parsing:
print("Dependency Parsing:")
print([parse.tree() for parse in dep_parser.raw_parse(sentence)])
并在线:
print([parse.tree() for parse in dep_parser.raw_parse(sentence)])
我收到以下问题:
Traceback(最近一次调用最后):文件“C:/Users/Norbert/PycharmProjects/untitled/StanfordDependencyParser.py”,第 21 行,在 print([parse.tree() for parse in dep_parser.raw_parse(sentence)]) 文件中“C:\Users\Norbert\AppData\Local\Programs\Python\Python36\lib\site-packages\nltk\parse\stanford.py”,第 134 行,在 raw_parse 返回下一个(self.raw_parse_sents([sentence],详细)) 文件“C:\Users\Norbert\AppData\Local\Programs\Python\Python36\lib\site-packages\nltk\parse\stanford.py”,第 152 行,在 raw_parse_sents 中返回 self._parse_trees_output(self._execute( cmd, '\n'.join(sentences), verbose)) 文件“C:\Users\Norbert\AppData\Local\Programs\Python\Python36\lib\site-packages\nltk\parse\stanford.py”,行218,在_execute stdout=PIPE, stderr=PIPE) 文件“C:\Users\Norbert\AppData\Local\Programs\Python\Python36\lib\site-packages\nltk\internals.py”,第 135 行,在 java print(_decode_stdoutdata(stderr)) 文件“C:\Users\Norbert\AppData \Local\Programs\Python\Python36\lib\site-packages\nltk\internals.py",第 737 行,在 _decode_stdoutdata 返回 stdoutdata.decode(encoding) UnicodeDecodeError: 'utf-8' codec can't decode byte 0xac in position 3097: 无效的起始字节t 解码位置 3097 中的字节 0xac:无效的起始字节t 解码位置 3097 中的字节 0xac:无效的起始字节
知道有什么问题吗?我什至不处理任何非 utf-8 文本。