Langkah Dasar NLP (Natural Language Processing) dengan Contoh Nyata!

Langkah-langkah untuk NLP (Natural Language Processing) biasanya mencakup hal-hal berikut:

  1. Pemrosesan awal teks: Langkah ini melibatkan pembersihan dan penyiapan data teks untuk dianalisis. Ini dapat mencakup tugas-tugas seperti tokenisasi, menghilangkan kata-kata berhenti, dan stemming atau lemmatisasi.
  2. Analisis data eksplorasi: Langkah ini melibatkan analisis data teks untuk mendapatkan wawasan dan memahami struktur data. Hal ini dapat mencakup tugas-tugas seperti membuat plot frekuensi kata, mengidentifikasi frasa umum, dan membuat awan kata.
  3. Ekstraksi fitur: Langkah ini melibatkan ekstraksi fitur-fitur penting dari data teks yang dapat digunakan untuk analisis atau pemodelan lebih lanjut. Ini dapat mencakup tugas-tugas seperti membuat representasi sekumpulan kata, membuat matriks TF-IDF, atau mengekstraksi entitas bernama.
  4. Pemodelan: Langkah ini melibatkan pelatihan model pada data teks untuk melakukan tugas tertentu seperti analisis sentimen, terjemahan bahasa, atau peringkasan teks.
  5. Evaluasi: Langkah ini melibatkan evaluasi performa model menggunakan metrik seperti akurasi, presisi, perolehan, dan skor F1.

Contoh Sederhana pipeline NLP menggunakan python

# Import necessary libraries
import nltk
from nltk.tokenize import word_tokenize
from nltk.corpus import stopwords

# Text preprocessing
text = "This is an example of NLP. It includes tokenization, stop word removal, and stemming."
tokens = word_tokenize(text)
stop_words = set(stopwords.words("english"))
filtered_tokens = [token for token in tokens if token not in stop_words]

# Stemming
stemmer = nltk.PorterStemmer()
stemmed_tokens = [stemmer.stem(token) for token in filtered_tokens]

print(stemmed_tokens)

Contoh ini menggunakan pustaka NLTK dengan python untuk melakukan tokenisasi, menghentikan penghapusan kata, dan stemming pada contoh teks. Outputnya adalah daftar token yang berasal.

Berikut adalah penjelasan langkah demi langkah yang lebih mendetail tentang pipeline NLP, termasuk contoh kode:

  1. Pemrosesan awal teks:Langkah ini melibatkan pembersihan dan penyiapan data teks untuk dianalisis. Ini dapat mencakup tugas-tugas seperti tokenisasi, menghilangkan kata-kata berhenti, dan stemming atau lemmatisasi.
import nltk
from nltk.tokenize import word_tokenize

# Tokenization
text = "This is an example of NLP. It includes tokenization."
tokens = word_tokenize(text)
print(tokens)
# Output: ['This', 'is', 'an', 'example', 'of', 'NLP', '.', 'It', 'includes', 'tokenization', '.']

Kode di atas menggunakan fungsi word_tokenize NLTK untuk membuat token teks menjadi daftar kata.

from nltk.corpus import stopwords

# Stop word removal
stop_words = set(stopwords.words("english"))
filtered_tokens = [token for token in tokens if token not in stop_words]
print(filtered_tokens)
# Output: ['example', 'NLP', '.', 'includes', 'tokenization', '.']

Kode di atas menggunakan korpus stopwords NLTK untuk menghapus kata-kata berhenti umum seperti 'is', 'an', dan 'of' dari token.

from nltk.stem import PorterStemmer

# Stemming
stemmer = PorterStemmer()
stemmed_tokens = [stemmer.stem(token) for token in filtered_tokens]
print(stemmed_tokens)
# Output: ['exampl', 'nlp', '.', 'includ', 'token', '.']

Kode di atas menggunakan PorterStemmer NLTK untuk membendung token yang tersisa, menguranginya ke bentuk dasarnya.

2. Analisis data eksplorasi: Langkah ini melibatkan analisis data teks untuk mendapatkan wawasan dan memahami struktur data. Hal ini dapat mencakup tugas-tugas seperti membuat plot frekuensi kata, mengidentifikasi frasa umum, dan membuat awan kata.

from nltk.probability import FreqDist
import matplotlib.pyplot as plt

# Creating word frequency plot
fdist = FreqDist(tokens)
fdist.plot(30,cumulative=False)
plt.show()

Kode di atas menggunakan FreqDist NLTK untuk membuat distribusi frekuensi token, dan kemudian memplot 30 kata yang paling umum.

from nltk.util import ngrams

# Creating n-grams
n = 2
ngrams = list(ngrams(tokens, n))
print(ngrams)

Kode di atas menggunakan fungsi ngrams NLTK untuk membuat daftar bigram, daftar tupel yang dihasilkan berisi n-gram.

3. Ekstraksi fitur:Langkah ini melibatkan ekstraksi fitur-fitur penting dari data teks yang dapat digunakan untuk analisis atau pemodelan lebih lanjut. Ini dapat mencakup tugas-tugas seperti membuat representasi sekumpulan kata, membuat matriks TF-IDF, atau mengekstraksi entitas bernama.

from sklearn.feature_extraction.text import CountVectorizer

# Creating bag of words representation
corpus = ['This is the first document.',
          'This is the second second document.',
          'And the third one.',
          'Is this the first document?',]
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(corpus)
print(X.toarray())

Kode di atas membuat sekumpulan kata yang mewakili korpus empat kalimat. Matriks renggang yang dihasilkan berisi frekuensi setiap kata dalam korpus.

