主要内容

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

此示例演示如何使用二维和三维t-SNE和文本散点图可视化单词嵌入。

单词嵌入将词汇表中的单词映射到实向量。向量试图捕捉单词的语义,以便相似的单词具有相似的向量。一些嵌入也捕捉了单词之间的关系,如“意大利之于法国,罗马之于巴黎”。在向量形式中,这种关系是 意大利 - 罗马 + 巴黎 = 法国 .

加载预训练词嵌入

使用加载预训练单词嵌入fastTextWordEmbedding. 此函数需要文本分析工具箱™ 模型对于fastText English,160亿标记词嵌入金宝app支持包。如果未安装此支持包,则该功能将提供下载链接。

emb = fasttextwordembeddings.
emb=wordEmbedding with properties:Dimension:300词汇表:[1×99999 4字符串]

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

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

计算下式给出的向量意大利-罗马+巴黎. 这个向量封装了单词的语义意大利,没有这个词的语义罗马,还包括单词的语义巴黎.

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.0043

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

word=vec2word(emb,vec)
word=“法国”

创建二维文本散点图

通过使用创建二维文本散点图来可视化单词嵌入tsne文本分散.

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

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

在二维空间中使用tsne. 此功能可能需要几分钟才能运行。如果要显示聚合信息,请设置“冗长”将名称值对设置为1。

XY=tsne(V);

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

图文本分散(XY,单词)标题(“单词嵌入t-SNE图”)

放大图的一部分。

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

创建三维文本散点图

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

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

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

使用以下命令将单词向量嵌入三维空间:tsne通过将尺寸的数量指定为三个。此功能可能需要几分钟才能运行。如果要显示聚合信息,则可以设置“冗长”将名称值对设置为1。

XYZ=tsne(V,“NumDimensions”,3);

在三维文本散点图中,在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个群集K均值.

cidx=kmeans(V,25,“dist”,'sqeuclidean');

使用先前计算的二维t-SNE数据坐标,在文本散点图中可视化集群。

图文本散点(XY,单词,“ColorData”,分类(cidx));头衔(“单词嵌入t-SNE图”)

放大图的一部分。

xlim([13 24])ylim([-47-35])

另见

||||||

相关话题