one-hot向量与word2vec

one-hot向量与word2vec

one-hot向量

1.1 one-hot编码

  什么是one-hot编码?one-hot编码,又称独热编码、一位有效编码。其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都有它独立的寄存器位,并且在任意时候,其中只有一位有效。举个例子,假设我们有四个样本(行),每个样本有三个特征(列),如图:    img

上图中我们已经对每个特征进行了普通的数字编码:我们的feature_1有两种可能的取值,比如是男/女,这里男用1表示,女用2表示。那么one-hot编码是怎么搞的呢?我们再拿feature_2来说明:

这里feature_2 有4种取值(状态),我们就用4个状态位来表示这个特征,one-hot编码就是保证每个样本中的单个特征只有1位处于状态1,其他的都是0。

      img

对于2种状态、三种状态、甚至更多状态都是这样表示,所以我们可以得到这些样本特征的新表示:

      img

one-hot编码将每个状态位都看成一个特征。对于前两个样本我们可以得到它的特征向量分别为

     img

1.2 one-hot在提取文本特征上的应用

  one hot在特征提取上属于词袋模型(bag of words)。关于如何使用one-hot抽取文本特征向量我们通过以下例子来说明。假设我们的语料库中有三段话:

    我爱中国

    爸爸妈妈爱我

    爸爸妈妈爱中国

我们首先对预料库分离并获取其中所有的词,然后对每个此进行编号:

    1 我; 2 爱; 3 爸爸; 4 妈妈;5 中国

然后使用one hot对每段话

  • 23
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
"one-hot" 和 "word2vec" 是常用的文本编码方式,用于将文本数据转换为计算机可以理解的数字形式。 1. "one-hot" 编码:将每个单词表示为一个向量向量的维度等于词汇表的大小,每个维度对应一个单词。在一个向量中,只有对应的单词位置为1,其他位置为0。例如,假设我们有一个包含3个单词的词汇表:{"cat", "dog", "bird"},那么 "cat" 可以被表示为 [1, 0, 0],"dog" 可以被表示为 [0, 1, 0],"bird" 可以被表示为 [0, 0, 1]。这种编码方式的缺点是向量维度较高,而且每个单词之间的关系无法被反映出来。 2. "word2vec" 编码:将每个单词表示为一个固定长度的向量向量的维度通常较低(例如100维),并且每个维度对应一个语义概念。这种编码方式可以通过训练模型自动学习每个单词之间的关系,从而更好地反映单词的语义信息。例如,可以使用"word2vec"模型将"cat"和"dog"这两个单词编码为向量[0.1, -0.2, 0.5]和[0.2, -0.3, 0.3],这两个向量在第一个维度上比较接近,可以表明它们在语义上比较相似。 举例来说,假设我们有一个句子:"cat dog bird",使用"one-hot"编码后,它可以被表示为一个矩阵: ``` [[1, 0, 0], [0, 1, 0], [0, 0, 1]] ``` 而使用"word2vec"编码后,可以得到每个单词的向量表示: ``` cat: [0.1, -0.2, 0.5] dog: [0.2, -0.3, 0.3] bird: [0.3, -0.1, 0.4] ``` 这些向量可以被组合成一个矩阵,作为整个句子的表示。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值