Нашел словари на сайте speakrus.ru. Все круто, но почему то распространяется в виде текстовых файлов. К примеру, морфологический словарь из 4 159 394 словоформ для 142 792 лемм — это текстовая портянка 220 мегабайт!
Такой файл сложно вообще чем-либо открыть, а решать практические задачи и подавно невозможно. Потому я спарсил все данные в таблицу в MySQL.
Об исходнике словаря
Дублирую здесь краткое описание словаря и авторство. Автору отдельное спасибо за проделанный титанический труд.
Полная парадигма. Морфология. Частотный словарь. Совмещенный словарь. Автор М. Хаген. Полная парадигма. Морфология.
Словарь содержит 4 159 394 словоформ для 142 792 лемм.
Ред.: октябрь 2014 г.
Словарь составлен на основе известного файла «Полная акцентуированная парадигма по Зализняку» и существенно расширен за счет таких словарей в электронном виде, как «Лопатин В.В. Полный орфографический словарь русского языка», «Словарь иностранных слов, Москва: Русский язык, 1988», «Новый толково-словообразовательный словарь русского языка. Автор Т. Ф. Ефремова. 2000 г.», «Толковый словарь под ред. C. И. Ожегова и Н.Ю.Шведовой, М., Азъ, 1992 г.» и некоторых онлайн-словарей и энциклопедий.
Чтобы было хоть какое то представление о текстовой версии, приведу небольшой кусочек:
1 2 3 4 5 6 7 8 |
абсорбировавшийся | прч 2вид непер воз прош ед муж им | 2111743 абсорбировавшегося | прч 2вид непер воз прош ед муж род | 2531061 абсорбировавшемуся | прч 2вид непер воз прош ед муж дат | 2531062 абсорбировавшегося | прч 2вид непер воз прош ед муж вин одуш | 2531063 абсорбировавшийся | прч 2вид непер воз прош ед муж вин неод | 2531066 абсорбировавшимся | прч 2вид непер воз прош ед муж тв | 2531064 абсорбировавшемся | прч 2вид непер воз прош ед муж пр | 2531065 абсорбировавшаяся | прч 2вид непер воз прош ед жен им | 3023320 |
Файл содержит все возможные словоформы с указанием их признаков. Обязательно присутствует только один признак — часть речи. Есть некий шифр словоформы (число в конце строки), назначение и алгоритм получения которого я не выяснил, но в базу на всякий случай залил.
Строки в файле образуют некую иерархию. Можно увидеть связи словоформ друг с другом. Я сохранил эти данные в поле code_parent.
Изучение такой базы — это сам по себе процесс увлекательный и познавательный. К примеру, оказалось, что падежей не 6, существуют виды глаголов (и отглагольных частей речи), и много ещё чего.
В словарь не входят длинные многосоставные слова, вроде «рентгеноэлектрокардиографический». Вы встретите слова не более чем 3х составные. Так слово «электрокардиографический» в словаре есть.
Морфологический словарь в виде SQL скрипта
Нельзя рассчитывать на данный словарь как на полный и исчерпывающий. Но это наиболее полная коллекция, которую пока удалось обнаружить.
«Разрывом шаблона» для меня было то, что за отдельное слово автор иногда принимает целые группы слов, вроде союзной группы:
1 |
а не то что | союз | 207030 |
Примите этот факт как данность, потому что я не ставил задачи переработать словарь.
Архивы выложены на 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 скрипт. Потому распространяется это скрипт «бездваздмездно», с учетом того, что вы используете это как есть, принимая на себя ответственность за все возможные риски.
Спасибо!
В ближайшее время автор словаря (Майкл Хаген) планирует выложить его обновлённую версию. Нет ли у вас где-то выложенного исходного кода парсинга текстового файла в формат SQL?
Новость интересная, спасибо. А парсер не выкладывал.
а можно текстовый формат как-нибудь получить не для коммерческих целей
Покопайтесь на speakrus.ru, сайт еще пока жив. Я этим проектом занимался более 5 лет назад, у меня текстовых исходников не сохранилось.
Минус базы есть, нет буквы Ё там где быть она должна