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

Как научить свою нейросеть анализировать морфологию

Время на прочтение8 мин
Количество просмотров19K

Недавно мы рассказывали про генератор стихов. Одной из особенностей языковой модели, лежащей в его основе, было использование морфологической разметки для получения лучшей согласованности между словами. Однако же у использованной морфоразметки был один фатальный недостаток: она была получена с помощью “закрытой” модели, недоступной для общего использования. Если точнее, выборка, на которой мы обучались, была размечена моделью, созданной для Диалога-2017 и основанной на закрытых технологиях и словарях ABBYY.


Мне очень хотелось избавить генератор от подобных ограничений. Для этого нужно было построить собственный морфологический анализатор. Сначала я делал его частью генератора, но в итоге он вылился в отдельный проект, который, очевидно, может быть использован не только для генерации стихов.


Вместо морфологического движка ABBYY я использовал широко известный pymorphy2. Что в итоге получилось? Спойлер — получилось неплохо.

Читать дальше →

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

Время на прочтение8 мин
Количество просмотров54K
Морфологический анализатор для русского языка — это что-то заумное? Программа, которая приводит слово к начальной форме, определяет падеж, находит словоформы — непонятно, как и подступиться? А на самом деле все не так и сложно. В статье — как я писал аналог mystem, lemmatizer и phpmorphy на Python, и что из этого получилось.
Читать дальше →

Live Search заговорил по-русски

Время на прочтение1 мин
Количество просмотров984
Поисковик Microsoft Live Search научился работать с морфологией русского языка и исправлять запросы, набранные в неправильной раскладке клавиатуры и с грамматическими ошибками. В этом начинании Microsoft, конечно, выступает в роли отстающего, но движение в эту сторону определенно может принести кое-какие плоды.

Менеджер продуктов в российском представительстве Microsoft Антон Данилов говорит, что «работа над поиском велась в Редмонде при тесном сотрудничестве с российским офисом». Механизм обработки русскоязычных запросов встроен в Live Search таким образом, что доступен из любой страны, а не только из России.

В механизме учитываются связанные слова: «падежи, времена, распознается множественное/единственное число», — говорит Антон. Но переходы слов в другие формы (отглагольные прилагательные, например) сейчас не обрабатываеются.

Будут ли наработки по исправлению раскладки и анализу морфологии использованы в других продуктах Microsoft, в компании не комментируют. Но перспективы аналога Punto Switcher'a в Office рисуются очень живо.

Паттерны природы: сегментация экзоскелета беспозвоночных как вдохновение для более прочных материалов

Время на прочтение14 мин
Количество просмотров3.5K


Современное общество разительно отличается от того, что было несколько веков назад. Изменения, которые претерпел наш вид, связаны не только со сменой культурных, религиозных и политических предпочтений, но и с развитием технологий. Прогресс коснулся как жизни государств в целом, так и жизней отдельных индивидов. Машины вместо лошадей, светодиоды вместо свечей, смартфоны вместо голубиной почты и т.д. Другими словами, развитие наук и последующее развитие технологий повлияло без малого на все. Это же можно сказать и о строительстве. Без тех знаний, что есть у нас сейчас, мы бы не смогли возвести дома, которые своими крышами ловят облака. При этом источником столь полезных знаний может быть не только осознание каких-то основоположных законов естественных наук, но и наблюдения за представителями флоры и фауны. Ученые из университета Монаша (Австралия) обнаружили необычные свойства экзоскелетов беспозвоночных, которые могут помочь создать более устойчивые к повреждениям материалы для строек будущего. Что именно они нашли, как это можно применить в строительстве, и при чем тут экология? Ответы на эти вопросы мы найдем в докладе ученых. Поехали.
Читать дальше →

Магия внутри кокона: природа прозрачности

Время на прочтение13 мин
Количество просмотров3.1K


