主要内容

wordEmbedding

词嵌入模型映射词到向量和回来

描述

单词嵌入,由word2vec、GloVe和fastText库推广,它将词汇表中的单词映射到真实的向量。

向量试图捕获单词的语义,以便相似的单词具有相似的向量。一些嵌入还捕获单词之间的关系,例如“国王之于王后,犹如男人之于女人”。在向量形式中,这个关系是国王-男人+女人=女王

创建

通过加载预训练的嵌入来创建单词嵌入fastTextWordEmbedding,从文件中读取嵌入,使用readWordEmbedding,或通过训练一个嵌入使用trainWordEmbedding

属性

全部展开

字嵌入的维度,指定为正整数。

例子:300

模型中的唯一单词,指定为字符串向量。

数据类型:字符串

对象的功能

vec2word 映射嵌入向量到单词
word2vec 将字映射到嵌入向量
isVocabularyWord 测试word是否是单词嵌入或编码的成员
writeWordEmbedding 编写word嵌入文件

例子

全部折叠

下载及安装文本分析工具箱™模型快速文本英语160亿令牌词嵌入万博1manbetx支持包。

类型fastTextWordEmbedding在命令行。

fastTextWordEmbedding

如果文本分析工具箱模型快速文本英语160亿令牌词嵌入万博1manbetx支持包未安装,则该函数在外接程序资源管理器中提供到所需支持包的链接。要安装支持包,请单击链接,然后万博1manbetx单击安装.通过输入检查安装是否成功emb = fasttextwordem寝料在命令行。

emb = fasttextwordem寝料
emb = worddembedbedwith properties:维数:300词汇:[1×1000000 string]

如果安装了所需的支持包,则函数返万博1manbetx回wordEmbedding对象。

加载一个预训练的词嵌入使用fastTextWordEmbedding.此功能需要文本分析工具箱™模型快速文本英语160亿令牌词嵌入万博1manbetx支持包。如果没有安装此支万博1manbetx持包,则该函数将提供下载链接。

emb = fasttextwordem寝料
emb = worddembedbedwith properties:维数:300词汇:[1×1000000 string]

将单词“意大利”、“罗马”和“巴黎”映射到使用的向量word2vec

意大利= e2vec (emb;“意大利”);* * * * * * * * * * * *“罗马”);巴黎= word2vec(emb,“巴黎”);

映射向量意大利-罗马+巴黎用一个词vec2word

Word = vec2word(emb,意大利-罗马+巴黎)
字= "法国"

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

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

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单}

阅读单词嵌入的例子。这个模型是通过分析维基百科的文本得到的。

文件名=“exampleWordEmbedding.vec”;emb = readwordem寝料(文件名)
词汇:["utc" "第一个" "新" "两个" "时间"…]

探索词嵌入使用word2vec而且vec2word

King = word2vec(emb;“王”);* * * * * * * * * * * * * * * *“男人”);* * * * * * * * * * * * *;“女人”);Word = vec2word(emb,国王-男人+女人)
Word = "queen"

训练词嵌入,并将其写入文本文件。

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

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

训练单词嵌入使用trainWordEmbedding

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

将词嵌入写入文本文件。

文件名=“exampleSonnetsEmbedding.vec”;writeWordEmbedding (emb文件名)

阅读单词嵌入文件使用readWordEmbedding

emb = readwordem寝料(文件名)
词汇:["你的" "你" "爱" "你" "做"…]

版本历史

在R2017b中引入