引言
文本是一类非常重要的结构化数据,如何表示文本数据是机器学习领域的一个重要研究方向。文本表示的核心在于将文本表示成后续算法可以使用的特征向量。
一、词袋模型—Bag of Words
在介绍词袋模型前,我们先引入词集模型。词集模型是指基于词典的句子的one-hot编码。词集模型只能统计这句话是否出现过这个词,而不能记录词之间的顺序,词出现的个数。因此,在词集模型的基础上出现了词袋模型。
词袋模型是最基础的文本表示模型。词袋模型是将每篇文章看成一袋子词,并忽略每个词出现的顺序。具体来说,就是将整段文本以词为单位切分开,然后每篇文章可以表示成一个长向量,向量中的每一维代表一个单词,而该维对应的权重则反映这个词在原文章中的重要程度。常用TF-IDF来计算权重,公式为:
T F − I D F ( t , d ) = T F ( t , d ) × I D F ( t ) TF-IDF(t,d)=TF(t,d)×IDF(t) TF−IDF(t,d)=TF(t,d)×IDF(t)
其中, T F ( t , d ) TF(t,d) TF(t,d)为单词 t t t在文档 d d d中出现的频率; I D F ( t ) IDF(t) IDF(t)是逆文档频率,用来衡量单词 t t t对表达语义所起的重要性,表示为
I D F ( t ) = l o g N N ( w ) + 1 IDF(t)=log\frac{N}{N(w)+1} I