余弦相似度
余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似。可以看作是-1,1的这种取值,余弦值越大,夹角越小,所以越相似。
tf-idf
tf-idf是把在很多文章中都出现的单词视为了不重要的单词,所以词语w出现在多少文档作为了分母,出现次数越多,单词重要性越少。
TF:词频(某个词在文章中出现的次数/文章的总次数)与词语的重要性成正比
IDF:逆文档频率。需要一个语料库(corpus),用来模拟语言的使用环境。
如果一个词越常见,分母越大,逆文档频率越接近0。分母加1是为了避免分母为0。一个词在越多的文档中出现表明它越不重要

当有TF(词频)和IDF(逆文档频率)后,将这两个词相乘,就能得到一个词的TF-IDF的值。某个词在文章中的TF-IDF越大,那么一般而言这个词在这篇文章的重要性会越高,所以通过计算文章中各个词的TF-IDF,由大到小排序,排在最前面的几个词,就是该文章的关键词。
独热编码到词向量
独热编码不能用来衡量两个词语之间的相似度,因为用了count vector的方法,稀疏性很高,所以会出现很多内积为0的情况;但是可以用来表示句子之间的相似度,个人认为是因为句子的向量表示基于词的向量表示,稀疏性没有词的独热编码大,所以不会出现大片为0的情况,但是我还是发现了很多计算余弦相似度的时候内积为0的情况,基于独热编码的表示有tf-idf方法,适用很广,考虑了单词的权重。
词向量(分布式表示)技术比独热编码出现晚,应该是为了解决词语之间相似度的问题,也有基于词向量的句子表示。需要注意的是独热编码和词向量是两套体系,从词语到句子的表示应该遵从于两套体系,但是有时候可以混着用。
独热编码和词向量只是两种不同的向量表示方法,但是比较向量相似度的方法,如欧氏距离和余弦相似度还是通用的。
小结:
单词的独热编码和分布式表示是两种完全不一样的编码方式。
这两种不同的编码方式是目前文本表示的两个方向,有些时候传统的独热编码的方式可能更适合,有些时候分布式表示法更适合,具体还是要通过测试来获得结论。
独热编码的最大的问题是不能表示一个单词的含义。
词向量的质量取决于词向量训练模型,不同的模型所给出的结果是不一样的。
网友评论