La bibliothèque Python NLP officielle du Stanford NLP Group. Il prend en charge l'exécution de divers outils précis de traitement du langage naturel sur plus de 60 langues et l'accès au logiciel Java Stanford CoreNLP à partir de Python. Pour des informations détaillées, veuillez visiter notre site officiel.
Une nouvelle collection de packages de modèles biomédicaux et cliniques en anglais est désormais disponible, offrant une expérience transparente pour l'analyse syntaxique et la reconnaissance d'entités nommées (NER) à partir de textes de la littérature biomédicale et de notes cliniques. Pour plus d’informations, consultez notre page de documentation sur les modèles biomédicaux.
Si vous utilisez cette bibliothèque dans vos recherches, veuillez citer notre document de démonstration du système 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 }
}
Si vous utilisez nos modèles biomédicaux et cliniques, veuillez également citer notre document de description des modèles biomédicaux Stanza :
@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 }
}
L'implémentation PyTorch du pipeline neuronal dans ce référentiel est due à Peng Qi (@qipeng), Yuhao Zhang (@yuhaozhang) et Yuhui Zhang (@yuhui-zh15), avec l'aide de Jason Bolton (@j38), Tim Dozat ( @tdozat) et John Bauer (@AngledLuffa). La maintenance de ce dépôt est actuellement dirigée par John Bauer.
Si vous utilisez le logiciel CoreNLP via Stanza, veuillez citer le progiciel CoreNLP et les modules respectifs comme décrit ici (« Citer Stanford CoreNLP dans les articles »). Le client CoreNLP est principalement écrit par Arun Chaganty, et Jason Bolton a dirigé la fusion des deux projets.
Si vous utilisez la partie Semgrex ou Ssurgeon de CoreNLP, veuillez citer notre article GURT sur Semgrex et 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. " ,
}
Pour poser des questions, signaler des problèmes ou demander des fonctionnalités ?, veuillez utiliser le GitHub Issue Tracker. Avant de créer un nouveau problème, assurez-vous de rechercher les problèmes existants susceptibles de résoudre votre problème, ou visitez la page Foire aux questions (FAQ) sur notre site Web.
Nous apprécions les contributions de la communauté à Stanza sous la forme de corrections de bugs et d'améliorations ! Si vous souhaitez contribuer, veuillez d’abord lire notre directive de contribution.
Stanza prend en charge Python 3.6 ou version ultérieure. Nous vous recommandons d'installer Stanza via pip, le gestionnaire de packages Python. Pour installer, exécutez simplement :
pip install stanza
Cela devrait également aider à résoudre toutes les dépendances de Stanza, par exemple PyTorch 1.3.0 ou supérieur.
Si vous disposez actuellement d'une version précédente de stanza
installée, utilisez :
pip install stanza -U
Pour installer Stanza via Anaconda, utilisez la commande conda suivante :
conda install -c stanfordnlp stanza
Notez que pour l'instant, l'installation de Stanza via Anaconda ne fonctionne pas pour Python 3.10. Pour Python 3.10, veuillez utiliser l'installation pip.
Alternativement, vous pouvez également installer à partir des sources de ce référentiel git, ce qui vous donnera plus de flexibilité dans le développement sur Stanza. Pour cette option, exécutez
git clone https://github.com/stanfordnlp/stanza.git
cd stanza
pip install -e .
Pour exécuter votre premier pipeline Stanza, suivez simplement ces étapes dans votre interpréteur interactif 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 ()
Si vous rencontrez requests.exceptions.ConnectionError
, essayez d'utiliser un proxy :
> >> 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 ()
La dernière commande imprimera les mots de la première phrase de la chaîne d'entrée (ou Document
, tel qu'il est représenté dans la strophe), ainsi que les indices du mot qui le régit dans l'analyse des dépendances universelles de cette phrase (son " head"), ainsi que la relation de dépendance entre les mots. Le résultat devrait ressembler à :
('Barack', '4', 'nsubj:pass')
('Obama', '1', 'flat')
('was', '4', 'aux:pass')
('born', '0', 'root')
('in', '6', 'case')
('Hawaii', '4', 'obl')
('.', '4', 'punct')
Consultez notre guide de démarrage pour plus de détails.
Outre le pipeline neuronal, ce package comprend également un wrapper officiel pour accéder au logiciel Java Stanford CoreNLP avec du code Python.
Il y a quelques étapes de configuration initiale.
CORENLP_HOME
(par exemple, dans *nix) : export CORENLP_HOME=/path/to/stanford-corenlp-4.5.3
Nous fournissons des exemples complets dans notre documentation qui montrent comment utiliser CoreNLP via Stanza et en extraire diverses annotations.
Pour commencer, nous fournissons également des blocs-notes Jupyter interactifs dans le dossier demo
. Vous pouvez également ouvrir ces blocs-notes et les exécuter de manière interactive sur Google Colab. Pour afficher tous les blocs-notes disponibles, procédez comme suit :
File
-> Open notebook
et choisissez GitHub
dans le menu contextuelstanfordnlp/stanza
dans la barre de recherche et cliquez sur EntréeNous fournissons actuellement des modèles pour tous les arborescences de dépendances universelles v2.8, ainsi que des modèles NER pour quelques langues largement parlées. Vous pouvez trouver des instructions pour télécharger et utiliser ces modèles ici.
Pour maximiser les performances en termes de vitesse, il est essentiel d’exécuter le pipeline sur des lots de documents. Exécuter une boucle for sur une phrase à la fois sera très lent. La meilleure approche à l'heure actuelle consiste à concaténer les documents ensemble, chaque document étant séparé par une ligne vide (c'est-à-dire deux sauts de ligne nn
). Le tokenizer reconnaîtra les lignes vides comme des sauts de phrase. Nous travaillons activement à l'amélioration du traitement multi-documents.
Tous les modules neuronaux de cette bibliothèque peuvent être entraînés avec vos propres données. Le tokenizer, l'expandeur de jetons multi-mots (MWT), l'étiqueteur POS/caractéristiques morphologiques, le lemmatiseur et l'analyseur de dépendances nécessitent des données au format CoNLL-U, tandis que le modèle NER nécessite le format BIOES. Actuellement, nous ne prenons pas en charge la formation de modèles via l'interface Pipeline
. Par conséquent, pour entraîner vos propres modèles, vous devez cloner ce référentiel git et exécuter la formation à partir de la source.
Pour obtenir des conseils détaillés, étape par étape, sur la manière de former et d'évaluer vos propres modèles, veuillez consulter notre documentation de formation.
Stanza est publié sous la licence Apache, version 2.0. Voir le fichier LICENSE pour plus de détails.