Word zählt in Python mit regulärem Ausdruck

Was ist der richtige Weg, um englische Wörter in einem Dokument mit regulärem Ausdruck zu zählen?

Ich habe versucht mit:

words=re.findall('\w+', open('text.txt').read().lower()) len(words) 

Aber es scheint mir fehlen einige Worte (vergleicht die Wortzahl in gedit). Mache ich das richtig?

Danke vielmals!

2 Solutions collect form web for “Word zählt in Python mit regulärem Ausdruck”

Mit \ w + wird nicht korrekt Wörter mit Apostrophen oder Bindestrichen zählen, zB "kann nicht" wird als 2 Wörter gezählt. Es wird auch Zahlen zählen (Zeichenketten); "12,345" und "6,7" werden jeweils als 2 Wörter ("12" und "345", "6" und "7") zählen.

Das scheint wie erwartet zu funktionieren

 >>> import re >>> words=re.findall('\w+', open('/usr/share/dict/words').read().lower()) >>> len(words) 234936 >>> bash-3.2$ wc /usr/share/dict/words 234936 234936 2486813 /usr/share/dict/words 

Warum stellst du deine Worte? Was hat das mit der Zählung zu tun?

Ich würde vorschlagen, dass das Folgende effizienter wäre:

 words=re.findall(r'\w+', open('/usr/share/dict/words').read()) 
Python ist die beste Programmiersprache der Welt.