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!

  • Wortanalyse und Scoring aus einer Datei python
  • Python: Finden Sie das Wort, das am meisten auftaucht?
  • Wie man die gemeinsamen Wörter vor dem bestimmten Symbol extrahiert und ein bestimmtes Wort findet
  • Python - finden Sie das Vorkommen des Wortes in einer Datei
  • Python: Schneide das letzte Wort eines Satzes ab?
  • Wie kann ich diesen zufälligen Textgenerator in Python effizienter machen?
  • Erkennung von wahrscheinlichsten Worten aus Text ohne Leerzeichen / kombinierte Wörter
  • Anzahl der Zwischenräume zwischen jedem Wort
  • 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.