Čištění textu

Feature Engineering for NLP in Python

Rounak Banik

Data Scientist

Techniky čištění textu

  • Nadbytečné mezery a escape sekvence
  • Interpunkce
  • Speciální znaky (čísla, emoji atd.)
  • Stopslova
Feature Engineering for NLP in Python

isalpha()

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

Upozornění

  • Zkratky: U.S.A, U.K atd.
  • Vlastní jména: word2vec a xto10x.
  • Pro složitější případy napište vlastní funkci (s využitím regexu).
Feature Engineering for NLP in Python

Odstranění nealfabetických znaků

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

Odstranění nealfabetických znaků

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

Stopslova

  • Velmi frekventovaná slova
  • Např. členy, slovesa být, zájmena atd.
Feature Engineering for NLP in Python

Odstranění stoplov pomocí 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 for NLP in Python

Odstranění stoplov pomocí 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 for NLP in Python

Další techniky předzpracování textu

  • Odstranění HTML/XML značek
  • Nahrazení znaků s diakritikou (např. é)
  • Oprava pravopisných chyb
Feature Engineering for NLP in Python

Upozornění

Používejte pouze techniky předzpracování textu relevantní pro danou aplikaci.

Feature Engineering for NLP in Python

Lass uns üben!

Feature Engineering for NLP in Python

Preparing Video For Download...