Czyszczenie tekstu

Inżynieria cech dla NLP w Pythonie

Rounak Banik

Data Scientist

Techniki czyszczenia tekstu

  • Zbędne białe znaki i sekwencje ucieczki
  • Znaki interpunkcyjne
  • Znaki specjalne (cyfry, emoji itp.)
  • Stopwords
Inżynieria cech dla NLP w Pythonie

isalpha()

"Dog".isalpha()
True
"3dogs".isalpha()
False
"12347".isalpha()
False
"!".isalpha()
False
"❤".isalpha()
False
Inżynieria cech dla NLP w Pythonie

Ważna uwaga

  • Skróty: U.S.A, U.K itp.
  • Nazwy własne: word2vec i xto10x.
  • Należy napisać własną funkcję (z użyciem wyrażeń regularnych) dla bardziej złożonych przypadków.
Inżynieria cech dla NLP w Pythonie

Usuwanie znaków niealfabetycznych

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]
Inżynieria cech dla NLP w Pythonie

Usuwanie znaków niealfabetycznych

...
...
# 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'
Inżynieria cech dla NLP w Pythonie

Stopwords

  • Słowa występujące bardzo często
  • Np. rodzajniki, czasowniki posiłkowe, zaimki itp.
Inżynieria cech dla NLP w Pythonie

Usuwanie stopwords za 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. ❤ """
Inżynieria cech dla NLP w Pythonie

Usuwanie stopwords za 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'
Inżynieria cech dla NLP w Pythonie

Inne techniki przetwarzania tekstu

  • Usuwanie tagów HTML/XML
  • Zastępowanie znaków akcentowanych (np. é)
  • Korekta błędów ortograficznych
Inżynieria cech dla NLP w Pythonie

Ważna uwaga

Należy stosować wyłącznie te techniki przetwarzania tekstu, które są istotne dla danego zastosowania.

Inżynieria cech dla NLP w Pythonie

Czas na ćwiczenia!

Inżynieria cech dla NLP w Pythonie

Preparing Video For Download...