In Python muss ich fast alle Satzzeichen aus einer Liste entfernen, aber Punkte und Kommas speichern. Soll ich eine Funktion erstellen, um dies oder eine Variable zu machen? Grundsätzlich möchte ich alle Symbole außer Buchstaben (ich habe bereits Großbuchstaben in Kleinbuchstaben konvertiert) und Punkte und Kommas (und vielleicht Apostrophe) löschen.Entfernen von Satzzeichen/Symbolen aus einer Liste mit Python mit Ausnahme von Punkten, Kommas
#Clean tokens up (remove symbols except ',' and '.')
def depunctuate()
clean_tokens = []
for i in lc_tokens:
if (i not in [a-z.,])
...
Dies entfernt nicht nur ungewollte (Satzzeichen) Symbole, sondern auch Leerzeichen und Nicht-ASCII-Buchstaben, wodurch Wörter wie "naiv" in "Kirchenschiff" verwandelt werden. – lenz
Ja, das erlaubt nur ASCII-Kleinbuchstaben plus die wenigen erwähnten Interpunktionszeichen. Das war meine Interpretation der Anforderungen, aber es hängt stark davon ab, was der Fragesteller meinte, wenn er das Wort "Buchstaben" benutzte. Die andere Antwort hat ein ähnliches Problem; Es entfernt Dinge in 'string.punctuation', aber es ist unklar, ob das alle" Symbole "abdeckt, die der ursprüngliche Fragesteller entfernen möchte. – smarx
Sie haben Recht, "string.punctuation" fehlt auch eine Menge von Interpunktionszeichen, z. schicke Anführungszeichen. Trotzdem denke ich, dass "Buchstaben" und "Interpunktionszeichen" ziemlich gut definierte Kategorien sind (und eigentlich ziemlich einfach über die Unicode-Zeicheneigenschaften zu überprüfen sind). – lenz