Создание словаря Hunspell

Автор dziglo, 8 июля 2022, 20:52

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

dziglo

Посмотрел в aff-файле для английского словаря:

TRY esianrtolcdugmphbyfvkwzESIANRTOLCDUGMPHBYFVKWZ'
SFX M  0    's        .

В aff-файле для французскогословаря:
WORDCHARS -'
OCONV ' '

WORDCHARS я пробовал использовать. С тем же успехом.
Что такое OCONV не знаю даже.
В справочнике этого слова нет.

и там же (во фр.) куча применений другого апострофа ('):
SFX b4 Y 242
SFX b4 er er/n'q'd'l'm't's' er
SFX b4 er ant/n'q'l'm't's' [^c]er
SFX b4 cer çant/n'q'l'm't's' cer
SFX b4 er é/q' er
SFX b4 ecer èce/n'q'j'l'm't' ecer
SFX b4 emer ème/n'q'j'l'm't' emer
SFX b4 ener ène/n'q'j'l'm't' ener
SFX b4 eper èpe/n'q'j'l'm't' eper

Такой синтаксис тоже не могу понять. :-/

mikekaganski

С уважением,
Михаил Каганский

BadmHaalg

#47
Добрый день! :) Задался на днях сделать Hunspell словарь для калмыцкого языка. В общих чертах понял что как, но не могу никак решить одну частную проблему. Излагаю суть.
Есть в калмыцком языке такая штука, называется "сингармонизм гласных". Суть её в том, что тот или иной вариант аффикса выбирается в зависимости от того, какие гласные были употреблены в корне слова (твердые или мягкие).
Пример 1.
Родительный падеж для существительных 1го склонения образуется путем присоединения аффикса -a/-ә.
Слово "торһн" в родительном падеже будет "торһнА" - аффикс -А, потому что гласная О в корне - твердая.
А вот слово "көвүн" будет "көвүнӘ" - аффикс -Ә, т.к. в корне мягкая Ө.
Пример 2.
Тот же родительный падеж, но для сущесвительных 2го склонения образовывается путем присоединения аффикса -ин/ын.
"Киилг" - "киилгИН" (т.к. корне мягкая И), "номт" - "номтЫН" (в корне О твердый) и т.д.
Пример 3.
Настоящее время глаголов образуется путем присоединения к инфинитиву суффиксов -на/нә.
"Умшх" - "умшНА" (в корне твердый гласный У), но "белдх" - "белдНӘ" (мягкий Е в корне).

И вот такая история почти для всех случаев склонения по падежам, для временных форм и т.д.
Подскажиет пожалуйста, можно ли как-то прописать такие условия, чтобы в зависимости от состава гласных в корне выбирался тот или иной вариант суффикса?
Заранее благодарю за любую помощь!



gabix

Судя по турецкому словарю, проблема по сути не решается, просто каждый вариант аффикса вносится по отдельности, и количество аффиксов стремится к бесконечности перевалило за шесть тысяч.

BadmHaalg

Цитата: gabix от 24 августа 2022, 17:54Судя по турецкому словарю, проблема по сути не решается, просто каждый вариант аффикса вносится по отдельности, и количество аффиксов стремится к бесконечности перевалило за шесть тысяч.

Дело не в количестве аффиксов(вариантов-то всего два для каждого правила - либо в корне мягкая гласная, либо твердая), а в том, можно ли прописать условие, которое бы смотрело на гласные в корне? (т.е. не на соседние символы с самим суффиксом, а на отстоящие от него на неизвестное количество символов).

Пока писал это сообщение придумал вариант, что можно в самом файле .dict помечать одним флагом слова с мягкими гласными, а другим с твердыми. А в файле .affix каждое правило будет по сути дублироваться (одно для мягких, другое для твердых), но с разными флагами.
В принципе в этом ничего сложного, просто придеться каждое правило писать в двух вариантах, получается.
Если бы регулярки посложнее поддерживались, было бы сильно проще конечно

dziglo

Цитата: BadmHaalg от 24 августа 2022, 18:11Если бы регулярки посложнее поддерживались, было бы сильно проще конечно

👍👍👍

dziglo

Подскажите пожалуйста, что обозначают эти теги в Hunspell.

В dic-файле:


В aff-файле:


