Làm sạch văn bản

Khai thác đặc trưng cho NLP bằng Python

Rounak Banik

Data Scientist

Kỹ thuật làm sạch văn bản

  • Khoảng trắng thừa và ký tự thoát
  • Dấu câu
  • Ký tự đặc biệt (số, emoji, v.v.)
  • Từ dừng
Khai thác đặc trưng cho NLP bằng Python

isalpha()

"Dog".isalpha()
True
"3dogs".isalpha()
False
"12347".isalpha()
False
"!".isalpha()
False
"❤".isalpha()
False
Khai thác đặc trưng cho NLP bằng Python

Lưu ý

  • Viết tắt: U.S.A, U.K, v.v.
  • Danh từ riêng: word2vecxto10x.
  • Tự viết hàm tùy chỉnh (dùng regex) cho các trường hợp tinh tế hơn.
Khai thác đặc trưng cho NLP bằng Python

Loại ký tự không thuộc bảng chữ cái

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]
Khai thác đặc trưng cho NLP bằng Python

Loại ký tự không thuộc bảng chữ cái

...
...
# 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'
Khai thác đặc trưng cho NLP bằng Python

Từ dừng (stopwords)

  • Từ xuất hiện cực kỳ thường xuyên
  • Ví dụ: mạo từ, động từ “to be”, đại từ, v.v.
Khai thác đặc trưng cho NLP bằng Python

Loại từ dừng với 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. ❤ """
Khai thác đặc trưng cho NLP bằng Python

Loại từ dừng với 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'
Khai thác đặc trưng cho NLP bằng Python

Kỹ thuật tiền xử lý khác

  • Loại thẻ HTML/XML
  • Thay ký tự có dấu (như é)
  • Sửa lỗi chính tả
Khai thác đặc trưng cho NLP bằng Python

Lưu ý

Chỉ dùng các kỹ thuật tiền xử lý phù hợp với bài toán của bạn.

Khai thác đặc trưng cho NLP bằng Python

Ayo berlatih!

Khai thác đặc trưng cho NLP bằng Python

Preparing Video For Download...