nlp-句法分析

目录

一、句法概述

1、成分语法理论概述

(1)分析过程       

(2)缺点        

2、依存语法理论概述

(1)依存关系、配价模式

(2)分类

(3)优势:

二、成分句法分析

1、基于上下文无关文法(CFG)的成分句法分析

(1)经典分析算法:

(2)核心挑战

2、基于概率上下文无关文法(PCFG)的成分句法分析

(1)经典算法

(2) PCFG的模型参数学习过程

3、成分句法分析评价标准

三、依存句法分析

1、基于图

(1) 基本思想

(2)经典算法

非投射性依存句法分析:朱-刘/埃德蒙兹算法

投射性依存句法分析--基于动态规划的算法

2、基于神经网络的图依存句法分析

3、基于转移

4、基于神经网络的转移依存句法分析

5、依存句法分析评价方法

四、句法分析语料库


        句法分析是指对输入的单词序列(一般为句子)判断其构成是否合乎给定的语法,分析合乎语法的句子的句法结构。

        句法分析句法分析是句子结构和语义之间的桥梁,具有非常重要的作用,很多自然语言处理算法需要依赖句法分析结果,因此句法分析效果也直接影响到很多自然语言处理应用。句法分析是自然语言处理中长期关注的核心问题之一。
        本章中,句法分析任务限定在得到完整的句法分析树,重点介绍了基于有监督机器学习算法的句法分析方法。对成分句法分析和依存句法分析分别介绍了各类型的评价方法。

一、句法概述

        句法(Syntax)就是研究自然语言中不同成分组成句子的方式以及支配句子结构并决定句子是否成立的规则。

1、成分语法理论概述

        成分(Constituent)又称短语结构,是指一个句子内部的结构成分,成分可以独立存在,或者可以用代词替代,又或者可以在句子中的不同位置移动。

        根据不同成分之间是否可以进行相互替代而不会影响句子语法正确性可以进一步地将成分进行分类,某一类短语就属于一个句法范畴:比如“一本小说”“”一所大学”等都属于一个句法范畴:名词短语(None Phrase,NP)

(1)分析过程       

         成分语法就是由句法范畴以及短语结构规则定义的语法。由于短语结构规则具有递归性,可以使短语和句子无限循环组合。

(2)缺点        

由于成分语法局限于表层结构分析,不能彻底解决句法和语义问题,因比存在非连续成分、结构歧义等问题。如:

2、依存语法理论概述

     在依存语法理论中,“依存”就是指词与词之间支配与被支配的关系,这种关系不是对等的,而是有方向的。处于支配地位的成分称为支配者(governol,regent,head),而处于被支配地位的成分
称为从属者(modifier,subordinate,dependency)。

(1)依存关系、配价模式



(2)分类

        在图 3.7 “Something about this book is unusual” 中,句子里词语之间的依存关系在平面上不会出现交叉 ,就像从根节点向其他节点投射射线一样,各射线互不干扰,所以符合投射性原则。图 3.8 “Something is unusual about this book” 里,从依存关系来看,成分之间的依存连线在平面上会出现交叉 ,导致依存连线在图中出现了交叉的情况,不再是有序的投射状,所以违反了投射性原则。

(3)优势:

  • 简单,直接按照词语之间的依存关系工作,是天然
  • 词汇化的;不过多强调句子中的固定词序,对自由语序的语言分析更有优势;
  • 受深层语义结构的驱动,词汇的依存本质是语义的:
  • 形式化程度较短语结构语法浅,对句法结构的表述更为灵活。

二、成分句法分析

因句法结构歧义,句法分析需消除歧义,成分语法里结构歧义主要有两种。

  • 附着歧义(Attachment ambiguity):示例为句子 “The boy saw the man with the telescope” ,即短语等成分在句法结构中 “附着” 位置不确定产生的歧义 。
  • 并列连接歧义(Coordination ambiguity):示例是 “重要政策和措施” ,因并列成分的连接关系、范围等不确定,导致句法结构理解有歧义 ,比如 “(重要政策)和(措施)” 与 “重要(政策和措施)” 两种可能理解。

1、基于上下文无关文法(CFG)的成分句法分析

核心是通过 CFG 规则解析句子的层次化成分结构(如短语、子句等),最终生成句法树(短语结构树)来表示句子的句法组织方式。

  • 成分(Constituent):指句子中具有独立句法功能的子序列(如 “名词短语 NP”“动词短语 VP”),例如 “一只黑猫” 是 NP,“在树上跳” 是 VP。
  • 短语结构树:以树状结构直观展示成分的层次关系,树根为起始符号 S,叶节点为句子中的词语(终结符),中间节点为非终结符(句法范畴)

(1)经典分析算法:

示例:【自顶向下】

        把所有的字符都吃进来的时候。这个时候就完成最终的句法的结构的生成

CYK算法【自底向上】

(2)核心挑战

基于 CFG 的成分分析面临的最大问题是句法歧义:同一个句子可能对应多个符合 CFG 规则的句法树。例如,句子 “咬死了猎人的狗” 存在两种歧义:

  • (咬死了)(猎人的狗)——“狗” 是 “咬死了” 的宾语;
  • (咬死了猎人的)狗 ——“狗” 是主语,“咬死了猎人的” 修饰 “狗”。

