Алгоритм решения: как найти 100 самых часто встречаемых слов в файле
Не могу придумать алгоритм для своего кода. Помогите пожалуйста. У нас есть два файла. Первый с текстом (Длина текста N слов). Во втором - "синонимы слов". То есть в одном ряду будет написано слово начальной формы,а после- его склонения или синонимы. Например:
- компьютер, компьютером, компьютеру, компьютера, компьютеры
- дом, дома, домом, дому,домашний
Длина этого файла M слов.
Файлы очень большой размерности. Мне нужно найти 100 самых часто встречаемых слов в первом файле. Если допустим мы нашли слово компьютер и компьютером, то это посчитается за одно слово (так как во втором файле они стоят в одном ряду, но слово компьютер уже появилось два раза) и на выход программы выйдет слово: начальная форма 100 слов, которые встречаются в тексте больше всего.
Помогите найти самый быстрый алгоритм решения (код не нужен, лишь алгоритм). И какая сложность по времени будет исходя из N, M. Заранее благодарю)
Ответы (1 шт):
Прочитайте второй файл, организовав словарь, в котором ключи - словоформы (включая начальную), а значения - начальная форма ({дом:дом; домашний:дом etc})
Теперь прочитайте первый файл, для каждого его слова находя соответствующее значение в словаре, и увеличивая для этого значения счётчик в Counter.
А у Counter есть most_common