@ Arons und @Roko Mijic die Ansätze vernachlässigen die Tatsache, dass die Funktion show_topics
kehrt standardmäßig nur die Top 20 Wörter jedes Thema. Wenn man alle Wörter zurückgibt, die ein Thema bilden, werden alle angenäherten Themenwahrscheinlichkeiten in diesem Fall 1 (oder 0,999999) sein. Ich experimentierte mit dem folgenden Code, der eine Adaption von @Roko Mijic lautet:
def topic_prob_extractor(gensim_hdp, t=-1, w=25, isSorted=True):
"""
Input the gensim model to get the rough topics' probabilities
"""
shown_topics = gensim_hdp.show_topics(num_topics=t, num_words=w ,formatted=False)
topics_nos = [x[0] for x in shown_topics ]
weights = [ sum([item[1] for item in shown_topics[topicN][1]]) for topicN in topics_nos ]
if (isSorted):
return pd.DataFrame({'topic_id' : topics_nos, 'weight' : weights}).sort_values(by = "weight", ascending=False);
else:
return pd.DataFrame({'topic_id' : topics_nos, 'weight' : weights});
A besser, aber ich bin nicht sicher, ob 100% gültig, Ansatz ist derjenige here erwähnt.Sie können die Themen true Gewichte (alpha Vektor) des HDP-Modell als:
alpha = hdpModel.hdp_to_lda()[0];
den Themen Prüfungs erhalten gleichwertige Alpha-Werte ist logischer als die Gewichte der ersten 20 Wörter jedes Thema Auszählung bis zu nähern seine Wahrscheinlichkeit der Verwendung in den Daten.
nein sie sind alle in 'Themen' unabhängig von der Wahrscheinlichkeit – user86895