Simple NLP using NLTK

  

 Simple Natural Language Processing Using NLTK




Hallo apa kabar semua, kembali lagi di website anazmtech membahas tentang segala teknologi pada IT khususnya matematika dan pemrograman. Pada kesempatan kali ini kita akan membahas materi terusan dari materi series natural language processing. Kita akan coba pengaplikasian NLP dengan menggunakan NLTK. Untuk lebih jelasnya mari kita bahas di bawah ini.

Penjelasan Ulang NLP (Natural Language Processing)

Natural  Language  Processing merupakan salahsatu bidang ilmu Kecerdasan Buatan (Artificial Intelligence)  yang mempelajari Komunikasi antara manusia dengan komputer melalui bahasa alami.  Model komputasi  seperti  ini  berguna  untuk  memudahkan komunikasi  antara  manusia  dengan  komputer  dalam hal pencarian informasi, sehingga dapat terjadi suatu interaksi antara keduanya dengan menggunakan bahasa alami. Setidaknya, ada dua fase utama dalam proses kerja NLP, yaitu pemrosesan awal data dan pengembangan algoritma.

NLP dasar memiliki tugas-tugas antara lain tokenisasi dan parsing, lemmatization/stemming, part-of-speech tagging, deteksi bahasa, dan  identifikasi hubungan semantik. Secara umum, tugas NLP memecah bahasa  menjadi potongan-potongan unsur yang lebih pendek, kemudian memahami  hubungan di antara potongan tersebut, dan menjelajahi bagaimana potongan  itu bekerja bersama untuk menciptakan makna.

untuk lebih jelas nya silahkan kunjungi artikel sebelumnya yaitu di link berikut :

Definisi NLTK (Natural Language Tool Kit)

Natural Language Toolkit atau disingkat NLTK, adalah libray python untuk bekerja dengan permodelan teks. NLTK menyediakan alat yang baik mempersiapkan teks sebelum digunakan pada machine learning atau algoritma deep learning. Cara termudah untuk menginstall NLTK adalah menggunakan

Selanjutnya kita akan mencoba pengaplikasian sederhana dengan langkah-langkah seperti berikut yang akan di jelaskan :

Langkah 1 
1. Tulis di google dengan kata kunci : Google Colab
2. Lalu login dengan email (gmail)
3. Buat notebook baru dengan nama Simple NLP use NLTK, lalu pilih connect untuk menyambungkan engine.

Langkah 2 


Setelah membuat notebook baru, selanjutnya yaitu import package yang akan kita gunakan yaitu nltk sesuai dengan line di atas. Sampai hasilnya akan sama dengan gambar di bawah ini :


Langkah 3

Setelah package ter-import selanjutnya kita akan coba membuat sebuah kalimat atau sentences yang akan kita eksekusi untuk proses NLP yang sederhana . Untuk rinci nya adalah seperti gambar di bawah ini :


Pada gambar di atas, saya telah membuat 2 buah variable sentences dengan data yang sederhana, karena pada dasarnya kita juga bisa menginput file .txt atau file .word untuk jumlah data yang lebih luas.

sentence   : "At eight o'clock on Thursday morning Arthur didn't feel very good."
sentence2 : "Andi kerap melakukan transaksi rutin secara daring atau online. Menurut Andi belanja online lebih praktis & murah."

lalu setelah membuat variable simple. lalu kita akan print seperti biasa untuk hasilnya, disini kita belum masuk ke dalam NLP, kita akan mulai masuk pada Langkah ke 4.

Langkah 4

Kita akan mencoba untuk melakukan Tokenizing. Tokenizing adalah proses pemisahan teks menjadi potongan-potongan yang disebut sebagai token untuk kemudian di analisa. Kata, angka, simbol, tanda baca dan entitas penting lainnya dapat dianggap sebagai token. Didalam NLP, token diartikan sebagai “kata” meskipun tokenize juga dapat dilakukan pada paragraf maupun kalimat.

Pada gambar di atas adalah kita telah melakukan tokenizing atau pemisahan kata baik string ataupun simbol baik titik atau koma dan lainnya. dengan menggunakan nltk.word_tokenize kita mengeksekusi sentences tersebut agar di pisahkan. disini saya menggunakan variable tokens untuk hasil dari tokenize sentences.

Langkah 5

Setelah Tokenized, kita akan mencoba Post Of Speech Tagged di setiap kata yang telah di pisahkan.
Part-of-speech (POS) tagging atau secara singkat dapat ditulis sebagai tagging merupakan proses pemberian penanda POS atau kelas sintaktik pada tiap kata di dalam corpus. Dikarenakan tag secara umum juga diaplikasikan pada tanda baca, maka dalam proses tagging, tanda baca seperti tanda titik, tanda koma, dll perlu dipisahkan dari kata-kata. Oleh sebab itu, proses tokenisasi biasanya dilakukan sebelum POS tagging. Selain itu beberapa preprocessing juga dilakukan seperti pemisahan koma, tanda petik, dll dari kata serta dilakukan juga disambiguitas pada tanda baca penanda akhir kalimat seperti tanda titik dan tanda tanya agar dapat dibedakan dari tanda yang digunakan untuk singkatan (seperti contohnya: e.g. dan etc.).

Kita akan coba eksekusi dengan langkah seperti berikut :