2、基于概率上下文无关文法(PCFG)的成分句法分析

        CFG的扩展 ,为 CFG 的产生式添加概率(如 P (A→α) 表示规则 A→α 的使用概率),通过计算句法树的总概率,选择概率最高的树【Viterbi 树】作为最优解,解决了 CFG 中句法歧义问题

(1)经典算法

(2) PCFG的模型参数学习过程

3、成分句法分析评价标准

衡量句法分析结果与标准句法树(参考树)的契合程度

三、依存句法分析

        依存句法分析(Dependency Parsing)任务目标是依据依存语法理论分析输入句子得到其依存句法结构树。

1、基于图

  基于图的依存句法分析主要包含边评分模型和旬法树生成算法两个部分组成。其中边评分模型对于分析效果具有决定性的影响。核心是构造评分函数,为 “词与词之间的依存关系” 打分,最终选择分数最高的合法依存树。

   (1) 基本思想

        将句子中的每个词视为图的节点,词与词之间的可能依存关系视为有向边(边的方向从依存词指向中心词),通过定义 “边的打分函数” 计算每个可能依存关系的权重,最终从所有可能的依存树中选择总权重最高的树。

(2)经典算法

      

        利用最大生成树算法得到的依存句法树不具备投射性。
        针对具有投射性要求的依存句法树,可以利用其与上下文无关语法之间的强相关性,利用基于CYK 算法等上下文无关语法分析算法进行依存句法树分析。

非投射性依存句法分析:朱-刘/埃德蒙兹算法

        一种带权有向图的最小/大生成树寻找算法。

投射性依存句法分析--基于动态规划的算法

2、基于神经网络的图依存句法分析

        将句子视为一个 “词节点构成的完全图”,用神经网络预测 “词与词之间的依存弧概率”,再通过图论算法(如最大生成树算法)从全图中选出最优依存树(满足无环、单根等句法约束)

3、基于转移

        模拟人类 “逐步构建依存树” 的过程,通过有限状态转移(如Shift/Reduce/Arc操作)增量式生成依存树。

4、基于神经网络的转移依存句法分析

        用神经网络替代转移系统中的 “手工特征 + 分类器”,学习状态到动作的映射。

5、依存句法分析评价方法

(1)无标签依存准确率

(2)有标签依存准确率

四、句法分析语料库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/92815.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/92815.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux磁盘加密

