赞
踩
词表示:0-1 one-hot encoding --> 句子表示:0-1(Boolean)
构建词库V,对每个句子的表示:根据每个分词是否在V中出现(0/1),表示向量的大小为|V|。
词表示:0-1 one-hot encoding --> 句子表示:0-1(Count)
构建词库V,对每个句子的表示:统计每个分词在V中出现次数,表示向量的大小为|V|。
句子相似度:欧式距离,余弦相似度。
TF-IDF: t f i d f ( w ) = t f ( d , w ) ∗ i d f ( w ) tfidf(w)=tf(d,w)*idf(w) tfidf(w)=tf(d,w)∗idf(w)
t f ( d , w ) tf(d,w) tf(d,w): 文档d中w的词频;
i d f ( w ) idf(w) idf(w): = l o g ( N N ( w ) ) =log(\frac{N}{N(w)}) =log(N(w)N),单词的重要性,逆文档频率(inverse document frequency);
N: 语料库中的文档总数;
N(w): 词语w出现在多少个文档中。
因为one-hot representation:无法表示词的meaning,还有数据稀疏性的问题,故尝试在一个词向量空间中寻找词表示。
一个重要转变:one-hot representation —> distributed representation。
Word Embedding 词向量模型:(依据分布式假设:挨在一起的单词的相似度更高)
传统: SkipGram, CBOW,Glove, FastText, Matrix Factorization(MF);
考虑上下文(动态表征):ELMo, BERT, XLNet;
词向量降维:T-sne
如果知道了词向量的表示,那么句子或者文档的表示也可以很快获得。
Word Embedding --> Sentence Embedding: Average Pooling, Max Pooling, …
传统的Word Embedding模型有:
SkipGram: 经典的局部方法,根据window-size选取关联的上下文词。Make use of context window。
FastText核心思想:解决OOV(out-of-vocabulary)问题,一些出现频率低的词处理问题。利用n-gram feature,在训练过程中考虑每个单词的2-gram, 3-gram, 4-gram等子词特征,特征融合后利用SkipGram进行训练。
Matrix Factorization:经典的全局方法,make use of co-occurance counts
Glove: 同时结合全局性(如MF)和局部性(如SkipGram),使用加权的最小平方误差。Use weighted least square error.
问题: CBOW和Skip-Gram哪个更好?
不一定,但一般Skip-Gram效果好于CBOW:
用来衡量两个概率分布的相似度/差异性:KL Divergence(Kullback–Leibler divergence,KL散度)。
对于概率分布P(x)和Q(x):
D
(
P
∣
∣
Q
)
=
∑
P
(
x
)
l
o
g
(
P
(
x
)
/
Q
(
x
)
)
D(P||Q)= \sum P(x)log(P(x)/Q(x))
D(P∣∣Q)=∑P(x)log(P(x)/Q(x))
P(x)和Q(x)相似性越高,KL散度越小。
问题:对corpus中出现频率高和低的词学习到的词向量有什么问题?
从统计学角度,出现次数多的可信度更高,对于每个词的词向量可以计算概率分布 N ( μ , σ ) N(\mu,\sigma) N(μ,σ)。通过计算两个词向量分布之间的KL散度,判断相似性高低。
解决一词多义问题。
考虑上下文:ELMo, BERT, XLNet。
在机器学习,数据挖掘,NLP领域中,对于文本,有哪些固定的基本特征?下面来总结一下。
Text Features:
基于词向量的特征工程主要包括以下几个方面:
这里,联合多种特征工程来构造新的样本表示,主要通过以下三种特征工程方法:
基于人工定义的特征,可以有:
欢迎各位关注我的个人公众号:HsuDan,我将分享更多自己的学习心得、避坑总结、面试经验、AI最新技术资讯。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。