Catatan penting : Jika Anda benar-benar awam tentang apa itu Python, silakan klik artikel saya ini. Jika Anda awam tentang R, silakan klik artikel ini.
Natural Language Processing atau disingkat NLP adalah teknik Machine Learning (ML) yang mempelajari hubungan antara bahasa manusia (languages) dengan komputer. NLP digunakan untuk mengaplikasikan model ML ke dalam teks atau bahasa (suara).
Agar mendapatkan gambaran, maka NLP biasanya digunakan untuk menginterpretasikan suara manusia ke dalam tulisan, misalnya iPhone siri. Untuk aplikasi Android, maka kita bisa menggunakan Google Translate untuk merubah dari suara ke teks. Jika Anda familiar dengan Amazon, maka NLP juga digunakan untuk mengembangkan Amazon Alexa, seperti ilustrasi di bawah ini:

Berikut beberapa contoh aplikasi nyata dari teknik NLP:
- Prediksi genre dari sebuah buku, majalah, tabloid, dan lain sebagainya.
- Menjawab pertanyaan melalui suara.
- Analisis mood penulis atau sering disebut dengan sentiment analysis, sehingga kita bisa mengetahui mood dari tulisan yang ditulisnya di internet atau media lainnya.
- Mesin pendeteksi suara (speech recognition).
- Membuat kesimpulan sebuah dokumen berdasarkan tulisan-tulisan yang sudah direkam (di-scan).
- Membuat aplikasi tata bahasa (grammar correction). Misal aplikasi grammar bahasa inggris yang berada di pasaran.
Jadi pada dasarnya, NLP mengolah data informasi manusia baik berupa suara maupun tulisan. Dari pengolahan data tersebut, terserah kita sebagai pembuat program/aplikasi mau diimprovisasi menjadi apa. Misal, untuk membuat sistem keamanan ponsel kita, di mana ponsel hanya bisa dibuka jika dia mengenali suara kita.
Ada beberapa library yang bisa digunakan untuk teknik NLP, beberapa di antaranya adalah:
- Spacy
- Standford NLP
- OpenNLP
- Natural Language Toolkit (NLTK)
Yang akan kita gunakan untuk pembelajaran kali ini adalah NLTK, karena menurut saya ini yang paling lengkap dan paling handal. Tentu saja ini bersifat subjektif.
Salah satu pemakaian NLTK adalah bisa memecah kalimat ke dalam beberapa struktur, misalnya mana subjek, predikat, objek, keterangan, konjungsi, kata sifat dan lainnya. Ilustrasinya, misal kalimat “Pierre Vinken 61 years old will join the board as a nonexecutive director Nov. 29.”, maka jika dijabarkan adalah sebagai berikut:

http://www.nltk.org)
Model NLP yang akan kita pelajari kali ini adalah Bag of Words. Model ini digunakan untuk mengekstraksi (extract) fitur dari sebuah teks atau dokumen. Fitur-fitur yang sudah diekstraksi ini bisa digunakan untuk melatih (training) algoritma ML. Hasil akhirnya adalah berupa vocabulary (kata-kata yang unik) yang muncul di semua dokumen/teks di training set. Tenang saja, akan lebih mudah jika praktek melalui contoh di halaman selanjutnya dengan menggunakan pendekatan Python maupun R.
Untuk melanjutkan membaca, silakan klik lanjut ke halaman selanjutnya di bawah ini.
Selamat pagi.
Gini mas, saya sedang mencoba menjalankan tutorial ini menggunakan jupyter notebook python. nah sekarag saya mau liat autput dari aplikasi ini apa yah? dan yg bahasa R itu gk kaitannya dgn source pytonnya? Terima kasih sebelumnya.
Halo Alexander, terima kasih komentarnya.
Aplikasi NLP banyak sekali, salah satu yang saya bahas adalah sentiment analysis.
Untuk output dan source code nya bisa dibaca di halaman selanjutnya (total ada 4 halaman).
Semoga membantu
Selamat malam.
kalau mau menambahkan Pembobotan TF-IDF, seperti gimana ya? trimakasih
Halo, TF adalah term frequency yang merupakan frekuensi kemunculan sebuah kata tertentu. Misal kita ingin mencari kata ‘makan’ di dalam sebuah dokumen dengan total 1000 kata, di mana kata ‘makan’ muncul 50 kali, maka TF = 50/1000 = 0,05. IDF adalah inverse document frequency, yang merupakan frekuensi kemunculan kata dalam a bank of words (kumpulan beberapa dokumen) dalam skala logaritmik. Misal kata ‘makan’ muncul 100 kali dari 10rb dokumen, maka TDF = log(10000/100) = 2. TF-IDF adalah perkalian antara TF dan IDF = 0,05 * 2 = 0,1 Untuk menghitung keduanya di Python maupun R, cukup pakai operasi matematika sederhana.… Read more »
jadi kalo saya mengganti line 57 dengan
“cv =TfidfVectorizer (analyzer=’word’,
ngram_range=(1, 1),
min_df=1,
max_df=0.95,
sublinear_tf=True,
use_idf=True)”
apakah itu sudah menggunakan tf-idf?
Saya belum pernah mencoba fungsi bawaan itu.
Silakan dicoba sendiri dan bandingkan hasilnya, apakah sesuai dengan tujuan awal.
Semoga menjawab.
Permisi Pak, salam hangat dari saya boleh saya minta tolong jika berkenan di jelaskan mengenai NLP dalam teknologi Chatbot secara detail mulai dari konsep, teori dan studi kasusnya. soalnya saya masih belum memahami
terima kasih
sukses selalu
Panjang ini penjelasannya seperti materi kuliah.
Nanti ya kapan-kapan saya bahas, ini sedang menyelesaikan keperluan S3 dulu.
Harap bersabar.
Halo Pak
Sebelumnya saya sedang mempelajari face detection menggunakan opencv di spyder, namun saya melihat byk contoh program yang menggunakan library argparse, kira-kira plus minus nya apa yah pak? saya coba jalankan program sederhana menggunakan argparse di spyder tapi hasil outputnya tidak ada? apakah ada alternatif lain pak?
Terima kasih
Salam
Selamat pagi
selamat pagi maaf mas mohon petujuknya saya sedang menggunkan jupyter notebook tolong pada saat kita Run muncul error seperti ini : SyntaxError: (unicode error) ‘unicodeescape’ codec can’t decode bytes in position 2-3: truncated \UXXXXXXXX escape dan AttributeError: module ‘pandas’ has no attribute ‘read_cs’ tolong penjelasanya..
read_csv bukan read_cs
Hallo mas, kalo untuk yang stemming bahasa indonesia yang diubah itu di line berapa ya?
terimakasih pak, ini dapat membantu saya untuk mengerjakan skripsi untuk sentimen rewnable energi, boleh konsul secara pribadi ga pak untuk sripsi saya?
Bisa ikut member platinum via channel Youtube saya.