doc2sequence
将文档转换为序列进行深度学习
语法
描述
例子
将文档转换为Word索引序列
加载工厂报告数据并创建一个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]}
将文档转换为Word向量序列
使用预训练的单词嵌入将标记化文档数组转换为单词向量序列。
方法加载预训练的词嵌入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
对象
输入字嵌入,指定为wordEmbedding
对象。
内附
- - - - - -输入字编码
wordEncoding
对象
输入字编码,指定为wordEncoding
对象。
文档
- - - - - -输入文档
tokenizedDocument
数组
输入文档,指定为tokenizedDocument
数组中。
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字
在报价。
例子:“长度”、“最短的
截断序列,使其具有与最短序列相同的长度。
UnknownWord
- - - - - -未知词行为
“丢弃”
(默认)|“南”
未知词行为,指定为由逗号分隔的对组成“UnknownWord”
和以下其中之一:
“丢弃”
—如果一个单词不在输入映射中,则丢弃它。“南”
-如果一个单词不在输入映射中,则返回南
价值。
提示
如果您正在使用单词嵌入创建用于训练深度学习网络的序列,请使用“丢弃”
.不使用序列南
值,因为这样做会在网络中传播错误。
PaddingDirection
- - - - - -填充方向
“左”
(默认)|“对”
|“没有”
填充方向,指定为由逗号分隔的对组成“PaddingDirection”
和以下其中之一:
“左”
-左边的Pad序列。“对”
—右侧为Pad序列。“没有”
-不要填充序列。
提示
当使用高维词嵌入转换大型数据集合时,填充可能需要大量内存。为防止该函数添加过多填充,请设置“PaddingDirection”
选项“没有”
或一组“长度”
到一个更小的值。
PaddingValue
- - - - - -填充的值
0(默认)|数字标量
填充值,指定为逗号分隔的对,由“PaddingValue”
和一个数值标量。不垫序列用南
,因为这样做会在网络中传播错误。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
长度
- - - - - -序列长度
“最长”
(默认)|“最短”
|正整数
序列长度,指定为逗号分隔的对,由“长度”
和以下其中之一:
“最长”
-填充序列具有与最长序列相同的长度。“最短”
-截断序列,使其长度与最短序列相同。正整数-填充或截断序列,使其具有指定的长度。该函数截断右边的序列。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|字符
|字符串
输出参数
序列
-输出序列
单元阵列
输出序列,作为单元格数组返回。
对于单词嵌入输入,使用我的第Th元素序列
向量矩阵是否对应于我输入文档。
对于字编码输入,使用我的第Th元素序列
向量的字编码索引是否对应于我输入文档。
提示
当使用高维词嵌入转换大型数据集合时,填充可能需要大量内存。为防止该函数添加过多填充,请设置
“PaddingDirection”
选项“没有”
或一组“长度”
到一个更小的值。
版本历史
在R2018b中引入
Abrir比如
Tiene una versión modificada de este ejemplo。¿Desea abrir este ejemplo con sus modificaciones?
MATLAB突击队
Ha hecho clic en unenlace que对应一个este commando de MATLAB:
弹射突击队introduciéndolo en la ventana de commandos de MATLAB。Los navegadores web no permission comandos de MATLAB。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。