NLTK基础教程学习笔记(八)

浅解析与深解析:
通常情况下,在深入解析或者全面解析的过程中,像CFG(Context-Free Grammer,上下文无关语法),PCFG(即probabilistic context-free grammar,概率性上下文无关语法)以及搜索策略这样的语法概念的作用都是要将一套完整的语法结构运用的某个句子上。其中浅解析(shallow parsing)是一种面向给定文本的,对其语法信息部分控模型的有限解析任务。而深解析(deep parsing)则是一种更为复杂的应用。一般来说,深解析比较适合于对话系统和文本综述这样的应用场景,而浅解析更适合于信息提取和文本挖掘这一类的应用。
两种解析方法:
文本解析方法主要有两种,其具体情况如下所示:
基于规则的方法:该方法基于规则和语法,在该方法中我们将会基于CFG等语法概念来撰写语法规则手册,是一种自上而下的方法,该方法中包含了CFG和基于表达式的解析器。
基于概率的方法:在该方法中通过概率模型来学习规则和语法,该方法使用的是所观测到的相关语言特征的出现概率,是一个自下而上的方法,方法中包含了PCFG和stanford解析器。
为什么要进行解析?
编写解析器时,能提出一组可被当作某种模板的规则,这些规则就能按照某种适当的顺序写出句子。另外也需要将单词分门别类即进行词性的标注。
下面是一个用CFG的例子:

import nltk
toy_grammar=nltk.CFG.fromstring(
"""
  S -> NP VP              
  VP -> V NP              
  V -> "eats" | "drinks"  
  NP -> Det N   
  Det -> "a" | "an" | "the" 
  N -> "president" |"Obama" |"apple"| "coke"  
   """)
print(toy_grammar.productions())

结果:

[S -> NP VP, VP -> V NP, V -> 'eats', V -> 'drinks', NP -> Det N, Det -> 'a', Det -> 'an', Det -> 'the', N -> 'president', N -> 'Obama', N -> 'apple', N -> 'coke']

目前这一语法概念所能产生的句子数量有限。如果出现知道如何一个名词和一个动词搭配使用,并且这些动词和名词只能来自于上述代码所列出的单词,那么大概可以搭配出这样的列句。
President eats apple
Obama drinks coke
显然我们运用所学的英语语法规则造出句子,理解也是相同的规则,但在这些规则显然不适用于莎士比亚时期所用的文体。
而且同一套语法也可能会构造出一些毫无意义的句子如:
Apple eats coke.
President drinks Obama.
当涉及到某个语法解析器时(syntactic parser)时,事实上本身就有一定的几率在语法上形成一些毫无意义的句子。如果想要获取其中的语义的话,就需要对句子有一个更深入的理解。
timg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值