Tekst opschonen

Feature Engineering voor NLP in Python

Rounak Banik

Data Scientist

Technieken voor tekstopschoning

  • Onnodige spaties en escape-sequenties
  • Interpunctie
  • Speciale tekens (cijfers, emoji’s, etc.)
  • Stopwoorden
Feature Engineering voor NLP in Python

isalpha()

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

Let op

  • Afkortingen: U.S.A, U.K, etc.
  • Eigennamen: word2vec en xto10x.
  • Schrijf je eigen functie (met regex) voor complexere gevallen.
Feature Engineering voor NLP in Python

Niet-alfabetische tekens verwijderen

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 voor NLP in Python

Niet-alfabetische tekens verwijderen

...
...
# 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 voor NLP in Python

Stopwoorden

  • Woorden die heel vaak voorkomen
  • Bijv. lidwoorden, koppelwerkwoorden, voornaamwoorden, etc.
Feature Engineering voor NLP in Python

Stopwoorden verwijderen met spaCy

# 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 voor NLP in Python

Stopwoorden verwijderen met spaCy

...
...
# 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 voor NLP in Python

Overige tekstvoorbewerking

  • HTML/XML-tags verwijderen
  • Geaccentueerde tekens vervangen (zoals é)
  • Spelfouten corrigeren
Feature Engineering voor NLP in Python

Let op

Gebruik alleen de technieken die relevant zijn voor jouw toepassing.

Feature Engineering voor NLP in Python

Laten we oefenen!

Feature Engineering voor NLP in Python

Preparing Video For Download...