【Keras之父】DL用于Text

        用于处理序列的2种基本的深度学习算法分别是循环神经网络RNN (recurrent neural network) 和一维卷积神经网络(1D convnet)。这些算法的应用包括:

  • 文档分类和时间序列分类,比如识别文章的主题或书的作者;
  • 时间序列对比,比如估测两个文档或两支股票行情的相关程度;
  • 序列到序列的学习,比如将英语翻译成法语;
  • 情感分析,比如将推文或电影评论的情感划分为正面或负面;
  • 时间序列预测,比如根据某地最近的天气数据来预测未来天气。

     字符序列和单词序列是最常用的序列数据之一,但最常见的是单词级处理。深度学习用于NLP是将模式识别应用于单词、句子和段落。深度学习模型不会接收原始文本作为输入,只能处理数值张量。文本向量化vectorize就是将文本转换为数值张量的过程。常用方法如下:

  • 将文本分割为单词,并将每个单词转换为一个向量。
  • 将文本分割为字符,并将每个字符转换为一个向量。
  • 提取单词或字符的 n-gram,并将每个 n-gram 转换为一个向量。n-gram 是多个连续单词或字符的集合(n-gram 之间可重叠)

================================================================

       

        词袋是一种不保存顺序的分词方法(生成的标记组成一个集合,而不是一个序列,舍弃了句子的总体结构),因此它往往被用于浅层的语言处理模型,而不是深度学习模型。提取 n-gram 是一种特征工程,深度学习不需要这种死板而又不稳定的方法,并将其替换为分层特征学习。在使用轻量级的浅层文本处理模型时(比如 logistic 回归和随机森林)n-gram 是一种功能强大、不可或缺的特征工程工具

===============================================================

  1. 标记token --- 将文本分解而成的单元(单词、字符或n-gram
  2. 分词tokenization ---- 将文本分解成标记的过程

===============================================================

         所有文本向量化过程都是应用某种分词方案,然后将数值向量与生成的标记相关联。这些向量组合成序列张量,被输入到DNN中。将向量与标记相关联的方法有很多种。其中2种主要的方法:one-hot 编码( one-hot encoding)与标记嵌入(token embedding, 通常只用于单词,为词嵌入)。

        1. one-hot编码

         One-hot编码是将标记转换为向量的最常用、最基本的方法。定义:将每个单词与一个唯一的整数索引相关联,然后将这个整数索引i转换为长度N的二进制向量(N是词表大小),这个向量只有第i 个元素是1,其余元素都是0,得到的向量是二进制的、稀疏的(绝大部分元素都是0)、维度很高的(维度大小等于词表的单词个数)。同时也有对应的字符级的one-hot编码。Keras的内置函数可以对原始文本数据进行单词或字符级的one-hot编码。

         One-hot编码的一种变体是所谓的one-hot散列技巧( one-hot hashing trick) ---将单词散列编码为固定长度的向量,通常用一个非常简单的散列函数来实现。如果词表中唯一标记的数量太大而无法直接处理,就可以使用这种技巧。

         优点:避免了维护一个显式的单词索引,从而节省内存并允许数据的在线编码(即在读取完所有数据之前,就可以立刻生成标记向量)

         缺点:散列冲突(hash collision即2个不同的单词可能具有相同的散列值,随后任何机器学习模型观察这些散列值,都无法区分它们所对应的单词。如果散列空间的维度大于散列的唯一标记个数,散列冲突的可能性会减少。

         2. 词嵌入word embedding

         使用密集的词向量(word vector),低维的浮点数向量。常见的词向量维度是2565121024, One-hot编码的词向量通常是 >=20000

获取词嵌入有2种方法:

         1. 在完成主任务(比如文档分类或情感预测)的同时学习词嵌入。在这种情况下,一开始是随机的词向量,然后对这些词向量进行学习,其学习方式与学习神经网络的权重相同&#x

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值