Entfernen verschiedener Symbole aus einem TextPython

Python-Programme
Anonymous
 Entfernen verschiedener Symbole aus einem Text

Post by Anonymous »

Ich versuche, einige Texte zu bereinigen, die sich stark voneinander unterscheiden. Ich möchte die Überschriften, Anführungszeichen, Abkürzungen, Sonderzeichen und Punkte entfernen, die eigentlich keine Sätze beenden.
Beispieleingabe:

Code: Select all

This is a headline

And inside the text there are 'abbreviations', e.g. "bzw." in German or some German dates, like 2. Dezember 2017. Sometimes there are even enumerations, that I might just eliminate completely.
• they have
◦ different bullet points
- or even equations and
Sometimes there are special symbols. ✓
Beispielausgabe:

Code: Select all

And inside the text there are abbreviations, for example beziehungsweise in German or some German dates, like 2 Dezember 2017. Sometimes there are even enumerations, that I might just eliminate completely. Sometimes there are special symbols.
Was ich getan habe:

Code: Select all

with open(r'C:\\Users\me\\Desktop\\ex.txt', 'r', encoding="utf8") as infile:
data = infile.read()
data = data.replace("'", '')
data = data.replace("e.g.", 'for example')
#and so on
with open(r'C:\\Users\me\\Desktop\\ex.txt', 'w', encoding="utf8") as outfile:
outfile.write(data)
Meine Probleme (obwohl Nummer 2 das Wichtigste ist):
  • Ich möchte nur eine Zeichenfolge mit dieser Eingabe, aber sie bricht aufgrund der Anführungszeichen offensichtlich ab. Gibt es eine andere Möglichkeit, dies zu tun, als mit Dateien zu arbeiten, wie ich es getan habe? In Wirklichkeit kopiere ich einen Text und möchte, dass eine App ihn bereinigt.
  • Der Code scheint sehr ineffizient zu sein, da ich ihn nur manuell bereinige Schreiben Sie die Dinge auf, an die ich mich erinnern kann, sie zu löschen/zu bereinigen, aber ich kenne nicht alle Abkürzungen auswendig. Wie bereinige ich es sozusagen auf einmal?
  • Gibt es eine Möglichkeit, die Überschrift und Aufzählung sowie den Punkt zu entfernen? das in diesem deutschen Datum erscheint? Mein Code macht das nicht.
Bearbeiten: Mir sind gerade Dinge wie text = re.sub(r" eingefallen. (@\[A-Za-z0-9]+)|([^0-9A-Za-z \t])|(\w+:\/\/\S+)|^rt|http.+?" , "", text), aber Regex ist für riesig ineffizient Texte, nicht wahr?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post