dengan pos tag, kita mengetahui jenis dari setiap kata yang di eksekusi oleh tagged sehingga kita bisa melihat label di setiap kata nya. untuk tabel penjelasan kata nya ada dengan lengkap seperti pada gambar berikut :


Dengan table ini kita dapat mengetahui jenis label yang tersedia dalam kata secara lengkap atau mencakup keseluruhan. sebagai contoh bisa kita lihat :

Thursday : NNP yaitu Proper Noun, Plural
Morning : NN Noun, Singular
Arthur : NNP yaitu Proper Noun, Plural

Untuk penjelasan lebih lengkap tentang labelled kata, akan kita bahas di materi selanjutnya dalam series NLP ini.


Langkah 6

Kita akan mencari Frekuensi Kemunculan Kata dalam kalimat yang sebelumnya kita tokenizing. karena kalimat nya simple hanya 13 kata, dan kita juga bisa melihat dengan jelas bahwa kemungkinan tidak ada kata yang duplikasi atau yang keluar lebih dari 1. untuk lebih jelasnya kita akan lakukan proses FreqDist dengan menggunakan kode sebagai berikut :


Pertama kita import word tokenize dan FreqDist untuk probabilitas kemunculan kata. 


Silahkan klik gambar untuk lebih besar dan jelas. pada gambar di atas adalah hasil dari FreqDist atau pencarian probabilitas kemunculan kata. Dan hasilnya semua kata keluar nya 1 atau tidak ada duplikasi di setiap kata yang keluar.

Langkah 7

Setelah mengetahui probabilitas kemunculan kata, selanjutnya akan kita visualisasikan data tersebut dengan menggunakan matplotlib, sehingga akan lebih jelas hasilnya.


Untuk data skala besar dengan jumlah kalimat ribuan, tidak akan cocok menggunakan matplotlib karena data semua akan dimunculkan , akan lebih baik jika hanya sample nya saja yang di munculkan.

Langkah 8

Setelah memprediksi frekuensi kemunculan kata pada data, selanjutnya kita akan melakukan stopword removal filtering. Filtering adalah tahap mengambil kata-kata penting dari hasil token dengan menggunakan algoritma stoplist (membuang kata kurang penting) atau wordlist (menyimpan kata penting). Stopword adalah kata umum yang biasanya muncul dalam jumlah besar dan dianggap tidak memiliki makna. Contoh stopword dalam bahasa Indonesia adalah “yang”, “dan”, “di”, “dari”, dll. Makna di balik penggunaan stopword yaitu dengan menghapus kata-kata yang memiliki informasi rendah dari sebuah teks, kita dapat fokus pada kata-kata penting sebagai gantinya.


pertama kita akan mengimport package terlebih dahulu 


pada kode diatas di line 19. kita akan mencoba sampling yaitu menghapus yang mengandung bahasa indonesia pada sentences yang akan kita eksekusi, pastikan kalian mengeksekusi kata yang memang terindeks pada sentences.



Silahkan tekan gambar nya untuk hasil yang lebih jelas, ketika kita sudah menjalankan stopword . ada beberapa kalimat yang di hapuskan , jika kita cermati di langkah pertama , kalimat yang di hapus diantaranya yaitu secara, atau, transaksi, melakukan, di dan lebih. kenapa tidak semua di hapus kata yang mengandung unsur indonesia? kita akan bahas pada materi selanjutnya.


Langkah 9

Kita akan coba langkah stemming. dimana definisi dari stemming adalah Stemming adalah proses menghilangkan infleksi kata ke bentuk dasarnya, namun bentuk dasar tersebut tidak berarti sama dengan akar kata (root word). Misalnya kata “mendengarkan”, “dengarkan”, “didengarkan” akan ditransformasi menjadi kata “dengar”.

Idenya adalah ketika anda mencari dokumen “cara membuka lemari”, anda juga ingin melihat dokumen yang menyebutkan “cara terbuka lemari” atau “cara dibuka lemari” meskipun terdengar tidak enak. Tentunya anda ingin mencocokan semua variasi kata untuk memunculkan dokumen yang paling relevan.

Pada contoh kali ini tidak ada kaitannya dengan langkah2 sebelumnya karena pada proses stemming ini kita menggunakan contoh kalimat lain atau bisa kita sebut sentences 3.

pertama kita coba import package terlebih dahulu.


disini kita akan menggunakan package terkenal untuk proses stemming yaitu dengan menggunakan Algoritma PorterStemmer.


Pada proses stemming, kata yang sudah berimbuhan akan di rubah menjadi kata awalan. bisa di lihat di atas, kata asal itu adalah disabl, pada sentences 3 disajikan contoh 4 kata dari awalan disabl yang telah di beri imbuhan, sehingga kita bisa mengetahui kata asal dari yang sudah melewati proses stemming.

Sekian untuk penjelasan secara singkat tentang simple Natural Language Processing dengan menggunakan NLTK. akan lebih menarik bila kalian lebih eksplorasi tentang NLTK ini dengan langsung mengunjungi website nya langsung di https://www.nltk.org/

Terimakasih untuk waktunya, semoga materi yang di sampaikan bermanfaat ke depannya, mohon maaf bila ada kekurangan dalam penjelasan materi. adios....

Post a Comment

Previous Post Next Post