Hi,
ich hab gerade in einem Text die Wörter alle in Python zählen lassen, dabei wurden aber auch Nummern mitgezählt. Nun verstehe ich nicht, wie ich Python sagen soll, dass er die Nummern nicht berücksichtigen soll beim Wörter zählen.
Weiß jemand mit welchem Befehl ich das machen kann?
Danke im Voraus.
Wörter in einem Text zählen OHNE Nummern
Zeig doch mal, was du bisher versucht hast, dann kann man dir besser helfen.
Python kann nur das finden, was du als 'Wort' definierst. Da gibt es unterschiedliche Möglichkeiten, je nach Anspruch und Kenntnisstand. In der Praxis sieht man, dass das oft mit regulären Ausdrücken gelöst wird; Python hat für reguläre Ausdrücke ein Modul in der Standardbibliothek. Eine "theoretisch-saubere" Lösung wäre die Verwendung einer Tokenizer-Bibliothek für die jeweilige Textsprache; das ist aber vielleicht etwas Overkill für viele Standardaufgaben.
Python kann nur das finden, was du als 'Wort' definierst. Da gibt es unterschiedliche Möglichkeiten, je nach Anspruch und Kenntnisstand. In der Praxis sieht man, dass das oft mit regulären Ausdrücken gelöst wird; Python hat für reguläre Ausdrücke ein Modul in der Standardbibliothek. Eine "theoretisch-saubere" Lösung wäre die Verwendung einer Tokenizer-Bibliothek für die jeweilige Textsprache; das ist aber vielleicht etwas Overkill für viele Standardaufgaben.
Mein bisheriger Code:
# Autobiography of a Yogi
AutobiographyofaYogi = open("ayogi.txt", "r")
for line in AutobiographyofaYogi.readlines():
print(line)
AutobiographyofaYogi.close()
AutobiographyofaYogi = "ayogi.txt"
numwords = 0
numlines = 0
with open("ayogi.txt", "r") as AutobiographyofaYogi:
for line in AutobiographyofaYogi:
wordlist = line.split()
numlines += 1
numwords += len(wordlist)
print ("Anzahl Wörter: ", numwords)
print ("Anzahl Zeilen: ", numlines)
# Autobiography of a Yogi
AutobiographyofaYogi = open("ayogi.txt", "r")
for line in AutobiographyofaYogi.readlines():
print(line)
AutobiographyofaYogi.close()
AutobiographyofaYogi = "ayogi.txt"
numwords = 0
numlines = 0
with open("ayogi.txt", "r") as AutobiographyofaYogi:
for line in AutobiographyofaYogi:
wordlist = line.split()
numlines += 1
numwords += len(wordlist)
print ("Anzahl Wörter: ", numwords)
print ("Anzahl Zeilen: ", numlines)
- __blackjack__
- User
- Beiträge: 13929
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Princess: Du kennst anscheinend die ``with``-Anweisung, dann solltest Du die auch immer einsetzen wenn es geht.
Wenn Du ”Worte” so definierst in dem Du einfach zählst wie viele Elemente bei einem `split()` der Zeile entstehen, dann zählst Du halt auch Zahlen, also Folgen Ziffern mit, die durch „whitespace“-Zeichen von anderen Zeichenfolgen in der Zeile getrennt sind. Willst Du das nicht, dann musst Du diese Folgen die nur aus Ziffern bestehen herausfiltern. Erkennen kann man die beispielsweise mit der `isdigit()`-Methode auf Zeichenketten.
Wenn Du ”Worte” so definierst in dem Du einfach zählst wie viele Elemente bei einem `split()` der Zeile entstehen, dann zählst Du halt auch Zahlen, also Folgen Ziffern mit, die durch „whitespace“-Zeichen von anderen Zeichenfolgen in der Zeile getrennt sind. Willst Du das nicht, dann musst Du diese Folgen die nur aus Ziffern bestehen herausfiltern. Erkennen kann man die beispielsweise mit der `isdigit()`-Methode auf Zeichenketten.
Code: Alles auswählen
In [65]: "abc".isdigit()
Out[65]: False
In [66]: "abc23".isdigit()
Out[66]: False
In [67]: "42".isdigit()
Out[67]: True
“Java is a DSL to transform big Xml documents into long exception stack traces.”
— Scott Bellware
— Scott Bellware