# 文本表示模型
常见的文本表示模型有:词袋模型(Bag of Words),主题模型(Topic Model),词嵌入模型(Word Embedding)
## 词袋模型
词袋模型是将每篇文章看成一袋子的词,并忽略每个词出现的顺序。具体来说,就是将整段文本以词为单位且分开,然后每篇文章可以表示成一个长向量,向量中的每一维代表一个单词,而该维对应的权重则反映了这个词在原文章中重要程度。常用TF-IDF(Term Frequency-Inverse Document Frequency)来计算权重,公式如下:
$$
TF-IDF(t,d)=TF(t,d)\times IDF(t) \tag{1}
$$
其中$TF(t,d)$为单词$t$在文档$d$中出现的频率,$IDF(t)$是逆文档频率,用来衡量单词$t$对表达语义所起的重要性,表示为:
$$
IDF(t)=log\frac{文章总数}{包含单词t的文章总数+1} \tag{2}
$$
## 主题模型
主题模型用于从文本库中发现有代表性的主题(得到每个主题上面词的分布特性),并且能够计算出每篇文章的主题分布。
## 词嵌入模型
词嵌入是一类将词向量化的模型的统称,核心思想是将每个词映射成低维空间(通常K=50~300维)上的一个稠密向量(Dense Vector)。
Word2Vec是谷歌2013年提出的目前最常用的词嵌入模型之一,Word2Vec实际上是一种浅层的神经网络模型,它有两种网络结构,分别是CBOW(Continues Bag of Words)和Skip-gram。
CBOW的目标是根据上下文出现的词语来预测当前词的生成概率;而Skip-gram是根据当前词来预测上下文中各词的生成概率。CBOW和Skip-gram都可以表示成输入层(Input)、映射层(Projection)和输出层(Output)组成的神经网络。
隐狄利克雷模型(LDA)是利用文档中单词的共现关系来对单词按主题聚类,可以理解为“文档-单词”矩阵进行分解,得到“文档-主题”和“主题-单词”两个概率分布。