【Python自然语言处理】概率上下文无关文法(PCFG)及神经网络句法分析讲解(图文解释 超详细)

简介: 【Python自然语言处理】概率上下文无关文法(PCFG)及神经网络句法分析讲解(图文解释 超详细)

觉得有帮助或有疑问麻烦点赞关注收藏后评论区私信留言~~~

一、句法分析

句法分析(syntactic parsing或者parsing)是识别句子包含的句法成分要素以及成分之间的内在关系,一般以句法树来表示句法分析的结果。实现该过程的应用称作句法分析器(Parser)。根据侧重目标分为完全句法分析和局部句法分析,完全句法分析以获取整个句子的句法结构为最终目的,而局部句法分析仅关注局部部分,依存句法分析属于局部分析法

自然语言处理句法分析目前面临的关键技术问题:

(1)语义消歧: 语言中存在很多一词多义的用法,歧义与消歧是自然语言理解中最核心的问题,在词语、句子、段落篇章等各个层次都会出现语言根据语境产生歧义的现象,消歧是指根据上下文识别语义的过程。

(2)路径优化: 句法分析的搜索空间和句子长度存在指数对应关系,因此,在句子长度超过特定阈值时,搜索空间会变得十分庞大,从而降低了处理效率。优化搜索路径,以确保能够在合理时间范围内查找到模型定义最优解,是句法分析的目标。

二、句法树

在计算机中,可以用树状结构图来表示文本结构,使用字符S代表句子,NP VP PP分别代表名词短语 动词短语 介词短语 N  V P M则分别是名词 动词 介词 数量词和时量词

三、常用句法分析相关数据集

英国Lancaster- Leeds 树库

美国Penn 树库(涵盖中英文)

清华大学句法树库为基础的系列句法分析数据集

台湾 Sinica 中文树库等

四、句法分析方法

句法分析的基本任务是确定句子的语法结构或词汇间的依存关系,句法分析是自然语言处理实现目标的关键环节,句法分析通常分为结构分析和依存关系分析两种。

语言学家 Robinson 4 个约束性公理。

(1)有且仅有一个词语(ROOT,虚拟根节点)不依存于其他词语。

(2)除根节点之外其他单词存在依存关系。

(3)各单词不能依存于多个单词。

(4)如果单词 X 依存于 Y,那么位置处于 X 和 Y 之间的单词 Z 只能依存于 X、Y 或 XY 之间的单词。

句法分析中 有三个常见的评价标准

P为标记的准确率 R为召回率

 

五、概率分布上下文无关文法

由于语法的解析存在歧义性,因此结果可能导致多种语法树可供备选,从中找出可能性最高的句法树,即概率最大的句法树,是概率分布上下文无关语法 (Probabilistic Context-Free Grammar:PCFG)的基本处理逻辑。概率分布上下文无关语法源自上下文无关文法

基于上述信息,得出相应句法树的生成概率为: P1=P(S)×P(NP)×P(VP)×P(V)×P(NP)×P(NP)×P(PP)×P(P)×P(NP) =1.0×0.2×0.8×1.0×0.5×0.2×1.0×1.0×0.2=0.0032

基于歧义的观点,如果存在另外一种理解导致各规则以及各结点的概率值呈现为下图结果,根据概率上下文无关语法得出该句法树的概率则表示未下

根据概率分布上下文无关语法得出该句法树的概率为:   P2=P(S)×P(NP)×P(VP)×P(VP)×P(V)×P(NP)×P(PP)×P(P)×P(NP) =1.0×0.2×0.7×1.0×1.0×0.2×1.0×1.0×0.2=0.0056

比较上述两个概率值,第二个句法树的生成概率高,因此选择第二颗句法树作为最终结果,如果存在多种歧义,可以使用类似的方法求出概率最大的句法树

六、神经网络句法分析

神经网络能够对特征信息进行自动建模,具有自足学习能力,可以对特征进行自动优化,避免了大量的手动特征标注工程,并且,基于神经网络的句法分析模型的处理性能一般也优于传统的句法分析模型,因此,开发性能优异的神经网络算法成为近年研究的聚焦点。

