我正在使用 gensim python 库来处理小型语料库(每次大约 1500 篇新闻文章)。假设我有兴趣创建与同一新闻相关的文章集群。
因此,对于我已经标记化、检测搭配、提取词干然后输入一个小字典(大约 20k 个标记)的每个文章语料库,我已经通过了一个 TFIDF 模型。
最后,我使用 TFIDF 语料库构建了语料库的 LSI 模型,并在 gensim 的文档相似度函数的帮助下获得了非常好的结果。
但我很好奇,并通过以下方式对 LSI 进行了一些一致性检查:
lsi_topics = [[word for word, prob in topic] for topicid, topic in
lsi.show_topics(formatted=False)]
lsi_coherence = CoherenceModel(topics=lsi_topics[:10], texts=corpus, dictionary=dictionary, window_size=10).get_coherence()
logger.info("lsi coherence: %.3f" % lsi_coherence)
而且我总是得到大约 0.45 的值,这看起来很弱。
所以我想知道如何解释这种连贯性值?当您只需要索引中的文档与索引本身的相似性时,这个值是否有意义(因此查询是语料库中的完整文档)?
编辑:我尝试了不同的文本预处理方法,例如在输入 Phrases 类之前将每个文档拆分为真实句子,生成二元组、三元组或是否删除重音,在某些情况下,我能够获得大约 0.55 的连贯性值,所以至少我猜想它可以帮助找到处理原始数据的最有效方法......