Embedding Projector是一个用于可视化高维数据的免费Web应用程序。它有用于可视化NLP中的单词嵌入和计算机视觉中MNIST的图像嵌入的内置演示。
我最近尝试了一种方法,可以将语句嵌入和类标签一起加载到该工具中,并以交互方式探索它们。在这篇博客文章中,我将用一个示例数据集解释端到端过程。
为了理解这个用例,让我们从SST-2数据集中选取标记为正面和负面的100个电影评论的子集。
进口熊猫为Pd df=Pd。Read_csv(';http://bit.ly/dataset-sst2';,nrow=100,sep=';\t';,Names=[';TEXT';,';LABEL';])df[';LABEL';]=df[';LABEL';]。替换({0:';负';,1:';正';})。
数据集有一个包含文本的列和一个指示它是正面还是负面意见的标签。
我们将通过用随机文本破坏五个响应来将标签噪声引入我们的数据集中。它将作为我们示例的异常值。
现在,我们将使用语句转换器包计算标题的语句嵌入。首先,让我们使用pip安装它。
接下来,我们将创建一个helper函数,以返回给定句子列表的句子嵌入的NumPy数组。
使用上面的函数,我们可以为我们的数据生成语句嵌入,如下所示。
让我们首先为上一步中的语句嵌入生成output.tsv文件。
#转换嵌入数据帧的NumPy数组Embedding_df=pd。Dataframe(E)#将dataframe另存为TSV文件,没有任何索引和头嵌入_df。TO_CSV(';output.tsv';,9月=';\t';,索引=无,标题=无)。
然后,对于第一个选择文件按钮,上传output.tsv文件,对于第二个选择文件按钮,上传metadata.tsv文件。
上传完这两个文件后,单击Outside,您应该会看到句子嵌入投影。默认情况下,使用PCA将嵌入的尺寸降低为3D。
让我们通过关闭侧边栏底部的“Component#3”复选框来切换到2D。
在2D可视化上,我们可以看到随机文本作为异常值与其他文本组有多远。在悬停这一点的时候,我们看到了文字askgkn asngk kagkasng。
通过使用左边栏中的Color by下拉菜单,我们可以通过点的实际标签(正值与负值)启用点的颜色编码。
选择包含标签的列的名称。在我们的示例文件中,列名为Label。
这些点本身是交互式的。您可以通过将鼠标悬停在每个点上来查看它们的实际句子。
您可以单击点以显示元数据。我们可以在下面的弹出窗口中通过单击一个蓝点看到它的标签是“积极的”。
所以蓝点是正数,红点是负数。选择一个点时,还会高亮显示余弦相似度方面最近的100个点。
要返回到原始视图,我们可以单击任何空白区域。
您可以从左边栏的底部选择算法及其参数。
您还可以使用自定义选项卡将自定义关键字或全文用作轴。这将应用自定义的线性投影,并可以帮助我们在嵌入空间中探索有意义的方向。
例如,Gmail团队尝试在左侧设置“yes”,在右侧设置“yes”。当他们对这个自定义线性投影的电子邮件回复的编码器嵌入进行投影时,他们发现左侧以随意的语调(例如,开始)回复,而以更正式的语调回复则聚集在右侧。
因此,嵌入投影仪是一个非常有用的工具,可以更好地理解我们使用的数据集和模型。