Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 主题建模,Gensim,Python,根据固定ID或链接数据获取主题模型_Python 3.x_Gensim_Topic Modeling - Fatal编程技术网

Python 3.x 主题建模,Gensim,Python,根据固定ID或链接数据获取主题模型

Python 3.x 主题建模,Gensim,Python,根据固定ID或链接数据获取主题模型,python-3.x,gensim,topic-modeling,Python 3.x,Gensim,Topic Modeling,关于通过python和gensim库进行主题建模,我有一个问题:当我运行以下代码时,它运行得很好,并提供了相关的主题,但我希望看到.csv文件中列出的每个文档的每个主题,但它会乱序。例如,第一个主题来自第二个文档,但第二个主题来自第一个文档,第三个主题来自第三个文档。当我运行相同的代码时,它会再次洗牌。我如何解决这个问题,并获得每个文档的主题,或/或将主题直接链接到可以在第1列中列出的文档的ID或作者 代码: 步骤1: 步骤2:加载数据和处理 步骤3:打印出主题 话题: import nltk

关于通过python和gensim库进行主题建模,我有一个问题:当我运行以下代码时,它运行得很好,并提供了相关的主题,但我希望看到.csv文件中列出的每个文档的每个主题,但它会乱序。例如,第一个主题来自第二个文档,但第二个主题来自第一个文档,第三个主题来自第三个文档。当我运行相同的代码时,它会再次洗牌。我如何解决这个问题,并获得每个文档的主题,或/或将主题直接链接到可以在第1列中列出的文档的ID或作者

代码: 步骤1: 步骤2:加载数据和处理 步骤3:打印出主题 话题:
 import nltk
 import csv
 import re
 import nltk.corpus
 import gensim
 from gensim import corpora
 from nltk.corpus import stopwords
 from nltk.stem.wordnet import WordNetLemmatizer
 import string
 doc_complete = open('/home/erdal/Desktop/big_data/abstract1.csv', 'r').readlines()
 stop = set(stopwords.words('english'))
 exclude = set(string.punctuation)
 lemma = WordNetLemmatizer()
 def clean(doc):
    stop_free = " ".join([i for i in doc.lower().split() if i not in stop])
    punc_free = ''.join(ch for ch in stop_free if ch not in exclude)
    normalized = " ".join(lemma.lemmatize(word) for word in punc_free.split())
    return normalized
    doc_clean = [clean(doc).split() for doc in doc_complete]
    print(doc_clean)
    dictionary = corpora.Dictionary(doc_clean)
    doc_term_matrix = [dictionary.doc2bow(doc) for doc in doc_clean]
    Lda = gensim.models.ldamodel.LdaModel
    ldamodel = Lda(doc_term_matrix, num_topics=3, id2word = dictionary, passes=50)
    print(ldamodel.print_topics(num_topics=3, num_words=3))
  myData = ldamodel.print_topics(num_topics=3, num_words=3)
  myFile = open('/home/erdal/Desktop/big_data/all_data_1_topics.csv', 'w')
  with myFile:
   writer = csv.writer(myFile)
   writer.writerows(myData)
   print("Writing complete")
 [(0, '0.036*"learning" + 0.036*"student" + 0.026*"intergroup"'), (1, '0.005*"abstract" + 0.005*"significant" + 0.005*"using"'), (2, '0.042*"clickers" + 0.027*"motivation" + 0.027*"student"')]