• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Помощь Dle поиск с учетом ошибки-опечатки

drkrol

Постоялец
Регистрация
6 Мар 2016
Сообщения
112
Реакции
11
Здравствуйте. Сейчас столкнулся с проблемой. У меня есть статья, где в названии присутствует словосочетание "набор мыла". Поиск без проблем находит эту статью, если указать там слово "мыла", но если же указать слово "мыло", то поиск ничего не найдёт. Подскажите, как быть? Как сделать, чтобы dle игнорировал одну букву?
 
Поиск с учётом ошибок - это некое машинное обучение. И проводить его можно 2 путями...
1) Реально "учить" машину понимать что ищут пользователь.
2) Указывать регулярными выражениями все возможные опечатки...

По первому варианту можно почитать очень много в гугле и на хабре. Но на практике у Вас не Яндекс, чтобы реализовывать столь сложные алгоритмы...
Во второму немного проще... Можно пробовать искать по тому, что ввёл пользователь. И вот если не получилось - делать регулярку, которая заменит поочерёдно каждую букву на "произвольный набор букв/цифр"... По другому я этого не вижу. Перечислять всё подряд - бред.

Дальше можно пойти путём объединения методов. Т.к. поиск регулярками - сложный, долгий и ресурсоёмкий - результаты поиска сохраняются... Т.е. мы находим на что надо исправить, чтобы найти что хочет пользователь. Но опять же - вариант затратен.

Есть альтернативные варианты - воспользоваться готовым. Т.е. либо использовать API по проверке орфографии, либо API поиска...

Поправьте меня, если это можно сделать проще...
 
Скорее всего проще использовать готовый поиск по сайту Для просмотра ссылки Войди или Зарегистрируйся, чем ставить регулярки либо обучать в ДЛЕ поиск орфографии русского языка. Это все таки не просто реализовать (да и не думаю что в каком то движке такое реализовано, кроме как в поисковиках), чем сделать фикс неправильной раскладки или буквы е/ё.
 
1) Реально "учить" машину понимать что ищут пользователь.
2) Указывать регулярными выражениями все возможные опечатки...
1 ИИ это круто, но большой расход ресурсов.
2 слишком сложно, есть огромное количество путей для опечаток и регуляркой это не перекрыть. Разве что самые распространённые а-о, ы-и и т.п.

Другие пути:
Для просмотра ссылки Войди или Зарегистрируйся
В php есть нативная функция Для просмотра ссылки Войди или Зарегистрируйся, но поиск по заголовкам в php надо очень аккуратно выносить...
И еще огромная куча других: Для просмотра ссылки Войди или Зарегистрируйся

Шинглы - Для просмотра ссылки Войди или Зарегистрируйся

Алгоритмы хеширования и q-грамм Для просмотра ссылки Войди или Зарегистрируйся

Можно гуглить по "Вероятностные алгоритмы", "алгоритмы нечеткого поиска"

Вот хороший материал - Для просмотра ссылки Войди или Зарегистрируйся с готовым кодом на php
 
Назад
Сверху