文章目录
1. 过滤词
过滤停用词,出现频率很低的词。
2. one way to normalize (English)
Stemming
合并后的单词不一定是有效的单词。
went,go,going --> go
fly,flies --> fli
deny,denied,denying --> deni
fast,faster,fastest -->fast
3.单词转换为向量
例
词典:【我们,去,爬山,今天,你们,昨天,跑步】
独热编码(one-hot):向量大小是词库的大小,稀疏矩阵。
我们:(1,0,0,0,0,0,0)
去:(0,1,0,0,0,0,0)
跑步:(0,0,0,0,0,0,1)
词典:【我们,又,去,爬山,今天,你们,昨天,跑步】
句子的独热编码:
boolean vector:出现为1,未出现为0
我们 今天 去 爬山:(1,0,1,1,1,0,0,0)
你们 昨天 跑步:(0,0,0,0,0,1,1,1)
你们 又 去 爬山 又 去 跑步:(0,1,1,0,0,1,0,1)
count vector:统计出现次数
我们 今天 去 爬山:(1,0,1,1,1,0,0,0)
你们 昨天 跑步:(0,0,0,0,0,1,1,1)
你们 又 去 爬山 又 去 跑步:(0,2,2,1,0,1,0,1)
词向量分布式表示法
词向量降维方法:T-sne
100维的独热编码可以表示100个不同的单词。
100维的分布式表示法可以表示无穷多个不同的单词。
句子向量的表示
法1:平均各个词向量
Tf-idf
并不是单词频率越高,单词就越重要。
所以应附给每个单词一个权重。
tfidf(w) = tf(d,w) * idf(w)
tf(d,w):表示文档d中w的词频
idf(w):表示单词的重要性,计算公式为 log(N/N(w))
出现在越少的文档里,重要程度越高
N:语料库中的文档总数
N(w):词语w出现在多少个文档
4. 计算距离
欧氏距离 d=|s1 - s2|
5. 计算相似度
余弦相似度 d=s1s2/(|s1||s2|)
内积就可以看作相似度:s1*s2
6. Skip-Gram model(根据中心词预测上下文)
例:语料库:(AI,的,发展,很,快)
maximization
= P(的|AI)P(AI|的)P(发展|的)P(的|发展)P(很|发展)P(发展|很)P(快|很)P(很|快)
w:中心词,c:上下文词
Subword Model with Skip-Gram
fastText
7. CBOW(上下文词预测中心词)
8.Word Embedding by Matrix Factor(矩阵分解)
9.Glove(全局算法,MF+SG)
MF(全局算法)
SG(局部算法)
10.Gaussian Embedding
学出来的词向量出现概率不同,而造成可信度的差异。
该模型不仅给出词向量,也给出该词向量的可信度。
11.Contexualized Embedding
基于上下文含义的词向量。