流行的主题模型,潜在狄利克雷分配(LDA),当用于从语料库中提取主题时,返回在字典单词上具有不同概率分布的不同主题。
而潜在语义索引(LSI)在每次迭代后给出相同的主题和相同的分布。
在现实中,LDA被广泛用于提取主题。如果LDA在每次进行分类时都返回不同的主题分布,它如何保持一致性?
考虑这个简单的例子。抽取文档样本,其中D表示文档:
D1: Linear Algebra techniques for dimensionality reduction
D2: dimensionality reduction of a sample database
D3: An introduction to linear algebra
D4: Measure of similarity and dissimilarity of different web documents
D5: Classification of data using database sample
D6: overfitting due lack of representative samples
D7: handling overfitting in descision tree
D8: proximity measure for web documents
D9: introduction to web query classification
D10: classification using LSI 每一行代表一个文档。在上述语料库上,使用LDA模型从文档生成主题。Gensim用于LDA,批量LDA是在选择的主题数量为4且通过数量为20的情况下执行的。
现在,在原始语料库上执行批量LDA,20次遍历后生成的主题是:
topic #0: 0.045*query + 0.043*introduction + 0.042*similarity + 0.042*different + 0.041*reduction + 0.040*handling + 0.039*techniques + 0.039*dimensionality + 0.039*web + 0.039*using
topic #1: 0.043*tree + 0.042*lack + 0.041*reduction + 0.040*measure + 0.040*descision + 0.039*documents + 0.039*overfitting + 0.038*algebra + 0.038*proximity + 0.038*query
topic #2: 0.043*reduction + 0.043*data + 0.042*proximity + 0.041*linear + 0.040*database + 0.040*samples + 0.040*overfitting + 0.039*lsi + 0.039*introduction + 0.039*using
topic #3: 0.046*lsi + 0.045*query + 0.043*samples + 0.040*linear + 0.040*similarity + 0.039*classification + 0.039*algebra + 0.039*documents + 0.038*handling + 0.037*sample现在,在相同的原始语料库上再次执行批量LDA,在这种情况下生成的主题是:
topic #0: 0.041*data + 0.041*descision + 0.041*linear + 0.041*techniques + 0.040*dimensionality + 0.040*dissimilarity + 0.040*database + 0.040*reduction + 0.039*documents + 0.038*proximity
topic #1: 0.042*dissimilarity + 0.041*documents + 0.041*dimensionality + 0.040*tree + 0.040*proximity + 0.040*different + 0.038*descision + 0.038*algebra + 0.038*similarity + 0.038*techniques
topic #2: 0.043*proximity + 0.042*data + 0.041*database + 0.041*different + 0.041*tree + 0.040*techniques + 0.040*linear + 0.039*classification + 0.038*measure + 0.038*representative
topic #3: 0.043*similarity + 0.042*documents + 0.041*algebra + 0.041*web + 0.040*proximity + 0.040*handling + 0.039*dissimilarity + 0.038*representative + 0.038*tree + 0.038*measure在这两种情况下,每个主题中的单词分布都不相同。事实上,单词的分布从来都不一样。
那么,如果LDA在其主题中不像LSI那样具有相同的单词分布,它如何有效地工作呢?
发布于 2012-02-28 18:57:41
我认为这里有两个问题。首先,LDA的训练不像LSI那样是确定性的;LDA的常见训练算法是采样方法。如果多次训练的结果差异很大,这要么是一个bug,要么是你使用了错误的设置,或者只是运气不好。如果你想优化一些函数,你可以尝试多次运行LDA训练。
然后是聚类、查询和分类:一旦你有了一个经过训练的LDA模型,你就可以以确定性的方式将该模型应用于其他文档。不同的LDA模型会给出不同的结果,但从您标记为最终模型的一个LDA模型中,您将始终得到相同的结果。
发布于 2013-11-20 17:20:42
如果LDA在训练和推理步骤中都使用随机性,它每次都会生成不同的主题。请参阅此链接:LDA model generates different topics everytime i train on the same corpus
发布于 2019-05-21 00:59:42
这个问题有三种解决方案:
LDAMallet_file =‘您的模型’LDAMallet_pkl = open( LDAMallet_file,'wb') pickle.dump( ldamallet,LDAMallet_pkl) LDAMallet_pkl_15.close() LDAMallet_file=‘您的模型’LDAMallet_pkl = open(LDAMallet_file,'rb') ldamallet= pickle.load(LDAMallet_pkl) print("Loaded LDA Mallet wrap --",ldamallet)
查看文档:https://docs.python.org/3/library/pickle.html
明白了吗?pickle,因为它保留了;)
中效果更好
我希望这能有所帮助:)
https://stackoverflow.com/questions/9470899
复制相似问题