文本特征提取之词袋模型

本文介绍了词袋模型在文本向量化过程中的应用,包括分词、词频统计和向量化步骤。通过词袋模型,将文本转换为0-1向量,为后续的机器学习任务提供标准化输入。
摘要由CSDN通过智能技术生成

跟我一起机器学习系列文章将首发于公众号:月来客栈,欢迎文末扫码关注!

1 引例

在前面几讲的示例介绍中,我们所用到的数据集都是别人已经处理好的数据集,换句话说这些数据集的每个特征维度都已经是数值了。但是在实际的建模任务中,我们拿到的数据集并不是这样的形式。例如接下来我们要完成的一个任务:对中文垃圾邮件进行分类。

为什么两个人在一起会有爱情呢? 爱真的需要勇气 把自己的内心毫无保留的展示给对方 也勇敢的去 接受对方的点点滴滴,过去的事情虽然不能再改变什么,但是 看了你的贴子,你说你不需要建议. 我想问你个问题,如果你愿意的话可以试着回答一下,你认为真爱是什么啊??? 你这辈子会对一个女孩死心蹋地吗??? 如果下次你再遇到一个比现在这个女孩还"特别的"你会怎么样, 因为你之所以选择后者,主要是因为她很与众不同吧!所以我用特别这个词来说.

例如,对于上面这样一个邮件(样本),我们应该怎么来对其进行量化呢?同时,我们知道在建模过程中需要保证每个样本的特征维度数都一样,但是这里每一封邮件的长度却并不同,那我们该怎么处理呢?最后,这里的每个样本都是由若干个句子组成,我们是否应该在一定程度上对这些句子进行分割呢?接下来,我们就来开始学习第一种向量化方法——词袋模型。

2 词袋模型

什么是词袋模型(Bag of words) 呢?其实词袋模型这个叫法很形象,凸出了模型的核心思想。所谓词袋模型就是:首先将训练样本中所有不重复的词放到这个袋子中构成一个词表(字典);然后再以这个词表为标准来遍历每一个样本,如果词表中对应位置的词出现在了样本中,那么对应位置就用1来表示,没有出现就用0来表示;最后,对于每个样本来说都将其向量化成了一个和词表长度一样的0-1向量。

2.1 具体步骤

如图所示为一个直观的词袋模型转换示意图,左边为原始数据集(包含两个样本),中间为词表,右边为向量化的结果。具体为,第一步:首先需要将原始数据的每个样本都进行分词处理(英文语料可以跳过这步);第二步:然后在所有的分词结果中去掉重复的部分,保证每个词语只出现一次;第三步:遍历每个数据样本,若词表中的词出现在该样本中,则对应位置为1,没出现则为0 。例如图中样本“没有 你 的 地方 都是 他乡”,其中有6个词都出现在了词表中,所以词表中每个词的对应位置为1,而‘旅行’和‘流浪’这个两个词并没有出现在样本中,所以对应位置为0。

可以看出,向量化后每个样本特征维度的长度都和词表长度相同(图示中为8),而这很容易导致维度灾难。因为通常一个一般大小的中文数据集,都可能会出现数十万个词语(而这意味着转化后向量的维度也有这么大)。所以在实际处理的过程中,我们在分词结束后通常还会进行词频统计这一步,即统计每个词在数据集中出现的次数,然后只选择其中出现频率最高的前 K K K个词作为最终的词表。最后,通常也会将一些无意义的虚词(停用词)去掉,例如:“的,啊,了,”等。

2.2 分词

从上面的介绍可以知道,向量化的第一步是需要对文本进行分词。下面我们开始介绍一款常用的开源分词工具jieba。使用jieba库的前提当然是安装了,可以通过命令pip install jieba进行安装,然后再通过内置的方法进行分词即可。

我们先用一段文本来进行分词并做词频统计:

央视网消息:当地时间11日,美国国会参议院以88票对11票的结果通过了一项动议,允许国会“在总统以国家安全为由决定征收关税时”发挥一定的限制作用。这项动议主要针对加征钢铝关税的232调查,目前尚不具有约束力。动议的主要发起者——共和党参议员鲍勃·科克说,11日的投票只是一小步,他会继续推动进行有约束力的投票。

可以看到,这段文本当中还包含了很多标点符号和数字,显然这不是我们想要的,所以在分词的时候要去掉这些。

  • 普通分词模式

    import jieba
    import re
    def cutWords(s):
        cut_words = []
        s = re.sub("[A-Za-z0-9\:\·\—\,\。\“ \”]", "",
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值