Рубрика «fuzzy search»

  • Введение

  • Видение

  • Подготовка (ака тоже лайфхак)

  • Лайфхак (без кода пока что)

  • Метрики

Введение

Из-за санкций, Elasticsearch многие стали отвергать. Единственное, что его спасает, это RAG'и шмаги. Я первую работу выбрала в поисковом отделе, для меня это было завлекательнее, чем datascience, с которым я была уже знакома. 8 лет назад начала изучать эластик. Наработалась "интуиция" на его функционал, так как с нуля я делала поиск для других компаний несколько раз. Поиск текстовый, GEO поиск, подсказки для поиска (suggester) и с МЛ'ем которым майнились синонимы или кластеризовались запросы.

Читать полностью »

Алгоритм нечеткого поиска TextRadar — основные подходы

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

Постановка задачи

Даны строка данных и строка поиска как произвольные наборы символов, состоящих из слов – групп символов, разделенных пробелами.

Требуется найти в строке данных наиболее близкий к строке поиска по составу и взаимному расположения символов набор фрагментов.

Для оценки качества результата поиска вычислить коэффициент, значение которого должно лежать в диапазоне от 0 до 1, где 0 должен соответствовать полному отсутствию символов строки поиска в строке данных, а 1 – наличию строки поиска в строке данных в неискаженном виде.

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

Описание алгоритма

Поиск осуществляется в несколько этапов.

Построение матрицы совпадений

Матрица совпадений (M) представляет собой двумерную матрицу, количество столбцов которой соответствует длине строки данных, а количество строк – длине строки поиска. Элементы матрицы совпадений принимают значения 0 или 1 в зависимости от того, совпадают или нет соответствующие символы строк за исключением пробелов (разделителей слов).
Матрица совпадений для строки данных «ABCD EF» и строки поиска «ABC» имеет вид:

image
Читать полностью »

Нечеткий поиск в словаре с универсальным автоматом Левенштейна. Часть 2 - 1

В первой части статьи мы рассмотрели универсальный автомат Левенштейна — мощный инструмент для фильтрации слов, отстоящих от некоторого слова W на расстояние Левенштейна не более заданного. Теперь пришло время изучить способы применения этого инструмента для эффективного решения задачи нечеткого поиска в словаре.

Читать полностью »

Нечеткий поиск в словаре с универсальным автоматом Левенштейна. Часть 1 - 1

Нечеткий поиск строк является весьма дорогостоящей в смысле вычислительных ресурсов задачей, особенно если вам необходима высокая точность получаемых результатов. В статье описан алгоритм нечеткого поиска в словаре, который обеспечивает высокую скорость поиска при сохранении 100% точности и сравнительно низком потреблении памяти. Именно автомат Левенштейна позволил разработчикам Lucene повысить скорость нечеткого поиска на два порядка
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js