[Comm] Hunspell & new dicitonary
Sergey Kurakin
sergeykurakin на gmail.com
Пн Мар 8 14:33:23 UTC 2010
On 03/07/2010 01:58 PM, anyr на tut.by wrote:
> Пытаюсь сделать специализированный словарь для openoffice, т.е. используя
> hunspell.
Уточните, какой у вас дистрибутив. Есть нюансы.
> Написал некоторые правила аффиксов и небольшой словарь для проверки этих
> самых аффиксов.
Совет: используйте аффиксы проф. Лебедева. Во-первых, они весьма
хороши. А во-вторых: смотрите ниже.
> Теперь встала проблема с проверкой работоспособности этого
> словаря. В документации по hunspell указана утилита hunmorph, которую я не
> нашел.
А почему бы не воспользоваться для проверки самим hunspell?
Насколько я понял, hunmorph -- это морфологический анализатор,
который уже очень давно отделился от hunspell/myspell и живет своей
жизнью.
> Обозвал файлы ru_RU-medicine.(aff,dic) и сложил их к остальным словарям в
> /usr/share/myspell вот только они не подхватываются приложениями
> (OpenOffice в частности). Я так понимаю, что необходимо, чтобы имя словаря
> соответствовало языку, т.е. именно ru_RU, а не ru_RU-medicine.
Не совсем так. Используемый словарь выбирается альтернативой
ru_RU.dic + ru_RU.aff. То есть, вы должны добиться, чтобы эти
альтернативы указывали на ваш словарь. И тогда все приложения,
использующие hunspell, будут пользоваться вашим словарем. Все,
кроме... OOo. Подробности здесь:
https://bugzilla.altlinux.org/show_bug.cgi?id=23026#c5
Как вы поняли, эту "особенность" OOo обошли в Сизифе переименованием
файлов, но в другие репозитории изменение пока не попало.
Забавно, что если вас интересует исключительно OOo, то вы можете
воспользоваться этой "особенностью", назвав ваш словарь ru_RU__.dic
и ru_RU__.aff. В таком случае с большой вероятностью OOo подхватит
именно его. Но лучше не надо...
> Если так, то
> мне придется заменить словарь для проверки русской орфографии на мой
> словарь (вернее сменить ссылку на файл словаря и аффиксов).
Да, только лучше не просто менять ссылку, а разобраться, как работает
механизм альтернатив и сделать для вашего словаря соответствующую
альтернативу.
> В этом случае придется
> также продублировать содержимое словаря для русского языка.
Да, придется. Именно поэтому я и советовал использовать готовые
аффиксы основного словаря, чтобы они не конфликтовали с вашими.
> Я почти уверен, что где-то что-то упускаю, но пока не понял где и что :-\
> Буду признателен, если кто-нибудь подскажет верный путь.
Гипотетически самым верным путём было бы найти способ подключать
к hunspell одновременно несколько словарей для одного языка.
Но, увы, мне такой способ неизвестен.
Так что остается, видимо, взять готовый словарь и добавлять в него
новые слова, пользуясь оригинальным affix-файлом.
Позволю себе дать еще пару советов.
В качестве исходного порекомендовал бы взять словарь из
недавно появившегося в Сизифе пакета hunspell-ru-lebedev(-ie,-io).
В нем, как и в давно существующем пакете hunspell-ru(-io),
используется словарь проф. Лебедева, но есть ряд отличий:
1. Среди пакетов hunspell-ru-lebedev есть так называемый
"комбинированный" словарь, допускающий как использование буквы "ё",
так и замену "ё" на "е". Среди hunspell-ru(-io) такого комбинированного
варианта нет.
2. hunspell-ru-lebedev основан на версии 0.99g5 2008 года;
hunspell-ru -- это версия 0.99f7 2004 года и содержит
приблизительно на 9700 базовых слов меньше.
3. Пакеты hunspell-ru-lebedev содержат некоторое количество
добавленных мною новых слов, тщательно отобранных и проверенных,
главным образом по Русскому орфографическому словарю под ред.
В. В. Лопатина. Кстати, медицинские термины там тоже представлены,
хотя и в ничтожном количестве:
http://git.altlinux.org/people/kurakin/packages/?p=ispell-ru-lebedev.git;a=blob;f=addition.words;h=5675f8aaa20ceb224c90120ff2f6fb578ad8529e;hb=bacb90e4df15a7a00f4a3df2a2a51be6b5abee88
С удовольствием включу в свою сборку и ваши слова. Но только те из
них, которые смогу проверить по словарю Лопатина.
И, наконец, последний совет. Если вы всерьез собираетесь заниматься
этой работой, то рекомендую иметь в качестве справочного пособия
оригинальный affix-файл проф. Лебедева в формате ispell
russian.aff.koi. Он снабжен очень полезными авторскими комментариями,
позволяющими разобраться, что там к чему. При преобразовании в формат
hunspell/myspell все комментарии теряются и разобраться становится
затруднительно. Подозреваю, что именно этот факт и побудил вас заняться
изготовлением собственного affix-файла, вместо того, чтобы взять
готовый.
--
WBR,
Sergey Kurakin
Подробная информация о списке рассылки community