powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Русские словари ispell: в состав лексем включены слова с разными окончаниями
7 сообщений из 7, страница 1 из 1
Русские словари ispell: в состав лексем включены слова с разными окончаниями
    #40010020
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возьём, к примеру, русский морфологический словарь " ru_ru " отсюда :
Код: sql
1.
2.
SELECT to_tsvector('russian_hunspell', 'человеку людьми ищу искали');
-- 'искать':3,4 'людьми':2 'человек':1

Разбираем результат: " ищу " и " искали " имеют одну лексему " искать ". Всё нормально. Но почему " людьми " не преобразовано в " люди " ? Если открыть файл со списком лексем " ru_ru.dict ", то там можно обнаружить лексемы "люди", "людей", "людьми". Если " люди " и " людьми " с большой натяжкой ещё можно разнести по разным лексемам (всё-таки, смысл неидентичный), то "людей" в качестве самостоятельной лексемы - это явно перебор. Меняется только окончание.

Далее тестируем русский морфологический словарь от AOT " ru_ru_aot " оттуда же:
Код: sql
1.
2.
SELECT to_tsvector('russian_hunspell', 'человеку людьми ищу искали');
-- 'искали':4 'ищу':3 'людьми':2 'человеку':1

Здесь ещё хуже. В файле с списком лексем " ru_ru_aot.dict " присутствуют лексемы "человек", "человека", "человекам", "человеками", "человеках", "человеке", "человеком", "человеку", а также лексемы "искал", "искала", "искало", "искали", "искать". Это всё зачем ? Это же не лексемы никакие, а словоформы. Таким точным поиском люди ничего не найдут. Больше на прикол похоже...

P.S . Изначально, глядя на размер словаря "ru_ru_aot", в 2.5 раза превышающий "ru_ru", подумал, что там слов больше. Как оказалось, там не слов больше, а словоформ с разными окончаниями. Так в чём подвох ?
...
Рейтинг: 0 / 0
Русские словари ispell: в состав лексем включены слова с разными окончаниями
    #40010030
Ы2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эти словари делаются в первую очередь для проверки орфографии, а не для лемматизации. Поэтому немного сделанного «быстренько, но грязненько» там вполне может быть. Судя по беглому просмотру, это касается всех форм на -ьми (их аж восемь штук на 146 тысяч слов) и еще некоторых.
Если хотите приводить «людьми» к «человек», сделайте файл синонимов.
...
Рейтинг: 0 / 0
Русские словари ispell: в состав лексем включены слова с разными окончаниями
    #40010034
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ы2 Эти словари делаются в первую очередь для проверки орфографии, а не для лемматизации.
Да, в целях проверки орфографии/грамматики наличие в словаре лексем, отличающихся только окончанием (в "ru_ru" мало, в "ru_ru_aot" много), на качество такой проверки отрицательно никак не повлияет. Но на качество поиска оказывает существенное влияние. Тогда зачем в официальной документации рекомендуют использовать (и пишут расширения на их основе) для поиска словари, для этого совсем не предназначенные ?

И непонятно, в чём принципиальное отличие словарей " ru_ru " и " ru_ru_aot " в точки зрения их прямого назначения ?
Если оба словаря предназначены для проверки орфографии/грамматики, тогда зачем добавлять словоформы с другими окончаниями, если на качество проверки это никак не скажется ?
...
Рейтинг: 0 / 0
Русские словари ispell: в состав лексем включены слова с разными окончаниями
    #40010243
Ы2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cyrax_02, postgres может использовать словари в формате hunspell для лемматизации, т.к. это умеет встроенный hunspell, хотя это не является для него основной задачей (оно — средство проверки орфографии). postgres_pro несколько лет назад собрали у себя для удобства наиболее распространенные словари, однако никто не мешает вам взять словарь поновее, у них даже инструкция есть, как это сделать.

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

Если не нравится имеющийся словарь, можете его исправить, благо формат документирован .
...
Рейтинг: 0 / 0
Русские словари ispell: в состав лексем включены слова с разными окончаниями
    #40010252
Ы2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cyrax_02, по второму вопросу…
Не смотрел никогда, чем изначально внутренне отличался словарь АОТ от ru_ru. У postgres_pro же лежит результат его конвертации в формат hunspell, т.е. какие-то недостатки в нем могут быть следствием ограничений этого формата. Изначальное его предназначение — совсем другое (подробнее тут ).
...
Рейтинг: 0 / 0
Русские словари ispell: в состав лексем включены слова с разными окончаниями
    #40010256
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторКачество лемматизации зависит от того, как сделан словарь, при этом более высокое качество может плохо влиять на производительность: словари-то исходно делались для интерактивных приложений типа офисов, браузеров и т.п., которым надо проверять быстро, а леммы совсем не важны.
Т.е. в словарях от AOT добавлено много форм с окончаниями в целях ускорения проверки орфографии ? Т.е. больше слов находятся сразу по индексу и меньше слов требуют применения правил аффиксов ? В этом смысл варианта словаря "ru_ru_aot" ?
...
Рейтинг: 0 / 0
Русские словари ispell: в состав лексем включены слова с разными окончаниями
    #40010260
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторИзначальное его предназначение — совсем другое (подробнее тут). Если за основу был взят именно морфологический словарь AOT, тогда вопрос снимается.
В любом случае, использование этого словаря ("ru_ru_aot") в такой форме для полнотекстового поиска не имеет практического смысла. Занимает в памяти на 25Мб 21.8 Мб больше, а в результатах поиска будет вдвое меньше найденных вхождений...
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Русские словари ispell: в состав лексем включены слова с разными окончаниями
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]