依存句法分析(NLTK--stanford parser)

依存句法分析

句法分析(syntactic parsing)是自然语言处理中的关键技术之一,它是对输入的文本句子进行分析以得到句子的句法结构的处理过程。对句法结构进行分析,一方面是语言理解的自身需求,句法分析是语言理解的重要一环,另一方面也为其它自然语言处理任务提供支持。例如句法驱动的统计机器翻译需要对源语言或目标语言(或者同时两种语言)进行句法分析;语义分析通常以句法分析的输出结果作为输入以便获得更多的指示信息。

依存句法分析(NLTK--stanford parser)_第1张图片
parser和model的下载地址
NLTK 中的parse模块已经将斯坦福大学句法分析器导入,用NLTK可以快速实现依存句法分析

from nltk.parse.stanford import StanfordDependencyParser
# 需要事先下载parser和model 解压到指定路径
myp = 'path/stanford-parser-4.0.0/stanford-parser-4.0.0-models.jar'
myp2 = 'path/stand/stanford-parser-4.0.0/stanford-parser.jar'

dependency_parser = StanfordDependencyParser(path_to_jar=myp2, path_to_models_jar=myp)
result = dependency_parser.raw_parse('I shot an elephant in my sleep')

依存句法分析(NLTK--stanford parser)_第2张图片
我们也可以以列表形式来显示它.

list(result.__next__().triples())

[((‘shot’, ‘VBD’), ‘nsubj’, (‘I’, ‘PRP’)),
((‘shot’, ‘VBD’), ‘obj’, (‘elephant’, ‘NN’)),
((‘elephant’, ‘NN’), ‘det’, (‘an’, ‘DT’)),
((‘shot’, ‘VBD’), ‘obl’, (‘sleep’, ‘NN’)),
((‘sleep’, ‘NN’), ‘case’, (‘in’, ‘IN’)),
((‘sleep’, ‘NN’), ‘nmod:poss’, (‘my’, ‘PRP$’))]

应用场景:
比如说我们想要对和shot有关的词多一些权重,
可以抽出和shot有依存句法的关系的词, 给这些词的词向量 × 一个权重

你可能感兴趣的:(NLP)