PyTorch入门学习笔记

第三节 文本分类

1.文本分类

语言模型在上节课中我们已经了解过了,这节课我们开始接触文本分类

文本分类在文本处理中是很重要的一个模块,它的应用也非常广泛,比如:垃圾过滤,新闻分类,词性标注等等。它和其他的分类没有本质的区别,核心方法为首先提取分类数据的特征,然后选择最优的匹配,从而分类。但是文本也有自己的特点,根据文本的特点,文本分类的流程为:1.预处理;2.文本表示及特征选择;3.构造分类器;4.分类。

大家知道,中文书写时,不像英文,中间用空格隔开,而是字和字连着的,这样的话,第一步就要进行分词,把文本分成词(或字),而且分词的好坏对后续操作影响较大(分词方法有词典法,统计方法等,见我的概率统计模型在搜索引擎中的应用)。紧接着第二步就是要去掉常用且意义不大的词(称之为去停用词),比如:的、是、了等等。这样,我们的预处理阶段就完成了。

目前常用的文本表示是向量空间模型,即把文本分词后的每个词看成一个向量中的一个元素。但是,用什么表示这个元素呢?最先想到的就是词出现的频率,比如:“走进/搜索引擎,学习/搜索引擎”,我们就可以表示成(0,…,2,…,0,1,…,0,1,0…)。为什么向量里面那么多…呢,那是因为我们必须把所有的向量都要统一起来,意思就是说,哪个词在向量的哪个位置上,都必须是确定的。要想确定,那就必须把所有的汉字都按字典序排出来,然后各个词对号入座。假设汉字有10000个,那么我要分类“走进搜索引擎,学习搜索引擎”这个短文本,我至少要给它生成一个10000维的向量,而且这10000维的向量只用到3个位置。但是用频率会出现不公平的现象,比如,“我们”这个词,它出现的频率就比较高,那它的向量就比较大,所以,词频几乎不用做特征,常用的特征有TF/IDF,互信息量,信息增益,χ2统计量等方法。刚才提到我们的向量维数很大,就算去掉停用词也是很大的,既然,维数太大,我们的处理方法一般有两种:特征选择和特征提取,特征选择就是选择一部分具有代表性的特征来表示文本,比如,用TF/IDF时,去掉很大的和一些很小的值,剩下的作为特征。特征提取是从现在的特征重构出来一个新的特征,当然,这个新的特征维数要小于原特征维数,就是降维,最常用的方法就是潜在语义分析,用的是奇异值分解(SVD),我们知道在信号处理中一种常用的处理方法,就是把空间域的信号映射到频率域(比如FFT,wavelet),到了频率域,信号能量更集中,便于处理。它的思想和信号处理其实一样。

接下来的工作就是要构造分类规则,也就是分类器,主要就是对许多数据进行训练,产生一套模型。常用的方法有kNN,朴素贝叶斯,支持向量机,神经网络,决策树,Rocchio,线性最小平方拟合等等。

分类器模型产生后,我们只要来一个文本,往分类器一仍,它就会产生该文本的类别。

分类网络的结构有如下几种:

双向RNN

堆叠循环神经网络

CNN用作文本分类的一具体例子

首先把每个单词都embed成一个向量,一句话中的n个词向量会被结合到一起,卷积层的filter会被用作转化h个单词,每一个h单词的窗口都会被这个filter转化。

每一个Convolutional filter转化过的向量都会被这个max over time pooling做一次汇总,如果有m个filter, 我们会得到

原来的线性层是:

加上Dropout r 之后

是一个随机变量,有p的概率是1,1-p的概率是0。在使用模型做预测的时候,所有的权重都会被乘以p。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值