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

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:

浅解析与深解析:
通常情况下,在深入解析或者全面解析的过程中,像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

目录
相关文章
|
5月前
|
机器学习/深度学习 数据采集 算法
Scikit-Learn基础教程
Scikit-Learn基础教程
128 2
|
自然语言处理 Python
NLTK 基础知识总结
NLTK 基础知识总结
118 0
NLTK 基础知识总结
|
机器学习/深度学习 自然语言处理
|
机器学习/深度学习 自然语言处理
|
机器学习/深度学习 数据可视化
|
机器学习/深度学习
|
自然语言处理 算法 Python
|
JSON JavaScript 数据格式

相关实验场景

更多