自然语言处理 - 语法分析
语法分析或解析或句法分析是 NLP 的第三阶段。此阶段的目的是从文本中提取确切含义,或者您可以将其称为字典含义。语法分析根据形式语法的规则检查文本的意义。例如,像“热冰淇淋”这样的句子会被语义分析器拒绝。
从这个意义上说,语法分析或解析可以定义为分析自然语言中符合形式语法规则的符号串的过程。单词‘parsing’的起源来自拉丁语单词‘pars’,意思是‘部分’。
解析器的概念
它用于实现解析任务。可以将其定义为一种软件组件,旨在获取输入数据(文本)并在根据形式语法检查语法正确性后给出输入的结构表示。它还会构建一个数据结构,通常以解析树或抽象语法树或其他层次结构的形式出现。
解析器的主要作用包括 -
报告任何语法错误。
从常见错误中恢复,以便可以继续处理程序的其余部分。
创建解析树。
创建符号表。
生成中间表示 (IR)。
解析类型
推导将解析分为以下两种类型 -
自顶向下解析
自底向上解析
自顶向下解析
在这种类型的解析中,解析器从开始符号开始构建解析树,然后尝试将开始符号转换为输入。最常见的自顶向下解析形式使用递归过程来处理输入。递归下降解析的主要缺点是回溯。
自底向上解析
在这种类型的解析中,解析器从输入符号开始,并尝试构建解析树直到开始符号。
推导的概念
为了获得输入字符串,我们需要一系列产生式规则。推导是一组产生式规则。在解析过程中,我们需要确定要替换的非终结符,以及确定用于替换非终结符的产生式规则。
推导类型
在本节中,我们将学习两种类型的推导,它们可以用来确定用产生式规则替换哪个非终结符 -
最左推导
在最左推导中,扫描输入的句子形式并从左到右替换。在这种情况下,句子形式称为左句子形式。
最右推导
在最左推导中,扫描输入的句子形式并从右到左替换。在这种情况下,句子形式称为右句子形式。
解析树的概念
可以将其定义为推导的图形描述。推导的开始符号充当解析树的根。在每个解析树中,叶子节点都是终结符,内部节点是非终结符。解析树的一个特性是,中序遍历将产生原始输入字符串。
语法的概念
语法对于描述格式良好的程序的句法结构至关重要。从文学意义上讲,它们表示自然语言对话的句法规则。语言学家从英语、印地语等自然语言的诞生之日起就试图定义语法。
形式语言理论也适用于计算机科学领域,主要是在编程语言和数据结构中。例如,在“C”语言中,精确的语法规则说明了如何从列表和语句中创建函数。
Noam Chomsky在 1956 年给出了语法的数学模型,该模型可有效用于编写计算机语言。
在数学上,语法 G 可以正式写成一个 4 元组 (N, T, S, P),其中 -
N 或 VN = 非终结符集,即变量。
T 或 ∑ = 终结符集。
S = 开始符号,其中 S ∈ N
P 表示终结符和非终结符的产生式规则。它具有形式 α → β,其中 α 和 β 是 VN ∪ ∑ 上的字符串,并且 α 中至少有一个符号属于 VN
短语结构或成分语法
由 Noam Chomsky 引入的短语结构语法基于成分关系。这就是为什么它也称为成分语法。它与依存语法相反。
例子
在给出成分语法的示例之前,我们需要了解关于成分语法和成分关系的基本要点。
所有相关的框架都从成分关系的角度看待句子结构。
成分关系源自拉丁语和希腊语语法的主谓划分。
基本从句结构用名词短语 NP和动词短语 VP来理解。
我们可以将句子“这棵树正在说明成分关系”写成如下 -
依存语法
它与成分语法相反,并且基于依存关系。它是由 Lucien Tesniere 引入的。依存语法 (DG) 与成分语法相反,因为它缺少短语节点。
例子
在给出依存语法的示例之前,我们需要了解关于依存语法和依存关系的基本要点。
在 DG 中,语言单位,即单词通过有向链接相互连接。
动词成为从句结构的中心。
其他所有句法单元都通过有向链接连接到动词。这些句法单元称为依存关系。
我们可以将句子“这棵树正在说明依存关系”写成如下;
使用成分语法的解析树称为基于成分的解析树;使用依存语法的解析树称为基于依存的解析树。
上下文无关文法
上下文无关文法,也称为 CFG,是一种用于描述语言的表示法,并且是正则语法的超集。它可以在下图中看到 -
CFG 的定义
CFG 由一组有限的语法规则组成,这些规则具有以下四个组成部分 -
非终结符集
它由 V 表示。非终结符是句法变量,表示字符串集,这些字符串进一步帮助定义由语法生成的语言。
终结符集
它也称为标记,由 Σ 定义。字符串由终结符的基本符号形成。
产生式集
它由 P 表示。该集合定义了如何组合终结符和非终结符。每个产生式 (P) 由非终结符、箭头和终结符(终结符的序列)组成。非终结符称为产生式的左侧,终结符称为产生式的右侧。
开始符号
产生式从开始符号开始。它由符号 S 表示。非终结符始终被指定为开始符号。