Anfängerfragen zum entfernen von stopwords, Satzzeichen usw

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Uhrenmacher
User
Beiträge: 16
Registriert: Freitag 3. Oktober 2014, 12:00

Ich habe ein paar kurze und sehr einfache Fragen (ich bin blutiger Anfänger):

1.
Deutsche Stopwords/Stoppwörter:
Für Englische stopwords nutzt man den Befehl

Code: Alles auswählen

[w for w in TEXT if w not in stopwords.words ("english")]
gibt es das auch für deutsche Stoppwörter oder muss ich mir selbst eine Liste erstellen um diese zu entfernen?

2.
Wie entferne ich am besten die Satzzeichen in einem Text?
Ich habe beim stöbern diesen Code hier gefunden:

Code: Alles auswählen

re.compile(r"[-?!:;.,()0-9\n\r|]")
Hier werden: die Satzzeichen - ? ! : ; . , ( ) entfernt
und die Zahlen 0-9.
Aber was bedeutet \n und \r|?
Kann ich hier nicht auch einfach eine Liste mit Zeichen und allem erstellen, dass ich entfernt haben möchte (Wie bei den stopwords)?

3.
Ich möchte aus einem Text alle kleingeschriebenen Wörter entfernen. Mit dem Code:

Code: Alles auswählen

[' '.join(w for w in a.split() if w.isupper())  for a in TEXT]
entferne ich leider nur die Buchstaben die klein sind und erhalte nur noch eine Liste mit großen Buchstaben. Also bei "Das Haust ist blau" bleibt nur noch "D" und "H" übrig. Wie bekomme ich das hin, dass "Das" und "Haus" übrig bleibt?

Schon einmal vielen Dank für die Hilfe. :)
Xfd7887a
User
Beiträge: 135
Registriert: Montag 23. Juni 2014, 17:11

zu 3.)

Code: Alles auswählen

text = "Das Haus ist blau"
print " ".join([wort for wort in text.split() if not wort.islower()])
# Ausgabe: Das Haus
BlackJack

@Uhrenmacher: Wo kommt denn `stopwords.words()` her? Aus der Standardbibliothek nicht. Und wenn man da 'english' als Argument übergeben kann…
Antworten