1

我正在尝试对几千个文档进行分类,每个文档有几行。我以前使用过常规的词袋,但这次想使用散列技巧,我无法理解实现。我的数据中大约有 8000 个唯一词,所以我认为 128*128 应该足够了

我主要使用这些来源:

http://blog.someben.com/2013/01/hashing-lang/ http://www.hpl.hp.com/techreports/2008/HPL-2008-91R1.pdf

这是我为每个文档生成特征向量的函数:

import mmh3

def add_doc(text):
    text = str.split(text)
    d_input = dict()
    for word in text:
        hashed_token = mmh3.hash(word) % 127
        d_input[hashed_token] = d_input.setdefault(hashed_token, 0) + 1
    return(d_input)

现在我一定是做错了什么,或者在某个地方不理解某些东西,因为似乎有大量的碰撞。任何帮助,将不胜感激

4

1 回答 1

0

您不应该通过 % 127 修改散列,这只会产生 127 个可能的输出,而根据您的 8000 个唯一词推理,您似乎想要 128^2 个可能的输出。

于 2013-02-16T23:15:57.443 回答