У меня огромный текстовый файл (больше, чем доступная оперативная память). Мне нужно подсчитать частоту всех слов и вывести слово и частоту в новый файл. Результат должен быть отсортирован в порядке убывания частоты.
Мой подход:
- Сортировка данного файла - внешний вид
- Считайте частоту каждого слова последовательно, сохраните счет в другом файле (вместе со словом)
- Сортировка выходного файла по частоте - внешняя сортировка.
Я хочу знать, есть ли лучшие подходы к этому. Я слышал о хэш-таблицах на основе дисков? или B +, но никогда не пробовали их раньше.
Примечание. Я видел похожие вопросы, заданные в SO, но ни один из них не должен решать проблему с данными, большими, чем память.
Изменить. Основываясь на комментариях, согласился, что словарь на практике должен вписываться в память современных компьютеров. Но давайте возьмем гипотетический словарь слов, который достаточно огромен, чтобы не вписываться в память.