Python电影组进程GSDMM如何获取每个主题下的单词列表?

2024-06-28 11:40:34 发布

您现在位置:Python中文网/ 问答频道 /正文

在客户评论的短文本上进行主题建模。已经使用GSDMM-Movie group流程将评论分为20个主题

mgp = MovieGroupProcess(K=20, alpha=0.01, beta=0.1, n_iters=30)

vocab = set(x for doc in docs for x in doc)
n_terms = len(vocab)
n_docs = len(docs)

# Fit the model on the data given the chosen seeds
y = mgp.fit(docs, n_terms)

我能够得到每个评论旁边的主题结果,如“主题1”、“主题2”。。诸如此类。如何获得每个主题下的热门单词列表?任何帮助都将不胜感激


Tags: theindocs主题fordoc客户len
2条回答

如果您使用GSDMM,“Top”单词就不存在,因为该算法是如何工作的

你唯一的选择就是列出最常用的单词,当然其中也会包括一些常用的单词

下面是一个可以在python中创建的函数,用于获取最常用的单词:

def generatedfwordfreq(topicnumber, numwords):
    topic = sorted(mgp.cluster_word_distribution[topicnumber].items(), 
key=lambda k: k[1], reverse=True)[:numwords]
    dfm = pd.DataFrame(topic)
    dfm = dfm.rename(columns={0: 'Word', 1: 'Freq'})
    return dfm

上面返回一个数据帧,其中包含最前面的“numwords”单词的单词和频率;numwords是最常用字数的整数。请注意,mgp将主题编号存储为整数(1,2,3…),因此可以通过调用mgp.cluster\u word\u distribution[topicnumber]将其用作“topicnumber”来引用特定主题

相关问题 更多 >