web-dev-qa-db-ja.com

spacyは名前付きエンティティ認識(NER)にWord埋め込みをどのように使用しますか?

spaCyを使用してNERモデルをトレーニングし、場所、(人)名、組織を特定しようとしています。 spaCyがテキスト内のエンティティをどのように認識するかを理解しようとしていますが、答えを見つけることができませんでした。 Githubの この問題 および この例 から、spaCyは、POSタグ、プレフィックス、サフィックス、その他の文字や単語など、テキストに存在する多くの機能を使用しているようです。平均化されたパーセプトロンをトレーニングするためのテキスト内のベースの機能。

ただし、コードのどこにもspaCyがGLoVe埋め込みを使用しているようには見えません(ただし、GLoVeコーパスに存在する場合、文/ドキュメント内の各単語にGLoVe埋め込みがあるように見えます)。

私の質問は-

  1. これらは現在NERシステムで使用されていますか?
  2. Wordベクトルを別のセットに切り替える場合、パフォーマンスが有意義な方法で変化することを期待する必要がありますか?
  3. コードのどこで(すべての場合)spaCyがWordベクトルをどのように使用しているかを知ることができますか?

Cythonコードを調べてみましたが、ラベリングシステムがWordの埋め込みを使用しているかどうかがわかりません。

12

spaCyは、多層CNNであるNERモデルにWord埋め込みを使用します。 spaCyの作成者であるMatthewHonnibalが、そのNERがどのように機能するかについて作成した非常に素晴らしいビデオがあります ここ 。 3つの英語モデルはすべてCommonCrawlでトレーニングされたGloVeベクトルを使用しますが、小さいモデルは同じベクトルに類似した単語をマップすることでベクトルの数を「プルーニング」します link

カスタムベクトルを追加することは非常に実行可能です。 spaCy docs にプロセスの概要があり、 Github にいくつかのサンプルコードがあります。

6
ahalt