[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