Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Словарь пар "слово-позиция" / 7 сообщений из 7, страница 1 из 1
18.11.2012, 16:40
    #38043197
Spokane
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Словарь пар "слово-позиция"
Добрый день!
Уважаемые, стоит задача составить базу данных для всех слов текстового файла с 2мя полями:
- слово файла
- его позиция в файле
Требуется это для дальнейшего быстрого поиска любого слова в файле. Вопрос: кто-нибудь знает хороший алгоритм?)
...
Рейтинг: 0 / 0
18.11.2012, 18:33
    #38043283
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Словарь пар "слово-позиция"
SpokaneВопрос: кто-нибудь знает хороший алгоритм?)
Только последовательный просмотр.

Можно оптимизировать так, например:

- ключ: слово
- значение: список позиций (№ строки, позиция слова в строке)
...
Рейтинг: 0 / 0
18.11.2012, 22:23
    #38043432
std::multimap
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Словарь пар "слово-позиция"
SpokaneДобрый день!
Уважаемые, стоит задача составить базу данных для всех слов текстового файла с 2мя полями:
- слово файла
- его позиция в файле
Требуется это для дальнейшего быстрого поиска любого слова в файле. Вопрос: кто-нибудь знает хороший алгоритм?)
std::multimap<std::string, unsigned int>
...
Рейтинг: 0 / 0
19.11.2012, 02:58
    #38043551
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Словарь пар "слово-позиция"
UsmanSpokaneВопрос: кто-нибудь знает хороший алгоритм?)
Только последовательный просмотр.Ну зачем же? Дерево лучше. А хеш еще лучше. Последовательно проходим по файлу и помещаем каждое слово+позиция либо в дерево, либо просто позицию слова в хеш таблицу. В первом случае получишь O(log n) на последующем поиске, во втором O(1). Всяко лучше чем O(n).
...
Рейтинг: 0 / 0
19.11.2012, 21:20
    #38044645
Spokane
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Словарь пар "слово-позиция"
Так уж случилось, что производительность последовательного просмотра оказалась вполне приемлемой. Тем не менее, учту предложенные варианты, спасибо всем откликнувшимся!
...
Рейтинг: 0 / 0
19.11.2012, 21:28
    #38044651
Spokane
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Словарь пар "слово-позиция"
Кладу после просмотра пары "слово-позиция" в структуру похожую на словарь
...
Рейтинг: 0 / 0
20.11.2012, 00:02
    #38044760
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Словарь пар "слово-позиция"
Клади, клади. Но не забывай что в более полной постановке,
задача полнотекстового поиска звучит по другому. А именно
- найти множество файлов наиболее релевантных к поисковому
выражению. Для твоей постановки хватит и обычного последовательного
поска. Городить сверх-быстрые алгоритмы нужно только тогда
когда ты будешь работать с этим (!) одним файлом с огромной
скоростью отбивая тысячи транзакций поска в секунду.
Есть у тебя такая постановка? Я думаю - нет.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Словарь пар "слово-позиция" / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]