Так уж сложилось, что человеку присуще создавать ассоциации, часть которых имеет вполне прямолинейную логику, а часть — более абстрактна. К примеру, слово «зима» у многих ассоциируется с холодом, снегом, новогодними мероприятиями и некомпетентностью коммунальных служб. Если же говорить о чем-то более приятном, то слово «бабочка» ассоциируется с легкостью, нежностью и, конечно же, красочностью. И правда, у многих видов чешуекрылых крылья украшены самыми невероятными цветами и замысловатыми узорами, вызывающими недоумение у хищников и восхищение у художников и поэтов. Однако некоторые бабочки и мотыльки решили отказаться от яркого одеяния в угоду полного «ню», а именно в угоду прозрачности. Предназначение прозрачных (или частично прозрачных) крыльев ясна — камуфляж, но какова природа этой удивительной способности доселе было неясно. Посему ученые из Калифорнийского университета (США) решили провести детальный анализ структуры крыла разных «прозрачнокрылых» видов, который показал разные механизмы достижения прозрачности. В чем же секрет прозрачных крыльев, и насколько сильно они отличаются от цветных с точки зрения морфологии? Ответы на эти и другие вопросы мы найдем в докладе ученых. Поехали.
Читать дальше →

Запущен первый российский поиск по wap-ресурсам

Время на прочтение1 мин
Количество просмотров900
Компания Mail.Ru запустил бета-версию wap-поисковика. Новый сервис позволит владельцам мобильных телефонов искать информацию на русскоязычных wap-сайтах.

Технология wap-поиска — полностью собственная разработка Mail.Ru. Система изначально проектировалась для русскоязычных пользователей, что предусматривало в первую очередь полномасштабную индексацию русскоязычных wap-ресурсов и использование полноценной русской морфологии

В настоящее время поисковый движок Mail.Ru производит обработку 33 миллионов wap-документов.

Zend_Search_Lucene + PHPMorphy — это просто

Время на прочтение2 мин
Количество просмотров2.7K
Когда-то смотрел документацию по Zend_Search_Lucene. Все хорошо, все понятно. Бери и встраивай в свой сайт. Только вот ни слова там нету про то, каким образом прикрутить стеммер или морфологический анализатор к этой штуке. На деле оказалось, что подружить его, например, с PHPMorphy, очень просто.
Собственно, как это сделать — под катом.
Заметка в первую очередь будет полезна разработчикам, перед которыми проблема полнотекстового поиска на сайте еще не стояла.
Тут вы не найдете мануала по настройке Lucene или PHPMorphy — этой информации и так предостаточно в интернете.

Читать дальше →

Вебальта запаслась словарями

Время на прочтение1 мин
Количество просмотров614
Можно с уверенностью сказать, что Вебальта скоро научится понимать основные европейские языки в поиске, контекстной рекламе и других сервисах. Это связано с приобретением лицензии на использование словарей ОРФО в своих продуктах.

Словари ОРФО известны тем, что в свое время применялись в Microsoft Office и к ним приложил руку Ashmanov. В число доступных возможностей входят функции по проверке правописания и орфографии, которые наверняка будут применены при разработке.

Анализатор морфологии на автоматах

Время на прочтение4 мин
Количество просмотров6.5K
Периодически на хабре проскакивают статьи о том, как написать программу для анализа морфологии. В основном авторы пользуются базами данных, либо стандартными структурами, такими как словари. Но это не всегда удобно. Во-первых, страдает скорость. Во-вторых, некоторые алгоритмы, такие как предсказание морфологии незнакомых слов, реализуются нетривиально.

Здесь я привожу версию, основанную на конечных автоматах, где попробую избежать данных проблем. Как это работает можно посмотреть здесь.
Читать дальше →

Математическая морфология в примерах из медицины и биологии

Время на прочтение7 мин
Количество просмотров3K

Методическое пособие.

Фатеев Д.А., Фатеев О.Д.

