【NLP方向】【万时计划】23-30

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

句法分析

句法分析的主要任务是识别出句子所包含的句法成分以及这些成分之间的关系,通常会以句法树来表示句法分析的结果。

概述:

句法分析决定着自然语义处理进度,主要面临以下两个问题:歧义和搜索空间。自然语言区别于人工语言的一个重要特点就是它存在着大量的歧义现象。人们可以依靠大量的先验知识有效的消除掉歧义,而在机器学习中,机器在表示和获取方面存在严重的不足,所以很难像人一样进行语句的歧义消除。

句法分析是一个极为复杂的任务,侯选树的个数会随着句子增多呈现指数级别的增长,搜索空间巨大。因此,必须要有合适的解码器,才能够做到在规定的时间内搜索到模型定义的最优解。

句法分析是一个通过词语组合分析得到句法结构的过程。该过程使用的程序叫做句法分析器主要分为两种:完全句法分析和局部句法分析。两者差异在于,完全句法分析以获取 整个句子的句法结构为目的;局部句法分析只关注局部的一些成份。句法分析中所用的方法可简单分为基于规则和基于统计两个类别。首先,基于规则的方法在处理大规模真实文本时,会存在有限语法规则覆盖的缺陷。随着基于统计学习的句法分析兴起,句法分析器性能不断提高。典型:PCFG。

统计句法分析模型本质上是一套面向候选树的评价方法,正确的句法会被赋予一个较高的分值,对不合理的句法树则赋予较低的分值,最终将会选择分值最高的句法树作为最终句法分析的结果。

统计分析方法是离不开语料数据集和评价体系作基础的。句法分析使用的数据集更加复杂,它是一种树形的标注结构,也可以称为树库。

树库汉语标记集

句法分析的评测方法:

句法分析评测的主要任务是:评测句法分析器生成的树结构与手工标注的树结构之间的相似度。主要通过两个方面评测其性能:满意度和效率。满意度指的是测试句法分析器是否适合某个特定的自然语言处理任务;而效率主要是对比句法分析器的运行时间。指标:准确率表示分析正确的短语个数占分析结果中所有短语个数的比例。召回率表示分析得到的正确短语个数占标准分析树全部短语个数的比例。交叉括号表示分析得到的某个短语的覆盖范围与标准语法分析结果的某个短语的覆盖范围存在重叠但不存在包含关系,即构成一个交叉括号。

基于PCFG的句法分析

PCFG是基于概率的短语结构分析方法,是一种上下文无关文法的扩展是目前较成熟的句法分析模型,也可认为是规则方法和统计方法的结合。

PCFG是一种生成式的方法,它的短语结构文法可以表示为一个五元组(X,V,S,R,P):

X是一个有限词汇的集合,其中的元素称为词汇或终结符。

V是一个有限标注的集合,称非终结符集合。

S是文法的开始符,且包含于V

R是有序偶对($\alpha ,\beta $)的集合,就是产生的规则集。

P代表每个生产规则的统计概率。

from nltk.parse import stanford
import os
root='./stanford-parser-full-2018-10-17/'
parser_path=root+'stanford-parser.jar'
model_path=root+'standford-parser-3.9.2-models.jar'

pcfg_path='edu/stanford/nlp/models/lexparser/chinesePCFG.ser.gz'
parser=stanford.StanfordParser(path_to_jar=parser_path,path_to_models_jar=model_path,model_path=pcfg_path)
sentence=parser.raw_parse(seg_str)
for line in sentence:
    print(line)
    line.draw()

PCFG用于解决一下问题:

  1. 基于PCFG可以计算分析树的概率值。
  2. 若一个句子有多个概率树,可以依据概率值对所有的分析树进行排序。
  3. PCFG可以用于进行句法排歧,面对多个分析结果选择概率值最大的。

PCFG运算表示:

  • 形式: A → α , P A\to \alpha ,P Aα,P
  • 约束: ∑ α P ( A → α ) \sum\nolimits_{\alpha }{P(A\to \alpha )} αP(Aα)
