A biblioteca oficial de PNL Python do Stanford NLP Group. Ele contém suporte para executar várias ferramentas precisas de processamento de linguagem natural em mais de 60 idiomas e para acessar o software Java Stanford CoreNLP do Python. Para informações detalhadas, visite nosso site oficial.
Uma nova coleção de pacotes de modelos de inglês biomédico e clínico está agora disponível, oferecendo uma experiência perfeita para análise sintática e reconhecimento de entidade nomeada (NER) a partir de textos de literatura biomédica e notas clínicas. Para obter mais informações, confira nossa página de documentação de modelos biomédicos.
Se você usar esta biblioteca em sua pesquisa, cite nosso documento de demonstração do 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 }
}
Se você usar nossos modelos biomédicos e clínicos, cite também nosso documento de descrição de 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 }
}
A implementação PyTorch do pipeline neural neste repositório se deve a Peng Qi (@qipeng), Yuhao Zhang (@yuhaozhang) e Yuhui Zhang (@ yuhui-zh15), com a ajuda de Jason Bolton (@ j38), Tim Dozat ( @tdozat) e John Bauer (@AngledLuffa). A manutenção deste repositório é atualmente liderada por John Bauer.
Se você usa o software CoreNLP através do Stanza, cite o pacote de software CoreNLP e os respectivos módulos conforme descrito aqui ("Citando Stanford CoreNLP em artigos"). O cliente CoreNLP foi escrito principalmente por Arun Chaganty, e Jason Bolton liderou a fusão dos dois projetos.
Se você usa a parte Semgrex ou Ssurgeon do CoreNLP, cite nosso artigo GURT sobre Semgrex e 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 fazer perguntas, relatar problemas ou solicitar recursos, use o GitHub Issue Tracker. Antes de criar um novo problema, pesquise os problemas existentes que podem resolver o seu problema ou visite a página de Perguntas Frequentes (FAQ) em nosso site.
Aceitamos contribuições da comunidade para o Stanza na forma de correções de bugs e melhorias! Se você quiser contribuir, leia primeiro nossas diretrizes de contribuição.
A estrofe suporta Python 3.6 ou posterior. Recomendamos que você instale o Stanza via pip, o gerenciador de pacotes Python. Para instalar, basta executar:
pip install stanza
Isso também deve ajudar a resolver todas as dependências do Stanza, por exemplo PyTorch 1.3.0 ou superior.
Se você possui atualmente uma versão anterior da stanza
instalada, use:
pip install stanza -U
Para instalar o Stanza via Anaconda, use o seguinte comando conda:
conda install -c stanfordnlp stanza
Observe que por enquanto a instalação do Stanza via Anaconda não funciona para Python 3.10. Para Python 3.10, use a instalação pip.
Alternativamente, você também pode instalar a partir do código-fonte deste repositório git, o que lhe dará mais flexibilidade no desenvolvimento em cima do Stanza. Para esta opção, execute
git clone https://github.com/stanfordnlp/stanza.git
cd stanza
pip install -e .
Para executar seu primeiro pipeline Stanza, basta seguir estas etapas em seu interpretador interativo 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 ()
Se você encontrar requests.exceptions.ConnectionError
, tente usar um 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 ()
O último comando imprimirá as palavras da primeira frase da string de entrada (ou Document
, conforme representado na estrofe), bem como os índices da palavra que a rege na análise de Dependências Universais dessa frase (seu " head"), juntamente com a relação de dependência entre as palavras. A saída deve ser semelhante a:
('Barack', '4', 'nsubj:pass')
('Obama', '1', 'flat')
('was', '4', 'aux:pass')
('born', '0', 'root')
('in', '6', 'case')
('Hawaii', '4', 'obl')
('.', '4', 'punct')
Consulte nosso guia de primeiros passos para obter mais detalhes.
Além do pipeline neural, este pacote também inclui um wrapper oficial para acessar o software Java Stanford CoreNLP com código Python.
Existem algumas etapas de configuração inicial.
CORENLP_HOME
(por exemplo, em *nix): export CORENLP_HOME=/path/to/stanford-corenlp-4.5.3
Fornecemos exemplos abrangentes em nossa documentação que mostram como é possível usar o CoreNLP por meio do Stanza e extrair várias anotações dele.
Para começar, também fornecemos notebooks Jupyter interativos na pasta demo
. Você também pode abrir esses notebooks e executá-los interativamente no Google Colab. Para visualizar todos os notebooks disponíveis, siga estas etapas:
File
-> Open notebook
e escolha GitHub
no menu pop-upstanfordnlp/stanza
na barra de pesquisa e clique em EnterAtualmente fornecemos modelos para todos os bancos de árvores de Dependências Universais v2.8, bem como modelos NER para alguns idiomas amplamente falados. Você pode encontrar instruções para baixar e usar esses modelos aqui.
Para maximizar o desempenho da velocidade, é essencial executar o pipeline em lotes de documentos. Executar um loop for em uma frase por vez será muito lento. A melhor abordagem neste momento é concatenar documentos, com cada documento separado por uma linha em branco (ou seja, duas quebras de linha nn
). O tokenizer reconhecerá linhas em branco como quebras de frase. Estamos trabalhando ativamente para melhorar o processamento de vários documentos.
Todos os módulos neurais desta biblioteca podem ser treinados com seus próprios dados. O tokenizer, o expansor de token de múltiplas palavras (MWT), o tagger de recursos POS/morfológicos, o lematizador e o analisador de dependência requerem dados formatados em CoNLL-U, enquanto o modelo NER requer o formato BIOES. Atualmente, não oferecemos suporte ao treinamento de modelo por meio da interface Pipeline
. Portanto, para treinar seus próprios modelos, você precisa clonar este repositório git e executar o treinamento a partir da fonte.
Para obter orientação passo a passo detalhada sobre como treinar e avaliar seus próprios modelos, visite nossa documentação de treinamento.
Stanza é lançado sob a licença Apache, versão 2.0. Consulte o arquivo LICENSE para obter mais detalhes.