Морфологический словарь русского языка в виде SQL скрипта

Нашел словари на сайте speakrus.ru. Все круто, но почему то распространяется в виде текстовых файлов. К примеру, морфологический словарь из 4 159 394 словоформ для 142 792 лемм — это текстовая портянка 220 мегабайт!

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

Об исходнике словаря

Дублирую здесь краткое описание словаря и авторство. Автору отдельное спасибо за проделанный титанический труд.

Полная парадигма. Морфология. Частотный словарь. Совмещенный словарь. Автор М. Хаген. Полная парадигма. Морфология.

Словарь содержит 4 159 394 словоформ для 142 792 лемм.
Ред.: октябрь 2014 г.
Словарь составлен на основе известного файла «Полная акцентуированная парадигма по Зализняку» и существенно расширен за счет таких словарей в электронном виде, как «Лопатин В.В. Полный орфографический словарь русского языка», «Словарь иностранных слов, Москва: Русский язык, 1988», «Новый толково-словообразовательный словарь русского языка. Автор Т. Ф. Ефремова. 2000 г.», «Толковый словарь под ред. C. И. Ожегова и Н.Ю.Шведовой, М., Азъ, 1992 г.» и некоторых онлайн-словарей и энциклопедий.

Чтобы было хоть какое то представление о текстовой версии, приведу небольшой кусочек:

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

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

Изучение такой базы — это сам по себе процесс увлекательный и познавательный. К примеру, оказалось, что падежей не 6, существуют виды глаголов (и отглагольных частей речи), и много ещё чего.

В словарь не входят длинные многосоставные слова, вроде «рентгеноэлектрокардиографический». Вы встретите слова не более чем 3х составные. Так слово «электрокардиографический» в словаре есть.

Морфологический словарь в виде SQL скрипта

Нельзя рассчитывать на данный словарь как на полный и исчерпывающий. Но это наиболее полная коллекция, которую пока удалось обнаружить.

«Разрывом шаблона» для меня было то, что за отдельное слово автор иногда принимает целые группы слов, вроде союзной группы:

Примите этот факт как данность, потому что я не ставил задачи переработать словарь.

Архивы выложены на github. Название файла : words-russian-fullbase.sql.gzСкачать архив SQL скрипта морфологического словаря русского языка.

Подмножества базы

Большинство практических задач не требует обладать такой расширенной коллекцией, часто не нужны данные о морфологии. Конечно, вы можете сделать любую нужную вам выборку, создать необходимый массив данных средствами SQL. Тем не менее, наиболее часто «употребляемые» «выборки» я также создал, по причине того, что импортировать и обрабатывать общую базу — то ещё удовольствие.

Я сократил кол-во столбцов и убрал лишние признаки. Описания и архивы баз можно скачать по ссылкам ниже.

По каждой части речи я, по возможности, формировал две выборки (sql таблицы) :

  • Нормализованный список,
  • словоформы с морфологией.

Описание структуры таблицы морфологического словаря

Таблица words содержит 21 столбец. Признаки могут быть NULL, когда не относятся к данной части речи или значение признака не было задано.

  • IID, int — суррогатный ключ
  • word, varchar[100] — словоформа.
  • code, int — код словоформы.
  • code_parent, int — код родителя словоформы, согласно иерархии в исходном файле.
  • type, set(‘част’,’межд’,’прл’,’прч’,’сущ’,’нар’,’гл’,’дееп’,’союз’,’предик’,’предл’,’ввод’,’мест’,’числ’) — часть речи. Тип поля позволяет выбрать несколько вариантов сразу, но необходимым это является только для местоимений.
  • type_sub, enum(‘поряд’,’кол’,’собир’,’неопр’,’врем’,’обст’,’опред’,’счет’,’неизм’) — подтипы используются в основном для числительных и наречий.
  • type_ssub, enum(‘кач’,’спос’,’степ’,’места’,’напр’,’врем’,’цель’,’причин’) — под-подтипы задействованы только для наречий.
  • plural, boolean — множественное число
  • gender, enum(‘муж’,’жен’,’ср’,’общ’) — род, обратите внимание : их 4!
  • wcase, enum(‘им’,’род’,’дат’,’вин’,’тв’,’пр’,’зват’,’парт’,’мест’) — 9 падежей. Кроме шести хорошо известных из школьного курса, есть ещё три падежа — звательный, партитив  и местный пажеж — локатив.
  • comp, enum(‘сравн’, ‘прев’) — сравнительные формы прилагательного.
  • soul, boolean — признак одушевленности.
  • transit, enum(‘перех’, ‘непер’, ‘пер/не’) — переходность глагола.
  • perfect, boolean — признак совершенной формы глагола.
  • face, enum(‘1-е’, ‘2-е’, ‘3-е’, ‘безл’) — лицо глагола.
  • kind, enum(‘1вид’, ‘2вид’) — вид глагола.
  • time, enum(‘прош’, ‘наст’, ‘буд’) — временная форма глагола.
  • inf, boolean — признак инфинитива.
  • vozv, boolean — признак возвратной формы глагола.
  • nakl, enum(‘пов’, ‘страд’) — наклонение или залог глагола.
  • short, boolean — признак краткой формы прилагательного.

Расшифровки и подробные описания вы найдете в базах по соответствующим частям речи.

Написать комментарий

Мало букафф? Читайте есчо !

Русские числительные в виде sql дампа

Март 14, 2017 г.

Числительные извлечены из базы морфологии слов русского языка. Произведено две выборки - нормализованный список и числительные с морфологией. SQL скрипты баз размещены на github. Переходим, ищем в списке "words-russian-numerals", жмем download. ...

Читать

Полный перечень союзов в русском языке

Март 14, 2017 г.

База данных по части речи "союзы" получена из общей базы морфологии слов русского языка. Т.к. союзы не обладают какой либо морфологией, то получилась одна таблица с перечнем слов. SQL скрипт размещены на github. Переходим, жмем download. words-russian-conjunctions.sql.gz ...

Читать

 

Комментарии к «Морфологический словарь русского языка в виде SQL скрипта»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий:

Много комментариев в “Морфологический словарь русского языка в виде SQL скрипта”

  1. Константин:

    Спасибо! А что с лицензией? На каких условиях можно использовать эти результаты в коммерческих пректах?

    • База распространялась бесплатно автором в виде текстовых файлов. Я лишь потрудился перевести её в sql скрипт. Потому распространяется это скрипт «бездваздмездно», с учетом того, что вы используете это как есть, принимая на себя ответственность за все возможные риски.

  2. Константин:

    Спасибо!
    В ближайшее время автор словаря (Майкл Хаген) планирует выложить его обновлённую версию. Нет ли у вас где-то выложенного исходного кода парсинга текстового файла в формат SQL?

  3. Оксана:

    а можно текстовый формат как-нибудь получить не для коммерческих целей

    • Покопайтесь на speakrus.ru, сайт еще пока жив. Я этим проектом занимался более 5 лет назад, у меня текстовых исходников не сохранилось.

  4. Гость:

    Минус базы есть, нет буквы Ё там где быть она должна