主要内容

doc2sequence

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

描述

例子

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

例子

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

例子

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

例子

全部折叠

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

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

创建一个单词编码。

内附= wordEncoding(文件);

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

序列= doc2sequence (enc,文档);

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

序列(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函数。此功能需要文本分析工具箱™模型用于快速文本英语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.此功能需要文本分析工具箱™模型用于快速文本英语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单}

输入参数

全部折叠

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

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

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

名称-值对的观点

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

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

未知字行为,指定为逗号分隔对组成“UnknownWord”以及以下其中之一:

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

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

提示

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

填充方向,指定为逗号分隔对组成“PaddingDirection”以及以下其中之一:

  • “左”—左侧填充序列。

  • “对”—右侧填充序列。

  • “没有”—请勿填充序列。

提示

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

填充值,指定为逗号分隔对,由“PaddingValue”和一个数字标量。不要用,因为这样做可能会通过网络传播错误。

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

序列长度,指定为逗号分隔对,由“长度”以及以下其中之一:

  • “最长”—添加与最长序列相同长度的序列。

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

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

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

输出参数

全部折叠

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

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

对于字编码输入,th元素序列单词编码索引的向量是否对应于输入文档。

提示

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

介绍了R2018b