Nano Hash - криптовалюты, майнинг, программирование

Как реализовать синонимы для использования в поисковой системе?

Я работаю над поисковой системой для домашних животных (SE).

Сейчас у меня есть логическое ключевое слово SE в виде библиотеки, разделенной на две части:

  • индекс: это инвертированный индекс, т.е. он связывает термины с исходным документом, где он появляется

  • запрос: который предоставляется пользователем и может быть произвольно сложным логическим выражением, которое выглядит как (mobile OR android OR iphone) AND game

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

Мне нужна помощь, чтобы построить график синонимов.

Как я могу вычислить список слов, которые появляются в похожем контексте?

Вот пример списка синонимов, которые я хотел бы вычислить:

  • psql, pgsql, постгрес, постгрескл
  • мобильный, айфон, андроид

а также синонимы, которые включают в себя ngrams, такие как:

  • rdbms, системы управления реляционными базами данных, ...

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



Ответы:


1

В стандартной литературе по информационному поиску (IR) такое обогащение запроса дополнительными терминами (которые не появляются в исходном/исходном запросе) называется расширением запроса.

Существует множество стандартных подходов, которые, вообще говоря, основаны на идее оценки терминов на основе некоторых факторов и последующего выбора ряда терминов (скажем, K, параметра), которые имеют наивысшее значение. баллы.

Для расчета оценки выбора термина предполагается, что наиболее релевантными являются документы с наивысшим рейтингом (M), извлеченные после первоначального поиска, что называется псевдорелевантной обратной связью.

Факторы, от которых обычно зависит функция выбора термина:

  1. Частота термина в документе с самым высоким рейтингом — чем выше, тем лучше.
  2. Количество документов (из топа M), в которых встречается термин - чем больше, тем лучше.
  3. Сколько раз дополнительный термин совпадает с термином запроса — чем больше, тем лучше.

Фактор одновременности является наиболее важным и даст вам такие термины, как «pgsql», если исходный запрос содержит «psql».

Обратите внимание, что если документы слишком короткие, этот метод не будет работать должным образом, и вам придется использовать другие методы, обязательно основанные на семантике, такие как i) расширение на основе словарного вектора или ii) расширение на основе сети слов.

25.09.2017
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

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

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..