Конвертация словаря в формат Hunspell

Автор Yakov, 22 апреля 2010, 11:38

0 Пользователи и 1 гость просматривают эту тему.

Yakov

Есть идея на основе русского словаря aot.ru создать словарь для hunspell.
http://seman.svn.sourceforge.net/viewvc/seman/trunk/Dicts/SrcMorph/RusSrc/
При конвертации в формат  hunspell возникла проблема:
внутреннее устройство словаря aot.tu содержит таблицу из набора
около 2700 видов суфиксов.
Попробовал использовать при создании словаря флаг Num для
использования цифровых суффиксов - но словарь hunspell получился нерабочим   :'(
Есть ли дополнительная документация по созданию словаря hunspell,
кроме этого:
http://www.mozilla-russia.org/projects/dictionary/hunspell.html

Yakov

Сконвертированный словарь aot.ru в формат fsa  уже используется в расширеннии для проверки грамматики LanguageTool. Поэтому, желательно иметь и орфографический словарь с тем же набором слов.

Yakov

Тестовая версия заработала, но файл аффиксов по размеру получился соизмерим с размером словаря.
Поэтому загрузка в память  Hunspell словаря длится на моём компьютере около 50 секунд.

То есть для использования с Hunspell (и OpenOffice) требуется преобразование структуры словаря.

PiVV

ЦитироватьПопробовал использовать при создании словаря флаг Num для
использования цифровых суффиксов - но словарь hunspell получился нерабочим
Странно, мой "домашний" словарь изначально именно с нумерованными правилами создавался и прекрасно работает. Правда я всё ещё сижу на 2.4.2 потому что там можно просто подменить файлы словаря своими.
Цитироватьно файл аффиксов по размеру получился соизмерим с размером словаря.
А чего ж это так правила раздуло. Мои неоптимизированные (правда пока без приставок) примерно в 30 раз меньше чем словарь. С учётом того, что словарь ещё будет пополняться, а правила практически нет соотношение должно возрасти.
ЦитироватьПоэтому загрузка в память  Hunspell словаря длится на моём компьютере около 50 секунд.
А как это можно проверить, например с моим словарём? Я-то по большей части в Firefox проверяю и собираю новые слова.

Syzygy

Цитата: Yakov от 22 апреля 2010, 10:38Есть идея на основе русского словаря aot.ru создать словарь для hunspell.
У меня вопрос - собственно, что это даст? Каковы ввыгоды?
A Matter of Life and Death

Yakov

Цитата: Syzygy от  5 июля 2010, 09:33
Цитата: Yakov от 22 апреля 2010, 10:38Есть идея на основе русского словаря aot.ru создать словарь для hunspell.
У меня вопрос - собственно, что это даст? Каковы ввыгоды?
Лицензия словаря - LGPL
И словарная база для проверки орфографии будет совпадать
со словарём, который используется для проверки грамматики.
+этот словарь основывается на академическом словаре А.А.Зализняка с дополнениями и переработкой рабочей группой aot.ru, то есть обладает хорошим качеством.

Yakov

Цитата: PiVV от  4 июля 2010, 23:19
А чего ж это так правила раздуло. Мои неоптимизированные (правда пока без приставок) примерно в 30 раз меньше чем словарь. С учётом того, что словарь ещё будет пополняться, а правила практически нет соотношение должно возрасти.
Это из-за слов,написанных через дефис.
Наверное, правильным решением будет удалить аффиксы для слов с дефисным написанием и включить эти слова
обычным списком.

Цитата: PiVV от  4 июля 2010, 23:19А как это можно проверить, например с моим словарём? Я-то по большей части в Firefox проверяю и собираю новые слова.
У меня словарь http://extensions.services.openoffice.org/ru/node/4120 грузится за 3 секунды,
там файл аффиксов значительно меньше (12 аффиксов вместо 2650)
И памяти Hunspell для него потребляет в 2 раза меньше...

PiVV

