想问一下编辑LDA代码中需要设置阿尔法和贝塔的参数吗,如果需要的话应该写什么代码,不需要的话他们的默认值是多少呢
1条回答 默认 最新
关注 - 你可以看下这个问题的回答https://ask.csdn.net/questions/7412132
- 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:主题模型LDA的实现
- 除此之外, 这篇博客: 《学术小白的学习之路 09》基于困惑度和余弦相似度确定LDA最优主题数中的 1.2、定义困惑度函数 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
import math def perplexity(ldamodel, testset, dictionary, size_dictionary, num_topics): print('the info of this ldamodel: \n') print('num of topics: %s' % num_topics) prep = 0.0 prob_doc_sum = 0.0 topic_word_list = [] for topic_id in range(num_topics): topic_word = ldamodel.show_topic(topic_id, size_dictionary) dic = {} for word, probability in topic_word: dic[word] = probability topic_word_list.append(dic) doc_topics_ist = [] for doc in testset: doc_topics_ist.append(ldamodel.get_document_topics(doc, minimum_probability=0)) testset_word_num = 0 for i in range(len(testset)): prob_doc = 0.0 # the probablity of the doc doc = testset[i] doc_word_num = 0 for word_id, num in dict(doc).items(): prob_word = 0.0 doc_word_num += num word = dictionary[word_id] for topic_id in range(num_topics): # cal p(w) : p(w) = sumz(p(z)*p(w|z)) prob_topic = doc_topics_ist[i][topic_id][1] prob_topic_word = topic_word_list[topic_id][word] prob_word += prob_topic * prob_topic_word prob_doc += math.log(prob_word) # p(d) = sum(log(p(w))) prob_doc_sum += prob_doc testset_word_num += doc_word_num prep = math.exp(-prob_doc_sum / testset_word_num) # perplexity = exp(-sum(p(d)/sum(Nd)) print("模型困惑度的值为 : %s" % prep) return prep
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
- ¥500 火焰左右视图、视差(基于双目相机)
- ¥100 set_link_state
- ¥15 虚幻5 UE美术毛发渲染
- ¥15 CVRP 图论 物流运输优化
- ¥15 Tableau online 嵌入ppt失败
- ¥100 支付宝网页转账系统不识别账号
- ¥15 基于单片机的靶位控制系统
- ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?