01、词的独热(one-hot)表示

想要利用计算机对自然语言进行处理,需要解决的第一件事便是自然语言的存储和计算问题。最自然和直观的方式便是采用String类型。在String类型的表示下,自然语言的处理往往是基于规则的方式——例如文本情感分类中(褒义或贬义),可以将“喜欢”、“优秀”等设置为褒义,“厌恶”、“蛮横”设置为贬义词,最简单的分类规则可以采用文本中褒义贬义词的个数对比——出现褒义词更多的句子是褒义,反之贬义。基于规则的做法极其依赖专家的经验总结,耗费大量人力物力,也受到专家经验和规则抽象能力的限制,为了解决这个问题,基于机器学习的向量表示方法应运而生。

One-Hot表示

词的独热表示是一种最简单最直接的词的向量化表示方式。主要步骤包含两步:

  • 对需要用到的文本中所有词进行编码(假设共用N个词),每个词有唯一的下标(0~N)。
  • 根据词下标 i 生成一个长度为N的向量,除了第i位为1外,其他位都为0。

下面举个简单的例子进行说明:

How are you?

Fine, thanks. And you?

I am fine, too.

忽略大小写,我们对不同的词进行编码:

word_dict = {0: 'am', 1: 'and', 2: 'are', 3: 'fine', 4: 'how', 5: 'i', 6: 'thanks', 7: 'too', 8: 'you'}

显然,根据不同词个数(9个),我们需要构建的One-Hot向量长度为9:

编码One-Hot表示
am0[1, 0, 0, 0, 0, 0, 0, 0, 0]
and1[0, 1, 0, 0, 0, 0, 0, 0, 0]
are2[0, 0, 1, 0, 0, 0, 0, 0, 0]
fine3[0, 0, 0, 1, 0, 0, 0, 0, 0]
how4[0, 0, 0, 0, 1, 0, 0, 0, 0]
i5[0, 0, 0, 0, 0, 1, 0, 0, 0]
thanks6[0, 0, 0, 0, 0, 0, 1, 0, 0]
too7[0, 0, 0, 0, 0, 0, 0, 1, 0]
you8[0, 0, 0, 0, 0, 0, 0, 0, 1]

One-Hot表示 简要分析

优点:

  • 词向量生成方式简单、生成速度快。

缺点:

  • 每个词相互独立,无法计算词的相似度。
  • 容易导致数据稀疏问题,训练数据有限时无法学到足够的信息。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值