Официальная библиотека Python NLP Стэнфордской группы НЛП. Он поддерживает запуск различных инструментов точной обработки естественного языка на более чем 60 языках и доступ к программному обеспечению Java Stanford CoreNLP из Python. Для получения подробной информации посетите наш официальный сайт.
Теперь доступна новая коллекция пакетов моделей биомедицинского и клинического английского языка, предлагающая удобные возможности для синтаксического анализа и распознавания названных объектов (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:
@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 в этом репозитории принадлежит Пэн Ци (@qipeng), Юхао Чжану (@yuhaozhang) и Юхуи Чжану (@yhui-zh15) при помощи Джейсона Болтона (@j38), Тима Дозата ( @tdozat) и Джон Бауэр (@AngledLuffa). Обслуживанием этого репо в настоящее время руководит Джон Бауэр.
Если вы используете программное обеспечение CoreNLP через Stanza, укажите пакет программного обеспечения CoreNLP и соответствующие модули, как описано здесь («Цитирование Stanford CoreNLP в статьях»). Клиент CoreNLP в основном написан Аруном Чаганти, а Джейсон Болтон возглавил объединение двух проектов.
Если вы используете Semgrex или Ssurgeon, часть CoreNLP, процитируйте нашу статью GURT о Semgrex и 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. " ,
}
Чтобы задать вопросы, сообщить о проблемах или запросить функции?, воспользуйтесь системой отслеживания проблем GitHub. Прежде чем создавать новую проблему, обязательно найдите существующие проблемы, которые могут решить вашу проблему, или посетите страницу часто задаваемых вопросов (FAQ) на нашем веб-сайте.
Мы приветствуем вклад сообщества в Stanza в виде исправлений ошибок и улучшений! Если вы хотите внести свой вклад, сначала прочтите наши правила внесения взносов.
Stanza поддерживает Python 3.6 или новее. Мы рекомендуем вам установить Stanza через pip, менеджер пакетов Python. Для установки просто запустите:
pip install stanza
Это также должно помочь разрешить все зависимости Stanza, например PyTorch 1.3.0 или выше.
Если у вас установлена предыдущая версия stanza
, используйте:
pip install stanza -U
Чтобы установить Stanza через Anaconda, используйте следующую команду conda:
conda install -c stanfordnlp stanza
Обратите внимание, что на данный момент установка Stanza через Anaconda не работает для 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
, как это представлено в Stanza), а также индексы слова, которое управляет им в анализе универсальных зависимостей этого предложения (его " head»), а также отношение зависимости между словами. Вывод должен выглядеть так:
('Barack', '4', 'nsubj:pass')
('Obama', '1', 'flat')
('was', '4', 'aux:pass')
('born', '0', 'root')
('in', '6', 'case')
('Hawaii', '4', 'obl')
('.', '4', 'punct')
Более подробную информацию можно найти в нашем руководстве по началу работы.
Помимо нейронного конвейера, этот пакет также включает официальную оболочку для доступа к программному обеспечению Java Stanford CoreNLP с кодом Python.
Есть несколько шагов начальной настройки.
export CORENLP_HOME=/path/to/stanford-corenlp-4.5.3
установив переменную среды CORENLP_HOME
(например, в *nix):В нашей документации мы приводим подробные примеры, которые показывают, как можно использовать CoreNLP через Stanza и извлекать из него различные аннотации.
Для начала мы также предоставляем интерактивные блокноты Jupyter в demo
папке. Вы также можете открыть эти блокноты и запустить их в интерактивном режиме в Google Colab. Чтобы просмотреть все доступные блокноты, выполните следующие действия:
File
-> Open notebook
и выберите GitHub
во всплывающем меню.stanfordnlp/stanza
в строке поиска и нажмите Enter.В настоящее время мы предоставляем модели для всех банков деревьев универсальных зависимостей версии 2.8, а также модели NER для нескольких широко распространенных языков. Инструкции по загрузке и использованию этих моделей вы можете найти здесь.
Чтобы максимизировать скорость работы, важно запускать конвейер для пакетов документов. Выполнение цикла for по одному предложению за раз будет очень медленным. На данный момент лучший подход — объединить документы, разделив каждый документ пустой строкой (т. е. двумя разрывами строк nn
). Токенизатор распознает пустые строки как разрывы предложений. Мы активно работаем над улучшением обработки нескольких документов.
Все нейронные модули в этой библиотеке можно обучать на собственных данных. Для токенизатора, расширителя многословного токена (MWT), тегера POS/морфологических функций, лемматизатора и анализатора зависимостей требуются данные в формате CoNLL-U, а для модели NER требуется формат BIOES. В настоящее время мы не поддерживаем обучение модели через интерфейс Pipeline
. Поэтому для обучения собственных моделей вам необходимо клонировать этот git-репозиторий и запустить обучение из исходников.
Подробные пошаговые инструкции по обучению и оценке собственных моделей см. в нашей учебной документации.
Stanza выпускается под лицензией Apache версии 2.0. Дополнительные сведения см. в файле ЛИЦЕНЗИИ.