Langkah Dasar NLP (Natural Language Processing) dengan Contoh Nyata!
Langkah-langkah untuk NLP (Natural Language Processing) biasanya mencakup hal-hal berikut:
- 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.
- 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.
- 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.
- Pemodelan: Langkah ini melibatkan pelatihan model pada data teks untuk melakukan tugas tertentu seperti analisis sentimen, terjemahan bahasa, atau peringkasan teks.
- 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:
- 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.
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.
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.
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.
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".