分類を学んでいます。ベクトルの使用について読みました。しかし、単語を含むテキストをベクトルに変換するアルゴリズムが見つかりません。単語のハッシュを生成し、ベクトル内のハッシュ位置に 1 を追加することについてですか?
2 に答える
ほとんどの人がテキストを特徴ベクトルに変換することについて話すとき、彼らが意味するのは単語 (トークン) の存在を記録することだけです。
ベクトルをエンコードする主な方法は 2 つあります。1つは明示的で、0
存在しない(しかし語彙にはある) for each 単語があります。もう 1 つの方法は暗黙的です---スパース行列(ただし単一のベクトルのみ) のように--- 項を頻度値でのみエンコードします>= 1
。
バッグ・オブ・ワードモデル
これを最もよく説明している主な記事は、自然言語処理アプリケーションに広く使用されているバッグ オブ ワード モデルである可能性が最も高いでしょう。
明示的な BoW ベクトルの例:
次の語彙があるとします。
{brown, dog, fox, jumped, lazy, over, quick, the, zebra}
文は次の"the quick brown fox jumped over the lazy dog"
ようにエンコードできます。
<1, 1, 1, 1, 1, 1, 1, 2, 0>
位置が重要であることを忘れないでください。
文"the zebra jumped"
は --- 長さは短くなりますが --- 次のようにエンコードされます。
<0, 0, 0, 1, 0, 0, 0, 1, 1>
明示的なアプローチの問題は、数十万の語彙用語がある場合、各ドキュメントにも数十万の用語 (ほとんどゼロの値) が含まれることです。
暗黙的な BoW ベクトルの例:
この場合、文は次の"the zebra jumped"
ようにエンコードできます。
<'jumped': 1, 'the': 1, 'zebra': 1>
順序は任意です。