自然语言处理中的句法解析技术解析
1. 解析与上下文无关文法
解析器依据文法的产生式处理输入句子,并构建一个或多个符合该文法的成分结构。文法是关于句子合法性的声明性规范,实际上只是一个字符串,并非程序;而解析器则是对文法的程序性解释,它会在文法允许的树结构空间中搜索,以找到一个其边缘与所需句子匹配的树。
解析器有诸多重要作用,它能让文法针对一组测试句子进行评估,帮助语言学家发现语法分析中的错误;还能作为心理语言学处理的模型,解释人类在处理某些句法结构时遇到的困难;许多自然语言应用在某些阶段也会涉及解析,比如提交给问答系统的自然语言问题,通常会将解析作为初始步骤。
2. 递归下降解析
递归下降解析是一种将文法解释为如何将高级目标分解为多个低级子目标的解析方法。其顶层目标是找到一个句子(S),例如根据产生式 S → NP VP,解析器会将此目标替换为两个子目标:找到一个名词短语(NP),然后找到一个动词短语(VP)。这些子目标又可依次通过以 NP 和 VP 为左部的产生式进一步分解为子 - 子目标,最终会得到如“找到单词 telescope”这样的子目标,可直接与输入序列进行比较,若匹配则成功,不匹配则回溯尝试其他替代方案。
在这个过程中,递归下降解析器会构建解析树。初始目标是找到 S,此时会创建 S 根节点,随着使用文法的产生式递归扩展目标,解析树会向下延伸,这也是其名称的由来。可以使用 nltk.app.rdparser() 进行图形化演示。
以下是使用 NLTK 提供的递归下降解析器的示例代码:
impo
超级会员免费看
订阅专栏 解锁全文
1183

被折叠的 条评论
为什么被折叠?



