Stanza и решение задач NER
Stanza построена на основе библиотеки глубокого обучения PyTorch. Так же проект включает предварительно обученные модели, соответствующие 66 естественным языкам (английский, испанский, русский и т.д.)
Для решения задачи для текста на русском языке можно в коде программы применить метод download(‘ru’), который загрузит указанную языковую модель.
Далее инициируем нейронный конвейер (Pipeline) с указанием языка (‘ru’)
Теперь решим задачу извлечения ФИО клиента, а также локации, указанной в тексте первого предложения сообщения. Для этого передаём на конвейер текст, после чего он возвращает обработанный документ. Документ в свою очередь состоит из предложений (sentences), в которых можно выбрать сущности (entities). У каждой выделенной сущности будет ряд свойств — text, type (в нашем случае это значения PER и LOC), start_char (позиция первого символа текста сущности в исходном тексте), end_char (позиция последнего символа в исходном тексте).
Результат будет следующим:
Попробуем выделить сущности из англоязычного текста — предложения, содержащего информацию об авиарейсе. Для этого применим метод download(‘en’), который загрузит модель для английского языка.
Результат будет следующим:
В результате мы видим две сущности с типами GPE – Moscow и London, а также сущность с типом DATE, соответствующая дате.
Stanza – это набор мощных и инструментов, выделяющийся простотой в освоении. Наиболее яркой особенностью является так же широкая мультиязычность, что делает предпочтительным использование данного инструмента в проектах, где необходимо автоматизировать анализ текстов на разных языках.