Как сохранить вывод модели Sklearn LDA в CSV? - PullRequest
0 голосов
/ 13 марта 2019

Как сохранить выходные данные модели Sklearn LDA в csv? у него нет команды show_topics как модели lDA генизма.

def selected_topics(model, vectorizer, top_n=10):
for idx, topic in enumerate(model.components_):
    print("Topic %d:" % (idx))
    print([(vectorizer.get_feature_names()[i], topic[i])
                    for i in topic.argsort()[:-top_n - 1:-1]])

Это хорошо для печати, но как сохранить эти результаты в CSV?

Ответы [ 3 ]

0 голосов
/ 13 марта 2019

Вы можете экспортировать результаты, сначала создав фрейм данных pandas и сохранив результаты модели LDA в этот фрейм данных (через цикл).Позже экспортируем его в CSV-файл.

import pandas as pd
import csv
pd.DataFrame(savedresults).to_csv("all_model_ouput.csv") 
0 голосов
/ 14 марта 2019

Я нашел решение самостоятельно. У меня работает цикл.

 def show_topics(vectorizer=vectorizer, lda_model=lda, n_words=20):
    keywords = np.array(vectorizer.get_feature_names())
    topic_keywords = []
    for topic_weights in lda_model.components_:
        top_keyword_locs = (-topic_weights).argsort()[:n_words]
        topic_keywords.append(keywords.take(top_keyword_locs))
    return topic_keywords

topic_keywords = show_topics(vectorizer=vectorizer, lda_model=lda, n_words=15)        

# Topic - Keywords Dataframe
df_topic_keywords = pd.DataFrame(topic_keywords)
df_topic_keywords.columns = ['Word '+str(i) for i in range(df_topic_keywords.shape[1])]
df_topic_keywords.index = ['Topic '+str(i) for i in range(df_topic_keywords.shape[0])]
df_topic_keywords
0 голосов
/ 13 марта 2019
def selected_topics(model, vectorizer, top_n=10):
    results={}
    for idx, topic in enumerate(model.components_):
        topicId='Topic'+str(idx)
        print("Topic %d:" % (idx))
        topic_name = " ".join([(vectorizer.get_feature_names()[i]
                    for i in topic.argsort()[:-top_n - 1:-1]])
        results[topicId]=topic_name
    return results

Вы можете записать результаты в файл Json и затем файл CSV

К Джсону

import json,csv
results = selected_topics(model, vectorizer, top_n=10)
res_file = open(outputFile,'w')
res_file.write(json.dumps(results))
res_file.close()

от Json до CSV

input = open(res_file)
data = json.load(input)
input.close()

output = csv.writer("output_csv.csv")

output.writerow(data[0].keys())  # header row

for item in data:
    output.writerow(item.values())

Дайте мне знать, если это вам не поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...