ftvmetrics.com

Москва, январь 2021

ver 1.0

Читать далее...

Улучшение Поиска

Время на прочтение1 мин
Количество просмотров754
Претензии у меня вот в чем — на хабре ужасен поиск. Поиск не поддерживает морфологию, и найти что-либо буквально невозможно — поиск работает только на точных фразах. Кроме того, нету поиска в отдельном блоге.

Что-то уж надо сделать. Если местные власти отпишутся — буду рад.

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

Время на прочтение34 мин
Количество просмотров104K
Два года назад я писал на Хабр статью про Yargy-парсер и библиотеку Natasha, рассказывал про решение задачи NER для русского языка, построенное на правилах. Проект хорошо приняли. Yargy-парсер заменил яндексовый Томита-парсер в крупных проектах внутри Сбера, Интерфакса и РИА Новостей. Библиотека Natasha сейчас встроена в образовательные программы ВШЭ, МФТИ и МГУ.

Проект подрос, библиотека теперь решает все базовые задачи обработки естественного русского языка: сегментация на токены и предложения, морфологический и синтаксический анализ, лемматизация, извлечение именованных сущностей.

Для новостных статей качество на всех задачах сравнимо или превосходит существующие решения. Например с задачей NER Natasha справляется на 1 процентный пункт хуже, чем Deeppavlov BERT NER (F1 PER 0.97, LOC 0.91, ORG 0.85), модель весит в 75 раз меньше (27МБ), работает на CPU в 2 раза быстрее (25 статей/сек), чем BERT NER на GPU.

В проекте 9 репозиториев, библиотека Natasha объединяет их под одним интерфейсом. В статье поговорим про новые инструменты, сравним их с существующими решениями: Deeppavlov, SpaCy, UDPipe.

Морфологический поиск

Время на прочтение3 мин
Количество просмотров7.5K
Точный поиск, реализуемый в базах данных это очень хорошо, когда дело касается точных фраз. Но что делать, когда среди документов есть Киевская карта но нету Карты Киева? В дело включаются языковые фильтры.Во-первых уже на лексическом уровне становится сложно оперировать с монолитным блоком текста что-бы учитывать всевозможные перестановки слов и расстояния между ними. Во-вторых, чем глубже копать в язык, тем ясней становится то, что семантический web — невероятно сложная планка для автоматических анализаторов и генераторов каких-то образов и моделей, что уж говорить про то что-бы написать RDF вручную.Морфология изучает изменение формы объектов в разных областях науки (ботанике например). Поэтому есть два пути — либо
учитывать все формы при поиске, либо вырезать корень слова и искать
только по нему. Последний способ называется stemming, отличается
быстротой, простотой и не нуждается в словарях. Именно его используют Битрикс и MS Sharepoint, Sphinx. Проблемы возникают со словами где корень изменчив (бег-бежать, расти-прирост, лев-львица). Я не буду рассказывать про стемминг, посмотрите как это реализовано php с русской морфологией. Меня больше интересуют словари. Национальный корпус русского языка приводит примерно какие характеристики могут иметься у любого слова. Теперь мы плавно подходим к пониманию того что нам необходима современная морфологическая база слов (RMU, AOT), прототип для семантической сети.

Читать дальше →

Гибридная реализация русской морфологии

Время на прочтение3 мин
Количество просмотров2.2K
При создание поисковых решение одним из первых с чем приходиться сталкивать разработчику это предварительная обработка текста. Разбивка на термины, фильтрация стоп слов. Важной операцией влияющей на качество поиска на данном этапе является приведение слов к нормальной форме. Ниже приведены основные подходы к этой проблеме.
Читать дальше →

Определение части речи слов в русском тексте (POS-tagging) на Python 3

Время на прочтение9 мин
Количество просмотров96K
Пусть, дано предложение “Съешьте еще этих мягких французских булок, да выпейте чаю.”, в котором нам нужно определить часть речи для каждого слова:

