#!/usr/bin/env python3 # Spočítá frekvence k-gramů v souboru soubor.txt # (uvažujeme i k-gramy jdoucí přes hranice řádků). from collections import defaultdict k=3 text = "" for radek in open('soubor.txt'): text += radek[:-1] + ' ' kgramy=defaultdict(int) for i in range(len(text)-k): kgramy[text[i:i+k]] += 1 # Vytvoříme seznam dvojic (frekvence, k-gram), vypíšeme seřazeně vystup = [ (f, g) for g, f in kgramy.items() ] for f, g in reversed(sorted(vystup)): print(f, g)