前言:本文总结了介绍了词向量的两种表示方式:one-hot表示和分布式表示
目录
one-hot表示(离散式表示)
分布式表示
分布式表示的优点:
分布式表示-word2vec
在自然语言处理任务中,首先要考虑字、词如何在计算机中表示,通常有两种表示方式:
one-hot表示和分布式表示。
举个例子:
苹果 [0,0,0,1,0,0,0,0,···] 。
one-hot相当于给每个词分配一个id,这样就表示不能展示词与词之间的关系,且特征空间非常大。
word embedding指的是将词转化成一种分布式表示,又称词向量。
在自然语言处理领域,使用上下文描述一个词语的语义是一个常见且有效的做法。2013年,Mikolov提出的经典word2vec算法就是通过上下文来学习语义信息。
word2vec包含两个经典模型:CBOW(Continuous Bag-of-Words)和Skip-gram。
举个例子——CBOW
假设有一个句子“Pineapples are spiked and yellow”,它在CBOW中的推理如下:
1.先在句子中选定一个中心词,并把其他词作文这个中心词的上下文。如上图CBOW表示,把把“spiked”作为中心词,把“Pineapples、are、and、yellow”作为中心词的上下文。
2.在学习过程中,使用上下文的词向量推理中心词,这样中心词的语义就被传递到上下文的词向量中,如“spiked → pineapple”,从而达到学习语义信息的目的。
举个例子——Skip-gram
假设有一个句子“Pineapples are spiked and yellow”,它在Skip-gram中的推理如下:
1.在Skip-gram中,同样先选定一个中心词,并把其他词作为这个中心词的上下文。如上图Skip-gram所示,把“spiked”作为中心词,把“Pineapples、are、and、yellow”作为中心词的上下文。
2.不同的是,在学习过程中,使用中心词的词向量去推理上下文,这样上下文定义的语义被传入中心词的表示中,如“pineapple → spiked”, 从而达到学习语义信息的目的。
本文摘自百度飞桨的nlp课程,飞桨AI Studio - 人工智能学习与实训社区 (baidu.com)。
一起加油!