作者主题模型中最优主题数如何确定?perplexity?topic coherence?

蔡艺君小朋友 2018-08-09 09:52:29
请问谁知道作者主题模型中求困惑度得代码如何写?因为不理解作者主题模型困惑度的公式,所以自己也不会写
下面是我现有代码中希望通过主题一致性(topic coherence)来确定最优主题数?我期望的图应该的topic coherence随着 number of topics增加而增加,然后到某个topic值趋于平稳,但现在得到的图是递减而且没有趋于平稳。是代码有问题还是我理解有问题?
我的代码主要借鉴于这个链接里的内容https://blog.csdn.net/sinat_26917383/article/details/79339727

恳求谁能给我点思路或代码,拜托了,卡这里很久了

# 主题一致性
# model_list=[]
grid=dict()
# range(1,101,5)必须以1为起点,否则出现除以0的错误
parameter_list=range(1,102,10)
chunksize=500
passes=5
iterations=200
random_state=2
for i in parameter_list:
grid[i]=list()
num_topics=i
at_model = AuthorTopicModel(corpus=corpus, num_topics=num_topics, id2word=dictionary.id2token, author2doc=author2doc,
chunksize=chunksize, passes=passes, gamma_threshold=1e-3, eval_every=1, iterations=iterations,
alpha='auto', eta='auto',random_state=random_state,minimum_probability=0.01)

top_topics = at_model.top_topics(corpus=corpus)
# print(top_topics)
tc = sum([t[1] for t in top_topics])/num_topics
# model_list.append((at_model, tc))
grid[i].append(tc)

df = pd.DataFrame(grid)
df.to_csv('tc_c%d_i%d_p%d.csv' % (chunksize,iterations,passes))
# 显示多少行多少列
print(df)
plt.figure(figsize=(8,4), dpi=120)
plt.plot(df.columns.values, df.iloc[0].values, '#007A99')
plt.xticks(df.columns.values)
#plt.xlim(parameter_list[0],parameter_list[-1])
plt.ylabel('tc')
plt.xlabel('topics')
plt.show()
...全文
2652 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Econometrics! 2021-04-26
  • 打赏
  • 举报
回复
请问楼主这个问题解决了吗?我遇到了同样的问题
Rilke123 2020-12-19
  • 打赏
  • 举报
回复
请问楼主这个问题解决了吗?
  • 打赏
  • 举报
回复
您好,我也想问一下您代码调试成功了么,我最近也在研究这个ATM模型,如果您调试成功了,可不可以教我一下呀
脱粉中 2020-03-14
  • 打赏
  • 举报
回复
您好,请问你代码调试成功了吗,我最近也需要这个主题一致性作为评价指标,如果您成功了,能否将代码分享一下,十分感谢
蔡艺君小朋友 2018-12-07
  • 打赏
  • 举报
回复
有人吗 大神呢

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