主要内容

trainWordEmbedding

训练词嵌入

描述

例子

循证= trainWordEmbedding (文件名使用存储在文本文件中的训练数据训练词嵌入文件名.该文件是一个以UTF-8存储的文档集合,每行一个文档,单词用空格分隔。

例子

循证= trainWordEmbedding (文档训练词嵌入使用文档创建一个临时文件writeTextDocument,然后使用临时文件训练嵌入。

例子

emb = trainwordem(___名称,值使用一个或多个名称-值对参数指定其他选项。例如,“维度”,50岁将单词嵌入维数指定为50。

例子

全部折叠

使用示例文本文件训练一个维度为100的单词嵌入sonnetsPreprocessed.txt.这个文件包含了莎士比亚十四行诗的预处理版本,每行有一首十四行诗,单词之间用一个空格隔开。

文件名=“sonnetsPreprocessed.txt”;emb = trainwordem寝料(文件名)
训练:100%损失:3.26708剩余时间:0小时0分钟。
词汇:["你的" "你" "爱" "你" "做"…]

查看文本散点图中嵌入的单词tsne

单词= emb.词汇;V = word2vec(emb,words);XY = tsne(V);textscatter (XY,话说)

图中包含一个轴对象。axis对象包含一个textscatter类型的对象。

使用示例数据训练单词嵌入sonnetsPreprocessed.txt.这个文件包含莎士比亚十四行诗的预处理版本。该文件每行包含一首十四行诗,用空格分隔单词。从中提取文本sonnetsPreprocessed.txt,以换行符将文本分割为文档,然后对文档进行标记。

文件名=“sonnetsPreprocessed.txt”;str = extractFileText(文件名);textData = split(str,换行符);documents = tokenizedDocument(textData);

训练单词嵌入使用trainWordEmbedding

emb = trainWordEmbedding(文档)
训练:100%损失:3.15383剩余时间:0小时0分钟。
词汇:["你的" "你" "爱" "你" "做"…]

可视化单词嵌入文本散点图使用tsne

单词= emb.词汇;V = word2vec(emb,words);XY = tsne(V);textscatter (XY,话说)

图中包含一个轴对象。axis对象包含一个textscatter类型的对象。

加载示例数据。该文件sonnetsPreprocessed.txt包含莎士比亚十四行诗的预处理版本。该文件每行包含一首十四行诗,用空格分隔单词。从中提取文本sonnetsPreprocessed.txt,以换行符将文本分割为文档,然后对文档进行标记。

文件名=“sonnetsPreprocessed.txt”;str = extractFileText(文件名);textData = split(str,换行符);documents = tokenizedDocument(textData);

指定单词嵌入维数为50。若要减少模型丢弃的单词数,请设置“MinCount”为3。若要训练更长的时间,请将epoch的数量设置为10。

emb = trainwordem寝料(文档,...“维度”, 50岁,...“MinCount”3,...“NumEpochs”, 10)
训练:100%损失:2.75878剩余时间:0小时0分钟。
词汇["你的" "你" "爱" "你" "做"…]

查看文本散点图中嵌入的单词tsne

单词= emb.词汇;V = word2vec(emb, words);XY = tsne(V);textscatter (XY,话说)

图中包含一个轴对象。axis对象包含一个textscatter类型的对象。

输入参数

全部折叠

文件的名称,指定为字符串标量或字符向量。

数据类型:字符串|字符

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

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

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

例子:“维度”,50岁将单词嵌入维数指定为50。

字嵌入的维度,指定为逗号分隔的对,由“维度”和一个非负整数。

例子:300

上下文窗口的大小,指定为逗号分隔的对,由“窗口”和一个非负整数。

例子:10

模型,指定为逗号分隔的对,由“模型”而且“skipgram”(跳过克)或“cbow”(连续bag-of-words)。

例子:“cbow”

因素来确定单词丢弃率,指定为由逗号分隔的对组成“DiscardFactor”一个正标量。该函数以概率从输入窗口中丢弃一个单词1√(t/f) - t/f其中f是单词的ungram概率,和tDiscardFactor.通常情况下,DiscardFactor在的范围内1 e - 3通过1 e-5

例子:0.005

损失函数,指定为逗号分隔的对,由“LossFunction”而且“ns”(负采样),“海关”(hierarchical softmax),或“softmax”(softmax)。

例子:“海关”

负抽样损失函数的负抽样数,指定为逗号分隔的对,由“NumNegativeSamples”一个正整数。此选项仅在以下情况下有效LossFunction“ns”

例子:10

训练的epoch数,指定为逗号分隔的对,由“NumEpochs”一个正整数。

例子:10

嵌入中要包含的最小字数,指定为逗号分隔的对,由“MinCount”一个正整数。该函数丢弃出现小于的单词MinCount从训练数据中提取词汇量。

例子:10

子词n-grams的包含范围,指定为逗号分隔的对,由“NGramRange”一个由两个非负整数组成的向量(最小最大).如果你不想使用n-grams,那么设置“NGramRange”[0 0]

例子:10 [5]

初始学习速率,指定为逗号分隔的对,由“InitialLearnRate”一个正标量。

例子:0.01

用于更新学习速率的速率,指定为逗号分隔的对,由“UpdateRate”一个正整数。学习速率每步线性地递减到零N的单词,NUpdateRate

例子:50

详细级别,指定为逗号分隔的对,由“详细”和以下其中之一:

  • 0 -不显示详细输出。

  • 1 -显示进度信息。

例子:“详细”,0

输出参数

全部折叠

输出字嵌入,返回为wordEmbedding对象。

更多关于

全部折叠

语言的注意事项

文件输入到trainWordEmbedding函数要求用空格分隔单词。

对于包含非英语文本的文件,您可能需要输入tokenizedDocument数组来trainWordEmbedding

要创建tokenizedDocument数组从预标记文本,使用tokenizedDocument函数,并设置“TokenizeMethod”选项“没有”

提示

训练算法使用函数给出的线程数maxNumCompThreads.学习如何改变MATLAB使用的线程数®,请参阅maxNumCompThreads

版本历史

在R2017b中引入