1

それぞれ数行ずつ、数千のドキュメントを分類しようとしています。以前は通常の bag of words を使用していましたが、今回はハッシュ トリックを使用したいのですが、実装がわかりません。私のデータには約 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 に答える