Seite 1 von 1

Anfängerfragen zum entfernen von stopwords, Satzzeichen usw

Verfasst: Freitag 3. Oktober 2014, 12:28
von Uhrenmacher
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. :)

Re: Anfängerfragen zum entfernen von stopwords, Satzzeichen

Verfasst: Freitag 3. Oktober 2014, 14:16
von Xfd7887a
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

Re: Anfängerfragen zum entfernen von stopwords, Satzzeichen

Verfasst: Freitag 3. Oktober 2014, 18:21
von BlackJack
@Uhrenmacher: Wo kommt denn `stopwords.words()` her? Aus der Standardbibliothek nicht. Und wenn man da 'english' als Argument übergeben kann…