【发布时间】:2018-08-01 13:31:40
【问题描述】:
我正在尝试使用 Gensim (https://radimrehurek.com/gensim/corpora/dictionary.html) 中的 filter_extremes 函数按频率过滤掉令牌。具体来说,我有兴趣过滤掉出现在“比 no_below 文档少”和“比 no_above 文档更频繁”中出现的单词。
id2word_ = corpora.Dictionary(texts)
print(len(id2word_))
id2word_.filter_extremes(no_above = 0.600)
print(len(id2word_))
第一个打印语句给出 11918,第二个打印语句给出 3567。但是,如果我执行以下操作:
id2word_ = corpora.Dictionary(texts)
print(len(id2word_))
id2word_.filter_extremes(no_below = 0.599)
print(len(id2word_))
第一个打印语句给出 11918(如预期的那样),第二个给出 11406。id2word_.filter_extremes(no_below = 0.599) 和 id2word_.filter_extremes(no_above = 0.600) 不应该加起来总字数吗?但是,11406 + 3567 > 11918,那么这个和怎么会超过语料库的单词数呢?这是没有意义的,因为根据文档中的解释,过滤器应该涵盖不重叠的单词。
如果您有任何想法,我将非常感谢您的意见!谢谢!
【问题讨论】:
标签: python dictionary text-processing gensim corpus