基于最大间隔马尔可夫网络的句法分析

最大间隔属于SVM中的核心理论,而马尔可夫网络是概率图模型中一种具备一定结构处理关系能力的算法。最大间隔马尔可夫网络就是这两者的集合方法,能够解决复杂的结构化预测问题,尤为适合用于句法分析任务。这是一种判别式的句法分析方法,主要是通过多个特征来消除分析过程中的歧义。判别函数如下:

${{f}{x}}(x)=\arg {{\max }{y\in G(x)}}\left\langle w,\Phi (x,y) \right\rangle $

其中 ( x , y ) (x,y) (x,y)表示与 x x x对应的句法树 y y y的特征向量, w w w表示特征权重。

类似SVM算法,最大间隔马尔可夫网络如果要实现多元分类,可以采用多个独立并且可以并行训练的二元分类器实现。每个二元分类器识别一个短语标记,再通过组合多个二元分类器就可以完成句法分析任务,同时也可以通过并行的方式提升训练速度。

基于CRF的句法分析

将句法分析作为序列标注问题来解决,可以使用CRF模型,是判别式方法,需要融合大量特征。与PCFG的区别:1.概率计算方法和概率归一化方法不同。2.CRF模型最大化的是句法树的条件概率而非联合概率。

Word Embedding

自然语言是一套用来表达含义的复杂系统。在这套系统中,词是表义的基本单元,词向量是用来表示词的向量,也可被认为是词的特征向量或表征。把词映射为实数域向量的技术也叫词嵌入。

数据(文本表示)决定了机器学习的上限,而算法只是尽可能地逼近这个上限,文本表示分为离散表示和分布式表示。

离散表示

one-hot(读热向量编码):是特征工程中常用的方法。

其步骤如下:

  1. 构造文本分词后的字典,每个分词是一个比特值,比特值为0或者1.
  2. 每个分词的文本表示为该分词的比特位为1,其余位为0的矩阵表示。

例如:John likes to watch movies. Mary likes too

John also likes to watch football games.

以上两句可以构造一个词典,**{“John”: 1, “likes”: 2, “to”: 3, “watch”: 4, “movies”: 5, “also”: 6, “football”: 7, “games”: 8, “Mary”: 9, “too”: 10} **

每个词典索引对应着比特位。那么利用One-hot表示为:

**John: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0] **

likes: [0, 1, 0, 0, 0, 0, 0, 0, 0, 0] …等等,以此类推。

one-hot表示文本信息的缺点:

  • 随着语料库的增加,数据特征的维度会增大,产生一个维度很高但很稀疏的矩阵
  • 这种表示方法的分词顺序和在句子中的顺序是无关的,不能保留词与词之间的关系信息。

词袋模型:像是句子或是文件这样的文字可以用一个袋子装着这些词的方式表现,这种表现方式不考虑文法以及词的顺序。

John likes to watch movies. Mary likes too

John also likes to watch football games.

以上两句可以构造一个词典,**{“John”: 1, “likes”: 2, “to”: 3, “watch”: 4, “movies”: 5, “also”: 6, “football”: 7, “games”: 8, “Mary”: 9, “too”: 10} **

那么第一句的向量表示为:[1,2,1,1,1,0,0,0,1,1],其中的2表示likes在该句中出现了2次,依次类推。

词袋模型有以下缺点:

  • 词向量化后,词与词之间是有大小关系的,不一定词出现得越多,权重越大。
  • 词与词之间是没有顺序关系的。

TF-IDF:是一种用于信息检索与数据挖掘的常用加权技术。TF指的是词频Term Frequency。IDF的意思是逆文本频率指数Inverse Document Frequency

字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。一个词语在一篇文章中出现次数越多,同时在所有文档中出现次数越少,越能代表该文章。

在这里插入图片描述

分母之所以+1,是为了避免分母为0.

