Алгоритмы автозаполнения, документы, стратегии и т.д.
Мне интересно, есть ли у кого-то хорошие ресурсы для чтения или кода для эксперимента для "автозаполнения"
Я хотел бы знать, что такое теория за автозавершением, где начинать то, что является обычными ошибками и т.д.
Я нашел увлекательным, как продукты, такие как Enso, Launchy, Google chrome и даже tcsh, выполняют свою автоматическую завершенность, я начал свое собственное я только ради любопытства в качестве примера кода, и я пришел к выводу, что это должно быть поле, широко изученное ранее.
Я был бы признателен, если кто-то поделится хорошим техническим ресурсом о том, как это реализовать.
Спасибо заранее.
Ответы
Ответ 1
Ответ 2
Посмотрите этот блог на реализацию автозаполнения с использованием GWT:
http://jroller.com/glongman/entry/gwt_autocompleter
Но я бы порекомендовал вам сначала начать с чего-то очень простого самостоятельно, чтобы понять, как выполняется реализация. Я бы начал с Trie, возможно, даже полностью сохранен на клиенте, а затем продвигался к оптимизации запросов сервера, если вы считаете, что они необходимы.
Ответ 3
Автозаполнение обычно выполняется одним из следующих способов:
- Деревья. Индексируя текст с возможностью поиска в древовидной структуре (дерево префиксов, дерево суффикса, dawg и т.д.), Можно выполнить очень быстрый поиск за счет хранения памяти. Обход дерева можно адаптировать для приближенного сопоставления.
- Разделение папок. Разделив текст на токены (ngrams), можно выполнить поиск экземпляров шаблонов с помощью простой схемы хэширования.
- Фильтрация. Найдите набор потенциальных совпадений, а затем примените последовательный алгоритм для проверки каждого кандидата.
Несколько работ по теме:
- Bořivoj Melichar. Приближенное соответствие строк конечным автоматам;
- Гонсало Наварро. Ориентированный тур на приближенное соответствие строк;
- Леонид Бойцов. Методы индексирования для приближенного поиска словаря: сравнительный анализ;
- Мариос Хаджилефтериу и Дивеш Шривастава. Приблизительная обработка строк;
- Суражит Чаудхури и Рагхав Каушик. Расширение автозаполнения для устранения ошибок;
Посмотрите completely, библиотеку автозаполнения Java.