12

二値化とは、エンティティのカラフルな特徴を数値のベクトル (ほとんどの場合はバイナリ ベクトル) に変換して、分類アルゴリズムの良い例を作成することです。

「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)、およびパーセプトロンに主に関心がありますが、他のモデルに適用される答えも歓迎します。

4

3 に答える 3

5

これは実際には非常に複雑な質問です。最初に決定する必要があるのは、入力トークン (単語)を見出し語化するかどうかです。これを行うと、型の数が劇的に減り、構文解析がより簡単になります。ただし、トークンを見出し語化するには多くの作業が必要です。現在、コンピューター言語では、ほとんどの言語が空白やピリオドなどの明確に定義された一連の記号でキーワードまたは変数名を分離しているため、このタスクは大幅に軽減されます。

2 番目の重要な決定は、事後的にデータをどうするかということです。あなたが提示したバイナリ形式の「bag-of-words」メソッドは、単語の順序を無視します。これは、テキストの要約や、どこを気にしないGoogleスタイルの検索を行っている場合は完全に問題ありません言葉は現れる限り現れる。一方、コンパイラやパーサーのようなものを構築している場合、順序は非常に重要です。(2 番目の段落のように) トークン ベクトル アプローチを使用するか、bag-of-words ベクトルのゼロ以外の各エントリにトークンの線形インデックス位置が含まれるように、bag-of-words アプローチを拡張できます。フレーズで。

最後に、解析ツリーを構築する場合、bag-of 内のすべての単語のサブフレーズ ID を維持するのは非常に面倒なので、トークン ベクトル アプローチを使用する理由は明らかです。 -単語ベクトルですが、トークンベクトルで「サブベクトル」を作成するのは非常に簡単です。実際、Eric Brill は、彼の品詞 taggerに token-id シーケンスを使用しましたが、これは非常に優れています。

あなたが取り組んでいる特定のタスクについてお尋ねしてもよろしいですか?

于 2009-02-25T18:32:52.460 に答える
4

二値化とは、エンティティのカラフルな特徴を数値のベクトル (ほとんどの場合はバイナリ ベクトル) に変換して、分類アルゴリズムの良い例を作成することです。

ベクター内の特定の機能の関連性を表す (0% から 100% の間、100% を表す)と(説明したようにバイナリではない)の間の 値を取る数値機能に出くわしました。この一般的な例はtf-idfベクトルです。ドキュメント (または文) を表すベクトルでは、表現されたドキュメントに対するその用語の関連性を示す語彙全体の各用語の値があります。011

マイクが返信ですでに述べたように、これは幅広い分野で複雑な問題です。彼の指摘に加えて、ベクトル空間モデルベクトル空間分類潜在的セマンティック インデックス作成などの情報検索手法を出発点として調べると役立つ場合があります。また、単語の意味の曖昧さ回避の分野では、NLP における特徴表現の問題を多く扱います。

于 2009-03-02T01:19:20.407 に答える
0

[直接的な回答ではありません] 何を解析して処理するかによって異なりますが、一般的な人間の短いフレーズ処理 (IVT など) の場合、別の方法として、ニューラル ネットワークを使用してパターンを学習する方法があります。これは、小さな語彙に対して非常に正確です。

于 2009-02-26T12:30:00.530 に答える