主要内容

doc2sequence

将文档转换为序列进行深度学习

描述

例子

序列= doc2sequence (内附文档返回一个单元格数组,该数组包含中单词的数值索引文档由编码字给出内附.的每个元素序列是对应文档中单词索引的矢量。

例子

序列= doc2sequence (循证文档返回单词嵌入向量的单元格数组文档由词embedding给出循证.的每个元素序列是对应文档中单词的嵌入向量的矩阵。

例子

序列= doc2sequence (___名称,值使用一个或多个名称-值对参数指定附加选项。

例子

全部折叠

加载工厂报告数据并创建一个tokenizedDocument数组中。

文件名=“factoryReports.csv”;data = readtable(文件名,“TextType”“字符串”);textData = data.Description;文件= tokenizedDocument (textData);

创建一个字编码。

内附= wordEncoding(文件);

将文档转换为单词索引序列。

序列= doc2sequence (enc,文档);

查看前10个序列的大小。每个序列都是1乘1年代向量,年代表示序列中单词索引的个数。因为序列是填充的,年代是恒定的。

序列(1:10)
ans =10×1单元阵列{[0 0 0 0 0 0 0 1 2 3 4 5 6 7 8 9 10]}{[0 0 0 0 0 0 2 16 17 18 19 11 12 13 14 15 10]}{[0 0 0 0 0 0 20 2 7 7 21日22日23日24日25日26日10]}{[0 0 0 0 0 0 0 0 0 0 0 27 28 6 7 18 10]}{[0 0 0 0 0 0 0 0 0 0 0 0 29 30 7 31 10]}{[0 0 0 0 0 0 0 32 33 6 7 34 35 36 37 38 10]}{[0 0 0 0 0 0 0 0 0 39 40 36 41 6 7 42 10]}{[0 0 0 0 0 0 0 0 43 44 22 45 46 47岁7 48 10]} {[ 0 0 0 0 0 0 0 0 0 0 49 50 17 7 51 48 10]} {[0 0 0 0 52 8 53 36 54 55 56 57 58 59 22 60 10]}

使用预训练的词嵌入将标记化的文档数组转换为词向量序列。

加载一个预先训练好的词嵌入fastTextWordEmbedding函数。该功能需要文本分析工具箱™模型fastText English的160亿令牌词嵌入金宝app支持包。如果没有安装此支金宝app持包,则该函数提供一个下载链接。

emb = fastTextWordEmbedding;

加载工厂报告数据并创建一个tokenizedDocument数组中。

文件名=“factoryReports.csv”;data = readtable(文件名,“TextType”“字符串”);textData = data.Description;文件= tokenizedDocument (textData);

将文档转换为单词向量序列doc2sequence.的doc2sequence函数,默认情况下,左填充序列以使其具有相同的长度。当使用高维词嵌入转换大型文档集合时,填充可能需要大量内存。若要防止该函数填充数据,请设置“PaddingDirection”选项“没有”.控件也可以控制填充的数量“长度”选择。

序列= doc2sequence (emb、文档“PaddingDirection”“没有”);

查看前10个序列的大小。每个序列D——- - - - - -年代矩阵,D是嵌入维数,和年代表示序列中单词向量的个数。

序列(1:10)
ans =10×1单元阵列{300×10单}{300×11单}{300×11单}{300×6单}{300×5单}{300×10单}{300×8单}{300×9单}{300×7单}{300×13单}

使用预训练的单词嵌入将文档集合转换为单词向量序列,并将序列填充或截断到指定的长度。

加载一个预先训练好的词嵌入使用fastTextWordEmbedding.该功能需要文本分析工具箱™模型fastText English的160亿令牌词嵌入金宝app支持包。如果没有安装此支金宝app持包,则该函数提供一个下载链接。

emb = fastTextWordEmbedding;

加载工厂报告数据并创建一个tokenizedDocument数组中。

文件名=“factoryReports.csv”;data = readtable(文件名,“TextType”“字符串”);textData = data.Description;文件= tokenizedDocument (textData);

将文档转换为单词向量序列。指定左填充或截断序列以使其长度为100。

序列= doc2sequence (emb、文档“长度”, 100);

查看前10个序列的大小。每个序列D——- - - - - -年代矩阵,D是嵌入维数,和年代是序列中单词向量的个数(序列长度)。因为序列长度是指定的,年代是恒定的。

序列(1:10)
ans =10×1单元阵列{300×100单}{300×100单}{300×100单}{300×100单}{300×100单}{300×100单}{300×100单}{300×100单}{300×100单}{300×100单}

输入参数

全部折叠

输入字嵌入,指定为awordEmbedding对象。

输入字编码,指定为awordEncoding对象。

输入文档,指定为tokenizedDocument数组中。

名称-值参数

指定可选的用逗号分隔的对名称,值参数。的名字参数是name和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:“长度”、“最短的截断序列,使其与最短序列的长度相同。

未知词的行为,指定为由逗号分隔的对“UnknownWord”以及以下其中之一:

  • “丢弃”-如果一个单词不在输入映射中,那么丢弃它。

  • “南”—如果一个单词不在输入映射中,则返回a价值。

提示

如果您正在创建序列来训练一个带有单词嵌入的深度学习网络,请使用“丢弃”.不要使用序列与值,因为这样做会通过网络传播错误。

填充方向,指定为由“PaddingDirection”以及以下其中之一:

  • “左”- Pad序列在左边。

  • “对”- Pad序列在右边。

  • “没有”-不要填充序列。

提示

当使用高维词嵌入转换大量数据集合时,填充可能需要大量内存。为防止该函数添加过多的填充,请设置“PaddingDirection”选项“没有”或一组“长度”到一个更小的值。

填充值,指定为由“PaddingValue”和一个数值标量。不要用?填充序列,因为这样做会通过网络传播错误。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

序列长度,指定为由“长度”以及以下其中之一:

  • “最长”- Pad序列与最长序列长度相同。

  • “最短”—截断序列,使其长度与最短序列相同。

  • 正整数-填充或截断序列以使其具有指定的长度。该函数截断右边的序列。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|字符|字符串

输出参数

全部折叠

输出序列,作为单元格数组返回。

对于单词嵌入输入,则th元素序列一个向量的矩阵是否对应于输入文档。

对于字编码输入,则th元素序列是一个向量的字编码索引对应的输入文档。

提示

  • 当使用高维词嵌入转换大量数据集合时,填充可能需要大量内存。为防止该函数添加过多的填充,请设置“PaddingDirection”选项“没有”或一组“长度”到一个更小的值。

介绍了R2018b