@antojka91

Как найти самое часто встречаемое слово?

В БД есть куча строк с текстом. Нужно найти слово, которое чаще всего встречается во всех этих строках. Как это лучше реализовать?
  • Вопрос задан
  • 2815 просмотров
Пригласить эксперта
Ответы на вопрос 1
Принципиально я вижу тут несколько вариантов.

Если слов умеренное количество можно использовать обычный hash map.
То есть ключём будет слово и значением будет количество. Сложили все слова в хешмап, потом выбрали максимальное значение. Это решение простое в написании, но при большом количестве слов может быть не эффективным, в первую очередь по памяти.

Если hash map не справляется то использовать структуру данных бор (префиксное дерево), с подсчётом количества слов:
informatics.mccme.ru/mod/book/view.php?id=435
habrahabr.ru/post/111874

Если бор тоже не влезает по памяти, то можно использовать сжатый бор:
habrahabr.ru/post/151421

Ну и если слов вдруг совсем много:
mapreduce
habrahabr.ru/post/103467
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы