La biblioteca oficial de PNL Python del Stanford NLP Group. Contiene soporte para ejecutar varias herramientas precisas de procesamiento de lenguaje natural en más de 60 idiomas y para acceder al software Java Stanford CoreNLP desde Python. Para obtener información detallada, visite nuestro sitio web oficial.
Ya está disponible una nueva colección de paquetes de modelos biomédicos y clínicos en inglés, que ofrecen una experiencia perfecta para el análisis sintáctico y el reconocimiento de entidades nombradas (NER) a partir de textos de literatura biomédica y notas clínicas. Para obtener más información, consulte nuestra página de documentación de modelos biomédicos.
Si utiliza esta biblioteca en su investigación, cite nuestro documento de demostración del sistema 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 utiliza nuestros modelos biomédicos y clínicos, cite también nuestro documento de descripción de modelos biomédicos 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 }
}
La implementación de PyTorch del canal neuronal en este repositorio se debe a Peng Qi (@qipeng), Yuhao Zhang (@yuhaozhang) y Yuhui Zhang (@yuhui-zh15), con la ayuda de Jason Bolton (@j38), Tim Dozat ( @tdozat) y John Bauer (@AngledLuffa). El mantenimiento de este repositorio está actualmente a cargo de John Bauer.
Si utiliza el software CoreNLP a través de Stanza, cite el paquete de software CoreNLP y los módulos respectivos como se describe aquí ("Cita de Stanford CoreNLP en artículos"). El cliente CoreNLP está escrito principalmente por Arun Chaganty, y Jason Bolton encabezó la fusión de los dos proyectos.
Si utiliza la parte Semgrex o Ssurgeon de CoreNLP, cite nuestro documento GURT sobre Semgrex y 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. " ,
}
Para hacer preguntas, informar problemas o solicitar funciones, utilice el Rastreador de problemas de GitHub. Antes de crear un nuevo problema, asegúrese de buscar problemas existentes que puedan resolver su problema o visite la página de Preguntas frecuentes (FAQ) en nuestro sitio web.
¡Agradecemos las contribuciones de la comunidad a Stanza en forma de correcciones de errores y mejoras! Si desea contribuir, primero lea nuestra guía de contribución.
Stanza es compatible con Python 3.6 o posterior. Le recomendamos que instale Stanza mediante pip, el administrador de paquetes de Python. Para instalar, simplemente ejecute:
pip install stanza
Esto también debería ayudar a resolver todas las dependencias de Stanza, por ejemplo, PyTorch 1.3.0 o superior.
Si actualmente tiene instalada una versión anterior de stanza
, use:
pip install stanza -U
Para instalar Stanza a través de Anaconda, use el siguiente comando conda:
conda install -c stanfordnlp stanza
Tenga en cuenta que, por ahora, la instalación de Stanza a través de Anaconda no funciona para Python 3.10. Para Python 3.10, utilice la instalación de pip.
Alternativamente, también puede instalar desde la fuente de este repositorio git, lo que le brindará más flexibilidad para desarrollar sobre Stanza. Para esta opción, ejecute
git clone https://github.com/stanfordnlp/stanza.git
cd stanza
pip install -e .
Para ejecutar su primera canalización de Stanza, simplemente siga estos pasos en su intérprete interactivo de 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 encuentra requests.exceptions.ConnectionError
, intente utilizar 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 ()
El último comando imprimirá las palabras de la primera oración en la cadena de entrada (o Document
, como se representa en Stanza), así como los índices de la palabra que la gobierna en el análisis de Dependencias Universales de esa oración (su " head"), junto con la relación de dependencia entre las palabras. La salida debería verse así:
('Barack', '4', 'nsubj:pass')
('Obama', '1', 'flat')
('was', '4', 'aux:pass')
('born', '0', 'root')
('in', '6', 'case')
('Hawaii', '4', 'obl')
('.', '4', 'punct')
Consulte nuestra guía de introducción para obtener más detalles.
Además del canal neuronal, este paquete también incluye un contenedor oficial para acceder al software Java Stanford CoreNLP con código Python.
Hay algunos pasos de configuración iniciales.
CORENLP_HOME
(por ejemplo, en *nix): export CORENLP_HOME=/path/to/stanford-corenlp-4.5.3
Proporcionamos ejemplos completos en nuestra documentación que muestran cómo se puede usar CoreNLP a través de Stanza y extraer varias anotaciones de él.
Para comenzar, también proporcionamos cuadernos interactivos de Jupyter en la carpeta demo
. También puede abrir estos cuadernos y ejecutarlos de forma interactiva en Google Colab. Para ver todos los cuadernos disponibles, siga estos pasos:
File
-> Open notebook
y elija GitHub
en el menú emergente.stanfordnlp/stanza
en la barra de búsqueda y haga clic en IntroActualmente proporcionamos modelos para todos los treebanks de Universal Dependencies v2.8, así como modelos NER para algunos idiomas ampliamente hablados. Puede encontrar instrucciones para descargar y utilizar estos modelos aquí.
Para maximizar el rendimiento de la velocidad, es esencial ejecutar la canalización en lotes de documentos. Ejecutar un bucle for en una oración a la vez será muy lento. El mejor enfoque en este momento es concatenar documentos juntos, con cada documento separado por una línea en blanco (es decir, dos saltos de línea nn
). El tokenizador reconocerá las líneas en blanco como saltos de oración. Estamos trabajando activamente para mejorar el procesamiento de múltiples documentos.
Todos los módulos neuronales de esta biblioteca se pueden entrenar con sus propios datos. El tokenizador, el expansor de token de palabras múltiples (MWT), el etiquetador de características morfológicas/POS, el lematizador y el analizador de dependencias requieren datos formateados CoNLL-U, mientras que el modelo NER requiere el formato BIOES. Actualmente, no admitimos el entrenamiento de modelos a través de la interfaz Pipeline
. Por lo tanto, para entrenar sus propios modelos, necesita clonar este repositorio de git y ejecutar el entrenamiento desde el código fuente.
Para obtener orientación detallada paso a paso sobre cómo entrenar y evaluar sus propios modelos, visite nuestra documentación de capacitación.
Stanza se publica bajo la licencia Apache, versión 2.0. Consulte el archivo de LICENCIA para obtener más detalles.