品詞のタグ付けのために構造化パーセプトロンを実装する方法を正確に理解するのに苦労しています。私の考えを確認または修正してください。不足しているギャップを埋めてください。
基本的に、構造化パーセプトロンはマルチクラス パーセプトロンの変形ですが、最高のスコアを収集する実装方法が異なります。現在のシーケンス インデックスは前のインデックスのみに依存するという一次マルコフ仮定が行われます。入力は、構造化されていない場合の 1 つの単語だけではなく、単語のシーケンス全体であり、すべての可能なラベル (y) のベクトルです。関数 f(x,y) は、指定された単語シーケンスに対して推測されたラベル シーケンスを返します。
マルチクラス パーセプトロンでは、1 つのラベルを 1 つのインスタンスに分類するだけなので、反復によって最高のスコアを簡単に取得できます。配列全体を分類する際の問題は、可能な標識の数が指数関数的に増加することです。これは、2 つの機能セットを使用して最適なパスを再帰的に見つけるビタビ アルゴリズムが必要な場所です。1 つは特定の POS タグが特定の単語にどの程度当てはまるかを判断するためのもので、もう 1 つは特定の POS タグが別の POS タグの直後に来る可能性を判断するためのものです。これらの各機能セットからのスコアは、各状態の一意の重みで乗算されます。選択したパスが間違っている場合、間違ったパスの状態の各重みが罰せられ、正しいパスの重みが与えられます。
これは、私が(できれば)理解している範囲です。現在の私の最大の質問は、機能がどのように構成されているか (以前のタグ シーケンスは機能の一部ですか?)、およびビタビ アルゴリズムを実際に実装する方法です。また、構造化パーセプトロンを使用した POS タガーの実装はどこにでもありますか (できれば Java で) 分析できますか?
ヒントを教えていただけると大変助かります!