主要内容

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

这个例子展示了如何使用2-D和3-D t-SNE和文本散点图来可视化词嵌入。

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

加载预训练词嵌入

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

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

探索词嵌入使用word2vec而且vec2word.转换单词意大利罗马,巴黎向量使用word2vec

意大利= e2vec (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.0958 0.0911 -0.0184 0.0740 -0.1081 0.0826 0.0463 0.0043

找到嵌入词中最接近的词vec使用vec2word

Word = vec2word(emb,vec)
字= "法国"

创建2-D文本散点图

通过创建一个2-D文本散点图来可视化单词嵌入tsne而且textscatter

将前5000个单词转换为向量word2vecV是一个长度为300的词向量矩阵。

words = emb.Vocabulary(1:5000);V = word2vec(emb,words);大小(V)
ans =1×25000 300

将词向量嵌入二维空间tsne.此函数可能需要几分钟才能运行。如果需要显示收敛信息,请设置“详细”名值对为1。

XY = tsne(V);

在指定的坐标处绘制单词XY在二维文本散点图中。为了可读性,textscatter默认情况下,不会显示所有输入单词,而是显示标记。

图textscatter(XY,words)“词嵌入t-SNE图”

放大一段情节。

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

创建三维文本散点图

通过创建一个三维文本散点图来可视化单词嵌入tsne而且textscatter

将前5000个单词转换为向量word2vecV是一个长度为300的词向量矩阵。

words = emb.Vocabulary(1:5000);V = word2vec(emb,words);大小(V)
ans =1×25000 300

将词向量嵌入三维空间tsne通过指定维数为3。此函数可能需要几分钟才能运行。如果需要显示收敛信息,可以设置“详细”名值对为1。

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

在三维文本散点图中XYZ指定的坐标处绘制单词。

figure ts = textscatter3(XYZ,words);标题(“三维词嵌入t-SNE图”

放大一段情节。

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

执行聚类分析

将前5000个单词转换为向量word2vecV是一个长度为300的词向量矩阵。

words = emb.Vocabulary(1:5000);V = word2vec(emb,words);大小(V)
ans =1×25000 300

使用以下命令发现25个集群kmeans

cidx = kmeans(V,25,“距离”“sqeuclidean”);

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

图textscatter (XY,话说,“ColorData”分类(cidx));标题(“词嵌入t-SNE图”

放大一段情节。

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

另请参阅

||||||

相关的话题