如何在 bertopic 建模中获取每个主题的所有文档

Kal*_*eem 9 nlp topic-modeling text-classification bert-language-model

我有一个数据集并尝试使用 berTopic 建模将其转换为主题,但问题是,我无法获取主题的所有文档。berTopic 每个主题仅返回 3 个文档。

topic_model  = BERTopic(verbose=True, embedding_model=embedding_model,
                                nr_topics = 'auto',
                                n_gram_range = (3,3),
                                top_n_words = 10,
                               calculate_probabilities=True, 
                              seed_topic_list = topic_list,
                              )
topics, probs = topic_model.fit_transform(docs_test)
representative_doc = topic_model.get_representative_docs(topic#1)
representative_doc
Run Code Online (Sandbox Code Playgroud)

该主题包含超过 300 个文档,但 bertopic 仅显示其中 3 个.get_representative_docs

小智 8

可能有更优雅的解决方案,因为我不是专家,但我可以分享对我有用的方法:

topics, probs = topic_model.fit_transform(docs_test)
Run Code Online (Sandbox Code Playgroud)

返回主题。

因此,您可以将此输出和文档结合起来。例如,使用以下方法将它们组合成 Pandas 数据框:

df = pd.DataFrame({'topic': topics, 'document': docs_test})
Run Code Online (Sandbox Code Playgroud)

现在,您可以针对每个主题过滤此数据框以识别引用文档:

topic_0 = df[df.topic == 0]
Run Code Online (Sandbox Code Playgroud)