【问题标题】:CountVectorizer in sklearn with only words above some minimum number of occurrencessklearn 中的 CountVectorizer,仅包含高于某个最小出现次数的单词
【发布时间】:2015-02-24 02:01:24
【问题描述】:

我正在使用 sklearn 对一些文本数据进行逻辑回归训练,方法是使用 CountVectorizer 将数据标记为二元组。我使用如下一行代码:

vect= CountVectorizer(ngram_range=(1,2), binary =True)

但是,我想限制自己只在我的结果稀疏矩阵中包含在我的所有数据中出现超过某个阈值次数(例如 50 次)的二元组。有什么方法可以指定或实现它吗?

【问题讨论】:

    标签: python text scikit-learn tokenize


    【解决方案1】:

    看起来这可以通过使用 CountVectorizer 的 min_df 参数来解决:

    vect= CountVectorizer(ngram_range=(1,2), binary =True, min_df = 500)
    

    【讨论】:

    • 现在可能有点晚了,但是这个过滤器考虑的是文档频率而不是词频,这似乎是你想要的。您现在将词汇表限制为至少出现在 500 个文档中的所有单词,但您可能会错过出现 2000 次(总共 499 个文档)的单词。
    • @Joko,感谢您的评论,为我节省了很多时间!
    【解决方案2】:

    也可以使用CountVectorizer(ngram_range=(1,2), binary =True, max_features = 5000) 来选择出现次数最多的 5000 个二元组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-03
      • 2016-07-27
      • 2021-04-10
      • 1970-01-01
      • 2020-08-07
      • 2018-05-22
      • 1970-01-01
      • 2016-11-15
      相关资源
      最近更新 更多