stanford parser的python使用

StanfordParser(短语结构句法), StanfordDependencyParser(依存结构句法)
StanfordParser 和 StanfordDependencyParser 都继承自 GenericStanfordParser ,使用 stanford-parser.jar 来提供句法分析功能。

Python 调用 Stanford Parser 两种方法

参考网站:https://blog.csdn.net/huludan/article/details/50717110

方法1. Jython; 

方法2. nltk的stanfordparser接口; 

方法3. 一个师兄教的方法

(使用github上的https://github.com/dasguptar/treelstm.pytorch/blob/master/scripts/preprocess-sick.py上的函数,需保留lib文件夹) 

本文最后使用的方法是(2)nltk的stanfordparser接口

需先保证机器上已安装nltk;

然后配置,方法:

 http://nlp.stanford.edu/software/lex-parser.html 处下载 stanford-parser-full-2015-12-09.zip (version 3.6.0)

将下载的压缩包解压,并将其中的 stanford-parser.jar 和 stanford-parser-3.6.0-models.jar(这个在不同版本中名称会不一样) 都加入到 CLASSPATH 中
export STANFORD_PARSER_PATH="$HOME/stanford/parser"
export CLASSPATH="$CLASSPATH:$STANFORD_PARSER_PATH/stanford-parser.jar:$STANFORD_PARSER_PATH/stanford-parser-3.6.0-models.jar"
或者将 stanford-parser.jar 加入到环境变量 STANFORD_PARSER 中,将 stanford-parser-3.6.0-models.jar 加入到环境变量 STANFORD_MODELS 中
export STANFORD_PARSER="$STANFORD_PARSER_PATH/stanford-parser.jar"
export STANFORD_MODELS="$STANFORD_MODELS:$STANFORD_PARSER_PATH/stanford-parser-3.6.0.models.jar"

使用方法:

扫描二维码关注公众号,回复: 2682859 查看本文章

使用 StanfordParser 进行句法分析

from nltk.parse.stanford import StanfordParser
eng_parser = StanfordParser(model_path=u'edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz')

print list(eng_parser.parse("the quick brown fox jumps over the lazy dog".split()))

输出:

[Tree('ROOT', [Tree('NP', [Tree('NP', [Tree('DT', ['the']), Tree('JJ', ['quick']), Tree('JJ', ['brown']), Tree('NN', ['fox'])]), Tree('NP', [Tree('NP', [Tree('NNS', ['jumps'])]), Tree('PP', [Tree('IN', ['over']), Tree('NP', [Tree('DT', ['the']), Tree('JJ', ['lazy']), Tree('NN', ['dog'])])])])])])]

句法分析在分析单个词的词性的基础上,尝试分析词与词之间的关系,并用这种关系来表示句子的结构。

实际上,句法结构可以分为两种,一种是短语结构,另一种是依存结构。

前者按句子顺序来提取句法结构,后者则按词与词之间的句法关系来提取句子结构。这里说的句法分析得到的是短语结构。


参考网址:

http://www.zmonster.me/2016/06/08/use-stanford-nlp-package-in-nltk.html#orgheadline13(重点)

https://www.jianshu.com/p/4b3c7e7578e6

猜你喜欢

转载自blog.csdn.net/ccbrid/article/details/80897472