左角落分析法解析

2024-01-28 06:59
文章标签 解析 分析法 角落

本文主要是介绍左角落分析法解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

为什么要使用左角表?     

一般的自顶向下的分析法中存在回溯现象,这种严重的限制了分析法,构造了推导树,但是有的时候会出现搜索空的情况,使分析效率很低。为了提高自顶向下的分析效率,减少盲目性,可以给CFG文法建立一个左角表(left-corner table)。

左角表中存有什么?

例如这个文法:

G = {Vn , Vt , S , P}
Vn = {S , NP , VP , Aux , Wh2NP , Pron , PrN , predet , Det , Card , Ord , Quant , AP , Nom. N. V ,
Adj , Adv , Wh2Pron ,PP , GdVP , GdV , RelCL , who , that , and}
Vt = {the , a , that , table , leg , Jack , lacks , hits ,…}
S = S
P : :1. S`NP VP ;2. S`VP ;3. S`Aux NP VP ;4. S`Wh2NP VP ;5. NP`Pron ;6. NP`PrN ;7. NP`
(Det) (Card) (Ord) (Quant) (AP) Nominal ;8. NP`Nom N ;9. Wh2NP`Wh2Pron ;10. Nom`N Nom ;
11. Nom`N ;12. Nom`N PP(PP) (PP) ; 13. Nom`Nom GdVP ; 14. GdVP` GdV NP (GdVP表示
Gerund verb phrase , GdV表示Gerund verb) ;15. GdVP` GdV PP ;16. GdVP` GdV ;17. GdVP` GdV
NP PP ;18. Nom`Nom RelCl(RelCL表示关系从句) ;19. RelCl `who VP(这个who是关系代词) ;
20. RelCl`that VP(这个that 是关系代词) ;21. AP `Adv Adj ;22. AP`Adj ;23. VP`V ;24. VP`V
NP ;25. VP`V NP PP ;26. VP`V PP ;27. VP`V S ;28. VP`V that S(这个that 是关系代词) ;29.PP`Prep NP ; 30. NP`NP and NP ; 31. VP`VP and VP ; 32. S`S and S ; 33. Pron`{ I , you , he ,
…} ;34. N`{table , leg , …} ; 35. V`{lacks , hits , …} ; 36. PrN`{Jack , John , …} ; 37. P`{on ,
of , at , …} ;38. Aux`{does , has , …} ;39. Ord`{first , second , …} ;40. Det`{the , a , that , …} ;
41. Card`{one , two , …}

他的左角可以为如图所示:

image

传统自上而下分析法和左脚分析法的对比

1. S`NP VP
2. S`VP
3. S`Aux NP VP
4. S`Wh2NP VP

就拿分析S来说,例如我们要匹配的第1个词是the

使用传统的自上而下的方法分析:

我们需要搜索S`VP , S`Aux NP VP , S`Wh2NP VP来搜索,这个过程当中,要做很多的空搜索。

如果使用左角分析法:

很快就可以通过查表得到the的对应的Det。这样大大的节省了时间。

下面这个例子展示了,是如何匹配“The table that lacks a leg hits Jack”这个句子的:

image

image

image

从分析的过程中看,虽然使用了左角分析法,避免了大量的空搜索。但是,在分析过程中,仍然出现了7词回溯。

有的科学家已经提出了其他改良的更高效的算法,在这里不做讨论。

参考文献:一种无回溯的自然语言分析算法 冯志伟 (教育部语言文字应用研究所 北京 100010)

转载于:https://www.cnblogs.com/createMoMo/archive/2013/06/01/3113321.html

这篇关于左角落分析法解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/652845

相关文章

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security

全面解析Golang 中的 Gorilla CORS 中间件正确用法

《全面解析Golang中的GorillaCORS中间件正确用法》Golang中使用gorilla/mux路由器配合rs/cors中间件库可以优雅地解决这个问题,然而,很多人刚开始使用时会遇到配... 目录如何让 golang 中的 Gorilla CORS 中间件正确工作一、基础依赖二、错误用法(很多人一开

Mysql中设计数据表的过程解析

《Mysql中设计数据表的过程解析》数据库约束通过NOTNULL、UNIQUE、DEFAULT、主键和外键等规则保障数据完整性,自动校验数据,减少人工错误,提升数据一致性和业务逻辑严谨性,本文介绍My... 目录1.引言2.NOT NULL——制定某列不可以存储NULL值2.UNIQUE——保证某一列的每一

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

MySQL CTE (Common Table Expressions)示例全解析

《MySQLCTE(CommonTableExpressions)示例全解析》MySQL8.0引入CTE,支持递归查询,可创建临时命名结果集,提升复杂查询的可读性与维护性,适用于层次结构数据处... 目录基本语法CTE 主要特点非递归 CTE简单 CTE 示例多 CTE 示例递归 CTE基本递归 CTE 结

Spring Boot 3.x 中 WebClient 示例详解析

《SpringBoot3.x中WebClient示例详解析》SpringBoot3.x中WebClient是响应式HTTP客户端,替代RestTemplate,支持异步非阻塞请求,涵盖GET... 目录Spring Boot 3.x 中 WebClient 全面详解及示例1. WebClient 简介2.

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分

C#解析JSON数据全攻略指南

《C#解析JSON数据全攻略指南》这篇文章主要为大家详细介绍了使用C#解析JSON数据全攻略指南,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、为什么jsON是C#开发必修课?二、四步搞定网络JSON数据1. 获取数据 - HttpClient最佳实践2. 动态解析 - 快速

Spring Boot3.0新特性全面解析与应用实战

《SpringBoot3.0新特性全面解析与应用实战》SpringBoot3.0作为Spring生态系统的一个重要里程碑,带来了众多令人兴奋的新特性和改进,本文将深入解析SpringBoot3.0的... 目录核心变化概览Java版本要求提升迁移至Jakarta EE重要新特性详解1. Native Ima

spring中的@MapperScan注解属性解析

《spring中的@MapperScan注解属性解析》@MapperScan是Spring集成MyBatis时自动扫描Mapper接口的注解,简化配置并支持多数据源,通过属性控制扫描路径和过滤条件,利... 目录一、核心功能与作用二、注解属性解析三、底层实现原理四、使用场景与最佳实践五、注意事项与常见问题六