Немного треша от Наташи (NER)

Погонял снова питоновскую либу Natasha на небольшом корпусе из OpenCorpora, чтобы оценить пригодность в качестве готового NER. Отдельные результаты веселые, нов целом вывод - оно малопригодно из коробки, слишком много ложных срабатываний :(

Collapse )

Забавный и редкий случай с глаголом "являться"

Собираю статистику структуры предложений.
В предложениях выделяются именные группы, чтобы свести варианты аргументов глагола к общему знаменателю.
После обработки примерно 50 миллионов предложений вижу такой top 30 шаблонов (решетка отделяет NP-чанки и прочие токены):
Collapse )Обратите внимание на два стоящих рядом шаблона:

1414    NP,Ins#является#NP,Nom,Sing#.
1233    NP,Nom,Sing#является#NP,Ins#.

В них именные группы зеркально отображены относительно глагола, а частоты (ранги?) очень близки.
Редкий случай действительно свободного порядка ИГ для глагола. Для других глаголов носители языка явно тяготеют к тому или иному положению подлежащего, дополнения или PP, возможно используя "неканоничный" порядок для передачи особых "сигналов".

Самые длинные существительные, глаголы, наречия

Коллега по работе навел на замечательный пост Длинные слова и длинные предложения (о рекордах).
Я решил перепроверить часть указанных там рекордов по своей словарной базе. Та-дам!

Collapse )
Collapse )
Collapse )
Collapse )
 

Новый набор с русскоязычными паттернами noun+NP,gen

Побочный результат подготовки датасета для генеративной модели - список из почти миллиона словосочетаний Noun+NP,gen:
Collapse )
Архив выложен в репозиторий NLP Datasets. Паттерны собирались автоматически без модерации и предобработки спеллчеком, поэтому там есть некоторое количество мусора типа "кожа лица кофе".

К вопросу о точности UDPipe, обученном на датасете Синтагрус

PS: В ходе перепроверки выяснилось, что сделанный ранее вывод о проблемах синтагруса неверен. Шаблоны вида:

NP,Acc#значит#NP,Nom,Sing#

соответствуют в том числе предложениям типа:

что значит эта фраза ?

В них аккузатив для "что" определен правильно.

Collapse )

Реализация модели детектора перефразировок с BERT в pytorch transformers

Продолжение темы изучения питорча: сделал модель бинарного классификатора для определения синонимичности двух фраз с использованием multilinual BERT: гист
Collapse )

Опыт использования hyperopt для оптимизации весов правил синтаксического парсера

Вот так выглядит процесс подбора >500 параметров для синтаксического парсера с помощью hyperopt:
Collapse )Подробности эксперимента - под катом.
Collapse )

Генерация определений слов с gpt-2 (фейкопедия)

Далее - выдача перетренированной генеративной языковой модели GPT-2.

Для некоторых слов даны результаты при повышенной (t=1.2) или пониженной (t=0.8) температуре.

Жирным выделены слова, для которых модель генерировала толкование.

Стоит обратить внимание, что только 2 из разобранных слов встречались модели в ходе обучения (кошачий и свинячий). Для остальных модель честно опиралась на морфемный состав настолько, насколько это позволило "byte pair encoding" представление токенов.

Collapse )

Учебный NLP и NLP в реальной жизни

Учебный NLP - это когда разбираем хорошо написанный текст:

"Ещё при жизни Пушкина сложилась его репутация величайшего национального русского поэта"

Красота синтаксического разбора, подкрепленная всей мощью технологий и достижениями computer science и machine learning:

Collapse )

Генерация уместных вопросов с помощью языковой модели huggingface GPT-2

Второй эксперимент с теми же вводными, как описаны в предыдущем посте. Теперь используем реализацию языковой модели GPT-2 в pytorch библиотеке transformers. Для ее использования нужно только склонировать реп и перейти в подкаталог examples с которыми скриптами.

Collapse )