主要内容

使用文本散点图可视化Word Embeddings

此示例显示如何使用2-D和3-D T-SNE和文本散点图来可视化Word Embeddings。

Word Embeddings在词汇中的地图单词到真正的向量。矢量试图捕获单词的语义,使得类似的单词具有相似的向量。一些嵌入也捕捉了像“意大利是法国作为罗马的意大利是巴黎的关系”之间的关系。在矢量形式中,这种关系是 意大利 - 罗马 + 巴黎 = 法国

加载佩带的单词嵌入

加载嵌入使用的预磨词fasttextwordembeddings.。此功能需要文本分析工具箱™模型对于FastText英语160亿令牌字嵌入金宝app支持包。如果未安装此支持金宝app包,则该函数提供了下载链接。

emb = fasttextwordembeddings.
emb = wordembeddings与属性:维度:300词汇:[1×999994字符串]

探索嵌入使用的单词Word2vec.vec2word.。转换这些词语意大利罗马, 和巴黎使用Word2vec.

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

计算给出的矢量意大利 - 罗马+巴黎。此矢量封装了单词的语义含义意大利,没有词的语义罗马,还包括单词的语义巴黎

Vec =意大利 - 罗马+巴黎
vec =1×300单行矢量0.1606 -0.0690 0.1183 -0.0349 0.0672 0.0907 -0.1820 -0.0080 0.0320 -0.0936 -0.0329 -0.1548 0.1737 -0.0937 -0.1619 0.0777 -0.0843 0.0066 0.0600 -0.2059 -0.0268 0.1350 -0.0900 0.0314 0.0686 -0.0338 0.1841 0.1708 0.0276 0.0719 -0.1667 0.0231 0.0265 -0.1773-0.1135 0.1018 -0.2339 0.1008 0.1057 -0.1118 0.2891 -0.0358 0.0911-0.0958 -0.0184 0.0740 -0.1081 0.0826 0.0463 0.0830

找到嵌入到嵌入的最接近的单词v使用vec2word.

Word = vec2word(emb,Vec)
Word =“法国”

创建2-D文本散点图

通过使用2-D文本散点图绘图来可视化嵌入的单词TextScatter.

将前5000个单词转换为使用的向量Word2vec.V.是长度300的字矢量矩阵。

单词= emb.vocabulary(1:5000);v = word2vec(mem,单词);尺寸(v)
ans =.1×25000 300.

使用二维空间中的单词向量使用。此功能可能需要几分钟才能运行。如果要显示收敛信息,请设置'verbose'名称值对至1。

XY = TSNE(v);

绘制指定的坐标处的单词XY.在2-D文本散点图中。可读性,TextScatter.默认情况下,不显示所有输入字并显示标记。

图TextStmatter(XY,单词)标题(“嵌入T-SNE PLOT的单词”

放大图的一部分。

XLIM([ -  18-5])ylim([11 21])

创建3-D文本散点图

通过使用3-D文本散点图绘图来可视化嵌入的单词TextScatter.

将前5000个单词转换为使用的向量Word2vec.V.是长度300的字矢量矩阵。

单词= emb.vocabulary(1:5000);v = word2vec(mem,单词);尺寸(v)
ans =.1×25000 300.

使用三维空间中的单词向量使用通过指定三个的尺寸的数量。此功能可能需要几分钟才能运行。如果要显示收敛信息,则可以设置'verbose'名称值对至1。

XYZ = TSNE(v,'numdimensions',3);

在3-D文本散点图中绘制XYZ指定的坐标处的单词。

图TS = TextScatter3(XYZ,单词);标题(“嵌入t-sne plot的3-d字”

放大图的一部分。

XLIM([12.04 19.48])ylim([ -  2.66 3.40])zlim([10.03 14.53])

执行集群分析

将前5000个单词转换为使用的向量Word2vec.V.是长度300的字矢量矩阵。

单词= emb.vocabulary(1:5000);v = word2vec(mem,单词);尺寸(v)
ans =.1×25000 300.

发现25个群集威彻斯

cidx = kmeans(v,25,'dist''sqeuclidean');

使用前面计算的2-D T-SNE数据坐标可视化文本散点图中的群集。

图textsmatter(XY,单词,'colordata',分类(CIDX));标题(“嵌入T-SNE PLOT的单词”

放大图的一部分。

XLIM([1344])ylim([ -  47 -35])

也可以看看

||||||

相关话题