想了解NLP 绕不开的第一个概念就是词向量。
什么叫词向量,他又是干什么的呢?怎么最通俗易懂的描述词向量
呢?
要了解啥是词向量
,首先要从NLP处理流程说起。
字典序
文本对于计算机来说就是一个个鬼画符,计算机看不懂也没办法直接处理
因此往往NLP任务中的第一步就是:
将
汉字
、词语
转换为计算机能看懂的数字
设想一下,如何将文本描述为数字呢?
其实最简单直接的一个方法就是将文本转换为字典序
,也就是说这个汉字
是字典中的第几个
就像Abandon
是英语字典中永远的第1
个字母一样
那么Abandon
就可以用数字1
来表示
依此类推,happy
可能对应第着2345
个词
通过类似的操作,就初步完成了让计算机看懂文字的第一步
这种方式也被称为标签编码
或者整数编码
one-hot编码 (独热编码)
我们已经能够将文本转换为字典序,但对于NLP而言还是无法直接使用字典序
因为字典序的整数之间存在自然排序关系
:后出现词的字典序 > 先出现词的字典序
但实际上字词之间并不存在
对应的自然排序关系
,每个字词理应等价
因此如果直接使用字典序
会让模型假设字词间存在自然的次序关系,从而导致结果不佳或得到意外的结果
这种情况下,就要对整数表示使用 One-Hot
编码了。One-Hot 编码会去除整数编码,并为每个整数值都创建一个二值变量。
在颜色(color)的示例中,有 3 种类别,因此需要 3 个二值变量进行编码。对应的颜色位置上将被标为“1”,其它颜色位置上会被标为“0”。