Python >> Tutoriel Python >  >> Python Tag >> Gensim

Comment accéder aux mots de sujet uniquement dans les gensim

Je pense que l'extrait de code ci-dessous devrait vous donner une liste de tuples contenant chaque sujet (tp) et la liste correspondante de mots (wd) dans ce sujet

x=ldamodel.show_topics(num_topics=12, num_words=5,formatted=False)
topics_words = [(tp[0], [wd[0] for wd in tp[1]]) for tp in x]

#Below Code Prints Topics and Words
for topic,words in topics_words:
    print(str(topic)+ "::"+ str(words))
print()

#Below Code Prints Only Words 
for topic,words in topics_words:
    print(" ".join(words))

L'autre réponse consistait à donner une chaîne avec des poids associés à chaque mot. Mais si vous souhaitez obtenir chaque mot d'un sujet séparément pour un travail ultérieur. Ensuite, vous pouvez essayer ceci. Ici, le numéro de sujet est la clé du dictionnaire et la valeur est une chaîne unique contenant tous les mots de ce sujet séparés par un espace

x=ldamodel.show_topics()

twords={}
for topic,word in x:
    twords[topic]=re.sub('[^A-Za-z ]+', '', word)
print(twords)