在Linux中,磁盘加密是一种保护数据不被未授权访问的方法。有多种工具和策略可以实现磁盘加密,包括使用Linux内核的内置功能,如dm-crypt,以及使用更高级的解决方案,如LUKS(Linux Unified Key Setup&#xff…

大数据架构演变之路

目录 一、各阶段的架构简介 二、各个架构的详细解释 1. 传统离线架构 2.1. Lambda架构-离线数仓分析实时链路分析 2.2. Lambda架构-离线数仓实时数仓 3. Kappa/流批一体架构 4. 湖仓一体架构 三、总结 一、各阶段的架构简介 技术架构 核心驱动(核心需求) ‌关键技术 …

STM32 HAL库驱动0.96寸OLED屏幕

STM32 HAL库驱动0.96寸OLED屏幕 项目概述 本项目使用STM32 HAL库为0.96寸OLED屏幕编写驱动程序。OLED屏幕通过I2C接口与STM32单片机通信,实现文本、数字和图形的显示功能。 项目仓库地址:STM32_Sensor_Drives 硬件连接 OLED屏幕通过I2C接口与STM32连…

横向越权:修改参数访问不属于自己的数据

一、什么是横向越权定义 横向越权(Horizontal Privilege Escalation)是指 同一权限级别的用户,通过篡改请求参数或资源标识,访问本不属于自己的数据或功能。例子 假设一个在线商城,用户 A 访问订单详情的 URL&#xff…

攻击实验(ARP欺骗、MAC洪范、TCP SYN Flood攻击、DNS欺骗、DHCP饿死)

实验一 ARP欺骗一、拓扑二、实验准备、1.设置终端漏洞靶机集合选择需要的数量和镜像打开设备上的驱动精灵安装网卡安装成功后查看IP地址、网关信息等。三、实验步骤1.实验原理中间人(攻击者)在终端与网关之间持续发送伪造的 ARP 应答包,双向欺…

VSCode 禁用更新检查的方法

通过设置菜单禁用 这是最直接和推荐的方法,可以永久禁用自动更新: 打开 VSCode。点击左下角的齿轮图标,然后选择“设置”。或者通过菜单栏“文件” > “首选项” > “设置”进入。在顶部的搜索框中输入“update”。找到“Update: Mode”…

Flutter - 应用启动/路由管理

一、应用入口1. 初始化 Flutter 底层绑定 ,运行 App。import package:flutter/material.dart; import package:flutter_base/Application.dart;void main() {// 确保绑定初始化WidgetsFlutterBinding.ensureInitialized();// App初始化Application.init(); }2. 注册…

MySQL 数据操作全流程:创建、读取、更新与删除实战

MySQL系列 文章目录MySQL系列前言一、Create(创建)并插入数据1.1 单行数据 全列插入1.2 多行数据 指定列插入1.3 插入冲突时同步更新1.4 冲突时替换二、Retireve读取数据2.1 全列查询2.2 查询指定列2.3 查询字段为表达式2.4 结果去重 DISTINCT2.5 where条件筛选2.6 order by语…

SQL约束:数据完整性的守护者

在SQL中,约束(Constraints) 是作用于数据库表字段上的规则,用于强制保证数据的完整性、准确性和一致性。当插入、更新或删除数据时,约束会自动验证操作是否符合规则,若违反则拒绝执行。 以下是SQL中常见的约…

Springboot-vue 地图展现

在很多社区管理系统中,地图展示功能是一个重要的模块,它能直观地呈现小区的地理位置分布。本文将详细梳理从前端触发请求到地图上展示小区数据的完整流程,帮助大家理解前后端协同工作的具体细节。一、前端触发:页面加载与地图初始…

Vue 3 登录组件

Login.vue 组件详细分析整体架构 Vue 3 登录组件&#xff0c;采用 Composition API Element Plus UI 库&#xff0c;实现了完整的用户认证界面。 模板结构分析 1. 容器布局 <div class"login-container"><el-card class"login-card"><!-- …

小结: getSpringFactoriesInstances从 `spring.factories` 文件中加载和实例化指定类型的类

getSpringFactoriesInstances 方法工作原理 getSpringFactoriesInstances 是 Spring Boot 框架中的一个核心方法&#xff0c;用于从 spring.factories 文件中加载和实例化指定类型的类。这是 Spring Boot 实现自动配置和插件化扩展的关键机制。 1. 基本功能 该方法的主要作用是…

selenium SessionNotCreatedException问题解决办法

在上周有一台服务器重启之后&#xff0c;Chrome浏览器也自动升了级&#xff0c;原本能够正常使用的自动化办公程序突然没法用了&#xff0c;出现了下面的报错提示。codes/addCancelBdld.py:980: DeprecationWarning: use options instead of chrome_optionsdriver webdriver.C…

SOAP HTTP Binding

SOAP HTTP Binding 引言 SOAP(Simple Object Access Protocol)是一种轻量级、简单的协议,用于在网络上交换结构化信息。它广泛应用于Web服务中,用于实现不同系统和应用程序之间的通信。SOAP HTTP Binding是SOAP协议的一种实现方式,它允许使用HTTP协议来传输SOAP消息。本…

GPT-5免费使用教程(国内可访问)

GPT-5来了&#xff0c;压力给到各大AI模型厂商&#xff1f; 北京时间2025年8月7日&#xff0c;OpenAI 推出两款开源模型 gpt-oss-120b / 20b&#xff0c;性能逼近 o4-mini/o3-mini&#xff0c;一时间火爆AI圈&#xff1b;但这好像只是一道开胃小菜&#xff0c;在北京时间2025年…

内存作假常见方案可行性分析

内存作假通常修改所涉及到的几个文件&#xff1a;M sys/frameworks/base/core/java/android/app/ActivityManager.javaM sys/frameworks/base/core/jni/android_os_Debug.cppM sys/frameworks/base/core/jni/android_util_Process.cppM sys/frameworks/base/services/core/java…

C#(vs2015)利用unity实现弯管机仿真

以下是基于 Visual Studio 2015 和 Unity 实现弯管机仿真的完整技术流程&#xff0c;结合工业仿真开发的最佳实践整理而成&#xff0c;涵盖建模、通信、运动控制和交互逻辑等核心模块&#xff1a;---一、环境配置与基础框架搭建 1. Unity 与 VS2015 联动 - 安装 [Visual Studio…

华为USG防火墙双机,但ISP只给了1个IP, 怎么办?

华为USG防火墙双机&#xff0c;但ISP只给了1个IP&#xff0c; 怎么办&#xff1f; 华为USG双机使用VRRP&#xff0c;需要3个Ip 本次联通只给了 100.1.1.0/30 这一个互联段 联通侧用了100.1.1.1&#xff0c; 我们这一侧只有100.1.1.2 怎么办&#xff1f; 找联通多要几个Ip&…

Go 工具链环境变量实战:从“command not found”到工具全局可用的全流程复盘

在 Go 生态里&#xff0c;丰富的命令行工具极大提升了开发效率。但很多小伙伴第一次用 go install 安装第三方工具后&#xff0c;却遇到终端里找不到命令的尴尬——明明装好了&#xff0c;终端却报 “command not found”。这是为什么呢&#xff1f;本文结合我亲身踩过的坑&…

MCU 软件断点注意事项!!!

——为什么调试器会在运行中改我的Flash程序&#xff1f;调试单片机时&#xff0c;很多人都有这样的疑问&#xff1a;明明我在调试前刷进去的固件是好的&#xff0c;为什么加了一个断点之后&#xff0c;调试器居然去改了 Flash&#xff1f; 如果我拔掉调试器&#xff0c;这个固…