我正在使用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中设置这些阈值。有人可以帮忙吗?
答案 0 :(得分:0)
您可以使用
过滤字典dictionary.filter_extremes(no_below=min_df, no_above=rel_max_df)
请注意,no_below
期望出现令牌的最小文档数量,而no_above
期望最大的相对频率,例如0.5
。之后,您可以使用过滤后的字典构建语料库。根据{{3}},还可以仅使用字典来构建TfidfModel
。