BERTopic 文档可视化 - 点坐标

brvekthn  于 5个月前  发布在  其他
关注(0)|答案(6)|浏览(83)

你好,

感谢你在BERTopic上所做的出色工作。这确实是一个改变主题分析的游戏规则。

我正在进行主题分析的研究,并想知道以下问题:是否可以通过'topic_visualize'函数提取每个呈现文档的"坐标"?我寻找这个原因是因为我想在不同的数据分析软件(如Tableau)上编辑图表。

我已经尝试通过运行'topic_model.visualize_documents(data_list).to_dict'命令提取每个主题的“X,Y”坐标,但最终的散点图与脚本生成的略有不同。
你对此有什么建议吗?
非常感谢!

kmpatx3s

kmpatx3s1#

如果你想提取这些坐标,你可以使用UMAP来简单地提取2D表示,如函数本身的代码所示。像这样应该就足够了:

reduced_embeddings = UMAP(n_neighbors=10, n_components=2, min_dist=0.0, metric='cosine').fit_transform(embeddings)
js5cn81o

js5cn81o2#

你好,

再次感谢你的及时回复。我尝试了你的建议,但不幸的是,这个解决方案返回了UMAP降维的图像。
在我的案例中,我在运行UMAP(1)和HDBSCAN(2)模型后,通过设置umap_model=1和hdbscan_model=2来运行BERTopic模型。最后,'topic_model.visualize_documents(data_list)'命令返回一个显示每个文档在D1-D2轴系统上的图像,根据BERTopic分配的主题颜色进行着色。这个图像与从UMAP模型派生的图像有很大差异。我想要获取BERTopic可视化中显示的每个点的坐标/嵌入并重新创建它。
如果你需要任何进一步的细节,我很乐意分享。希望我说得足够清楚。
再次感谢你的支持!

tjvv9vkg

tjvv9vkg3#

命令 topic_model.visualize_documents(data_list) 本质上在输入嵌入上运行 UMAP,如下所示:

.visualize_documents 的源代码中:

| | umap_model=UMAP(n_neighbors=10, n_components=2, min_dist=0.0, metric='cosine').fit(embeddings_to_reduce) |
| | embeddings_2d=umap_model.embedding_ |

在这里,embeddings_2d 是二维空间中的 X 和 Y 点。由于在这种情况下 UMAP 没有 random_state 状态,它每次都会生成不同的图。您可以通过传递自己的降维 UMAP 嵌入来防止这种情况。

gpfsuwkq

gpfsuwkq4#

我明白你的意思了!在第一次阅读时,我误解了一些内容。谢谢你的耐心。
最后一个问题:是否有可能使用ParametricUMAP作为降维函数,以便在“压缩”过程中了解丢失的信息?这对你有意义吗?
谢谢你,很抱歉给你带来了任何不便。

gr8qqesn

gr8qqesn5#

当然,你可以在BERTopic中使用任何符合API规范的降维算法:https://maartengr.github.io/BERTopic/getting_started/dim_reduction/dim_reduction.html

vsnjm48y

vsnjm48y6#

非常感谢您的帮助!我非常感激!

相关问题