Textbereinigung

Feature Engineering für NLP in Python

Rounak Banik

Data Scientist

Techniken zur Textbereinigung

  • Überflüssige Leerzeichen und Escape-Sequenzen
  • Satzzeichen
  • Sonderzeichen (Zahlen, Emojis usw.)
  • Stopwörter
Feature Engineering für NLP in Python

isalpha()

"Dog".isalpha()
True
"3dogs".isalpha()
False
"12347".isalpha()
False
"!".isalpha()
False
"❤".isalpha()
False
Feature Engineering für NLP in Python

Ein Wort der Vorsicht

  • Abkürzungen: U.S.A, U.K usw.
  • Eigennamen: word2vec und xto10x.
  • Für nuanciertere Fälle: eigene Funktion mit Regex schreiben.
Feature Engineering für NLP in Python

Nichtalphabetische Zeichen entfernen

string = """
OMG!!!! This is like    the best thing ever \t\n. 
Wow, such an amazing song! I'm hooked. Top 5 definitely. ❤
"""

import spacy # Generate list of tokens nlp = spacy.load('en_core_web_sm') doc = nlp(string) lemmas = [token.lemma_ for token in doc]
Feature Engineering für NLP in Python

Nichtalphabetische Zeichen entfernen

...
...
# Remove tokens that are not alphabetic
a_lemmas = [lemma for lemma in lemmas 
            if lemma.isalpha() or lemma == '-PRON-']

# Print string after text cleaning print(' '.join(a_lemmas))
'omg this be like the good thing ever wow such an amazing song -PRON- be hooked top definitely'
Feature Engineering für NLP in Python

Stopwörter

  • Wörter, die extrem häufig vorkommen
  • Z. B. Artikel, Formen von „to be", Pronomen usw.
Feature Engineering für NLP in Python

Stopwörter mit spaCy entfernen

# Get list of stopwords
stopwords = spacy.lang.en.stop_words.STOP_WORDS

string = """ OMG!!!! This is like the best thing ever \t\n. Wow, such an amazing song! I'm hooked. Top 5 definitely. ❤ """
Feature Engineering für NLP in Python

Stopwörter mit spaCy entfernen

...
...
# Remove stopwords and non-alphabetic tokens
a_lemmas = [lemma for lemma in lemmas 
            if lemma.isalpha() and lemma not in stopwords]
# Print string after text cleaning
print(' '.join(a_lemmas))
'omg like good thing wow amazing song hooked definitely'
Feature Engineering für NLP in Python

Weitere Textvorverarbeitung

  • HTML/XML-Tags entfernen
  • Zeichen mit Akzenten ersetzen (z. B. é)
  • Rechtschreibfehler korrigieren
Feature Engineering für NLP in Python

Ein Wort der Vorsicht

Verwende nur die Textvorverarbeitung, die für deine Anwendung nötig ist.

Feature Engineering für NLP in Python

Lass uns üben!

Feature Engineering für NLP in Python

Preparing Video For Download...