Contoh lain dari ekstraksi fitur adalah membuat matriks TF-IDF,

from sklearn.feature_extraction.text import TfidfVectorizer

# Creating TF-IDF matrix
corpus = ['This is the first document.',
          'This is the second second document.',
          'And the third one.',
          'Is this the first document?',]
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(corpus)
print(X.toarray())

Kode di atas membuat matriks TF-IDF dari korpus empat kalimat. Matriks sparse yang dihasilkan berisi nilai TF-IDF setiap kata dalam korpus.

4. Pemodelan: Langkah ini melibatkan pelatihan model pada data teks untuk melakukan tugas tertentu seperti analisis sentimen, terjemahan bahasa, atau peringkasan teks.

from sklearn.naive_bayes import MultinomialNB
from sklearn.model_selection import train_test_split

# Splitting the data into training and test sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

# Training a classifier
clf = MultinomialNB()
clf.fit(X_train, y_train)

# Making predictions
y_pred = clf.predict(X_test)

Kode di atas menggunakan pengklasifikasi MultinomialNB dari perpustakaan scikit-learn untuk melatih model pada data teks dan memprediksi variabel target (dalam hal ini sentimen) pada set pengujian.

5. Evaluasi:Langkah ini melibatkan evaluasi performa model menggunakan metrik seperti akurasi, presisi, perolehan, dan skor F1.

from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score

# Evaluation metrics
acc = accuracy_score(y_test, y_pred)
prec = precision_score(y_test, y_pred)
rec = recall_score(y_test, y_pred)
f1 = f1_score(y_test, y_pred)

print("Accuracy: {:.2f}%".format(acc*100))
print("Precision: {:.2f}%".format(prec*100))
print("Recall: {:.2f}%".format(rec*100))
print("F1-Score: {:.2f}%".format(f1*100))

Kode di atas menggunakan fungsi accuracy_score, precision_score, recall_score, dan f1_score dari pustaka scikit-learn untuk mengevaluasi performa model. Metrik ini biasanya digunakan untuk mengevaluasi performa model klasifikasi teks, dan memberikan cara cepat untuk memahami seberapa baik performa model.

Perlu dicatat bahwa masalah NLP yang berbeda memerlukan pendekatan dan teknik yang berbeda, sehingga langkah spesifik dan contoh kode yang diberikan di atas mungkin tidak dapat diterapkan secara langsung ke semua tugas NLP. Selain itu, contoh kode yang diberikan hanya untuk tujuan demonstrasi dan mungkin tidak dapat langsung digunakan tanpa modifikasi dan penyesuaian tambahan.

Beberapa kode belum saya berikan keluarannya dan hanya memberikan kode tersebut agar siswa dapat mencobanya sendiri pada kumpulan kalimat atau Databasenya sendiri.

Ringkasan-

Natural Language Processing (NLP) adalah bidang Kecerdasan Buatan yang berhubungan dengan interaksi antara komputer dan manusia menggunakan bahasa alami. Proses NLP melibatkan berbagai langkah seperti prapemrosesan teks, analisis data eksplorasi, ekstraksi fitur, pemodelan, dan evaluasi.

Pemrosesan awal teks melibatkan pembersihan dan penyiapan data teks untuk dianalisis. Ini dapat mencakup tugas-tugas seperti tokenisasi, penghapusan stop word, dan stemming atau lemmatisasi. Analisis data eksplorasi melibatkan analisis data teks untuk mendapatkan wawasan dan memahami struktur data. Hal ini dapat mencakup tugas-tugas seperti membuat plot frekuensi kata, mengidentifikasi frasa umum, dan membuat awan kata.

Ekstraksi fitur adalah langkah mengekstraksi fitur-fitur bermakna dari data teks yang dapat digunakan untuk analisis atau pemodelan lebih lanjut. Ini dapat mencakup tugas-tugas seperti membuat representasi sekumpulan kata, membuat matriks TF-IDF, atau mengekstraksi entitas bernama. Pemodelan adalah langkah melatih model pada data teks untuk melakukan tugas tertentu seperti analisis sentimen, terjemahan bahasa, atau peringkasan teks. Evaluasi adalah langkah mengevaluasi performa model menggunakan metrik seperti akurasi, presisi, perolehan, dan skor F1.

Singkatnya, NLP adalah bidang penting yang membantu komputer untuk memahami, menafsirkan, dan menghasilkan bahasa manusia. Ini banyak digunakan dalam berbagai aplikasi seperti pengenalan suara, terjemahan mesin, analisis sentimen, dan peringkasan teks. Teknik dan alat NLP memungkinkan komputer memahami bahasa manusia, sehingga memungkinkan komputer berinteraksi dengan manusia dengan cara yang lebih alami dan intuitif.

Semoga berhasil!!

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Jika Anda suka membaca cerita seperti ini dan ingin mendukung tulisan saya, Mohon pertimbangkan untuk mengikuti saya. Sebagai anggota menengah, Anda memiliki akses tak terbatas ke ribuan panduan Python dan artikel ilmu data.

Lakukan Clap di artikel jika Anda menyukainya, itu akan sangat menyemangati saya. Terima kasih

Konten lainnya di PlainEnglish.io.

Daftar ke buletin mingguan gratis kami. Ikuti kami di "Twitter", "LinkedIn", "YouTube", dan "Discord" .

Tertarik untuk meningkatkan skala startup perangkat lunak Anda? Lihat "Sirkuit".