Darf's auch Python sein?
Code:
hist={}
import re
# Wörter
#searchre = re.compile(r"\w+",re.LOCALE)
#fuer englische Texte besser:
#searchre = re.compile(r"[-a-zA-Z']+")
# Buchstabenpaare
#searchre = re.compile(r"\w(?=\w)",re.LOCALE)
# Buchstabentriplets
searchre = re.compile(r"\w(?=\w\w)",re.LOCALE)
for line in open("textfile"):
for x in searchre.finditer(line):
# +0 bei Wörtern (kein Lookahead)
# +1 bei Paaren (Lookahead von einem Zeichen)
# +2 bei Tripeln (Lookahead von zwei Zeichen)
match = line[x.start(0):x.end(0)+2].lower()
# Zählen
try:
hist[match] += 1
except KeyError:
hist[match] = 1
# Dictionary als Liste von (key,value)-Paaren
res = hist.items()
# sortieren, allerdings nach dem zweiten Eintrag und nicht nach dem ersten
res.sort(lambda a,b:-cmp(a[1],b[1]))
# Ausgabe
for x,n in res:
print "%8i %s"%(n,x)
Lesezeichen