代码之家  ›  专栏  ›  技术社区  ›  Jane Sully

GENSIM中单词数据包的归一化

  •  2
  • Jane Sully  · 技术社区  · 6 年前

    我正在使用自动生成语言创建一个单词包模型,我想执行标准化。我找到了文件 https://radimrehurek.com/gensim/models/normmodel.html ,但是我很困惑如何在给定代码的情况下实现它。对话是一个标记化文档的列表,因此本质上是一个列表,当每个元素都是一个文档时。

    id2word = corpora.Dictionary(conversations)
    id2word.filter_extremes(keep_n=5000, keep_tokens=None) 
    corpus = [id2word.doc2bow(text) for text in conversations]
    norm_corpus = NormModel(corpus)
    

    我相信语料库是一个稀疏矩阵。对于每个文档,它都有非零频率项和相应的计数:[[(0,2),(1,5),(2,4)…(92,2),(93,3)],…]。

    最后一行 norm_corpus 当我尝试将其输入到以下内容时不起作用: models.LsiModel(norm_corpus, id2word=id2word, num_topics=12) 是的。我收到类型错误消息,“int”对象不可iterable。然而,文档上说要传入一个语料库,所以我很困惑。我很感激你的帮助——谢谢!

    1 回复  |  直到 6 年前
        1
  •  1
  •   muninn    6 年前

    我现在没有办法检查,但试试这个:

    norm_corpus = NormModel()
    norm_corpus.normalize(text)
    

    norm_corpus.normalize(id2word.doc2bow(text)

    在你原来的代码中

    `NormModel(iterable)`
    

    但文件上说你需要通过:

    NormModel(iterable of iterable(int,number))

    如果这有道理的话。