-译文,原文链接:Word to Vectors — Natural Language Processing

为什么NLP比较难?

计算机以清晰、准确并且通常是结构化的程序语言与人类交互。然而,人类的语言通常不是那么清晰。有同义词、反义词、反义词还有一些单词在用做名词和动词会表现出不同的含义。这些字词在自然语言中具有上下文相关的意义,人类可以理解和区分它们,而机器则不能。这就是使NLP成为AI中最困难,最有趣的任务之一的原因。

使用NLP可以完成什么工作?

通过使计算机能够“理解”人类语言,可以完成一些任务。我在本文中用于检测拼写和语法的应用就是一个实例。下面这些任务也是NLP正在研究的:

  1. 拼写和语法检测
  2. 同义词反义词的寻找
  3. 从文档和网站提取信息
  4. 理解语句、文档的信息
  5. 机器翻译(例如从英语到德语的翻译)
  6. 回答问题和完成任务(例如安排日程)

如何标识单词?

首先,我们要能够将单词作为机器学习模型的输入,一种表示单词的数学方法是将其表示为向量。英文中大约共有1300万单词,但是他们中的很多是相关的,比如spouse和partner,hotel和motel。所以我们是否有必要为1300万个单词分别使用向量表示?
当然不是,我们必须寻找一个远小于1300万的并且足以编码语言中的所有语义的N维向量空间。我们必须对单词之间的相似与差异有所了解。我们可以通过挖掘向量和距离之间的概念寻找单词之间的异同。

基于分布相似性的表示

简单来讲,让给我们以"bank"为例,它的一种解释是金融机构,另一种是水边的陆地。如果一个句子中bank出现在钱,政府,金库,利率等附近,那么我们就能理解其应该是前者的含义。相反,如果相邻词汇是水,岸边,河和陆地,含义就是后者。我们能够利用这个概念去处理多义词河同义词并让模型学习。

Word2Vec

我们如何建立简单,可扩展,快速训练的模型,这些模型可以运行数十亿个单词,从而产生非常好的单词表示形式?让我们研究一下Word2Vec模型以找到答案。
Word2Vec是一组模型,可帮助推导单词及其上下文单词之间的关系。
让我们看一下Word2Vec中的两个重要模型:Skip-grams和CBOW

skip-grams

在这里插入图片描述
在Skip-gram模型中,我们采用一个中心词和一个上下文单词的窗口然后在某个窗口大小下预测中心词汇的上下文单词。所以我们的模型可能会定义一个分布-某个单词出现在中心词上下文的概率并且我们要选择用向量表示以最大化这种概率。

Continuous Bag of Words model (CBOW)

抽象来讲,此模型与skip-gram相反。在CBOW中,预测中心词采用求周围词汇向量之和来实现。
这就涉及到了将单词转换为向量。但是哪里用到了"学习"呢?实际上,我们采用一些随机初始化的单词向量。预测模型通过最小化损失函数来学习向量。在Word2Vec中,这将通过前馈神经网络和随机梯度下降法等优化方法实现。也有基于计数的模型,它构建了语料库中单词的共现计数矩阵,形成了一个行对应单词,列对应上下文的巨大矩阵。上下文矩阵当然会很大,因为它是将所有单词进行组合。对矩阵采用SVD(奇异值分解)解决大小问题,可以使得矩阵减小的同时保留最多的信息。
在这里插入图片描述
总而言之,将单词转换为向量,深度学习算法可以将其转换为向量并进行处理,这有助于形成对自然语言的更好理解。小说家EL Doctorowow在他的《比利·巴斯盖特(Billy Bathgate)》一书中颇具诗意地表达了这一想法:

就像数字就是语言,就像语言中的所有字母都变成数字一样,所以每个人都以相同的方式理解。您会丢失字母的声音,无论它们是单击,弹出还是触摸味觉,还是呜呜呜呜,所有可能被误读或与您的音乐或您脑海中所迷惑的图片有关的东西都消失了以及重音符号,您将完全了解新的知识,数字的语言,每个人都变得像墙上的文字一样清晰。因此,正如我所说,读取数字需要一定的时间。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