Задать вопрос
@egorkozelskij

Как сделать ассоциативный поиск в PHP?

Здравствуйте!

Стоит следующая задача:
Пользователю на сайте нужно выбрать картинке и он видит тысячи подгруженных картинок + поисковую строку.
При вводе в поиске необходимого слова на русском языке - система ему фильтрует картинки, которые подходят больше всего.

На php сервере картинки подписаны тем словом, которое максимально точно описывает то, что там изображено.
Если там собака, то скорее всего файл будет называться dog.png и тд.

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

Первое, что пришло в голову - делать перевод русского слова в англ и затем по массиву ассоциаций отбирать нужные картинки. Но в таком случае придется этот массив ассоциация (синонимов писать вручную). Есть ли готовые решения для такой задачи? Много где такой поиск встречал
  • Вопрос задан
  • 130 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
Много где такой поиск работает не на названиях файлов, а на текстовых описаниях, сохранённых для каждого файла.
А дальше это просто полнотекстовый поиск с использованием специализированных инструментов или просто встроенных механизмов СУБД. И да, словарь синонимов всё равно придётся скармливать этим инструментам, магически компьютер их не придумает.
Ответ написан
Комментировать
Теоретически, синонимы можно запрашивать с внешних сервисов (thesaurus.com или чего-то наподобие).
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