一:TF-IDF(term frequency=inverse document frequency)
(TF-IDF与余弦相似度 - 知乎 (zhihu.com))
TF-IDF是⼀种统计方法,⽤以评估⼀字词对于⼀个文件集或⼀个语料库中的其中⼀份⽂件的重要程度。字词的重要性随着它在⽂件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。TF-IDF就具有这样的能力:提取关键词。
TF
一个词在一篇文章种出现的次数越多,那么它就越"紧扣主题"。但是有些词出现的次数更多,比如:的,如,是,这,有等。这些词没有明确的意义,我们将其成为停用词(stopwords)。如果单纯按照词频统计关键词,则所有的文章里面都是Stopwords出现的频率最高。像这种“万金油”,没有区分度的词,无法起到分类文章的作用。
IDF
所以,需要一个重要性调整系数,衡量一个词是不是常见词。如果某个词比较少见,但是它在这篇文章中多次出现,那么它很可能就反映了这篇文章的特性,正是我们所需要的关键词。这时就需要祭出逆文档频率(IDF)来解决词语权重的问题。
最后计算TF-IDF:
TF Vector的构建:
向量的维度根据词典中不重复词的个数确定
向量中每个元素顺序与原来文本中单词出现的顺序没有关系,与词典中的顺序一一对应
向量中每个数字是词典中每个单词在文本中出现的频率---即词频表示
根据TF Vector构建的方式,引出来新的问题:
如果文档很多,整个文集中不同单词的数量非常大,而单个文档使用的单词数量远远少于总体词袋单词个数。tf-idf向量维度会非常大而且每个向量中大多数的值为 0 。此时词袋模型得到的向量是 高维稀疏数据
二.Word2vec
([NLP] 秒懂词向量Word2vec的本质 - 知乎 (zhihu.com))
word2vec中的两个trick:1.Negative Sampling 2.hierarchical softmax
Negative Sampling
Word2Vec中负采样的实现方式是:在训练过程中,对于每个正样本词,从语料库中随机采样出一定数量的负样本词,并将其与正样本词一起用于训练。
具体来说,在训练过程中,首先从语料库中随机选择一个词作为中心词,然后随机选择一个窗口大小,在窗口范围内选择一些词作为正样本。然后从语料库中随机采样出一定数量的负样本词(通常采样数量为5-20个)。最后将正样本词和负样本词一起用于训练
hierarchical softmax
三.Dec2vec