スタンフォードNLPグループは最近、新しいPython自然言語処理ツールキットであるStanzaをリリースした。Stanzaは、テキスト分析(66の人間の言語をサポート)用の言語に依存しない完全なニューラルパイプラインと、StanfordのCoreNLP JavaソフトウェアへのPythonインターフェイスの両方を備えている。
Stanzaバージョン1.0.0は、以前は「stanfordnlp」と呼ばれていたライブラリの次のバージョンである。テキスト分析パイプラインを構築する研究者やエンジニアは、トークン化、マルチワードトークン拡張、レンマ化、品詞および形態学的特徴のタグ付け、依存関係の解析、固有表現抽出(NER)などのタスクにStanzaのツールを使用できる。同様のタスクを支援する既存の一般的なNLPツールキットと比較して、Stanzaは、より多くの人間の言語をサポートし、テキスト分析タスクの精度を高めることを目指している。そして、生の人間の言語テキストを処理するための統一されたフレームワークを提供することにより、前処理の必要性を排除することを目指している。機能を他のNLPツールキットと比較した以下の表は、Stanzaに関連する研究論文として見つけることができる。
Stanzaのパイプラインは、Universal Dependencies(UD)ツリーバンクのような多くの多言語コーパスを含む112のデータセットでトレーニングされている。UDプロジェクトは言語類型論の観点から多言語パーサーの開発、言語間学習、構文解析研究を促進しようとしている。そのために70以上の言語に対して言語間で一貫性のあるツリーバンクアノテーションを開発している。Stanzaに適用される完全なニューラルアーキテクチャは、テストされたすべての言語で競争力のあるパフォーマンスを達成する助けとなるため、一般的になっている。
研究論文は、UDツリーバンクデータセットと多言語NERデータセットでテストを実行した後の結果を示している。UDツリーバンクで、Stanzaは、言語に依存しないパイプラインアーキテクチャが、66の言語をカバーする100のツリーバンクで最高のマクロ平均スコアを獲得することで、さまざまな言語に適応できることを示している。
NERコンポーネントでは、Stanzaは(75%小さいNERモデルで)FLAIRと同様のF1スコアを達成し、spaCyのスコアを上回る。
Stanzaは、StanfordのJava CoreNLPソフトウェアにアクセスするためのPythonインターフェイスも提供する。これは、NLP実践者に追加で提供されるツールである。Stanzaは、CoreNLPの既存のサーバインターフェイスを利用して、クライアントがインスタンス化されたときにローカルプロセスとしてCoreNLPサーバを自動的に起動する堅牢なクライアントを追加している。クライアントは、RESTful APIを介してサーバと通信する。
将来、Stanzaを支えるチームは、外部の研究者がモデルを提供し、計算効率を向上させ、他のプロセッサを実装することで機能を拡張するためのインターフェイスを提供したいと考えている。spaCyのチームは、(ユーザがStanzaモデルをspaCyパイプラインとしてインポートできるようにするための)spacy-stanzaがこの新しいAPIで動作するように、すぐに移行した。