用LDA算法的python代码不太清楚

问题描述 投票:3回答:1

我正在尝试使用python与Gensim实现Latent Dirichlet Allocation(LDA),我也是从网站引用LDA代码,但我仍然不太清楚LDA python代码。知道LDA的人是否可以根据下面给出的代码以清醒的方式向我解释。我也在这里上传LDA公式,这是来自维基百科的图片。在这种情况下,LDA用于分析文本文档的集合。

lda_model = gensim.models.ldamodel.LdaModel(corpus=corpus,
                                           id2word=id2word,
                                           num_topics=4, 
                                           random_state=100,
                                           update_every=1,
                                           chunksize=10,
                                           passes=10,
                                           alpha='symmetric',
                                           iterations=100,
                                           per_word_topics=True)

python-3.x lda
1个回答
2
投票

LDA是一个主题建模者。它的作用是需要一个看起来像这样的语料库:

# the words become numbers and are then counted for frequency
# consider a random row 4310 - it has 27 words word indexed 2 shows up 4 times
# preview the bag of words

bow_corpus = [dictionary.doc2bow(doc) for doc in processed_docs]
bow_corpus[4310]

[(3, 1), (13, 1), (37, 1), (38, 1), (39, 1), (50, 1), (52, 2)]

# same thing in more words

bow_doc_4310 = bow_corpus[4310]
for i in range(len(bow_doc_4310)):
    print("Word {} (\"{}\") appears {} time.".format(bow_doc_4310[i][0], 
                                               dictionary[bow_doc_4310[i][0]], 
bow_doc_4310[i][1]))

Word 3(“辅助”)出现1次。 Word 13(“付款”)出现1次。 Word 37(“帐户”)出现1次。 Word 38(“卡片”)出现1次。 Word 39(“credit”)出现1次。 Word 50(“联系人”)出现1次。 Word 52(“费率”)出现2次。

Id2word将字典中的单词映射到索引,因此3 ='assist'这样它可以在以后打印主题。它使用数字id,因为python处理的数字越来越好。因此,对单词,单词到数字,对频率进行计数的句子将每个单词与语料库中的所有其他单词进行比较,并根据它们在一起出现的频率进行评分。它需要最强的相关性并将其转化为主题。

num_topics是您希望它生成的主题数。 update_every是一种可以将lda设置为动态运行的方式,这意味着它将在指定的时间间隔内重新运行。如果您需要测试集和验证集,Chuncksize只占用数据集的一部分。通过是你的算法寻求分配的次数 - 我会小心维基百科语料库中的更高数字,在两次通过后汇聚到一个主题。 Alpha通常是超参数.1次迭代是它通过数据集的次数。 per_word_topics告诉你的LDA选择它认为合适的单词,它会在一个主题中放入多少单词,就像一个主题可能有70个单词另外200个。它默认打印10但你可以改变它。我希望这有帮助 :)

© www.soinside.com 2019 - 2024. All rights reserved.