自然语言处理(NLP)语义分析--文本分类、情感分析、意图识别

⾃然语⾔处理(NLP)语义分析--⽂本分类、情感分析、意图识别通心络
第⼀部分:⽂本分类
训练⽂本分类器过程见下图:
⽂本分类问题: 给定⽂档p(可能含有标题t),将⽂档分类为n个类别中的⼀个或多个
保皇派
⽂本分类应⽤: 常见的有垃圾邮件识别,情感分析
⽂本分类⽅向: 主要有⼆分类,多分类,多标签分类
⽂本分类⽅法: 传统机器学习⽅法(贝叶斯,svm等),深度学习⽅法(fastText,TextCNN等)
⽂本分类的处理⼤致分为⽂本预处理、⽂本特征提取、分类模型构建等。和英⽂⽂本处理分类相⽐,中⽂⽂本的预处理是关键技术。
⼀、⽂本预处理(解决特征空间⾼维性、语义相关性和特征分布稀疏)
1、中⽂分词技术
为什么分词处理?因为研究表明特征粒度为词粒度远远好于字粒度,其⼤部分分类算法不考虑词序信息,基于字粒度的损失了过多的n-gram信息。
中⽂分词主要分为两类⽅法:基于词典的中⽂分词和基于统计的中⽂分词。
基于词典的中⽂分词
核⼼是⾸先建⽴统⼀的词典表,当需要对⼀个句⼦进⾏分词时,⾸先将句⼦拆分成多个部分,将每⼀个部分与字典⼀⼀对应,如果该词语在词典中,分词成功,否则继续拆分匹配直到成功。
所以:字典,切分规则和匹配顺序是核⼼。
基于统计的中⽂分词⽅法
统计学认为分词是⼀个概率最⼤化问题,即拆分句⼦,基于语料库,统计相邻的字组成的词语出现的概率,相邻的词出现的次数多,就出现的概率⼤,按照概率值进⾏分词,所以⼀个完整的语料库很重要。
基于理解的分词⽅法
基于理解的分词⽅法是通过让计算机模拟⼈对句⼦的理解,达到识别词的效果。其基本思想就是在分词的同时进⾏句法、语义分析,利⽤句法信息和语义信息来处理歧义现象。它通常包括三个部分:分词⼦系统、句法语义⼦系统、总控部分。在总控部分的协调下,分词⼦系统可以获得有关词、句⼦等的句法和语义信息来对分词歧义进⾏判断,即它模拟了⼈对句⼦的理解过程。这种分词⽅法需要使⽤⼤量的语⾔知识和信息。由于汉语语⾔知识的笼统、复杂性,难以将各种语⾔信息组织成机器可直接读取的形式,因此⽬前基于理解的分词系统还处在试验阶段。
2、去除停⽤词
建⽴停⽤词字典,停⽤词主要包括⼀些副词、形容词及其⼀些连接词。通过维护⼀个停⽤词表,实际上是⼀个特征提取的过程,本质 上是特征选择的⼀部分。
⼆、⽂本特征提取
1、词袋模型
思想:
建⽴⼀个词典库,该词典库包含训练语料库的所有词语,每个词语对应⼀个唯⼀识别的编号,利⽤one-hot⽂本表⽰。
⽂档的词向量维度与单词向量的维度相同,每个位置的值是对应位置词语在⽂档中出现的次数,即词袋模型(BOW))
问题:
(1)容易引起维度灾难问题,语料库太⼤,字典的⼤⼩为每个词的维度,⾼维度导致计算困难,每个⽂档包含的词语数少于词典的总词语数,导致⽂档稀疏。(2)仅仅考虑词语出现的次数,没有考虑句⼦词语之间的顺序信息,即语义信息未考虑
2、TF-IDF⽂本特征提取
利⽤TF和IDF两个参数来表⽰词语在⽂本中的重要程度。
TF是词频:
指的是⼀个词语在⼀个⽂档中出现的频率,⼀般情况下,每⼀个⽂档中出现的词语的次数越多词语的重要性更⼤,例如BOW模型⼀样⽤出现次数来表⽰特征值,即出现⽂档中的词语次数越多,其权重就越⼤,问题就是在长⽂档中 的词语次数普遍⽐短⽂档中的次数多,导致特征值偏向差异情况。
TF体现的是词语在⽂档内部的重要性。
IDF是体现词语在⽂档间的重要性
即如果某个词语出现在极少数的⽂档中,说明该词语对于⽂档的区别性强,对应的特征值⾼,IDF值⾼,IDFi=log(|D|/Ni),D指的是⽂档总数,Ni指的是出现词语i的⽂档个数,很明显Ni越⼩,IDF的值越⼤。
最终TF-IDF的特征值的表达式为:TF-IDF(i,j)=TFij*IDFi
3、基于词向量的特征提取模型
想基于⼤量的⽂本语料库,通过类似神经⽹络模型训练,将每个词语映射成⼀个定维度的向量,维度在⼏⼗到化百维之间,每个向量就代表着这个词语,词语的语义和语法相似性和通过向量之间的相似度来判断。
常⽤的word2vec主要是CBOW和skip-gram两种模型,由于这两个模型实际上就是⼀个三层的深度神经⽹络,其实NNLM的升级,去掉了隐藏层,由输⼊层、投影层、输出层三层构成,简化了模型和提升了模型的训练速度,其在时间效率上、语法语义表达上效果明显都变好。word2vec通过训练⼤量的语料最终⽤定维度的向量来表⽰每个词语,词语之间语义和语法相似度都可以通过向量的相似度来表
⽰。
三、分类模型
1、传统机器学习⽅法:
传统机器学习算法中能⽤来分类的模型都可以⽤,常见的有:NB模型,随机森林模型(RF),SVM分类模型,KNN分类模型模型。
2、深度学习⽂本分类模型
fastText模型
模型结构:
dac基因
原理: 句⼦中所有的词向量进⾏平均(某种意义上可以理解为只有⼀个avg pooling特殊CNN),然后直接连接⼀个 softmax 层进⾏分类。
TextCNN:利⽤CNN来提取句⼦中类似 n-gram 的关键信息
中俄关系论文模型结构[4]:
改进: fastText 中的⽹络结果是完全没有考虑词序信息的,⽽TextCNN提取句⼦中类似 n-gram 的关键信息。
TextRNN
模型: Bi-directional RNN(实际使⽤的是双向LSTM)从某种意义上可以理解为可以捕获变长且双向的的 “n-gram” 信息。
改进: CNN有个最⼤问题是固定 filter_size 的视野,⼀⽅⾯⽆法建模更长的序列信息,另⼀⽅⾯ filter_size 的超参调节也很繁琐。
TextRNN + Attention
模型结构:
湖南新型冠状病毒
改进:注意⼒(Attention)机制是⾃然语⾔处理领域⼀个常⽤的建模长时间记忆机制,能够很直观的给出每个词对结果的贡献,基本成了Seq2Seq模型的标配了。实际上⽂本分类从某种意义上也可以理解为⼀种特殊的Seq2Seq,所以考虑把Attention机制引⼊近来。
TextRCNN(TextRNN + CNN)
模型结构:
教子一得过程:
利⽤前向和后向RNN得到每个词的前向和后向上下⽂的表⽰:

本文发布于:2024-09-25 04:30:03,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/36456.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:词语   模型   分词   语义   信息
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议