句法分析
句法分析(syntactic parsing)是自然语言处理中的关键技术之一,其基本任务是确定句子的句法结构(syntactic structure)或句子中词汇之间的依赖关系。
一般来说,句法分析并不是一个自然语言处理任务的最终目标。但是,它往往是实现最终目标的重要环节。
句法分析分为句法结构分析(syntactic structure parsing)和依存关系分析(dependency parsing)两种。
句法结构分析又可称为成分结构分析(contituent structure parsing)或短语结构分析(phrase structure parsing)。以获得整个句子的句法结构为目的的句法分析称为完全句法分析(full structure parsing)或完全短语结构分析(full phrase structure parsing)(有时简称 full parsing),而以获得局部成分(如基础名词短语(baseNP))为目的的句法分析称为局部分析(partial parsing)或浅层分析(shallow parsing)。
依存关系分析又称依存句法分析(dependency syntactic parsing)或依存结构分析(dependency structure parsing),简称依存分析。
基本概念
解析器
它用于实现解析任务,它可以定义为一个软件组合,用于获得输入数据(文本)。并在根据形式语法检查正确语法后给出输入的结构表示。
它还通常以解析树、抽象语法树或其他层次结构的形式构建数据结构。
解析的主要内容包括:
- 报告语法错误。
- 从经常发生的错误中恢复,以便继续处理程序的其余部分。
- 创建解析树。
- 创建符号表。
- 生成中间表示(IR)。
解析类型主要是两种:
- 自顶而下分析:在这种解析中,解析器从开始符号开始建造解析树,然后尝试将开始符号转换为输入。最常见的自顶而下解析形式使用递归过程来处理输入。递归下降解析的主要缺点是回溯。
- 自下而上分析:在这种类型的解析中,解析器从输入符号开始,并尝试构造知道开始符号的解析器树。
派生概念
为了得到输入字符串,我们需要一系列的产生式规则。 派生是一组产生式规则。在解析过程中,需要确实要替换的非终端,以及决定要替换的非终端的产生式规则。
主要的派生方式有两种:
- 最左端派生:在最左边的推导中,输入的句子形态从左到右被扫描和替换。
- 最后端派生:在最左边的推导中,输入的句子形态从后到左被扫描和替换。
解析树概念
解析树可以定义为派生的图形描述。 派生的起始符号用作解析树的根。在每个解析树中,叶节点是终端,内部节点是非终端。
解析树的一个属性是可以按顺序遍历将生成原始输入字符串。
语法概念
语法是对于描述格式良好的程序的句法结构是非常必要和重要的。 在文学意义上,它们表示自然语言中会话的句法规则。自从英语、印地语等自然语言诞生以来,语言学就一直试图定义语法。
形式语言理论也使用于计算机科学领域,主要应用于编程语言和数据结构。例如,在C语言中,精确的语法规则说明了函数是如何由列表和声明构成的。
语法根据解析类型可以被分为:
- 短语结构或成分结构语法
- 依赖语法
短语结构或成分结构语法
短语结构语法是由Noam Chomsky提出的一种基于成分关系的语法。这就是为什么它被称为成分语法。它于依存语法相反。
成分语法和成分关系的基本要点。
- 所有相关的框架都从成分关系的角度来看待句子结构。
- 构成关系来源于拉丁语和希腊语的主谓划分。
- 从名词短语NP和动词短语VP两个方面来理解基本从句结构。
依赖语法
它与结构语法相反,是建立在依存关系基础上的。 它是由Lucien Tesnier提出的。依存语法(DG)由于缺乏短语节点而与成分语法相反。
依存语法和依存关系的基本要点。
- 在DG中,语言单位(即词)通过有向连接相互链接。
- 动词称为从句结构的中心。
- 每一个其他的句法单位都与动词有直接联系。这些语法单位被称为依存项。