自然语言处理中的依存句法分析

在探索人类语言与技术的交互过程中,自然语言处理NLP)扮演着至关重要的角色。为了将NLP应用于现实世界的场景,需要对各种术语和概念有深入的理解。依存句法分析和句法分析是NLP中用于语言分析的两种方法。依存句法分析专注于揭示句子中单词之间的语法关系,展示单词如何相互依赖。它构建了一个树状结构来说明这些依赖关系,帮助理解句子结构。句法分析的范围更广,旨在揭示句子的整体句法结构,包括短语边界、成分和语法规则。这两种技术在提取文本数据中的含义和洞察方面发挥着关键作用,对各种语言处理任务都有益。

本文将探讨依存句法分析的原理,以便更好地理解其在自然语言处理中的应用。依存句法分析(DP)是指检查句子中短语之间的依赖关系以确定其语法结构的过程。句子主要基于此被划分为多个部分。该过程基于这样一个假设:句子中的每个语言单位之间都存在直接关系。这些超链接被称为依赖关系。

考虑以下陈述:“更喜欢通过丹佛的早班飞机。”下面的图表解释了句子的依赖结构:在书面依赖结构中,句子中每个语言单位或短语之间的关系通过有向弧表示。树的根“prefer”是前一个句子的顶部,如插图中标记的那样。依赖标签指示两个短语之间的关系。例如,单词“flight”改变了名词“Denver”的含义。因此,可以识别一个依赖关系从flight -> Denver,其中flight是顶部,Denver是孩子或依赖。它由nmod表示,代表名词修饰语。

这区分了两个短语之间的依赖关系,其中一个作为顶部,另一个作为依赖。目前,Common Dependency V2分类法包括37种常见的句法关系,如下表所示:

Dependency Tag Description acl 名词的从句修饰语(名词性从句) acl:relcl 相对从句修饰语 advcl 状语从句修饰语 advmod 状语修饰语 advmod:emph 强调短语,加强语 advmod:lmod 位置状语修饰语 amod 形容词修饰语 appos 同位语修饰语 aux 助动词 aux:move 被动语态助动词 case 标记案例 cc 并列连词 cc:preconj 先行连词 ccomp 从句补语 clf 分类词 compound 复合词 compound:lvc 温和动词构建 compound:prt 短语动词粒子 compound:redup 重复复合词 compound:svc 连词复合词 conj 连词 cop 连词 csubj 从句主题 csubj:move 从句被动主题 dep 未指定的依赖关系 det 限定词 det:numgov 名词数量限定词,支配名词的案例 det:nummod 名词数量限定词,与名词的案例一致 det:poss 所有格限定词 discourse 话语成分 dislocated 移位部分 expl 代用词 expl:impers 非人称代用词 expl:move 用于反身被动的反身代词 expl:pv 与固有反身动词一起使用的反身小品词 mounted 多词表达 flat 多词表达 flat:overseas 海外短语 flat:title 名称 goeswith 与之相关 iobj 斜向宾语 checklist 清单 mark 标记 nmod 名词修饰语 nmod:poss 所有格名词修饰语 nmod:tmod 时间修饰语 nsubj 名词主题 nsubj:move 被动名词主题 nummod 数值修饰语 nummod:gov 支配名词案例的数值修饰语 obj 宾语 obl 间接名词 obl:agent 代理修饰语 obl:arg 间接论元 obl:lmod 位置修饰语 obl:tmod 时间修饰语 orphan 孤儿 parataxis 并列 punct 标点符号 reparandum 被覆盖的不流畅性 root 根 vocative 呼语 xcomp 开放从句补语

使用NLTK进行依存句法分析。自然语言工具包(NLTK)是一个用于人类语言的统计自然语言处理的库和代码集合。可以使用NLTK以多种方式进行依存句法分析:

