Алгоритмы автозаполнения, документы, стратегии и т.д.

Мне интересно, есть ли у кого-то хорошие ресурсы для чтения или кода для эксперимента для "автозаполнения"

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

Я нашел увлекательным, как продукты, такие как Enso, Launchy, Google chrome и даже tcsh, выполняют свою автоматическую завершенность, я начал свое собственное я только ради любопытства в качестве примера кода, и я пришел к выводу, что это должно быть поле, широко изученное ранее.

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

Спасибо заранее.

Ответы

Ответ 1

Ответ 2

Посмотрите этот блог на реализацию автозаполнения с использованием GWT:

http://jroller.com/glongman/entry/gwt_autocompleter

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

Ответ 3

Автозаполнение обычно выполняется одним из следующих способов:

  • Деревья. Индексируя текст с возможностью поиска в древовидной структуре (дерево префиксов, дерево суффикса, dawg и т.д.), Можно выполнить очень быстрый поиск за счет хранения памяти. Обход дерева можно адаптировать для приближенного сопоставления.
  • Разделение папок. Разделив текст на токены (ngrams), можно выполнить поиск экземпляров шаблонов с помощью простой схемы хэширования.
  • Фильтрация. Найдите набор потенциальных совпадений, а затем примените последовательный алгоритм для проверки каждого кандидата.

Несколько работ по теме:

  • Bořivoj Melichar. Приближенное соответствие строк конечным автоматам;
  • Гонсало Наварро. Ориентированный тур на приближенное соответствие строк;
  • Леонид Бойцов. Методы индексирования для приближенного поиска словаря: сравнительный анализ;
  • Мариос Хаджилефтериу и Дивеш Шривастава. Приблизительная обработка строк;
  • Суражит Чаудхури и Рагхав Каушик. Расширение автозаполнения для устранения ошибок;

Посмотрите completely, библиотеку автозаполнения Java.