Stanford NLP Group の公式 Python NLP ライブラリ。これには、60 以上の言語でさまざまな正確な自然言語処理ツールを実行するためのサポートと、Python から Java Stanford CoreNLP ソフトウェアにアクセスするためのサポートが含まれています。詳しい情報は公式サイトをご覧ください。
生物医学および臨床英語モデル パッケージの新しいコレクションが利用可能になり、生物医学文献のテキストや臨床ノートからの構文分析と固有表現認識 (NER) のシームレスなエクスペリエンスを提供します。詳細については、生物医学モデルのドキュメント ページをご覧ください。
研究でこのライブラリを使用する場合は、ACL2020 Stanza システムのデモ ペーパーを引用してください。
@inproceedings { qi2020stanza ,
title = { Stanza: A {Python} Natural Language Processing Toolkit for Many Human Languages } ,
author = { Qi, Peng and Zhang, Yuhao and Zhang, Yuhui and Bolton, Jason and Manning, Christopher D. } ,
booktitle = " Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics: System Demonstrations " ,
year = { 2020 }
}
当社の生物医学モデルおよび臨床モデルを使用する場合は、Stanza Biomedical Models の説明文書も引用してください。
@article { zhang2021biomedical ,
author = { Zhang, Yuhao and Zhang, Yuhui and Qi, Peng and Manning, Christopher D and Langlotz, Curtis P } ,
title = { Biomedical and clinical {E}nglish model packages for the {S}tanza {P}ython {NLP} library } ,
journal = { Journal of the American Medical Informatics Association } ,
year = { 2021 } ,
month = { 06 } ,
issn = { 1527-974X }
}
このリポジトリのニューラル パイプラインの PyTorch 実装は、Peng Qi (@qipeng)、Yuhao Zhang (@yuhaozhang)、および Yuhui Zhang (@yuhui-zh15) によるもので、Jason Bolton (@j38)、Tim Dozat ( @tdozat) とジョン バウアー (@AngledLuffa)。このリポジトリのメンテナンスは現在、John Bauer が主導しています。
Stanza を通じて CoreNLP ソフトウェアを使用する場合は、ここで説明されているように、CoreNLP ソフトウェア パッケージとそれぞれのモジュールを引用してください (「論文における Stanford CoreNLP の引用」)。 CoreNLP クライアントは主に Arun Chaganty によって作成され、Jason Bolton が 2 つのプロジェクトを統合する陣頭指揮を執りました。
CoreNLP の Semgrex または Ssurgeon 部分を使用する場合は、Semgrex と Ssurgeon に関する GURT 論文を引用してください。
@inproceedings { bauer-etal-2023-semgrex ,
title = " Semgrex and Ssurgeon, Searching and Manipulating Dependency Graphs " ,
author = " Bauer, John and
Kiddon, Chlo{'e} and
Yeh, Eric and
Shan, Alex and
D. Manning, Christopher " ,
booktitle = " Proceedings of the 21st International Workshop on Treebanks and Linguistic Theories (TLT, GURT/SyntaxFest 2023) " ,
month = mar,
year = " 2023 " ,
address = " Washington, D.C. " ,
publisher = " Association for Computational Linguistics " ,
url = " https://aclanthology.org/2023.tlt-1.7 " ,
pages = " 67--73 " ,
abstract = " Searching dependency graphs and manipulating them can be a time consuming and challenging task to get right. We document Semgrex, a system for searching dependency graphs, and introduce Ssurgeon, a system for manipulating the output of Semgrex. The compact language used by these systems allows for easy command line or API processing of dependencies. Additionally, integration with publicly released toolkits in Java and Python allows for searching text relations and attributes over natural text. " ,
}
質問したり、問題を報告したり、機能をリクエストするには、GitHub Issue Tracker を使用してください。新しい問題を作成する前に、問題を解決できる可能性のある既存の問題を検索するか、Web サイトのよくある質問 (FAQ) ページにアクセスしてください。
バグ修正や機能強化という形で、Stanza へのコミュニティからの貢献を歓迎します。貢献したい場合は、まず貢献ガイドラインをお読みください。
Stanza は Python 3.6 以降をサポートします。 Stanza は、Python パッケージ マネージャーである pip 経由でインストールすることをお勧めします。インストールするには、次のコマンドを実行するだけです。
pip install stanza
これは、Stanza (PyTorch 1.3.0 以降など) のすべての依存関係を解決するのにも役立ちます。
現在、以前のバージョンのstanza
がインストールされている場合は、次を使用します。
pip install stanza -U
Anaconda 経由で Stanza をインストールするには、次の conda コマンドを使用します。
conda install -c stanfordnlp stanza
現時点では、Anaconda 経由で Stanza をインストールすることは Python 3.10 では機能しないことに注意してください。 Python 3.10 の場合は、pip インストールを使用してください。
あるいは、この git リポジトリのソースからインストールすることもできます。これにより、Stanza 上での開発の柔軟性が高まります。このオプションの場合は、次を実行します。
git clone https://github.com/stanfordnlp/stanza.git
cd stanza
pip install -e .
最初の Stanza パイプラインを実行するには、Python 対話型インタープリターで次の手順に従うだけです。
> >> import stanza
> >> stanza . download ( 'en' ) # This downloads the English models for the neural pipeline
> >> nlp = stanza . Pipeline ( 'en' ) # This sets up a default neural pipeline in English
> >> doc = nlp ( "Barack Obama was born in Hawaii. He was elected president in 2008." )
> >> doc . sentences [ 0 ]. print_dependencies ()
requests.exceptions.ConnectionError
が発生した場合は、プロキシの使用を試してください。
> >> import stanza
> >> proxies = { 'http' : 'http://ip:port' , 'https' : 'http://ip:port' }
> >> stanza . download ( 'en' , proxies = proxies ) # This downloads the English models for the neural pipeline
> >> nlp = stanza . Pipeline ( 'en' ) # This sets up a default neural pipeline in English
> >> doc = nlp ( "Barack Obama was born in Hawaii. He was elected president in 2008." )
> >> doc . sentences [ 0 ]. print_dependencies ()
最後のコマンドは、入力文字列 (またはスタンザで表されるDocument
) の最初の文の単語と、その文のユニバーサル依存関係解析でそれを支配する単語のインデックスを出力します (その " head") と単語間の依存関係を示します。出力は次のようになります。
('Barack', '4', 'nsubj:pass')
('Obama', '1', 'flat')
('was', '4', 'aux:pass')
('born', '0', 'root')
('in', '6', 'case')
('Hawaii', '4', 'obl')
('.', '4', 'punct')
詳細については、スタートガイドをご覧ください。
ニューラル パイプラインとは別に、このパッケージには、Python コードを使用して Java Stanford CoreNLP ソフトウェアにアクセスするための公式ラッパーも含まれています。
いくつかの初期設定手順があります。
CORENLP_HOME
環境変数 (*nix など) を設定して、Stanford CoreNLP が存在する場所を Python コードに指示します。export export CORENLP_HOME=/path/to/stanford-corenlp-4.5.3
ドキュメントでは、スタンザを通じて CoreNLP を使用し、そこからさまざまなアノテーションを抽出する方法を示す包括的な例を提供しています。
すぐに始められるよう、 demo
フォルダーにはインタラクティブな Jupyter ノートブックも用意されています。これらのノートブックを開いて、Google Colab で対話的に実行することもできます。利用可能なすべてのノートブックを表示するには、次の手順に従います。
File
-> Open notebook
に移動し、ポップアップ メニューでGitHub
選択します。stanfordnlp/stanza
と入力し、「Enter」をクリックします。現在、ユニバーサル依存関係ツリーバンク v2.8 のすべてのモデルと、広く話されているいくつかの言語の NER モデルを提供しています。これらのモデルをダウンロードして使用する手順については、こちらをご覧ください。
速度パフォーマンスを最大化するには、ドキュメントのバッチに対してパイプラインを実行することが不可欠です。一度に 1 つの文に対して for ループを実行すると、非常に時間がかかります。現時点での最善の方法は、各ドキュメントを空白行 (つまり、2 つの改行nn
) で区切ってドキュメントを連結することです。トークナイザーは空白行を文の区切りとして認識します。私たちはマルチドキュメント処理の改善に積極的に取り組んでいます。
このライブラリ内のすべてのニューラル モジュールは、独自のデータを使用してトレーニングできます。トークナイザー、マルチワード トークン (MWT) エキスパンダ、POS/形態素特徴タガー、レンマタイザー、および依存関係パーサーには CoNLL-U 形式のデータが必要ですが、NER モデルには BIOES 形式が必要です。現在、 Pipeline
インターフェイスを介したモデルのトレーニングはサポートされていません。したがって、独自のモデルをトレーニングするには、この git リポジトリのクローンを作成し、ソースからトレーニングを実行する必要があります。
独自のモデルをトレーニングおよび評価する方法に関する詳細なステップバイステップのガイダンスについては、トレーニング ドキュメントを参照してください。
Stanza は、Apache License バージョン 2.0 に基づいてリリースされています。詳細については、LICENSE ファイルを参照してください。