图片缩略图

快速文本英语160亿令牌词嵌入的文本分析工具箱模型

机器学习和文本深度学习的预训练英语单词嵌入模型
3.8
4个等级

16下载

更新2021年3月10

这个插件提供了一个预先训练的词嵌入和句子分类模型使用FastText用于机器学习和深度学习算法。FastText是一个开源的库,它为文本分析提供了高效和可扩展的库。有关预先训练的词向量模型的更多信息,请参见:https://fasttext.cc/docs/en/english-vectors.html

打开fasttext。mlpkginstall文件,从您的操作系统或MATLAB将启动安装过程,您有。
这个mlpkginstall文件适用于R2018a和更高版本。
使用的例子:
加载训练过的模型
emb = fastTextWordEmbedding;

根据单词嵌入找到最接近“阻抗”的10个单词
“阻抗”impedanceVec = word2vec (emb);
vec2word (emb impedanceVec 10)

ans =

10×1的字符串数组

“阻抗”
“阻抗”
“电容”
“阻抗”
“电阻”
“阻抗”
“电感”
“电压”
”的参数
“欧姆”

意见及评分(11

Jon红

@Alexander——另一个可能对你有用的选择是下载“维基新闻-300d- 1m.v ec.zip”https://fasttext.cc/docs/en/english-vectors.html然后使用readwordem寝褥将该文件读入MATLAB。这两个命令应该是等价的:

>> emb = fasttextwordem寝上;
>> emb = readwordembed ("wiki-news-300d- 1m . vech .zip");

注意,还有其他的词向量https://fasttext.cc/docs/en/english-vectors.html如果'wiki-news-300d-1M'不符合您的要求。

亚历山大年间

如Jaijun所述,安装过程中第三方资产无法加载。在出现错误时,按照链接的建议重新安装了文本工具箱,但使用此插件后问题仍然存在。不确定通常应该与谁联系support@mathworks,因为这似乎是与连接第三方金宝app资产相关的问题。如果我误解了,请原谅……但在没有其他建议的情况下,我将伸出手来支持@ mathworks。金宝app亚历克斯博士年间

@Jiajun,请联系support@mathw金宝apporks.com。他们会很高兴地帮助你,这个评论区不是一个真正的好地方来来回回,找到问题的原因。

@Peter:如果你看看Mikolov论文主题的细节,你会发现他们著名的“王”——“男人”+“女人”≈“女王”的结果而不是仅仅看最接近的词,但只有禁止某些答案返回后,包括三个字从输入。如果您以同样的方式编写代码,它将返回“皇后”,但禁用的词更复杂,需要大量微调,并很容易导致程序引入向量数据本身甚至没有的偏差。(比如著名的问题“男人是医生,女人是x。”)

想了解更多,请点击查看https://arxiv.org/abs/1905.09866

Jiajun魏

为什么我不能安装这个页面?

彼得Krammer说

我觉得有点不对劲。看看许多科学论文中最常见的例子(“国王”-“男人”+“女人”->“女王”)。

“男人”manVec = word2vec (emb);
“女人”womanVec = word2vec (emb);
“国王”kingVec = word2vec (emb);

答案= kingVec - manVec + womanVec;
答案:1 = 5
(vecnorm ((word2vec (emb res1) -回答)“)”

五个最接近的单词是:
“王”
“女王”
“君主”
“国王”
“公主”
与答案的距离:
1.1425352
1.5177922
1.7698069
1.7606366
1.7804255

(国王第一,王后第二)这使我感到惊讶。我认为,这是一个问题。你有什么建议?你确定向量长度300足够吗?
或者,我做错了什么吗?谢谢你!

ps:我测试了不同形式的单词“man”,“man”,“man”,平均0.5 * (word2vec(“man”)+ word2vec(“man”))…但第一个结果是永远不会成为女王。

@Peter,
要将单词添加到嵌入词汇表中,请按照以下步骤在读入后创建一个新的嵌入对象:
>> emb = fasttextenglishembedding();
>> vocab = emb.Vocabulary;
>> mat = word2vec(emb,vocab);
>> newvocab = [vocab "样本1" "样本2"];
>> newmat = [mat;randn (2300)];
>> newemb = wordembed (newvocab,newmat);

彼得·梅休

有没有可能在预先训练过的词汇中添加额外的单词?如果是,这是如何做到的?

Chengchao陆

MATLAB版本兼容性
创建R2018a
兼容R2018a到R2021a
平台的兼容性
窗户 macOS Linux

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!