kellylynch (kellylynch) wrote,
kellylynch
kellylynch

An autocompletion algorithm with use of “popularity factor”

Алгоритм, учитывающий "популярность запросов"; и его использование для autocompletion
Предлагаю всем желающим свой алгоритм (и Demo-приложение, его реализующее) для построения "autocompletion lists" в GUI-полях.
Сейчас многие GUI control-ы имеют функцию autocompletion (autosuggestion). Но, как правило, в них применяется самая простая логика: фильтры типа Equals или Contains; и всё. И конечно, нет никакого "упорядочивания элементов autocompletion-списка по убыванию их релевантности введённому тексту".
В своей более ранней статье (http://www.codeproject.com/Articles/638280/An-algorithm-of-phrases-similarity-calculation-and) я предложил "более умный" алгоритм, вычисляющий "степень схожести" между введённым в поле текстом и элементом autocompletion-списка; после чего упорядочивает элементы autocompletion-списка по убыванию этой "степени схожести".
В новой статье (http://www.codeproject.com/Articles/682716/An-autocompletion-algorithm-with-use-of-popularity) я добавляю к предыдущему алгоритму ещё и учёт "популярности запросов". Эта "популярность" становится (наряду с упомянутой "степенью схожести") ещё одним фактором, на основании которых вычисляется степень релевантности элементов autocompletion-списка введённому тексту.
Я позиционирую свой алгоритм как нечто подходящее для использования в GUI-приложении по примерно такому сценарию:
Для некоего поля (типичный кандидат – поля Search-форм) запомним, скажем, 500 последних введённых туда значений;
Когда пользователь начинает набирать нечто в поле – применяем мой алгоритм, получаем autocompletion-список
Если список вышел слишком большим для отображения ВСЕГО его в GUI (скажем, больше 30-и значений) – оставляем только первые N элементов;
Отображаем этот список под полем
Tags: autocompletion
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 0 comments