Кто-нибудь сталкивался с разработкой поиска на php с учётом того, что поисковый механизм должен искать слова с разными окончаниями?
Например, фраза "Дорогой друг".
Нужно, чтобы искались слова "дорогой", "дорогая", "дорогие", "дорогую" и т.п.
Как это вообще делается?
Нужно иметь словарь окончаний?
Какие есть идеи?
Спустя 2 часа, 10 минут, 40 секунд (11.12.2008 - 19:19) FatCat написал(а):
Цитата (str_replace @ 11.12.2008 - 17:09) |
Какие есть идеи? |
С окончаниями маетно.
Была идея нестрогого поиска по вхождению букв. Тогда "окно" и "окон" найдется при полном совпадении, "окно" и "окна" найдется с расхождением в одну букву и будет показываться во вторую очередь.
Желательно учитывать расхождения в зависимости от позиции в слове: в конце слова и 3 расхождения некритичны (разные окончания), в середине слова (предположительно в корне) не больше 1-й буквы расхождений.
Но скорострельность этого алгоритма будет о-о-о-о-очень медленной...
Спустя 1 месяц, 25 минут, 26 секунд (11.01.2009 - 19:45) Guest написал(а):
Спустя 18 часов, 25 минут, 48 секунд (12.01.2009 - 14:11) Alchemist написал(а):
Простейшая система с обработкой окончаний делается с учебником русского языка для первого класса.
Полная обработка с определением рода, типа, пола, склонения и спряжения делается долго, за большие деньги, и очень умными людьми с высшим образованием. У того же Ашманова делавшего языковой фильтр для Яндекса - степень по лингвистике.
Полная обработка с определением рода, типа, пола, склонения и спряжения делается долго, за большие деньги, и очень умными людьми с высшим образованием. У того же Ашманова делавшего языковой фильтр для Яндекса - степень по лингвистике.
Спустя 17 дней, 6 часов, 57 минут, 54 секунды (1.02.2009 - 21:09) sad8c написал(а):
эээ...
может я что-то неправильно понял, но почему бы вам просто не воспользоваться возможностями мускуловского FullText?
Это конечно не Яндексовский языковой фильтр, но вы ведь и не поисковик делаете наверно)))
может я что-то неправильно понял, но почему бы вам просто не воспользоваться возможностями мускуловского FullText?
Это конечно не Яндексовский языковой фильтр, но вы ведь и не поисковик делаете наверно)))
_____________