• 自然语言处理2(文本的表示)


    NLP任务中我们要把文字表示成计算机能够运算的数字或向量。主要分为两类:一类是离散表示,另一类是分布式表示。

    离散表示有三种方法:

    ① One-hot编码

    在一个语料库中,给每个字、词编码一个索引,根据索引进行one-hot表示。

    假定给定词典:[我们,去,爬山,今天,你们,昨天,跑步]

    每个单词的表示为:

    我们:[1,0,0,0,0,0,0]

    爬山:[0,0,1,0,0,0,0]

    注意:把每个词表示为一个长向量,长度是词典长度,不同词的向量表示互相正交(正交是两向量的内积等于0),无法表达单词与单词之间的相似程度。词向量只能反映某个词是否在句子中出现过,无法衡量不同词的重要程度。

    ② Boolean Representation

    一段文本只考虑用一个装着这些词的袋子来表示,只在乎这个词在语料库中有没有出现过。不考虑文法以及词的顺序。

    假定给定词典:[我们,又,去,爬山,今天,你们,昨天,跑步]

    表示“我们 今天 去 爬山”句子为:[1,0,1,1,1,0,0,0]

    ③ Count-based Representation

    一段文本只考虑用一个装着这些词的袋子来表示,不考虑文法以及词的顺序,只关注每次词出现的次数。

    假定给定词典:[我们,又,去,爬山,今天,你们,昨天,跑步]

    表示“你们 又 去 爬山 又 去 跑步”句子为:[0,2,2,1,0,1,0,1]

    注意:② ③ 可以统称为词袋表示,忽略词的位置信息,词的位置不一样语义会有很大的差别。

    分布式表示

    word embedding指的是将词转化为一种分布式表示,又称词向量。它可以表示词之间存在的相似关系,词向量能够包含更多信息,并且每一维都有特定的含义。

    怎么学习词向量?后续章节将会继续给出

  • 相关阅读:
    JavaScript到底应不应该加分号?JavaScript自动插入分号规则详解
    html相关
    【JavaSE】类与对象
    STM32 串口接收中断被莫名关闭
    Android项目更新依赖和打包步骤和问题汇总
    Vue 学习笔记
    Arduino - 继电器
    神经网络模型预测控制,神经网络模型应用实例
    WIN10专业版64位21H2正式版19044.1826
    Element UI 表格常用改造(表头添加注释、翻页连续序号【内含前端分页】)
  • 原文地址:https://blog.csdn.net/Vicky_xiduoduo/article/details/127092222