概要
词嵌入是单词的一种数值化表示方式,一般情况下会将一个单词映射到一个高维的向量中(词向量)来代表这个单词。例如我们将: 机器学习’表示为 [1,2,3]
词向量可以用余弦相似度来计算单词之间的距离
- 余弦相似度
TF-IDF
- 用于信息检索和数据挖掘常用算法,挖掘文章中的关键词,而且算法简洁高效,工业上用于对文本数据清洗
- TF Term Frequency 词频
- IDF Inverse Document Frequency 逆文档频率
I D F ( 单词 ) = l o g 语料库的文档总数 包含单词的文档总数+1 IDF(\text{单词})=log\frac{\text{语料库的文档总数}}{\text{包含单词的文档总数+1}} IDF(单词)=log包含单词的文档总数+1语料库的文档总数
- 计算步骤
- 计算词频
- 计算逆文档频率 越常见越接近0
- 计算TF-IDF 词频*逆文档频率
TF-IDF 与单词在文档中出现频率成正比 和单词在语料库中出现频率成反比
- 优点
简单快捷,便于理解
- 缺点
单词在文档中的重要程度不全在出现频率上,有的单词出现很少但是很重要,考虑用词嵌入
词嵌入
词嵌入实际上是一种将各个单词在预定的向量空间中表示为实值向量的一类技术。每个单词被映射成一个向量(初始随机化),并且这个向量可以通过神经网络的方式来学习更新。因此这项技术基本集中应用与深度学习领域。
关键点在于如何用密集的分布式向量来表示每个单词。这样做的好处在于与one-hot这样的编码对比,使用词嵌入表示的单词向量往往只有几十或者几百个维度。极大的减少了计算和储存量。
将词汇表中的每个词与分布式词特征向量相关联…特征向量表示词的不同方面特征,每个词与向量空间中的点相关联。特征的数量…远小于词汇的大小
— A Neural Probabilistic Language Model, 2003.
分布式的词向量表示方式依赖于单词的使用习惯,这就使得具有相似使用方式的单词具有相似的表示形式。
词嵌入技术
- Embedding Layer
- Word2Vec
- GloVe
Word2Vec模型
word2vec 核心思想:当前单词是从周边单词的隐含表达
word2vec 包含两个模型
-
SG(skip-gram) :输入一个词输出这个词周边的词
-
CBOW(Continuous-Bag-of-Word):输入一组词希望能通过这组词得到中间某个词的预测