【问题标题】:Get total count of aword in corpus using Countvectorizer使用 Countvectorizer 获取语料库中单词的总数
【发布时间】:2021-06-09 23:56:36
【问题描述】:

我有以下格式的语料库:

corpus = ['text_1', 'text_2', ... . 'text_4280']

总共有 90141 个唯一词。 对于每个单词,我想计算它在corpus 中出现的总次数。

为此,我使用了:

vectorizer = CountVectorizer(corpus)

目前,我知道这样做的唯一方法是:

vectorizer.fit_transform()

但是,这将创建一个形状为(4280, 90141) 的(稀疏)Numpy 数组。 CountVectorizer 是否有更节省内存的方法来获取文档项矩阵的所有列和?

【问题讨论】:

    标签: python-3.x numpy sparse-matrix countvectorizer


    【解决方案1】:

    你可以使用

    vectorizer.fit_transform().toarray().sum(axis= 0)
    

    编辑

    我的错,你应该从上面的声明中删除.toarray()。我没有意识到你可以在稀疏数组上调用.sum()

    vectorizer.fit_transform().sum(axis= 0)
    

    【讨论】:

    • 这样做,我得到一个内存错误,因为这种方法需要 4.69 TiB 的数据
    • @Emil 删除.toarray()。那是永远,永远,永远不会发生的部分。您可以对列上的稀疏数组求和,而无需尝试将它们变成 5 TB 的零。
    猜你喜欢
    • 2015-02-13
    • 2013-04-11
    • 2021-08-25
    • 1970-01-01
    • 2019-09-26
    • 1970-01-01
    • 2021-11-01
    • 2020-01-06
    • 2013-01-08
    相关资源
    最近更新 更多