Die offizielle Python-NLP-Bibliothek der Stanford NLP Group. Es enthält Unterstützung für die Ausführung verschiedener präziser Tools zur Verarbeitung natürlicher Sprache in über 60 Sprachen und für den Zugriff auf die Java Stanford CoreNLP-Software von Python aus. Für detaillierte Informationen besuchen Sie bitte unsere offizielle Website.
Eine neue Sammlung biomedizinischer und klinischer englischer Modellpakete ist jetzt verfügbar und bietet eine nahtlose Erfahrung für syntaktische Analyse und Named Entity Recognition (NER) aus biomedizinischem Literaturtext und klinischen Notizen. Weitere Informationen finden Sie auf unserer Dokumentationsseite zu biomedizinischen Modellen.
Wenn Sie diese Bibliothek in Ihrer Forschung verwenden, zitieren Sie bitte unser Demopapier zum ACL2020 Stanza-System:
@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 }
}
Wenn Sie unsere biomedizinischen und klinischen Modelle verwenden, zitieren Sie bitte auch unser Beschreibungspapier 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 }
}
Die PyTorch-Implementierung der neuronalen Pipeline in diesem Repository ist Peng Qi (@qipeng), Yuhao Zhang (@yuhaozhang) und Yuhui Zhang (@yuhui-zh15) zu verdanken, mit Hilfe von Jason Bolton (@j38), Tim Dozat ( @tdozat) und John Bauer (@AngledLuffa). Die Wartung dieses Repos wird derzeit von John Bauer geleitet.
Wenn Sie die CoreNLP-Software über Stanza nutzen, zitieren Sie bitte das CoreNLP-Softwarepaket und die entsprechenden Module wie hier beschrieben („Zitieren von Stanford CoreNLP in Aufsätzen“). Der CoreNLP-Client wurde größtenteils von Arun Chaganty geschrieben, und Jason Bolton leitete die Zusammenführung der beiden Projekte.
Wenn Sie den Semgrex- oder Ssurgeon-Teil von CoreNLP verwenden, zitieren Sie bitte unser GURT-Papier zu Semgrex und Ssurgeon:
@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. " ,
}
Um Fragen zu stellen, Probleme zu melden oder Funktionen anzufordern, verwenden Sie bitte den GitHub Issue Tracker. Bevor Sie ein neues Problem erstellen, suchen Sie bitte unbedingt nach vorhandenen Problemen, die Ihr Problem lösen könnten, oder besuchen Sie die Seite mit häufig gestellten Fragen (FAQ) auf unserer Website.
Wir freuen uns über Community-Beiträge zu Stanza in Form von Bugfixes und Verbesserungen! Wenn Sie einen Beitrag leisten möchten, lesen Sie bitte zunächst unsere Beitragsrichtlinie.
Stanza unterstützt Python 3.6 oder höher. Wir empfehlen Ihnen, Stanza über pip, den Python-Paketmanager, zu installieren. Führen Sie zur Installation einfach Folgendes aus:
pip install stanza
Dies sollte auch dazu beitragen, alle Abhängigkeiten von Stanza aufzulösen, beispielsweise PyTorch 1.3.0 oder höher.
Wenn Sie derzeit eine frühere Version von stanza
installiert haben, verwenden Sie:
pip install stanza -U
Um Stanza über Anaconda zu installieren, verwenden Sie den folgenden Conda-Befehl:
conda install -c stanfordnlp stanza
Beachten Sie, dass die Installation von Stanza über Anaconda derzeit nicht für Python 3.10 funktioniert. Für Python 3.10 verwenden Sie bitte die Pip-Installation.
Alternativ können Sie auch von der Quelle dieses Git-Repositorys installieren, was Ihnen mehr Flexibilität bei der Entwicklung auf Stanza gibt. Führen Sie für diese Option Folgendes aus:
git clone https://github.com/stanfordnlp/stanza.git
cd stanza
pip install -e .
Um Ihre erste Stanza-Pipeline auszuführen, befolgen Sie einfach die folgenden Schritte in Ihrem interaktiven Python-Interpreter:
> >> 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 ()
Wenn Sie auf requests.exceptions.ConnectionError
stoßen, versuchen Sie bitte, einen Proxy zu verwenden:
> >> 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 ()
Der letzte Befehl gibt die Wörter im ersten Satz in der Eingabezeichenfolge (oder Document
, wie es in Stanza dargestellt wird) sowie die Indizes für das Wort aus, das sie in der Universal Dependencies-Analyse dieses Satzes steuert (sein „ head"), zusammen mit der Abhängigkeitsbeziehung zwischen den Wörtern. Die Ausgabe sollte wie folgt aussehen:
('Barack', '4', 'nsubj:pass')
('Obama', '1', 'flat')
('was', '4', 'aux:pass')
('born', '0', 'root')
('in', '6', 'case')
('Hawaii', '4', 'obl')
('.', '4', 'punct')
Weitere Informationen finden Sie in unserem Leitfaden „Erste Schritte“.
Neben der neuronalen Pipeline enthält dieses Paket auch einen offiziellen Wrapper für den Zugriff auf die Java Stanford CoreNLP-Software mit Python-Code.
Es sind einige Schritte zur Ersteinrichtung erforderlich.
CORENLP_HOME
festlegen (z. B. in *nix): export CORENLP_HOME=/path/to/stanford-corenlp-4.5.3
Wir stellen in unserer Dokumentation umfassende Beispiele bereit, die zeigen, wie man CoreNLP über Stanza verwenden und verschiedene Anmerkungen daraus extrahieren kann.
Um Ihnen den Einstieg zu erleichtern, stellen wir im demo
auch interaktive Jupyter-Notizbücher zur Verfügung. Sie können diese Notizbücher auch öffnen und interaktiv auf Google Colab ausführen. Um alle verfügbaren Notizbücher anzuzeigen, führen Sie die folgenden Schritte aus:
File
-> Open notebook
und wählen Sie GitHub
im Popup-Menüstanfordnlp/stanza
in die Suchleiste ein und klicken Sie auf die EingabetasteWir bieten derzeit Modelle für alle Universal Dependencies-Baumbanken v2.8 sowie NER-Modelle für einige weit verbreitete Sprachen an. Anweisungen zum Herunterladen und Verwenden dieser Modelle finden Sie hier.
Um die Geschwindigkeitsleistung zu maximieren, ist es wichtig, die Pipeline für Dokumentenstapel auszuführen. Das Ausführen einer for-Schleife für jeweils einen Satz ist sehr langsam. Der derzeit beste Ansatz besteht darin, Dokumente miteinander zu verketten, wobei jedes Dokument durch eine Leerzeile (dh zwei Zeilenumbrüche nn
) getrennt wird. Der Tokenizer erkennt Leerzeilen als Satzumbrüche. Wir arbeiten aktiv an der Verbesserung der Multidokumentverarbeitung.
Alle neuronalen Module in dieser Bibliothek können mit Ihren eigenen Daten trainiert werden. Der Tokenizer, der Multi-Word-Token (MWT)-Expander, der POS/Morphological Features Tagger, der Lemmatizer und der Abhängigkeitsparser erfordern Daten im CoNLL-U-Format, während das NER-Modell das BIOES-Format erfordert. Derzeit unterstützen wir kein Modelltraining über die Pipeline
Schnittstelle. Um Ihre eigenen Modelle zu trainieren, müssen Sie daher dieses Git-Repository klonen und das Training von der Quelle aus ausführen.
Eine detaillierte Schritt-für-Schritt-Anleitung zum Trainieren und Bewerten Ihrer eigenen Modelle finden Sie in unserer Schulungsdokumentation.
Stanza wird unter der Apache-Lizenz, Version 2.0, veröffentlicht. Weitere Einzelheiten finden Sie in der LICENSE-Datei.