下面使用斯坦福句法分析器进行中文句法分析实战

假定对象文本分析为“当今世界正经历一场百年大变革” 利用斯坦福句法程序分析得到的句法结构如下

 

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
9月前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的青少年网络使用情况分析及预测系统
本研究基于Python大数据技术,构建青少年网络行为分析系统,旨在破解现有防沉迷模式下用户画像模糊、预警滞后等难题。通过整合多平台亿级数据,运用机器学习实现精准行为预测与实时干预,推动数字治理向“数据驱动”转型,为家庭、学校及政府提供科学决策支持,助力青少年健康上网。
|
9月前
|
运维 监控 数据可视化
Python 网络请求架构——统一 SOCKS5 接入与配置管理
通过统一接入端点与标准化认证,集中管理配置、连接策略及监控,实现跨技术栈的一致性网络出口,提升系统稳定性、可维护性与可观测性。
|
10月前
|
JavaScript Java 大数据
基于python的网络课程在线学习交流系统
本研究聚焦网络课程在线学习交流系统,从社会、技术、教育三方面探讨其发展背景与意义。系统借助Java、Spring Boot、MySQL、Vue等技术实现,融合云计算、大数据与人工智能,推动教育公平与教学模式创新,具有重要理论价值与实践意义。
|
11月前
|
数据采集 存储 数据可视化
Python网络爬虫在环境保护中的应用:污染源监测数据抓取与分析
在环保领域,数据是决策基础,但分散在多个平台,获取困难。Python网络爬虫技术灵活高效,可自动化抓取空气质量、水质、污染源等数据,实现多平台整合、实时更新、结构化存储与异常预警。本文详解爬虫实战应用,涵盖技术选型、代码实现、反爬策略与数据分析,助力环保数据高效利用。
587 0
|
11月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
698 18
|
机器学习/深度学习 算法 量子技术
GQNN框架:让Python开发者轻松构建量子神经网络
为降低量子神经网络的研发门槛并提升其实用性,本文介绍一个名为GQNN(Generalized Quantum Neural Network)的Python开发框架。
318 4
GQNN框架:让Python开发者轻松构建量子神经网络
|
存储 监控 算法
基于 Python 跳表算法的局域网网络监控软件动态数据索引优化策略研究
局域网网络监控软件需高效处理终端行为数据,跳表作为一种基于概率平衡的动态数据结构,具备高效的插入、删除与查询性能(平均时间复杂度为O(log n)),适用于高频数据写入和随机查询场景。本文深入解析跳表原理,探讨其在局域网监控中的适配性,并提供基于Python的完整实现方案,优化终端会话管理,提升系统响应性能。
313 4
|
JSON 网络安全 数据格式
Python网络请求库requests使用详述
总结来说,`requests`库非常适用于需要快速、简易、可靠进行HTTP请求的应用场景,它的简洁性让开发者避免繁琐的网络代码而专注于交互逻辑本身。通过上述方式,你可以利用 `requests`处理大部分常见的HTTP请求需求。
861 51
|
调度 Python
探索Python高级并发与网络编程技术。
可以看出,Python的高级并发和网络编程极具挑战,却也饱含乐趣。探索这些技术,你将会发现:它们好比是Python世界的海洋,有穿越风暴的波涛,也有寂静深海的奇妙。开始旅途,探索无尽可能吧!
344 15
|
机器学习/深度学习 算法 测试技术
图神经网络在信息检索重排序中的应用:原理、架构与Python代码解析
本文探讨了基于图的重排序方法在信息检索领域的应用与前景。传统两阶段检索架构中,初始检索速度快但结果可能含噪声,重排序阶段通过强大语言模型提升精度,但仍面临复杂需求挑战
514 0
图神经网络在信息检索重排序中的应用:原理、架构与Python代码解析

热门文章

最新文章

推荐镜像

更多