想问一下编辑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无用
悬赏问题
- ¥15 PADS Logic 原理图
- ¥15 PADS Logic 图标
- ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
- ¥20 气象站点数据求取中~
- ¥15 如何获取APP内弹出的网址链接
- ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
- ¥50 STM32单片机传感器读取错误
- ¥15 (关键词-阻抗匹配,HFSS,RFID标签天线)
- ¥15 机器人轨迹规划相关问题
- ¥15 word样式右侧翻页键消失