2

パーセプトロンを使用して教師あり分類を実行し、それによって文の品詞タグ付けを実行しようとしています。今のところ、各単語のタグは互いに独立していると想定しています。(つまり、機能として単語だけを使用しています)。私は機械学習アルゴリズムにかなり慣れていないため、各単語の特徴関数を表す方法を理解できません。

私は100文のトレーニングセットを持っており、各単語には特定のタグ(たとえば、N、V、J(形容詞)など)が付けられています。例えば、

ジャック(N)と(&)ジル(N)は(V)から(PRP)ペルー(N)に行きました

タグは中かっこで囲まれています。合計10個の可能なタグがあるとしましょう。さて、私の質問は、ジャックという単語の特徴ベクトルはどのように見えるかということです。

私のコードは表記法とよりよく一致するので、私はそれをベクトルとして実装することに非常に興味があります。機能関数がどのように見えるかを理解すると、パーセプトロンアルゴリズムを実装できるようになります。

また、次のような機能を追加したいとします。(a)最初の文字は大文字ですか?(b)単語はハイフンでつながれているなど、特徴ベクトルに組み込むにはどうすればよいですか?

直感的には、ベクトルには2進値のみが必要であることがわかりますが、それを超えることはできません。

できれば具体的な例で説明してみてください!

4

1 に答える 1

13

単語を数値IDにマップする辞書を使用します。語彙に10,000個のアイテムが含まれている場合、辞書は各単語を0〜9999の範囲の数値にマップし、すべての単語は長さ10,000のバイナリベクトルとして表され、1つの要素のみがアクティブになります。辞書。

単語ID以外の追加の機能が必要な場合は、これらを機能ベクトルの最後に追加できます。つまり、機能を10,000以上の大文字化機能、以前のタグ機能(上記のバイナリコーディングが必要)などにすることができます。 。

最後に、品詞タグ付けは、一連の独立した分類ではなく、構造化された予測問題のインスタンスです。これが学術的な演習以上のものになる場合は、構造化パーセプトロン、またはCRFやstruct-SVMなどの別の構造化学習方法に移行することをお勧めします。

編集:簡単な例

5語の語彙{the、cat、sat、on、mat}と、縮小されたタグセット{DET、N、V、PREP}があるとします。したがって、私の文は次のとおりです。

(The、DET)(cat、N)(sat、V)(on、PREP)(the、DET)(mat、N)。

ここで、各単語の特徴ベクトルが必要です。そこからタグを予測できるようにしたいと思います。単語IDインジケーター関数として機能0〜4を使用するので、機能0は「the」に対応し、機能1は「cat」に対応します。これにより、次の特徴ベクトルが得られます(->の後に目的の「クラス」またはタグが割り当てられます)。

[1 0 0 0 0] -> DET
[0 1 0 0 0] -> N
[0 0 0 0 0] -> V
...

これらをインスタンスとして扱い、選択した学習アルゴリズムをこのタスクに適用することはできます、単語ID関数だけではあまり購入できません。HMMのような直感を分類に取り入れたいと思ったので、のタグが何であったかを示す機能関数も追加します。したがって、このための指標として機能5〜8を使用し、5はDETに対応し、6はNに対応します。今私は次のものを持っています:

[1 0 0 0 0 0 0 0 0] -> DET (because this is the first word there's no previous tag)
[0 1 0 0 0 1 0 0 0] -> N
[0 0 0 0 0 0 1 0 0] -> V

これで、単語が大文字であるかどうかを示すために機能9を使用して、心のコンテンツに機能を追加し続けることができます。機能10は、単語が既知の適切な名詞のリストと一致するかどうかなどです。構造化された予測タスクと方法、このタスク用にカスタマイズされたモデルを使用することがなぜ優れているのかを理解する必要があります(最も簡単なのはHMMですが、最先端のパフォーマンスのためにCRF/構造化パーセプトロン/StructSVMに進みたいです)これを処理するよりも優れています独立した決定の束として。

于 2013-02-12T11:13:20.757 に答える