我正在尝试了解如何使用LDA进行文本检索,目前我正在使用gensim的LdaModel模型来实现LDA,链接在这里:https://radimrehurek.com/gensim/models/ldamodel.html。
我已经成功地识别出了k个主题及其最常用的单词,并且我理解LDA是关于主题的概率分布以及单词在文档中如何分布在这些主题中的,所以这一点很有道理。
然而,我不知道如何使用LdaModel来检索与字符串搜索查询(例如“避孕的负面影响”)相关的文档。我已经尝试在搜索查询上推断主题分布,并使用gensim的similarities.MatrixSimilarity计算余弦相似度来查找搜索查询的主题分布和语料库中的主题分布之间的相似性: lda = LdaModel(corpus, num_topics=10) index = similarities.MatrixSimilarity(lda[corpus]) query = lda[query_bow] sims = index[query]
但表现并不好。我认为,找到搜索查询的主题分布并没有太多意义,因为通常只有一个主题在搜索查询中。但我不知道如何在gensim的LdaModel上实现其他方法。任何建议都将非常感激,我是主题建模的新手,也许我错过了一些对我来说显而易见的东西?谢谢!
我已经成功地识别出了k个主题及其最常用的单词,并且我理解LDA是关于主题的概率分布以及单词在文档中如何分布在这些主题中的,所以这一点很有道理。
然而,我不知道如何使用LdaModel来检索与字符串搜索查询(例如“避孕的负面影响”)相关的文档。我已经尝试在搜索查询上推断主题分布,并使用gensim的similarities.MatrixSimilarity计算余弦相似度来查找搜索查询的主题分布和语料库中的主题分布之间的相似性: lda = LdaModel(corpus, num_topics=10) index = similarities.MatrixSimilarity(lda[corpus]) query = lda[query_bow] sims = index[query]
但表现并不好。我认为,找到搜索查询的主题分布并没有太多意义,因为通常只有一个主题在搜索查询中。但我不知道如何在gensim的LdaModel上实现其他方法。任何建议都将非常感激,我是主题建模的新手,也许我错过了一些对我来说显而易见的东西?谢谢!