目录
一、TF-IDF表示法
1.词频表示句子的缺点
TF-IDF表示法可以更好地表示句子之间的相似度。如果仅仅是通过统计词频的方式来表示一个句子的话:
可以看出,出现次数多的其实并不是很重要,有些词比如“的”“了”,其实是没有重要含义的,因此词频表示句子,不太好。
2.TF-IDF介绍
公式如下所示:
其中各个符号的含义已经表示出来。第一项依旧是考虑频率,但第二项是重点,比如:
①在一篇文档d中,w出现了2次,s出现了4次。
②我们有100篇文章(N=100),其中单词w出现在了5篇文章中,单词s出现在了90篇文章中。
那么这两个单词的TF-IDF就分别是:
2 * log(100/5) = 2log20,大概是6
4 * log(100/90) = 4log(10/9),大概是0.4
说明,第一个单词很重要,可能是科技类文章中的“自然语言处理”,第二个单词不重要,可能是“非常”。
二、词向量
1.One-hot表示法的缺点
在NLP中,最重要的部分,是理解语义,在One-hot编码中,是无法计算出语义相似度的。无论是通过余弦相似度,还是欧式距离,都不行。
并且,One-hot表示法过于稀疏,对于中文来说,可能有十万个单词,那么单词表示的时候就会有10万维的向量。
2.分布式表示法
分布式表示法就是用指定维度的向量,在里面调整数据,从而达到表示单词的效果。这个数据通常是训练得到的,可能需要10^9或者更多的单词数据用来训练,训练的时候必须指定的就是单词的维度。
优点:
①向量长度可以自定义,通常可以根据词汇的量,定义出50/100/200/300维度的向量。
②由于每个维度都有了数据,因此可以度量单词之间的距离。
③容量大。一个100维的向量,可以表示无数个单词,即使每个位置只能取0/1,也能表达2^100个单词。而onehot只能表示100个单词。
④某种意义上,词向量代表了词的意思。
3.词向量到句子向量
①平均法则
该方法很简单,将句子包含的所有单词向量取个平均即可。比如:
"我们":[0.1,0.2,0.1,0.3] ,"去":0.3,0.2,0.15,0.2],"上课":[0.2,0.15,0.4,0.7]
平均得到:[0.2,0.18,0.22,0.4]
则“我们去上课”这句话的句子向量,就是[0.2,0.18,0.22,0.4]
②时序方式RNN,LSTM
暂时没有学到,之后深度学习涉及到之后在这里进行补充。