import gensim
corpus = [["a","b","c"],["a","d","e"],["a","f","g"]]
from gensim.corpora import Dictionary
dct = Dictionary(corpus)
print(dct)
dct.filter_extremes(no_below=1)
print(dct)
当我运行上面的代码时,我的输出是-
^{pr2}$
我想既然“a”出现在两个文档中,就不应该删除它。然而,事实并非如此。我错过什么了吗?在
Tags:
看看documentation of ^{} :
您只传递
no_below=1
。这意味着出现在少于1个文档(共3个)中的标记将被删除。这意味着a
以及语料库中的任何其他标记。在但是
no_above=0.5
将根据其默认值进行检查,因为您没有为此关键字传递显式值。这意味着超过50%的文档(3个文档中,即至少2个文档中出现的)中出现的令牌将被删除。并且'a'
出现在所有3个文档中,它是唯一一个至少出现在2个文档中的文档。这就是为什么要从结果中删除这个标记和这个标记。(keep_n
的默认值10000表示步骤3在您的示例中是一个no-op。)如果仅想要剥离低频极值标记,请将显式的
no_above=1.0
传递给filter_extremes
。在相关问题 更多 >
编程相关推荐