我使用gensim.models.ldamodel.ldamodel()进行了一些主题建模,我想标记我的数据,以可视化我的发现
这就是我目前的情况:
我的当前数据帧包含以下列:
['text']['date']['gender']['tokens']['topics']['main_topic']
文本只是纯文本数据,日期为形式(yyyy mm dd),性别为二进制,女性为1,标记为预处理后的文本,主题来源于:
df['topics'] = LDA_model.get_document_topics(corpus)
主要的主题与第二个答案相比有一点变化,如下图所示:
df['main_topic'] = [int(str(sorted(LDA_model[i],reverse=True,key=lambda x: x[1])[0][0]).zfill(3)) for i in corpus]
最后,前10行主题和主要主题如下所示(注意num_topics=30):
topics main_topic
[(0, 0.051341455), (1, 0.21204428), (2, 0.1145254), (4, 0.055585753), (11, 0.20260869), (29, 0.25616828)] 29
[(0, 0.052005265), (1, 0.21128647), (2, 0.08015486), (3, 0.11465485), (29, 0.4478401)] 29
[(0, 0.05355798), (1, 0.1394092), (2, 0.10734849), (4, 0.32699445), (29, 0.273105)] 4
[(0, 0.053568278), (1, 0.22299954), (2, 0.22616898), (11, 0.0959242), (29, 0.2897638)] 29
[(0, 0.05404401), (1, 0.4482777), (4, 0.141311), (29, 0.24849494)] 1
[(0, 0.054245334), (1, 0.18933308), (2, 0.14567153), (4, 0.11169399), (23, 0.05768766), (29, 0.35825193)] 29
[(0, 0.05449035), (2, 0.114870586), (4, 0.13284092), (11, 0.075592585), (23, 0.13247918), (24, 0.06598773), (29, 0.32016253)] 29
[(0, 0.055871632), (1, 0.23100668), (4, 0.06832383), (29, 0.4730603)] 29
[(0, 0.057746172), (1, 0.057121024), (2, 0.07247137), (3, 0.26388222), (13, 0.07291462), (29, 0.34331965)] 29
[(0, 0.057841185), (1, 0.19891246), (2, 0.09586754), (29, 0.5344914)] 29
现在我想要的是:
我想要30个新专栏:“主题0,主题1,主题2,…,主题29”。对于第一行,我想使用df['topics'],并将值保存在新列中,以便:
第1行的主题0=0.0513414,第1行的主题1=0.21204,第1行的主题2=0.11452,第1行的主题3=0,依此类推
但是我不知道怎么做。有人能帮忙吗
我想出来了。如果有人希望实现同样的目标:
(请注意,30是我的num_topics,6301是我的df['topics']行数)
现在数据帧af看起来像这样[限制为5行和5列:
相关问题 更多 >
编程相关推荐