BERTopic 在大型文档中识别多个主题,

e7arh2l6  于 4个月前  发布在  其他
关注(0)|答案(1)|浏览(50)

你好,

我构建了一个主题模型,用于从长期的政治演讲数据中识别主题。大多数“文档”只有几句话长,少数例外是较长的文档,它们可能包含多个主题。然而,我发现默认的bertopic管道在不拆分这些长文档的情况下就能产生良好的主题。

话虽如此,目前我有一个特定的长文档,我认为它具有多个主题的混合成员资格,但当然只被模型标记为有一个主题。将这个具有混合成员资格的文档拆分成较小的部分(假设是段落),然后预测每个段落的主题是否有意义?
此外,我希望在语料库的较高层次上比较一组文档。即衡量第一组中出现的主题与第二组中出现的主题之间的相似性。我想了解这可能是最佳方法吗?

谢谢。

vulvrdjw

vulvrdjw1#

既然如此,在这一点上,我有一个特定的长文档,我相信它包含了多个主题,但当然只被模型标记为一个主题。将这个包含多个主题的文档拆分成更小的部分(假设是段落),然后预测每个段落的主题是否有意义?
有两种方法可以解决这个问题。
首先,正如你提到的,就是简单地将文档拆分成句子/段落,这样你就可以得到句子/段落级别的主题表示。
第二种方法是在单个文档上使用.approximate_distributions进行建模。你可以运行类似这样的代码,它应该可以工作:

# Calculate the topic distributions on a token-level
topic_distr, topic_token_distr = topic_model.approximate_distribution([MY_DOCUMENT], calculate_tokens=True)

# Visualize the token-level distributions
df = topic_model.visualize_approximate_distribution(docs[0], topic_token_distr[0])
df

相关问题