Python :: Aufgabe #136 :: Lösung #1
2 Lösungen

#136
Wörterzählen in Textdateien
Anfänger - Python
von hollst
- 23.12.2016 um 09:50 Uhr
Man schreibe ein Programm, das bei einer beliebigen Textdatei (ASCII)
a) alle Wörter und
b) alle unterschiedlichen Wörter der Längen 1, 2, 3 ... zählt, wobei zwischen Groß- und Kleinbuchstaben nicht zu unterscheiden sei.
Als Wörter-Trennzeichen sind zu verwenden:
a) alle Sonderzeichen (' ', '.', ',', tab ...) sowie Zahlen (0, 1 ... 9) und
b) alle Chars, die nicht zum Aphabet (abc...xyzäöü) gehören (damit wäre a) bereits automatisch erfüllt).
Anmerkungen:
a) Es gibt auch im Deutschen Wörter der Länge 1, z. B. in "a tempo" oder " a priori" oder bei Abkürzungen ("z. B.").
b) Als Beispieltext kann von hier die komplette Bibelausgabe nach Martin Luther 1912 als ASCII-Datei heruntergeladen und verwendet werden (ist mit 4 MB zu lang als Anhang hier, selbst als *.rar noch ca. 1.2 MB).
Viel Spaß und schöne Weihnachten sowie einen guten Rutsch und Start in 2017.
a) alle Wörter und
b) alle unterschiedlichen Wörter der Längen 1, 2, 3 ... zählt, wobei zwischen Groß- und Kleinbuchstaben nicht zu unterscheiden sei.
Als Wörter-Trennzeichen sind zu verwenden:
a) alle Sonderzeichen (' ', '.', ',', tab ...) sowie Zahlen (0, 1 ... 9) und
b) alle Chars, die nicht zum Aphabet (abc...xyzäöü) gehören (damit wäre a) bereits automatisch erfüllt).
Anmerkungen:
a) Es gibt auch im Deutschen Wörter der Länge 1, z. B. in "a tempo" oder " a priori" oder bei Abkürzungen ("z. B.").
b) Als Beispieltext kann von hier die komplette Bibelausgabe nach Martin Luther 1912 als ASCII-Datei heruntergeladen und verwendet werden (ist mit 4 MB zu lang als Anhang hier, selbst als *.rar noch ca. 1.2 MB).
Viel Spaß und schöne Weihnachten sowie einen guten Rutsch und Start in 2017.
#1

von ZRX88 (2770 Punkte)
- 29.12.2016 um 20:12 Uhr
Programm erfüllt nur Wortertrennung a. Für ideen wie man es ohne die reg-expression macht wäre ich dankbar.
Python-Code

# count words in textfiles\ import os import re from collections import Counter path = 'C:\Users\Robert\Desktop' file_name = 'Luther.txt' os.chdir(path) word_list = [] with open(file_name,'rb') as f: for row in f: for word in re.split('(,|\.|-|:|\r|\n|\t|\?|\!| |[0-9]{1})',str(row.lower())): if re.search('[a-z]',word): word_list.append(word) List = Counter(word_list) word_length =[] for elems in List.keys(): word_length.append(len(elems)) print(List) print(Counter(word_length))
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1