Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Autocomplete по словарю с учетом частоты 
:(
    Опции темы
WhoogMan
Дата 18.6.2015, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 22.9.2012

Репутация: нет
Всего: нет



Как реализовать autocomplete для набираемого слова в текстовом редакторе (при вводе первых букв показывать несколько возможных завершений слова).
Сортировка выдаваемых результатов должна быть с учетом частоты появления слова (в словаре для каждого слова задана частота использования)
Читал про trie-деревья, но как добавить в него учет частоты без получения всех возможных вариантов, а только первых k слов.
Нашел статью "An O(k log n) algorithm for prefix based ranked
autocomplete" - http://dhruvbird.com/autocomplete.pdf
но сложно для меня в переводе
они используют дерево отрезков
Подскажете какие структуры лучше использовать и как их использовать?
PM MAIL   Вверх
ksnk
Дата 18.6.2015, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 7
Всего: 386



А сколько слов? 
Слова записываются в строку таблицы с полями -  первая буква, две первых буквы, три первых буквы, слово, частота. 1-2-3 буквы - ключевые поля. Если прилетело меньше 4 букв - выборка по ключу с сортировкой по частоте. Если больше - выборка по ключу из 3-х букв и дальше - LIKE по тестовому полю. Если слов не "очень много", то получается приемлемо по скорости. 


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Akina
Дата 19.6.2015, 08:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Цитата(WhoogMan @  18.6.2015,  20:20 Найти цитируемый пост)
в словаре для каждого слова задана частота использования

А словарь - на соседнем столе лежит... трёхтомный... или как?

Цитата(WhoogMan @  18.6.2015,  20:20 Найти цитируемый пост)
какие структуры лучше использовать 

Сортированный связный список.

Цитата(WhoogMan @  18.6.2015,  20:20 Найти цитируемый пост)
как их использовать?

Бинарный поиск.

Добавлено через 1 минуту и 39 секунд
Цитата(ksnk @  18.6.2015,  21:56 Найти цитируемый пост)
1-2-3 буквы - ключевые поля.
Наверное, всё-таки просто индексированные?



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ksnk
Дата 19.6.2015, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 7
Всего: 386



Цитата(Akina @  19.6.2015,  08:48 Найти цитируемый пост)
Наверное, всё-таки просто индексированные?

Ну да, индексы.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

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


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0817 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.