Как стать автором
Обновить

Проект Natasha. Набор качественных открытых инструментов для обработки естественного русского языка (NLP)

Время на прочтение34 мин
Количество просмотров88K
Всего голосов 57: ↑55 и ↓2+53
Комментарии25

Комментарии 25

Хотелось бы все-таки увидеть сравнение razdel с другими системами на текстах соц. сетей
  1. Кажется, не существует датасетов с эталонной разметкой с текстами из соцсетей
  2. Понятно, что будет плохо. "Правила в Razdel оптимизированы для аккуратно написанных текстов с правильной пунктуацией"
  3. У других готовых решений тоже будет не очень, все ориентируются на публичные датасеты, а там новости, худлит

Для соцсетей нужно делать кастомное решение, использовать статистические методы, не правила

>>Кажется, не существует датасетов с эталонной разметкой с текстами из соцсетей
Хотя бы на подкорпусе тайги, который выложен в Universal Dependencies

>>Понятно, что будет плохо. «Правила в Razdel оптимизированы для аккуратно написанных текстов с правильной пунктуацией»
Разумеется понятно. Но было бы здорово понимать что считать вариантом «б».

Хм, я один прочитал "nae>al" как "нае*ал"?
А вообще, потрясающая работа. Сколько времени прошло с книг "Язык и компьютер" с её плоскими подходами к грамматике...

Na — natasha, eval — evaluation

Я о том, что повернутая V очень удачно стоит, позволяя более вольно интерпретировать название модуля. Потом я догадался, почему вы так его назвали, но эффект был великоват, чтобы воздержаться и не запостить. ;)

– Ты уже попробовал новую модель? Какие там скоры?
– Как всегда — наевали!

(не удержался)

Мне кажется русский человек и не может прочитать иначе...

Очень понравилась статья. Я в ТАСС пока начал испольовать DeepPavlov, но вижу, что Natasha тоже заполнит некоторые моменты.

Есть вопрос применительно к новостям. Хорошо ли справляется выделение ФИО с приведением к норальной форме (именительный падеж)? Столкнулся с тем, что лемматизаторы косячат, не видя, что фамилия — это фамилия. Например, «Песков» будет превращен в «песок» как наиболее вероятная лемма. А сам DeepPavlov NER вроде бы не нормализует их вообще.

Вопрос в том, при выделении ФИО с помощью Natasha NER, там такие кейсы как Эрик Конггорд («конггордый»)-Андерсен, или Елена Верещака («верещак»), или Николай Борцов («борец») не искажаются? Есть ли там база фамилий или умные правила на этот случай?

Уже посмотрел по ссылке стенд NER (https://natasha.github.io/ner/): есть хорошие срабатывания, есть косячки. «Эрик Конггорд-Андерсен». Фамилию через черточку не смог осилить полностью. «Йеспер Фамме». Перепутал местами имя и фамилию. Но с случаем «Дмитрий Песков» работает хорошо. «Джимми Моралеса спросили.» Одинаково неправильно сработал DP NER и Natasha NER:
«first»: «Джимми»,
«last»: «Моралеса»


Но, в целом, кажется, что успешнее, чем «Павлов».

Кстати да, не заметил в описании синтаксического парсера такой штуки, как падеж — если на него опираться, можно попробовать воссоздать на несловарной фамилии её именительный падеж, зная, в каком падеже она стоит в тексте.

Хорошо ли справляется выделение ФИО с приведением к норальной форме (именительный падеж)?
Да, советую пробовать свои примеры на стенде. Более подробный стенд есть на http://natasha.github.io/. Мерил качество нормализации на BSNLP-2019 https://github.com/natasha/corus#load_bsnlp, примерно 90% имён нормализуется корректно.

"Песков" будет превращен в "песок". такие кейсы как Эрик Конггорд («конггордый»)-Андерсен, или Елена Верещака («верещак»), или Николай Борцов («борец»)
Такое, конечно, Наташа старается учитывать. Наташа использует информацию о морфологии от внутреннего морфологического тегера и Pymorphy https://pymorphy2.readthedocs.io/en/latest/ для нормализации. Если оба отработают корректно, ошибки не будет

Эрик Конггорд-Андерсен». Фамилию через черточку не смог осилить полностью
Для разделения на имя и фамилию в библиотеке собран набор правил для Yargy-парсера https://github.com/natasha/yargy. Правил для фамилий с дефисом там нет.
Спасибо за отличную статью.

Не подскажете, как можно подключиться к Вашей Наташе не используя питон?

В наших проектах, к сожалению, мы работаем на других языках типа: php, js, node, kotlin.

Спасибо :)

Весь проект на Python. Нормального способа использовать с другими языками мне не известно. Только может быть заворачивать в веб интерфейс

Нет

Довольно просто будет завернуть в докер контейнер, используя Flask и uwsgi, тогда наружу при запуске будет торчать API для методов, которые вы пробросите.
Да, очень удобно. Спасибо за труд, вещи полезные в работе.
Очень полезная статья
Похоже будем переезжать с DeepPavlov на Natasha :)
Подскажите пожалуйста, а есть ли какие-то хорошо зарекомендовавшие себя решения для анализа тональности именованных сущностей?
если есть например миллион текстов с размеченной стоимостью. объявления с указанием стоимости в разных видах ( 20000р. | 20т.р. | 20,000руб |… )
возможно использовать BERT? как черный ящик или лучшим решением является разметка правил ( Наташи | Томита )?

Правила для Yargy-парсера

Отличный материал, очень актуальный на сегодняшний день!

Очень интересный проект, хорошая статья.
Жаль только, что репозиторий на github выглядит немного осиротевшим. Issues висят без ответа, непонятно кого\где спросить?

Вот меня например волнует судьба подтянутых из текста '\n' в Razbor. Хорошо бы чтобы они подходили в признаки "конца предложения". Но как это сделать?

Прикольно встретить знакомого по ролевым играм человека в совершенно другом месте и в совершенно другой теме. :)

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории