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

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

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

mikekaganski

#15
Цитата: dziglo от 15 июля 2022, 11:08Почему не все буквы указаны в TRY и почему они идут именно в этом порядке, а не в алфавитном?

Цитата: https://manpages.org/hunspell/5TRY characters
Hunspell can suggest right word forms, when they differ from the bad input word by one TRY character. The parameter of TRY is case sensitive.
...
It's useful to add a TRY option with the characters of the dictionary with frequency order to set edit distance suggestions.
Цитата: http://wiki.forumooo.ru/wiki/Hunspell_Dictнеобходимо их расположить в последовательности от наиболее часто употребляемой к менее употребляемой
С уважением,
Михаил Каганский

dziglo

mikekaganski, а переносы в Hunspell как-то учитываются? Можете подсказать где искать?

mikekaganski

Во-первых, я не специалист в Hunspell (в отличие от Yakov).
О каких "переносах" и в каком контексте идёт речь? Вы об автоматической расстановке переносов (в разрезе расстановки или в разрезе учёта уже расставленных), или о soft hyphen U+00AD? Первый случай (обе ипостаси) не имеет отношения к Hunspell, а второй - возможно, имеет, но я не знаю подробностей, и могу предполагать несколько вариантов, от наиболее примитивного (простое игнорирование символа (группы символов)) до учёта правил расстановки (требующего наличия соответствующего пакета).
С уважением,
Михаил Каганский

Yakov

Автоматическая расстановка переносов в LibreOffice/OpenOffice.org осуществляется с помощью отдельной библиотеки - hyphen:
https://github.com/hunspell/hyphen/blob/master/doc/tb87nemeth.pdf
Для каждого языка используется свой отдельный словарь переносов.

mikekaganski

Цитата: Yakov от 18 июля 2022, 10:14Автоматическая расстановка переносов в LibreOffice/OpenOffice.org осуществляется с помощью отдельной библиотеки - hyphen

https://github.com/hunspell/hyphen
С уважением,
Михаил Каганский

dziglo

Yakov, могу вам в личку написать?

Yakov


dziglo

Добрый вечер.
Кто может подсказать ответ на такой вопрос.

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

SFX m8 Y 7
SFX m8 0 ма # как прописать здесь
SFX m8 кк кма
SFX m8 пп пма
SFX m8 сс сма
SFX m8 тт тма
SFX m8 хх хма
SFX m8 цц цма

gabix

Ну например как-то так:

SFX Y    й    так        [^й]й
SFX Y    йй    сяк        йй

dziglo

Ну если бы так просто было )

gabix

А какие сложности Вам надо?

dziglo

Сложности мне не нужны. Нужная рабочая вещь.

Слово хæдзар в именительном падеже.
В косвенном падеже оно будет хæдзармæ.

Слово зæхх в именительном падеже.
В косвенном падеже оно будет зæхмæ (НЕ зæххмæ).

Слово дзыпп в именительном падеже.
В косвенном падеже оно будет дзыпмæ (НЕ дзыппмæ).

Я могу сделать два флага.

SFX m1 Y 2
SFX m1 пп пмæ
SFX m1 хх хмæ

SFX m2 Y 1
SFX m2 0 мæ

Потом в dic-файле пишу:
дзыпп/m1
зæхх/m1
хæдзар/m2

Тогда все норм. Но я хотел бы узнать, можно ли это сделать в рамках одного флага.

Какой вариант вы бы предложили?

SFX m3 Y 1
SFX m3 пп пмæ
SFX m3 хх хмæ
SFX m3 0 мæ {[^й]й}

Что поставить вместо фигурных скобок? Если бы в Hunspell были бы более-менее полноценные регулярные выражения, то проблем бы не было.

gabix

Как сделал бы я, я уже предложил, и не понимаю, чем моё предложение не устраивает. Если конкретно взять Ваши примеры, то, соответственно:

SFX m1 пп пмæ пп
SFX m1 п пмæ [^п]п
SFX m1 хх хмæ хх
SFX m1 х хмæ [^х]х

mikekaganski

Вариант с одинаковым суффиксом, отличаются только удаляемые части

SFX m1 п мæ пп
SFX m1 0 мæ [^п]п
SFX m1 х мæ хх
SFX m1 0 мæ [^х]х
С уважением,
Михаил Каганский

dziglo