TensorFlow与自然语言处理应用
上QQ阅读APP看书,第一时间看更新

第4章 词嵌入

根据维基百科,词嵌入(Word Embedding)被定义为自然语言处理(NLP)中的一组语言建模和特征学习技术的集体名称,其中来自词汇表的单词或短语被映射成实数向量。

词嵌入是一种将文本中的词转换为数字向量的方法,我们为了使用标准机器学习算法来对它们进行分析,就需要把这些被转换成数字的向量以数字的形式作为输入。词嵌入过程就是把一个维数为所有词数量的高维空间嵌入到一个维数低得多的连续向量空间中,每个单词或词组被映射为实数域上的向量,词嵌入的结果就是生成了词向量。

我们知道,有一种被称为One-Hot编码(被称为独热码或独热编码)的词向量。One-Hot编码是最基本的向量方法。回顾一下,One-Hot编码通过词汇表大小的向量表示文本中的词,其中只有对应于该词的项是1而所有其他项都是零。

One-Hot编码的主要问题是无法表示词之间的相似性。在任何给定的语料库中,我们会期望诸如(狗,猫)、(碗,筷子)之类的词对具有一些相似性。使用点积计算向量之间的相似性。点积是向量元素之间元素乘法的总和。在One-Hot编码向量的情况下,语料库中任何两个词之间的点积总是为零。

为了克服One-Hot编码的局限性,NLP领域借用了信息检索(IR)技术,使用文档作为上下文来对文本进行矢量化。值得注意的技术是TF-IDF(https://en.wikipedia.org/wiki/Tf%E2%80%93idf)、潜在语义分析(LSA,https://en.wikipedia.org/wiki/Latent_semantic_analysis)和主题建模(https://en.wikipedia.org/wiki/Topic_model)。然而,这些技术获取到略微不同的、以文档为中心的语义相似性。

词嵌入技术的开发始于2000年。词嵌入与以前基于IR的技术的不同之处在于,它们使用词作为其上下文,从人类理解的角度来看,这得到了更自然的语义相似性形式。今天,词嵌入是各种NLP任务中文本向量化的首选技术,例如词性标注、命名实体识别、文本分类、文档聚类、情感分析、文档生成、问答系统等。

在本章中,我们将对分布式表示、Word2Vec的两种模型、两种模型对比、Word2Vec扩展模型和GloVe模型进行探讨和分析,最后我们介绍利用相关模型进行句子分类的案例。这些词嵌入技术已经被证明更有效,且已在深度学习和NLP领域中得以广泛采用。