1. 概率性、投影性依存句法分析器:这些分析器通过使用从手工解析的句子中获得的人类语言数据来预测新句子。它们被称为会犯错误,并且使用有限的训练信息集合工作。 2. Stanford分析器:它是一个基于Java的自然语言分析器。需要Stanford CoreNLP分析器来执行依存句法分析。分析器支持多种语言,包括英语、中文、德语和阿拉伯语。 使用分析器的方法: from nltk.parse.stanford import StanfordDependencyParser path_jar = ‘path_to/stanford-parser-full-2014-08-27/stanford-parser.jar’ path_models_jar = ‘path_to/stanford-parser-full-2014-08-27/stanford-parser-3.4.1-models.jar’ dep_parser = StanfordDependencyParser( path_to_jar = path_jar, path_to_models_jar = path_models_jar ) result = dep_parser.raw_parse(‘I shot an elephant in my sleep’) dependency = result.next() print(dependency.triples())

上述程序的输出如下:

[ ((u’shot’, u’VBD’), u’nsubj’, (u’I’, u’PRP’)), ((u’shot’, u’VBD’), u’dobj’, (u’elephant’, u’NN’)), ((u’elephant’, u’NN’), u’det’, (u’an’, u’DT’)), ((u’shot’, u’VBD’), u’prep’, (u’in’, u’IN’)), ((u’in’, u’IN’), u’pobj’, (u’sleep’, u’NN’)), ((u’sleep’, u’NN’), u’poss’, (u’my’, u’PRP$’)) ]

依存句法分析与成分句法分析。成分句法分析基于上下文无关文法。成分上下文无关文法用于解析文本。在这里,解析树包括被分解成子短语的句子,每个子短语都属于不同的语法类别。终端节点是具有父节点和词性标记的语言单位或短语。例如,“一只猫”和“床下的一个盒子”是名词短语,而“写一封信”和“开一辆车”是动词短语。

考虑以下例句:“在睡衣里射杀了一头大象。”成分解析树如下所示:左侧的解析树表示携带睡衣的大象,而右侧的解析树表示在他的睡衣里捕捉大象。整个句子被分解成子短语,直到剩下终端短语。VP代表动词短语,而NP代表名词短语。

依存句法分析与成分句法分析的区别。Stanford分析器也用于进行成分句法分析。它首先使用成分句法分析器解析短语,然后将成分解析树转换为依存树。如果主要目标是将句子分解成子短语,那么使用成分句法分析是理想的。然而,依存句法分析是发现句子中短语之间依赖关系的最好方法。

让看一个例子来了解它们的区别:成分解析树表示将文本划分为子短语。树的非终端是不同类型的短语,终端是句子的单词,边缘是未标记的。简单句子“约翰看到了比尔”的成分解析如下:依存解析将单词连接在一起,基于它们的连接。树中的每个顶点对应一个单词,子节点对应依赖于父节点的单词,边缘对应关系。“约翰看到了比尔”的依存解析如下:

应该选择与目标最接近的解析器类型。如果想在句子中找到子短语,肯定对成分解析感兴趣。如果对单词之间的连接感兴趣,可能会对依存解析感兴趣。

结论。随着计算机技术的发展,组织正在寻找新的方法来利用它超越其人为限制。计算速度和能力的显著提高导致了新的、高度智能的软件系统的开发,其中一些准备取代或增强人类服务。最好的例子之一是自然语言处理(NLP)的发展,智能聊天机器人准备改变客户服务乃至更广泛的世界。

  • LinkedIn
  • 或者如果有其他问题,也可以给发邮件。
  • 图片1 –
  • 图片2 –

常见问题解答

Q1. 什么是依存句法分析?
依存句法分析是自然语言处理中用于揭示句子中单词之间语法关系的语言分析技术。它涉及解析句子结构以创建树状表示,显示单词如何相互依赖。这有助于揭示句法结构、单词的角色(如主语和宾语)以及句子中的总体含义。
Q2. 依存句法分析和句法分析是什么?
依存句法分析和句法分析是自然语言处理中用于语言分析的两种方法。依存句法分析专注于揭示句子中单词之间的语法关系,展示单词如何相互依赖。它构建了一个树状结构来说明这些依赖关系,帮助理解句子结构。句法分析的范围更广,旨在揭示句子的整体句法结构,包括短语边界、成分和语法规则。这两种技术在提取文本数据中的含义和洞察方面发挥着关键作用,对各种语言处理任务都有益。
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485