【问题标题】:Trying to make use of a library to conduct some topic modeling, but it's not going well尝试利用库进行一些主题建模,但进展不顺利
【发布时间】:2020-03-11 05:19:59
【问题描述】:

我有一个 .csv 术语文档矩阵,我想在 python 中使用 gensim 执行一些潜在的狄利克雷分配。但是,我对 Python 或 LDA 并不是特别熟悉。

我在 gensim...论坛发帖?不知道是不是这么叫的。写包裹的人回应说:

您的术语文档 CSV 矩阵有多大?

如果它足够小 = 适合 RAM,您可以:

1) 使用 numpy.loadtxt() 将您的 CSV 加载到内存矩阵中

2) 使用 gensim.matutils.Dense2Corpus() 将矩阵转换为语料库。查看它的documents_columns 标志,它可以让您轻松地在document-term 和term-document 转置之间切换。

3) 使用该语料库来训练您的 LDA 模型。

这让我相信this question 的答案不正确。

似乎字典是 LDA 模型的必要输入;这不正确吗?这就是我认为成功地将 .csv 粘贴到语料库中的内容。

file = np.genfromtxt(fname=fPathName, dtype="int", delimiter=",", skip_header=True, missing_values="", filling_values=0)


corpus = gensim.matutils.Dense2Corpus(file, documents_columns=False)

任何帮助将不胜感激。

编辑:事实证明 Gensim 字典和 Python 字典并不完全相同。

【问题讨论】:

    标签: python gensim lda corpus


    【解决方案1】:

    所以,我从 Gensim 文档中截取了这段代码:

    from gensim.models import LdaModel
    from gensim.test.utils import common_texts
    from gensim.corpora.dictionary import Dictionary
    
    # Create a corpus from a list of texts
    common_dictionary = Dictionary(common_texts)
    common_corpus = [common_dictionary.doc2bow(text) for text in common_texts]
    
    # Train the model on the corpus.
    lda = LdaModel(common_corpus, num_topics=10)
    

    您要分析的文件是 csv,因此您可以使用 pandas 打开它

    import pandas as pd
    df = pd.read_csv(filename) # add header=None if the file has no column names
    

    导入文件后,您将所有内容加载到数据框中,您需要将所有文本组合成一个唯一列表(请参阅 gensim 代码片段的第一条评论),该列表应如下所示

    ["text one..", "text 2..", "text 3..."]
    

    您可以通过迭代数据框并迭代地将文本添加到空列表来做到这一点。在此之前,您还需要检查 csv 文件的哪一列包含要分析的文本。

    common_texts = [] # initialise empty list
    for ind, row in df.iteritem():
        text = row[name_column_with_text]
        common_texts.append(text)
    

    获得文本列表后,您可以简单地应用 gensim 文档中的代码。 当然你可能会遇到内存问题,这取决于你的 csv 文件的大小。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-13
      • 2021-06-22
      • 1970-01-01
      • 1970-01-01
      • 2019-08-26
      • 2021-04-18
      • 2020-10-06
      • 2017-10-06
      相关资源
      最近更新 更多