[('съешьте', 'глаг.'), ('еще', 'нареч.'), ('этих', 'местоим. прил.'), ('мягких', 'прил.'), ('французских', 'прил.'), ('булок', 'сущ.'), ('да', 'союз'), ('выпейте', 'глаг.'), ('чаю', 'сущ.')]

Зачем это нужно? Например, для автоматического определения тегов для блог-поста (для отбора существительных). Морфологическая разметка является одним из первых этапов компьютерного анализа текста.
Узнать, как это реализовать на Python 3

Natural Language Processing — как это будет по-русски?

Время на прочтение4 мин
Количество просмотров20K
Вокруг нас — огромные объемы текстовых данных в электронном виде, в них — человеческие знания, эмоции и опыт. А еще — спам, который выдает себя за полезную информацию, и надо уметь отделять одно от другого. Люди хотят общаться с теми, кто не знает их родной язык. А еще — управлять своим мобильником/телевизором/умным домом голосом. Все это обеспечивает востребованность и бурное развитие методов Natural Language Processing (NLP).

image

Читать дальше →

Как научить свою нейросеть генерировать стихи

Время на прочтение10 мин
Количество просмотров55K
Умоляю перестань мне сниться
Я люблю тебя моя невеста
Белый иней на твоих ресницах
Поцелуй на теле бессловесном

Когда-то в школе мне казалось, что писать стихи просто: нужно всего лишь расставлять слова в нужном порядке и подбирать подходящую рифму. Следы этих галлюцинаций (или иллюзий, я их не различаю) встретили вас в эпиграфе. Только это стихотворение, конечно, не результат моего тогдашнего творчества, а продукт обученной по такому же принципу нейронной сети.

Вернее, нейронная сеть нужна лишь для первого этапа — расстановки слов в правильном порядке. С рифмовкой справляются правила, применяемые поверх предсказаний нейронной сети. Хотите узнать подробнее, как мы это реализовывали? Тогда добро пожаловать под кат.
Читать дальше →

По просьбам читателей: «Хтоническое существо» в реальном прошлом

Время на прочтение8 мин
Количество просмотров11K

«В бездну пучин» сланцевых пород скалы эпохи Велнока, что на юге графства Херефордшир (Великобритания) раз за разом «погружались» инструменты палеонтологов, в надежде отыскать дом давно мёртвого и древнего существа, что «видит сны» и ждёт.

Читать далее

Обработка русского языка на Java

Время на прочтение4 мин
Количество просмотров12K

Рассказ пойдет об одной новой, общедоступной Java/Kotlin библиотеке, для работы с русским языком. Она позволяет получить исходные формы + морфологическую информацию для большинства слов русского языка. Статья предназначена для тех, кто создает ботов, обрабатывает сообщения и занимается поиском. Для справки, ключевое отличие лемматизации от стеммизации (урезания до нормализованной формы) состоит в том, что лемма удовлятворяет правилам языка, например для слова "яблоками" леммой будет "яблоко", а не просто урезанный корень. Лемма может быть и более сложной, например для слова люди, начальная форма – человек. В этой статье мы рассмотрим способ быстрого извлечения такой информации из морфологического словаря.

Запустить процесс

Семинар Natural Language Processing — открытие сезона 2010/11

Время на прочтение2 мин
Количество просмотров836
image

В субботу 25-ого сентября 2010 в 17.00 мы открываем новый сезон семинара по автоматической обработке естественного языка. На первом заcедании этого учебного года выступит Эдуард Клышинский (Институт прикладной математики им. М.В. Келдыша РАН. Москва) с рассказом о принципах построения программного модуля морфологического анализа и синтеза для русского языка. Доклад называется «Давайте напишем морфологию».
Семинар будет транслироваться в он-лайне, позже мы выложим презентацию и видеозапись на сайт семинара.

Читать дальше →
1