参考资料:http://www.it165.net/pro/html/201611/76661.html
说明操作的环境:系统是Ubuntu 16.04, IDE 采用Pycharm
1. 英语句子的词性标记
需要的操作步骤:在stanford NLP网页下载 stanford-postagger-2015-12-09.zip 抽取(解压)后文件夹为stanford-postagger-2015-12-09, 在主文件夹下新建nlpTools/stanfordNLTK文件夹, 将stanford-postagger-2015-12-09 下文件models和stanford-postagger-3.6.0.jar放到文件夹stanfordNLTK下, 运行代码:
from nltk.tag import StanfordPOSTagger
model_filename='/home/ubuntu/nlpTools/stanfordNLTk/models/english-bidirectional-distsim.tagger'
path_to_jar='/home/ubuntu/nlpTools/stanfordNLTk/stanford-postagger.jar'
def getPos(sent):
eng_tagger = StanfordPOSTagger(model_filename, path_to_jar)
print(eng_tagger.tag(sent.split()))
if __name__ == '__main__':
getPos('I am a student.')
2. 英语句子的依存分析(解析的结果错误百出,还不太明白原因)
下载的stanford-parser-full-2015-12-09.zip 抽取 (解压)stanford-parser-full-2015-12-09, 进入该文件夹,将slf4j-api.jar,stanford-parser.jar 和 stanford-parser-3.6.0-models.jar 放到文件夹 stanfordNLTK 下, 在stanford-parser-full-2015-12-09 下解压(抽取)stanford-parser-3.6.0-models.jar 文件 为stanford-parser-3.6.0-models, 路径为stanford-parser-3.6.0-models/edu/stanford/nlp/odels/lexparser, 将该文件下的englishPCFG.ser.gz 放到 stanfordNLTK文件夹下, 运行代码:
from nltk.parse.stanford import StanfordDependencyParser
eng_parser = StanfordDependencyParser('/home/ubuntu/nlpTools/stanfordNLTk/stanford-parser.jar','/home/ubuntu/nlpTools/stanfordNLTk/stanford-parser-3.6.0-models.jar','/home/ubuntu/nlpTools/stanfordNLTk/englishPCFG.ser.gz')
res = list(eng_parser.parse('the quick brown fox jumps over the lazy dog'.split()))
for row in res[0].triples():
print(row)
运行的结果有错误:
我将此句子放到:http://nlp.stanford.edu:8080/corenlp/process
仔细观察可得,两个结果是不一致的,都是斯坦福的工具解析的结果,我不太明白错误在哪儿?
待明确后补充