有没有办法在gensim的tfidf模型中设置min_df和max_df?

时间:2018-06-14 14:10:48

标签: gensim tf-idf

我正在使用gensim的tdidf模型:

from gensim import corpora, models

dictionary = corpora.Dictionary(some_corpus)
mapped_corpus = [dictionary.doc2bow(text)
                 for text in some_corpus]

tfidf = models.TfidfModel(mapped_corpus)

现在我想应用阈值来删除过于频繁出现的术语(max_df)和过于频繁出现的术语(min_df)。我知道scikit的CountVectorizer允许你这样做,但我似乎无法找到如何在gensim的tfidf中设置这些阈值。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您可以使用

过滤字典
dictionary.filter_extremes(no_below=min_df, no_above=rel_max_df)

请注意,no_below期望出现令牌的最小文档数量,而no_above期望最大的相对频率,例如0.5。之后,您可以使用过滤后的字典构建语料库。根据{{​​3}},还可以仅使用字典来构建TfidfModel