机器学习备忘录之文本表示模型

词袋模型(Bag of Words)

词袋模型是最基础的文本表示模型。将文章以词为单位切分开,忽略词的出现顺序,将文章表示成一个长向量(每一维代表一个单词,该维的权重表示重要程度)。常用TF-IDF(Term Frequency-Inverse Document Frequency)来计算权重。
某个单词在一篇文章中出现的频率高,并且在其他文章中很少出现,则认为该词具有很好的类别区分能力,适合用来分类。TF(t,d)是词频,表示关键词t在文章d中出现的频率。
IDF是逆向文件频率表示关键词出现在所有文章中的频率,IDF越大,表示包含这个关键词的文档越少,也就表示这个关键词越能用于分类。
IDF(t)=log(t+1)IDF(t)=log(\frac{文章总数}{包含关键词t的文章数+1})
TF-IDF就是TF-IDF(t,d)=TF(t,d)*IDF(t),如果某个关键词在这个文档中出现的频率很高,并且在其他文档中出现的频率很低,则TF-IDF会很大。TF-IDF倾向于过滤掉常见的词语,保留重要的词语。简而言之,如果一个词在很多文章中都出现了,那么它可能就是一个通用词(比如很好,这个,你等),这种词对于区分文章特性的贡献较小,对其权重做一定惩罚(通过IDF逆向文件频率)来降低它对区分文章特性的影响力。
N-gram是指有些词组不能拆开,那么由这n个词组成的词组(N-gram)也作为一个单独的特征放到向量表示中,构成N-gram模型。N-gram是一种为了解决词组不可分的一种方法,也属于词袋模型。

主题模型(Topic Model)

主题模型是一种特殊的概率图模型,也就是研究词汇表上词语的条件概率分布 。与主题关系越密切的词语,它的条件概率越大,反之则越小。

词嵌入模型(Word Embedding)

机器学习备忘录之文本表示模型
将每个词映射到低维空间,而不是进行独热编码。独热编码无法计算词与词之间的相关性(相关都为0),而词嵌入可以计算相关。
Word2Vec是谷歌2013年提出的,是目前最常用的词嵌入模型之一。它实际是一种浅层的神经网络模型,有两种网络结构:CBOW(Continues Bag of Words)和Skip-gram。CBOW根据上下文出现的词来预测当前词的生成概率,需要设定一个前后滑动的窗口。skip-gram根据当前词预测上下文各个词的生成概率,同样需要设定滑动窗口。两个模型都是由输入、映射、输出组成的浅层神经网络,输入用独热编码方式输入。映射层有K维,输出N个,即生成每个单词的概率。需要训练NK,KN两个矩阵的参数,最后可以用其中一个作为N个词的K维向量表示。
机器学习备忘录之文本表示模型
机器学习备忘录之文本表示模型

参考:
百面机器学习 算法工程师带你去面试
百面机器学习 第一章 特征工程
百面机器学习|第一章特征工程知识点