T F − I D F = T F ∗ I D F TF-IDF=TF*IDF TFIDF=TFIDF,当w在文档中出现的次数增大时,TF-IDF的值是减小的。

缺点: 还是没有把词与词之间的关系顺序表达出来。

n-gram模型:为了保持词的顺序,做了一个滑窗的操作,这里的n表示的就是滑窗的大小,例如:2-gram,把2个词当作一组来处理,然后向后移动一个词的长度,再次组成另一组词,把这些生成一个字典,按照词袋模型的方式进行编码得到结果。该模型考虑了词的顺序。

例如:

John likes to watch movies. Mary likes too

John also likes to watch football games.

以上两句可以构造一个词典,{"John likes”: 1, "likes to”: 2, "to watch”: 3, "watch movies”: 4, "Mary likes”: 5, "likes too”: 6, "John also”: 7, "also likes”: 8, “watch football”: 9, “football games”: 10}

那么第一句的向量表示为:[1, 1, 1, 1, 1, 1, 0, 0, 0, 0],其中第一个1表示John likes在该句中出现了1次,依次类推。

缺点:随着n的增大,词表会呈指数膨胀,会越来越大。

NLP之文本聚类

可不可以使用DPC呢?

放弃文本聚类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 自然语言处理(Natural Language Processing,简称NLP)是计算机科学与人工智能领域的一个重要研究方向,目的是让计算机能够理解、处理和生成人类的自然语言。NLP-100例是一份经典的NLP问题集合,包含了各种与自然语言处理相关的问题和挑战。 这份NLP-100例涵盖了从基础的文本处理到更高级的自然语言理解和生成的问题。例如,其中包括了文本预处理、词频统计、语法分析、词性标注、实体识别、情感分析、机器翻译等任务。 NLP-100例的目的是帮助研究者和开发者更好地理解NLP领域的核心问题和技术,同时提供一些典型的案例和数据集供实践和研究使用。通过完成这些例题,可以锻炼自己在NLP领域的能力和技术,提高对自然语言的处理和理解能力。 此外,NLP-100例也为研究者提供了一个可以与其他人交流和探讨的平台。研究者可以使用相同的数据集和问题进行实验和评估,从而更好地了解NLP技术的优劣和进展。 总之,NLP-100例是一个对NLP进行实践和研究的重要资源。通过解决这些例题,可以深入理解自然语言处理的基础和技术,掌握各种NLP任务的方法和技巧。同时,它也是一个促进交流和合作的平台,为NLP研究者提供了一个共同的基础和语言。 ### 回答2: 自然语言处理(Natural Language Processing,简称NLP)是研究计算机与人类自然语言之间的交互的一门学科。NLP-100例指的是日本的一个NLP入门教程,包含了100个常见的NLP问题和对应的解答。 NLP-100例涵盖了从文本处理到语义理解等多个方面的问题。其中,一些例子包括:文本的分词、词性标注、句法分析、语义角色标注和文本分类等。 以分词为例,分词是将一段连续的文本分割成词语的过程。在NLP-100例中,可以通过使用Python中的分词工具NLTK(Natural Language Toolkit)来实现分词功能。 另外,对于文本的词性标注,NLP-100例提供了使用POS(Part-Of-Speech)标记对文本中的每个词进行词性标注的方法。可以使用NLTK提供的POS标注工具来实现。 此外,NLP-100例还包括了语义角色标注的问题,语义角色标注是为了确定句子中的谓语动词所承担的语义角色,如施事者、受事者、时间等。可以使用Stanford CoreNLP工具包来实现语义角色标注。 最后,NLP-100例还介绍了文本分类的问题,文本分类是将文本划分到预定义的类别中。可以使用机器学习算法,如朴素贝叶斯或支持向量机(SVM)等来进行文本分类。 通过学习NLP-100例,我们可以了解到自然语言处理的基本方法和技术,并且可以利用这些技术来解决相关的自然语言处理问题。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值