Решён
Существуют ли поисковые системы с группировкой результатов по ключевым словам?

Ищу поисковик или инструмент, который при вводе запроса не просто выдает список ссылок, а группирует результаты по ключевым словам или подтемам.

Например, ввожу "Python обработка изображений". Обычный поисковик дает 10 ссылок вперемешку. А мне нужно чтобы результаты разбивались на группы: "OpenCV", "Pillow", "scikit-image", "нейросети для обработки" и т.д. Чтобы сразу видеть ландшафт темы, а не листать страницы.

Или другой пример: ввожу "головная боль" и результаты сгруппированы по причинам: "мигрень", "давление", "остеохондроз", "стресс".

Видел когда то давно что то подобное, кажется Carrot2 или Yippy (бывший Clusty), но они вроде закрылись или стали платными. Может есть что то живое и рабочее?

Решение
20
Участник • 3 ответа

Carrot2 живой, open source. Последний релиз 4.6 от 2024 года.

https://search.carrot2.org - веб-интерфейс, можно попробовать прямо сейчас. Вводишь запрос, он прогоняет через Bing или eTools и кластеризует результаты. Есть визуализация в виде кругов (FoamTree) и дерева.

Для локального запуска скачиваешь с GitHub, поднимаешь на Java. Можно подключить свои источники данных через REST API. Алгоритмы кластеризации: Lingo, STC, Bisecting K-Means.

https://github.com/carrot2/carrot2

16
Случайный участник (Гость)

Еще варианты помимо Carrot2:

Yippy/Clusty. Действительно закрылся в 2020. Жаль, был хороший.

SearXNG (open source метапоисковик). Сам по себе не кластеризует, но к нему можно прикрутить кластеризацию через Carrot2 API. Есть публичные инстансы: https://searx.space

Keenwa. Относительно новый проект, заявляют AI-кластеризацию результатов поиска. На практике работает через раз, но идея правильная.

Google Scholar частично решает задачу для научных запросов. Показывает "Related articles" и группирует по цитированию.

Если задача не поиск в вебе, а кластеризация своих документов или набора текстов, то смотри в сторону Elasticsearch с плагином кластеризации (есть Carrot2 плагин для ES) или пиши свое на Python с sklearn (TF-IDF + K-Means).

9
Участник • 1 ответ

Не совсем поисковик, но ChatGPT и Claude умеют делать то что ты описываешь. Вводишь "дай обзор подходов к обработке изображений в Python, сгруппируй по библиотекам" и получаешь структурированный ответ с группировкой.

Да, это не поиск в привычном смысле. Но для задачи "понять ландшафт темы" LLM работают лучше любого кластеризатора поисковой выдачи, потому что у них уже есть модель предметной области.

13
Случайный участник (Гость)

Если хочется хардкорного решения, можно собрать свое за вечер.

from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.cluster import KMeans
import requests

# собираешь сниппеты через SearXNG API
results = requests.get('https://searx.instance/search?q=python+image+processing&format=json').json()

texts = [r['title'] + ' ' + r.get('content', '') for r in results['results']]

vectorizer = TfidfVectorizer(stop_words='english', max_features=1000)
X = vectorizer.fit_transform(texts)

km = KMeans(n_clusters=5, random_state=42)
km.fit(X)

# выводим кластеры с ключевыми словами
order_centroids = km.cluster_centers_.argsort()[:, ::-1]
terms = vectorizer.get_feature_names_out()
for i in range(5):
    print(f"Cluster {i}: {', '.join(terms[ind] for ind in order_centroids[i, :5])}")

Грубо, но для прототипа хватит. Дальше можно заменить K-Means на HDBSCAN, добавить sentence-transformers вместо TF-IDF и будет уже серьезный инструмент.

7
Участник • 2 ответа

Perplexity AI. Не кластеризует в чистом виде, но при сложном запросе разбивает ответ на подтемы со ссылками на источники. Бесплатная версия покрывает большинство задач.

3
Случайный участник (Гость)

помню был ещe когда то Nigma.ru, он тоже кластеризовал. Российский поисковик. Но его давно закрыли, году в 2015 вроде

Написать ответ

Премодерация гостей

Вы отвечаете как гость. Ваш ответ будет скрыт до проверки модератором. Чтобы ответ появился сразу и вы получали репутацию — войдите в аккаунт.

Будьте вежливы и соблюдайте правила платформы.