Это из aff- и dic-файлов для окситанского словаря. Вот они сами:

Hunspell-словарь

В этом словаре применяется апостроф, правда он ставится не вначале слова, а внутри. Значит, все-таки апостроф можно без проблем применять...

mikekaganski

Цитата: dziglo от 26 августа 2022, 12:31Подскажите пожалуйста, что обозначают эти теги в Hunspell

Я не смог (при поверхностном чтении) найти в Hunspell код, который бы использовал id: или di:. Хотя там есть два тестовых файла [1] [2], в которых есть id:di: я вообще не нашёл). У меня ощущение, что это может быть унаследованный синтаксис из myspell (или какое-то такое же легаси).
С уважением,
Михаил Каганский

dziglo

Прошу помочь.
Не пойму как нужно учитывать слова с дефисами.
Допустим, есть слово бахъуыр-хъуыр.
Даже если в dic-файле оно будет, то Hunspell (в Notepad++) подчёркивает его как ошибочное. Отдельного слова «бахъуыр» не существует.
В справочниках
1
2
кое-что говорится об этом (как я понимаю, там, где про BREAK), но как это на практике использовать не понимаю. :-/

gabix

Цитата: dziglo от 27 августа 2022, 08:53то Hunspell (в Notepad++)

Так Вам нужен словарь для Notepad++? Тогда это на другой форум. Конкретно про «бахъуыр-хъуыр» не скажу, а вот «Усть-Луга» или «пресс-релиз» в LibreOffice обрабатываются должным образом.

dziglo

Цитата: gabix от 29 августа 2022, 10:28
Цитата: dziglo от 27 августа 2022, 08:53то Hunspell (в Notepad++)

Так Вам нужен словарь для Notepad++? Тогда это на другой форум. Конкретно про «бахъуыр-хъуыр» не скажу, а вот «Усть-Луга» или «пресс-релиз» в LibreOffice обрабатываются должным образом.

Мне нужен словарь Hunspell. Который будет использоваться и в Notepad++, и в Либреофис, и Индизайне, и т.д.
В процессе его создания, я его тестирую, и делать мне это удобно в Notepad++.

mikekaganski

@dziglo: Это Вам решать, как тестировать. Но Вы находитесь на форуме LibreOffice/OpenOffice, и я надеюсь, Вы понимаете, что Ваши вопросы не должны уводить тему совсем уж в офф-топик? Мы уже обсуждали возможность специфичных для программы багов; поэтому человек, уважающий правила форума, мог бы начать тестировать проблемные моменты в LibreOffice перед тем, как задать вопрос - чтобы знать, это проблема специфична для Notepad++ (и тогда вообще не сюда), или она есть также в LO (и тогда, возможно, это проблема Hunspell или неправильного синтаксиса).
С уважением,
Михаил Каганский

dziglo

Цитата: mikekaganski от 29 августа 2022, 11:33Вы понимаете, что Ваши вопросы не должны уводить тему совсем уж в офф-топик?

Понимаю, но и обманывать форумчан не хотелось, говоря, что вот открываю в Либреофис, а там ошибка. Просто для Либреофиса и Опенофиса, насколько понимаю, нужно все в архив зип.

Цитата: mikekaganski от 29 августа 2022, 11:33и тогда, возможно, это проблема Hunspell или неправильного синтаксиса
Скорее всего неправильного синаксиса. Подозреваю, что у основная проблема Hunspell — невнятная задокументированность.

mikekaganski

Цитата: dziglo от 29 августа 2022, 11:52обманывать форумчан не хотелось

Я не знаю, как правильно делать расширение со словарём (но ZIP тут в любом случае только для удобства - для правильной регистрации нужны метаданные расширения, и после однократной регистрации Вы могли бы просто менять файлы словаря в соответствующей папке профиля).

Возможно, Вам подскажут, как приготовить такое расширение; или Вы можете попробовать установить словарь любого языка из имеющихся расширений, и поменять его файлы на свои.
С уважением,
Михаил Каганский

dziglo

Цитата: mikekaganski от 29 августа 2022, 11:57Возможно, Вам подскажут, как приготовить такое расширение

Мне с этим некоторое время назад Yakov помог, спасибо ему. Попробую использовать Либреофис. Точнее Опенофис. Он у меня на компе установлен.