@rojermartino
Programmer from the Heaven

Где искать информацию по интеллектуальному поиску?

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

Стоит некоторая задача. Я прошу помощи с определения отправной точки.
Суть в следующем:
На вход программе поступает некоторое количество параметром для поиска (пусть это будут стиральные машины).
Например:
Длина: От 50 До 150
Ширина: От 40 До 70
Оборотов в минуту: 1500
и тд
(Суть в том, что эти параметры как статичные[система умеет с ними работать], так и плавающие [хорошо бы по тексту получить семантику] )

На выходе мне нужно получить список ссылок из интернета с этими параметрами. (Сервер постоянно крутится и парсит сайты стиральным машинок и записывает найденные варианты в БД)

В чем собственно проблема?
1) Во первых, мне не очень понятно в каком виде хранить информацию.
Я вижу это так: Храним в БД все возможные параметры, которые удалось вытащить из сайтов.
При поступлении запроса, я получаю варианты по статичным параметрам + если получится получить параметры из текста с помощью нейросети, беру отбор и по этим критериям.

2) Тут собственно стоит вопрос получения семантики предложения или отдельных слов. Есть ли готовые библиотеки, которые упростят мне жизнь и предоставят что-то уже написанное? Чтобы я только обучил нейросеть и выпустил в работу?

3) Что выбрать для серверного языка? Сервер постоянно парсит сайт и пишет все в БД. Что для таких целей будет самым быстрым в разработке? Питон? Джава? Go? Какие варианты стоит рассмотреть? (Желательно с большим количество готовых либ [парсинг + БД + алгоритмы поиска и машинного обучения])

4) Может кто знает какие нибудь книги, статьи - любые источники, где я могу посмотреть что-то на данную тему?
Как вообще гуглить по таким запросам? :)
  • Вопрос задан
  • 758 просмотров
Решения вопроса 1
1) Во первых, мне не очень понятно в каком виде хранить информацию.
На данный момент вижу это таким образом:
каждому набору фильтров для поиска будет соответствовать набор URL:
search_set_id => {URL1, URL2, ..., URLn}
Поскольку одни и те же URL будут повторяться неоднократно среди результатов для разных фильтров, то чтобы не раздувать БД, лучше создать таблицу urls:
id | url
1 | http: //gugu.ru?p=1
2 | http: //gugu.ru?p=2
3 | http: //kuku.ru
4 | http: //mumu.ru
Таким образом, каждому search_set_id будет соответствовать набор id из таблицы urls.

url_results
url_id | search_set_id
1 | 1
2 | 1
3 | 1
2 | 2
3 | 2

Набор характеристик для search_set_id можно хранить как набор id из разных пар ключ-значение (паттерн EAV) или как единый JSON (hstore в СУБД PostgreSQL).
Получив search_set_id можно найти соответствующий ему набор URL.

2) Тут собственно стоит вопрос получения семантики предложения или отдельных слов. Есть ли готовые библиотеки, которые упростят мне жизнь и предоставят что-то уже написанное? Чтобы я только обучил нейросеть и выпустил в работу?

Компьютерная лингвистика - нелёгкая наука. Копай сайт aot.ru , материалы Яндекс ШАД а также почитай про их Томита парсер и пр. Чуда ждать не стоит, лучше проконсультироваться с лингвистом.

3) Что выбрать для серверного языка?

Питон хорош тем что легко найти всякие библиотеки и в парсинге также популярен. Лучше бери то что лучше знаешь и на чём легче найти специалистов.

4) Может кто знает какие нибудь книги, статьи - любые источники, где я могу посмотреть что-то на данную тему?
Как вообще гуглить по таким запросам? :)
Перед гуглением полезно чётко сформулировать свою задачу и не ставить слишком общие задачи. Про нейронные сети лучше забыть до лучшего понимания задачи.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
sphinxsearch faceted search ( есть и в эластике)

Питон
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы