【问题标题】:Evaluation of ldaseqmodel in gensimgensim中ldaseq模型的评估
【发布时间】:2019-04-14 19:46:07
【问题描述】:

是否有可能像“正常”lda 模型一样评估动态模型(ldaseqmodel)的困惑度和主题连贯性? 我知道这些值会打印到 logging.INFO 中,因此另一种方法是将 logging.INFO 保存到文本文件中,以便在模拟后搜索这些评估值。 如果方法 1(评估 ldaseqmodel 的代码)不存在,是否可以将 logging.INFO 保存到文本文件中? 这是我生成 ldaseqmodel 的代码:

from gensim import models, corpora
import csv
import logging
logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)

Anzahl_Topics1      = 10                

Zeitabschnitte      = [16, 19, 44, 51, 84, 122, 216, 290, 385, 441, 477, 375, 390, 408, 428, 192, 38]

TDM_dateipfad = './1gramm/TDM_1gramm_1998_2014.csv'

dateiname_corpus = "./1gramm/corpus_DTM_1gramm.mm"

dateiname1_dtm  = "./1gramm/DTM_1gramm_10.model"

ids = {} 
corpus = [] 

with open(TDM_dateipfad, newline='') as csvfile:
    reader = csv.reader(csvfile, delimiter=';', quotechar='|') 
    for rownumber, row in enumerate(reader): 
        for index, field in enumerate(row):
            if index == 0:
                if rownumber > 0:
                    ids[rownumber-1] = field 
            else:
                if rownumber == 0:
                    corpus.append([])
                else:
                    corpus[index-1].append((rownumber-1, int(field))) 

corpora.MmCorpus.serialize(dateiname_corpus, corpus)

dtm1 = models.ldaseqmodel.LdaSeqModel(corpus=corpus, time_slice = Zeitabschnitte, id2word=ids, num_topics = Anzahl_Topics1, passes=1, chunksize=10000) 
dtm1.save(dateiname1_dtm)

【问题讨论】:

    标签: python-3.x gensim lda


    【解决方案1】:

    你问的是两个截然不同的问题。

    是否可以将 logging.INFO 保存到文本文件中?

    是的。您可以使用此代码将日志发送到文件而不是控制台。 DEBUG 级别日志记录为您提供比 INFO 更详细的信息。

    import logging
    logging.basicConfig(level=logging.DEBUG, file='yourlogname.log')
    

    您可能还希望将文件处理程序设置为在控制台中有一个 INFO 日志,并在一个文件中记录一个 DEBUG 级别的日志。有关更多信息,请参阅 python 文档here

    是否有可能使用困惑度和主题连贯性来评估 DTM?

    是的,使用dtm_coherence - 请参阅gensim documentation here - 连贯性通常是比困惑更有用的衡量标准(就“人类是否理解这一点”而言)。不过,您必须为每个时间片单独执行此操作。我的建议是,如果你想比较两个模型,比如 10 与 20 主题模型,可以循环遍历每个模型的时间片,并绘制一致性分数图,看看其中一个是否始终更好。 DTM example from the gensim devs 中有一个很好的教程。

    【讨论】:

      猜你喜欢
      • 2013-11-06
      • 2021-09-01
      • 1970-01-01
      • 2017-03-24
      • 2020-03-06
      • 2017-04-24
      • 1970-01-01
      • 2017-12-03
      • 2016-06-27
      相关资源
      最近更新 更多