Морфологический словарь русского языка в виде 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 скрипта

Март 15, 2017 г.

Местоимения извлечены из базы морфологии русского языка. Они могут склоняются по родам, падежам и образуют три видовые группы. Я не стал вдаваться в детали склонения, чтобы создавать "нормализованную" выборку. Возможно, сделаю это в следующем релизе на ...

Читать

База предикативов

Март 15, 2017 г.

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

Читать

 

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

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



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

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

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

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

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

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

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

  3. Оксана:

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

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

  4. Гость:

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