词袋模型是将文本转换成向量的一种方式,且容易实现,本文将详细地阐述词袋模型以及如何实现词袋模型。
文本存在的问题
在对文本进行建模的时候存在一个问题,就是“混乱”,因为像机器学习算法通常更喜欢固定长度的输入、输出,但是文本是不定长的。机器学习算法不能直接处理纯文本,要使用文本的话,就必须把它转换成数值,尤其是数值向量。这个就叫做特征提取或者特征编码。而文本数据的特征提取,其中一种简单且流行的方法就是词袋模型。
什么是词袋?
词袋是一篇文档中单词出现的文本表示,它包含两个信息:
1. 一个已知单词构成的字典
2. 一种已知单词出现的度量
它之所以称为词“袋”,是因为它只关心单词是否出现,而且关于文档中的单词的顺序和结构信息都忽略掉了。直观的感觉是,如果文档具有相似的内容,那么它们就是相似的。此外,仅从内容我们就可以了解文档的一些含义。
词袋模型可以很简单,也可以很复杂。这主要取决于如何设计由已知单词构成的词典以及如何对已知单词的出现进行评分。
一个词袋模型样例
下面用一个例子来具体地解释词袋模型。
第1步:收集数据
It was the best of times,
it was the worst of times,
it was the age of wisdom,
it was the age of foolishness,
我们将上面四句话作为语料,并且每一句话都作为一个文档,即语料中共有4篇文档,我们的目的就是将这四个文档分别表示成一个定长的向量。
第2步:设计词汇表
根据语料&#