二値化とは、エンティティのカラフルな特徴を数値のベクトル (ほとんどの場合はバイナリ ベクトル) に変換して、分類アルゴリズムの良い例を作成することです。
「The cat ate the dog」という文を二値化する場合、すべての単語に ID (たとえば、cat-1、ate-2、the-3、dog-4 など) を割り当てることから始めて、単語を単純に次のように置き換えることができます。ベクトル <3,1,2,3,4> を与える ID です。
これらの ID が与えられると、各単語に 4 つの可能なスロットを与え、特定の単語に対応するスロットを 1 に設定して、ベクトル <0,0,1,0,1,0,0,0 を与えるバイナリ ベクトルを作成することもできます。 ,0,1,0,0,0,0,0,1>. 後者の方法は、私の知る限り、一般的にバッグ・オブ・ワード法と呼ばれています。
さて、私の質問ですが、一般的な自然言語処理の機能、特に (Nivres アルゴリズムを使用した)遷移ベースの依存関係解析の機能を説明する際に最適な2 値化方法は何ですか?
このコンテキストでは、文全体をエンコードするのではなく、解析の現在の状態 (たとえば、スタックの先頭の単語と入力キューの最初の単語など) をエンコードしたいと考えています。順序は関連性が高いため、bag-of-words-method は除外されます。
bestとは、不必要なメモリを使い果たすことなく、データを分類器にとって最もわかりやすいものにする方法を指しています。たとえば、実際にバイグラムが 2% しか存在しない場合、バイグラムが 20000 の一意の単語に対して 4 億の機能を使用することは望ましくありません。
答えは特定の分類子にも依存するため、最大エントロピー モデル (liblinear)、サポート ベクター マシン (libsvm)、およびパーセプトロンに主に関心がありますが、他のモデルに適用される答えも歓迎します。