Teknik normalisasi teks

Natural Language Processing (NLP) in Python

Fouad Trad

Machine Learning Engineer

Normalisasi teks

  • Normalisasi menyatukan kata ke format standar
  • Berguna untuk klasifikasi teks, pencarian, analisis sentimen
  • Teknik yang dibahas:
    • Lowercasing
    • Stemming
    • Lemmatization

Gambar tiga orang mengungkapkan bahwa mereka suka menonton film dengan penyutradaraan bagus, dengan tiga cara: "I enjoy watching movies with great direction!", "I enjoyed watching movies that are well-directed.", "Movies with excellent direction are something I enjoy."

Natural Language Processing (NLP) in Python

Lowercasing

  • Tanpa normalisasi, kata-kata ini diperlakukan sebagai token terpisah
  • Ini menyesatkan model dan membengkakkan ukuran kosakata
text  = """Data scientists and data 
engineers need DATA"""
lower_text = text.lower()

print(lower_text)
data scientists and data 
engineers need data

Gambar seseorang bingung antara 'data', 'Data', dan 'DATA.'

Natural Language Processing (NLP) in Python

Penerapan lowercasing

Berguna untuk

Tugas yang bergantung pada analisis kata kunci

Gambar seseorang mencari kata kunci dalam teks.

Natural Language Processing (NLP) in Python

Penerapan lowercasing

Berguna untuk

Tugas yang bergantung pada analisis kata kunci

Gambar seseorang mencari kata kunci dalam teks.

Tidak berguna untuk

Tugas yang perlu membedakan makna berdasarkan huruf besar-kecil

Gambar sekelompok orang untuk mewakili "us" dan bendera Amerika untuk mewakili "US."

Natural Language Processing (NLP) in Python

Stemming

  • Mengurangi kata ke bentuk akar dengan memotong akhiran
    • running → run
    • reading → read
  • Berguna untuk mengelompokkan variasi kata serupa
  • Dapat menghasilkan kata tidak baku
    • organization → organizat

Logo stemming

Natural Language Processing (NLP) in Python

Stemming dalam kode

from nltk.stem import PorterStemmer

stemmer = PorterStemmer()
tokens = ['running', 'bats', 'organizations', 'reading']
stemmed = [stemmer.stem(word) for word in tokens]
print(stemmed)
['run', 'bat', 'organizat', 'read']
Natural Language Processing (NLP) in Python

Lemmatization

  • Mengubah kata ke bentuk dasar
  • Hasil dijamin kata valid
    • organizations → organization
  • Berguna saat ketepatan gramatikal penting
  • Lebih lambat dari stemming tetapi lebih presisi

Logo lemmatization

Natural Language Processing (NLP) in Python

Lemmatization dalam kode

from nltk.stem import WordNetLemmatizer

nltk.download('wordnet')
lemmatizer = WordNetLemmatizer()
tokens = ['running', 'bats', 'organizations', 'reading']
lemmatized = [lemmatizer.lemmatize(word) for word in tokens]
print(lemmatized)
['running', 'bat', 'organization', 'reading']
Natural Language Processing (NLP) in Python

Stemming

  • Lebih cepat
  • Dapat menghasilkan kata di luar kamus
  • Gunakan saat butuh kecepatan

Gambar seseorang menebang pohon dengan gergaji mesin.

Lemmatization

  • Lebih lambat
  • Lebih akurat
  • Gunakan saat butuh ketepatan gramatikal

Gambar seseorang memangkas pohon dengan hati-hati agar strukturnya tetap terjaga.

Natural Language Processing (NLP) in Python

Ayo berlatih!

Natural Language Processing (NLP) in Python

Preparing Video For Download...