ЦитироватьЭто из-за слов,написанных через дефис.
Слова с дефисами я предполагаю делать через COMPOUNDRULE, но пока просто списком включаю.
ЦитироватьУ меня словарь http://extensions.services.openoffice.org/ru/node/4120 грузится за 3 секунды
Можно подробнее описать, как вы определяете время загрузки. Или вообще используется не OOo?
ЦитироватьИ памяти Hunspell для него потребляет в 2 раза меньше
Я думаю потребляемая память всё равно зависит от количества строк в dic-файле и первого числа, указанного в нём. Больше число - больше памяти под хэш, быстрее поиск. Меньше число - меньше памяти под хэш, медленнее поиск.

Yakov

Цитата: PiVV от  5 июля 2010, 18:14Цитата:
У меня словарь http://extensions.services.openoffice.org/ru/node/4120 грузится за 3 секунды
Можно подробнее описать, как вы определяете время загрузки. Или вообще используется не OOo?
Время от запуска
Hunspell -d dic_name
до перехода Hunspell в интерактивный режим
В случае OOo задержка наблюдается после ввода первого слова во Writer.


Цитата: PiVV от  5 июля 2010, 18:14
ЦитироватьИ памяти Hunspell для него потребляет в 2 раза меньше
Я думаю потребляемая память всё равно зависит от количества строк в dic-файле и первого числа, указанного в нём. Больше число - больше памяти под хэш, быстрее поиск. Меньше число - меньше памяти под хэш, медленнее поиск.
И от этого то же зависит,
но насколько я понял из экспериментов от размера файла аффиксов зависит время первоначальной загрузки
спеллчекера, а от размера словаря - время проверки текста.

Yakov

Цитата: PiVV от  4 июля 2010, 23:19но файл аффиксов по размеру получился соизмерим с размером словаря.
А чего ж это так правила раздуло. Мои неоптимизированные (правда пока без приставок) примерно в 30 раз меньше чем словарь. С учётом того, что словарь ещё будет пополняться, а правила практически нет соотношение должно возрасти.
Есть идея написать файл аффиксов "с нуля", а не брать за основу предложенный в оригинальном словаре. Ну и в файл *.dic включить полную форму слова. (в оригинальном словаре 2 таблицы: для основ слов и для окончаний)
Тогда количество аффиксов будет небольшим.

Yakov

#10
Цитата: Yakov от 11 июля 2010, 15:19
Есть идея написать файл аффиксов "с нуля", а не брать за основу предложенный в оригинальном словаре. Ну и в файл *.dic включить полную форму слова. (в оригинальном словаре 2 таблицы: для основ слов и для окончаний)
Тогда количество аффиксов будет небольшим.
Получившийся словарь загружается быстро (=1сек), размер словаря в виде расширения OOo около 750 кб. Но возникла проблема с описанием файла аффиксов (получается очень много неопознанных слов). В основной словарь необходимо
включить для существительных ещё и форму слова во множественном числе (в пробной версии в DIC файле слова представлены только в одной форме, преобразования должны были происходить с помощью аффиксов).

Yakov

Собрана тестовая версия словаря, которая имеет приемлемое быстродействие.
Файл аффиксов сгенерирован с помощью программы affixcompress из состава hunspell.
http://myooo.ru/usercontent/extentions/dict_ru_RU-AOT-0.1.1.oxt

Yakov

Собрана ещё одна версия словаря - dict_ru_RU-AOT-0.2.1!
В этой версии используются оригинальные наборы для групп аффиксов, какими они заданы в оригинальном словаре.
Для обеспечения приемлемого объёма и высокого быстродействия были исключены редко используемые аффиксы, и слова, их использующие,
включены в словарь во всех формах.

[вложение удалено Администратором]

ape

Установил в master~2011-09-02_14.25.52_LibO-Dev_OOO350m1_Win_x86 - работает без проблем.
Используется ли этот словарь при проверке орфографии (LightProof-0.2b_ru)?

Yakov

#14
Цитата: ape от  4 сентября 2011, 15:29Используется ли этот словарь при проверке орфографии  грамматики (LightProof-0.2b_ru)?
LightProof -ru на настоящий момент не использует орфографический словарь
В разрабатываемой версии LanguageTool -1.5-dev выполнено обновление встроенного словаря для русского языка (используется формат fsa),
так что теперь словари в LanguageTool -1.5 и dict_ru_RU-AOT-0.2.1 будут  почти идентичными
http://forumooo.ru/index.php/topic,391.msg13576.html#msg13576