一般对文本预处理或者叫做特征提取,首先是要分词,分词之后就是向量化,也就是训练词向量(其实就是将词和词频对应起来,做成矩阵向量的形式)。下面我们要讲的就是向量化。
1 词袋模型
讲向量化之前,先讲一下词袋模型(Bag of Words,BoW)。词袋模型假设我们不考虑文本中词与词之间的上下文关系,仅仅考虑所有词的权重,而权重与词在文本中出现的频率有关。
词袋模型首先会进行分词,之后,通过统计每个词在文本中出现的次数就可以得到该文本基于词的特征,再将各个文本的词和对应的词频放在一起,就是我们所说的向量化。向量化之后,一般也会使用TF-IDF进行特征的权重修正,再将特征进行标准化等等一些的特征工程手段,就可以将数据带入机器学习算法中进行分类和聚类了。
总结起来,词袋模型就是三板斧:
- 分词(tokenizing)
- 统计修订词特征值(counting,或者就记住TF-IDF)
- 标准化(normalizing)
当然,词袋模型有很大的局限,仅仅考虑了词频,忽略了上下文关系,丢失一部分语义。但是在大多数时候,如果我们的目的是分类聚类,词袋模型的表现还是很好的。
2 向量化
在词袋模型的统计词频这一步,我们会得到该文本所有词的词频,有了词频,我们就能用词向量来表示该文本了。我们直接用 s k l e a r n . f e a t u r e e x t r a c t i o n . t e x t {sklearn.feature_extraction.text} sklearn.featureextraction.text中的