Рубрика «морфологический анализ»

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

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

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

Читать полностью »

Хотелось бы написать позитивный текст о том, как пришла идея в голову и за пару часов ее реализовал, уложившись в 40 строчек. Но, на самом деле, это довольно старая история и первые мысли на эту тему родились еще во времена, когда появился Google Reader. Потому что Google Reader был первым агрегатором, который не напрягал, и как любая хорошая вешь, вызывал желание чтобы он становился еще лучше. И проблема, как и у всех читающих людей, была одна ‒ обилие информационного мусора. Потом появились социальные сети и казалось, что они, наконец-то решат эту проблему, но на деле они ее только усугубили. Так, со временем сформировалось видение агрегатора, которым хотелось обладать, и как минимум он должен был уметь:

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

Так как на горизонте ничего подобного не предвиделось, решено было попробовать реализовать это самому. Как это делалось и что из этого получилось ‒ под катом.
Читать полностью »

Автоматический анализ текстов практически всегда связан с работой со словарями. Они используются для морфологического анализа, выделения персон (нужны словари личных имен и фамилий) и организаций, а также других объектов.

В общем виде словарь — множество записей вида {строка, данные ассоциированные с этой строкой}.

Например, для морфологического анализа словарь состоит из троек {словоформа, нормальная форма, морфологические характеристики}. При анализе слова «мыла» из предложения «мама мыла раму» надо уметь получать следующие варианты анализа:

Нормальная форма Характеристики
МЫЛО S (существительное), РОД (родительный падеж), ЕД (единственное число), СРЕД (средний род), НЕОД
(неодушевленность)
МЫЛО S (существительное), ИМ (именительный падеж), МН (множественное число), СРЕД (средний род), НЕОД (неодушевленность)
МЫЛО S (существительное), ВИН (винительный падеж), МН (множественное число), СРЕД (средний род), НЕОД (неодушевленность)
МЫТЬ V (глагол), ПРОШ (прошедшее время), ЕД (единственное число), ИЗЪЯВ (изъявительное наклонение), ЖЕН (женский род), НЕСОВ (несовершенный вид)

Читать полностью »

Привет!

По мотивам статьи Пишем бота для игры «Найди отличие» появилась идея реализовать алгоритм поиска сторонних объекта на заданном изображении, используя алгоритмы компьютерного зрения.

Подробности — под катом.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js