- 计算每个哈希标签的词项频率向量。
- 对于每个推文X:
- 对于X $中的每个主题标签$ h:
- 对于X $中的每个非标签令牌$ t \:
- $(h,t)$的增量计数。
- 对于X $中的每个非标签令牌$ t \:
- 对于X $中的每个主题标签$ h:
- 对于每个推文X:
- 计算前1000个最常用的标签中的每个标签对的成对余弦$ \ cos \ theta(h,h ^ \ prime)$。
- 将相似度定义为$ s(h,h ^ \ prime)= \ arccos(\ cos \ theta(h,h ^ \ prime))$。
- 与$ 1.0-\ cos \ theta(h,h ^ \ prime)$相比,我得到的负特征值更少。这是在超球面上移动和跨越超弦之间的区别。
- 做60维 MDS 在$ s $。
- 60个特征值中有两个为负,因此我将其视为0。所以实际上是58维MDS。
- 我在这里得到任何负特征值时感到有些惊讶,因为我所有的项向量都占据了超球面的正超象限。显然,我的超直觉需要超调……或者我有一个错误。
- 将产生的60维表示输入 吨位 .
- 我使用困惑10。
最终,当我绘制此标签时,我尝试将颜色随机化,以便在所有标签相互叠放时能够看到一些东西。真的png不能公正,您应该得到 pdf版本 并放大。
感谢您发布它,它'有趣的东西。您是否尝试仅将术语频率向量直接输入t-SNE?
回复 删除是。实际上,一旦加载了数据,C ++ 吨位 实现就可以完成出色的工作,但是它希望在继续操作之前将整个数据集作为密集矢量读取到内存中,因此在我尝试进行扩展时就成了问题。 MDS 中间人对此提供了帮助。
回复 删除我也可以尝试Matlab实现并提供距离,该距离只有1000x1000。但是到那时,我在C ++版本上有了不错的工作流程,所以我最终做了我所做的事情。
您是否尝试过生成3-D图像?接下来的问题是:是否有一个简单的旋转/查看工具可以在某个地方使用3D矩阵-这似乎确实是t-SNE所需要的。
回复 删除@doug:是的,我做到了。我使用了Mathematica,它可以让您在笔记本电脑界面中旋转和放大3D图(不完全简单:对不起)。它似乎正在使用第三维来改善彼此之间的聚类差异。但这没有'导致质的看法不同。 YMMV。
回复 删除我还尝试了使用颜色作为第三维的3D版本。原来这不是很可读,所以我没有't post it.