поиск на РЯ с учётом словоформ.

Научно-технические вопросы применения русского языка в программировании. Проекты с сайта программирование-по-русски.рф, кроме ЯОС . Информация об организациях и людях, использующих или изучающих русский язык в программировании. Сравнение операционных систем.
Ответить
БудДен
Сообщения: 1423
Зарегистрирован: 07.10.18 14:01

поиск на РЯ с учётом словоформ.

Сообщение БудДен » 11.12.20 21:18

Вот пример из того, что я сегодня перевёл:

https://gitlab.com/budden/ja-o-s/-/blob ... r.Mod#L221

Код: Выделить всё

строковыйЛитералСПунктуацией*: StringType; 
строковогоЛитералаСПунктуациейДлина*: SIZE;
Как искать такое? Какие есть подходы? Какая есть простенькая библиотека, которую было бы несложно портировать? Тут нужен даже не поиск словоформ, а нечто близкое по смыслу к нему, чтобы, допустим, искали "строковыйЛитерал", а библиотека сама определяла, возможно, с избытком, сколько букв в конце каждого сегмента нужно заменить на условную звёздочку(N), где N тоже вычислила бы и где это было бы похоже на то, что подходит под все словоформы данного слова и возможно прихватывает сколько-то лишнего, но не слишком много.

Аватара пользователя
Лис [Вежливый]
Сообщения: 385
Зарегистрирован: 08.10.18 13:32

Re: поиск на РЯ с учётом словоформ.

Сообщение Лис [Вежливый] » 12.12.20 01:08

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

БудДен
Сообщения: 1423
Зарегистрирован: 07.10.18 14:01

Re: поиск на РЯ с учётом словоформ.

Сообщение БудДен » 12.12.20 16:05

Не верю в единственность этого подхода.

Павиа
Сообщения: 127
Зарегистрирован: 23.05.19 21:28

Re: поиск на РЯ с учётом словоформ.

Сообщение Павиа » 06.01.21 15:34

Это называется stemming (процесс стемминг, а обработчик стеммер).
Классический алгоритм snowball
http://snowball.tartarus.org/algorithms ... emmer.html

А более продвинутые и современные это лемотизатор. Таких много просто в гугле вбейте. Обычно словарь и обученное дерево для угадывания результатов.
Словарь делают на основе Опен Корпус словарь словоформ либо словаря Зализника.

Ответить