主要内容

doc2sequence

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

描述

例子

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

例子

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

例子

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

例子

全部折叠

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

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

创建一个单词编码。

enc = worddencoding(文档);

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

Sequences = doc2sequence(enc,documents);

查看前10个序列的大小。每个数列都是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]}{52 [0 0 0 0 8 53 36 54 55 56 57 58 59 22 60 10]}

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

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

emb = fasttextwordem寝料;

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

文件名=“factoryReports.csv”;数据= readtable(文件名,“TextType”“字符串”);textData = data.Description;documents = 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 = fasttextwordem寝料;

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

文件名=“factoryReports.csv”;数据= readtable(文件名,“TextType”“字符串”);textData = data.Description;documents = 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,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

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

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

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

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

提示

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

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

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

  • “对”—右侧为Pad序列。

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

提示

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

填充值,指定为逗号分隔的对,由“PaddingValue”和一个数值标量。不垫序列用,因为这样做会在网络中传播错误。

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

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

  • “最长”-填充序列具有与最长序列相同的长度。

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

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

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

输出参数

全部折叠

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

对于单词嵌入输入,使用的第Th元素序列向量矩阵是否对应于输入文档。

对于字编码输入,使用的第Th元素序列向量的字编码索引是否对应于输入文档。

提示

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

版本历史

在R2018b中引入