PEMROSESAN BAHASA ALAMI Jurusan Teknik Informatika Fakultas Ilmu Komputer Universitas Sriwijaya Genap 2021/2022 Dr. Abdiansah, S.Kom., M.CS. (abdiansah@unsri.ac.id) PERTEMUAN – 1 PERTEMUAN-1 Pengantar Pemrosesan Bahasa Alami 2 Pemrosesan Bahasa Alami Materi Pertemuan 3 Pengantar Pemrosesan Bahasa Alami (PBA) Aplikasi PBA State of the art PBA Latihan Pemrosesan Bahasa Alami PENGANTAR PEMROSESAN BAHASA ALAMI 4 Pemrosesan Bahasa Alami Pemrosesan Bahasa Alami 5 Pemrosesan Bahasa Alami (PBA) atau Natural Language Processing (NLP) adalah pekerjaan membuat perangkat lunak yang dapat memahami (konteks) informasi dalam bentuk bahasa alami Memahami bahasa alami merupakan pekerjaan sulit dan menantang bagi komputer karena banyak fenomena-fenomena linguistik yang dapat terjadi (entailment, coreference, active-pasive, dan lainnya) Ada 2 (dua) masalah umum dalam PBA, yaitu: Ambiguitas (ambiguity), satu struktur berbeda makna Variabilitas (variability), satu makna berbeda struktur Contoh ambiguitas: tahu (N/V), bisa (N/V), bagus (A/N), dan lainnya Contoh variabilitas: (presiden, pemimpin), (rajin, pandai), dan lainnya Pemrosesan Bahasa Alami Bahasa dan Makna Meaning VARIABILITY AMBIGUITY Language 6 Pemrosesan Bahasa Alami Ambiguitas 7 Secara bahasa ambigu berarti memiliki makna lebih dari satu Kalimat ambigu adalah kalimat yang maknanya bisa bermakna lebih dari satu penafsiran Faktor penyebab kalimat ambigu: Faktor Morfologi (pembentukan kata atau kalimat) Faktor Sintaksis (masalah sintak atau penyusunan pada kata atau frasa) Faktor Struktural (struktur pada kalimat) Jenis kalimat ambigu: Ambiguitas Fonetik (persamaan bunyi) Ambiguitas Gramatikal (pembentukan tata bahasa) Ambiguitas Leksikal (faktor kata) Pemrosesan Bahasa Alami Ambiguitas Faktor Contoh Morfologi Masuk angin Contoh Kalimat ● ● Sintaksis Gigit jari ● ● Struktural Aldi, Iwan, Doni dimarahi Bu guru ● ● ● 8 Andi merasa tidak enak badan karena [masuk angin] Saat Andi membuka pintu, [masuklah] [angin] yang sangat kencang Tim bola basket itu harus [gigit jari] karena kalah (konotasi) Adik kecilku kini senang [menggigit jari] tangannya (denotasi) Aldi. Iwan, Doni dimarahi Bu guru (Iwan dan Doni yang dimarahi Bu guru) Aldi, Iwan. Doni dimarahi Bu guru (Doni yang dimarahi Bu guru) Aldi, Iwan, Doni dimarahi Bu guru (Aldi, Iwan, dan Doni yang dimarahi Bu guru) Pemrosesan Bahasa Alami Ambiguitas Jenis Ambiguitas Contoh Fonetik Tahu Makna ● ● Gramatikal Orang tua ● ● Leksikal Lari ● ● 9 Memberi makanan berupa tahu (makanan yang terbuat dari kacang kedelai) Memberi suatu informasi Ibu dan Bapak Orang yang sudah tua Semua pemain [berlari] mengejar bola Karena tidak sanggup, Andi memilih [lari] dari kenyataan Pemrosesan Bahasa Alami Ambiguitas 10 Jenis hubungan antar kata yang dapat menyebabkan ambigu, yaitu: Homonim, Homofon, Homograf, dan Polisemi Homonim, kata yang sama lafal dan ejaannya dengan kata yang lain tetapi berbeda maknanya karena berasal dari sumber yang berbeda Homofon, kata yang sama lafalnya dengan kata lain tetapi beda ejaan dan maknanya Homograf, kata yang sama ejaannya dengan kata yang lain tertapi beda lafal dan maknanya Polisemi, kata yang memiliki makna atau arti lebih dari satu karena adanya banyak komponen konsep dalam pemaknaan suatu kata (mirip dengan homonim tapi berbeda berdasarkan sumber makna) Pemrosesan Bahasa Alami Ambiguitas Jenis Kata Contoh Homonim Hak Makna ● ● ● Homofon Rok / Rock ● ● Homograf Apel ● ● Polisemi Akar ● ● 11 Bagian dari sepatu wanita Sesuatu yang benar Milik atau kepunyaan Rok Jenis pakaian wanita atau perempuan Rock (pelafalan “rok”), jenis aliran musik Suatu jenis buah–buahan Kegiatan berkumpul seperti akan melaksanakan upacara Akar permasalahan (konotatif) Akar beringin (denotatif) Pemrosesan Bahasa Alami Variabilitas Variasi pada bidang linguistik (bahasa) adalah karakteristik dari suatu bahasa, “ada lebih dari satu cara untuk mengatakan hal yang sama” Pada bidang PBA, variasi dapat disebut dengan variabilitas, “ada banyak struktur/bahasa untuk menyatakan makna yang sama” Contoh variabilitas di tingkat kata adalah sinonim, kata yang berbeda memiliki makna yang sama, contohnya kata “pemimpin” dan “ketua” Pemimpin : Orang yg memimpin Ketua : Orang yg mengepalai atau [memimpin] Biasanya antar kata/kalimat memiliki keterikatan makna atau menjadi bagian dari masing-masing kata/kalimat tersebut Contoh varibilitas di tingkat kalimat: 12 “Hewan makan daging” = “Anjing makan daging” Pemrosesan Bahasa Alami Variabilitas Ada dua topik penelitian yang berkaitan dengan variabilitas, yaitu parafrase (Paraphrasing) dan Textual Entailment (TE) Parafrase adalah istilah linguistik yang berarti pengungkapan kembali suatu konsep dengan cara lain dalam bahasa yang sama, namun tanpa mengubah maknanya Textual Entailment adalah hubungan terarah antar fragmen teks, suatu teks (text) dapat disimpukan (inferensi) dengan melihat teks lain (hypothesis) Pada TE, hipotesis dapat menyimpulkan makna dari teks, tetapi tidak sebaliknya 13 “Anjing makan daging” (H), tidak bisa menyimpulkan “Hewan makan daging” (T), karena tidak semua hewan makan daging Jika terdapat dua teks T1 dan T2, maka perbedaan antara parafrase dan TE sbb: Parafrase : T1 <=> T2 TE : T1 => T2 Pemrosesan Bahasa Alami Variabilitas Variabilitas Parafrase Contoh Kalimat ● ● Textual Entailment ● ● 14 Kalimat asli: Komputer mampu membawa orang ke tempat-tempat yang belum pernah bisa mereka kunjungi sebelumnya, termasuk ke permukaan planet lain Kalimat parafrase: Melalui komputer, orang dapat pergi ke tempat yang belum pernah mereka kenal Teks: Jika Anda membantu yang membutuhkan, Tuhan akan membalas Anda Hipotesis: Memberi uang kepada orang miskin memiliki konsekuensi yang baik Pemrosesan Bahasa Alami Mengapa Perlu Belajar PBA? Setiap hari kita menyumbang data ke Internet (post, tweet, blog, email, chats, dll) Untuk memproses data yang sangat besar diperlukan orang yang paham tentang PBA Selama data/teks terus tumbuh (big data), selama itu pula PBA diperlukan Secara umum, data yang diolah ada tiga jenis, yaitu: 15 Oleh karena itu, PBA merupakan bidang yang cukup penting di zaman informasi sekarang ini (lihat industri IT terkenal seperti Google, Facebook, dan lainnya) Data terstruktur (relational table) Data Semi-terstruktur (xml, json) Data tidak terstruktur (plain text) Tantangan belajar PBA adalah bagaimana mengubah data yang tidak terstruktur menjadi data yang (semi) tersturktur sehingga bisa menghasilkan informasi yang bermanfaat Pemrosesan Bahasa Alami Mengapa Perlu Belajar PBA? Data never sleeps (2020): https://www.domo.com/learn/datanever-sleeps-8 16 “Populasi internet dunia tumbuh secara signifikan. Per April 2020, internet menjangkau 59% dari populasi dunia dan sekarang mewakili 4,57 miliar orang — meningkat 6% dari Januari 2019” Berapa banyak data suara dan teks yang dihasilkan setiap menitnya? Apakah data tersebut akan dibiarkan begitu saja? Pemrosesan Bahasa Alami Mengapa Perlu Belajar PBA? 17 Pemrosesan Bahasa Alami Tahapan PBA Tokenisasi/Segmentasi Analisis Leksikal Analisis Sintaks Analisis Semantik Analisis Pragmatik 18 Pemrosesan Bahasa Alami Metode PBA 19 Simbolik (1950-an s/d awal 1990-an) Berbasis aturan (heuristik) dan pencarian kamus Contohnya stemming yang menggunakan aturan pemenggalan kata Statistik (1990-an s/d 2010-an) Berbasis machine learning Training korpus yang besar Contohnya teknik Decision Tree yang bisa membuat aturan otomatis Neural Network / Deep Learning (2010-an s/d sekarang) Word Embedding (word2vec) - semantik dari korpus Sequence-to-Sequence model (seq2seq) Model RNN, LSTM, GRU Pemrosesan Bahasa Alami APLIKASI PBA 20 Pemrosesan Bahasa Alami Aplikasi-Aplikasi PBA 21 Mesin Pencari (Search Engine) Mesin Penerjemah (Machine Translation) Penyaring Spam (Spam Filtering) Analisis Sentimen (Sentiment Analysis) Sistem Tanya Jawab (Question Answering System) Peringkas Teks (Text Summarization) Sistem Dialog (Dialogue System – chatbot) … Dan masih banyak lainnya Pemrosesan Bahasa Alami Mesin Pencari 22 Pemrosesan Bahasa Alami Mesin Pencari 23 Pemrosesan Bahasa Alami Mesin Penerjemah 24 Pemrosesan Bahasa Alami Analisis Sentimen 25 Pemrosesan Bahasa Alami Sistem Tanya Jawab IBM Watson (2011) memenangkan hadiah pertama sebesar $1 juta dalam permainan Jeopardy! 26 Pemrosesan Bahasa Alami Sistem Dialog (Chatbot) 27 Pemrosesan Bahasa Alami STATE OF THE ART PBA 28 Pemrosesan Bahasa Alami Tren Penelitian PBA 29 Survey paper Original paper NLP Progres → nlpprogress.com Papers with Code → paperswithcode.com Pemrosesan Bahasa Alami NLP Progres 30 Pemrosesan Bahasa Alami NLP Progres 31 Pemrosesan Bahasa Alami Papers with Code 32 Pemrosesan Bahasa Alami Papers with Code 33 Pemrosesan Bahasa Alami LATIHAN 34 Pemrosesan Bahasa Alami Python Unduh Python (versi 3) dan IDE-nya (Anacoda, Spyder, Pcharm, VS Code) atau bisa menggunakan colab.google.research.com Jalankan IDE Python, kemudian ketik kode berikut ini: 1.a = 10 2.b = 20 3.c = a + b 4.print(c) Hapus kode sebelumnya, ketik kode berikut ini: 1.nim = input(“NIM: ”) 2.nama = input(“Nama: ”) 3.print(“Apa kabar {}, NIM anda adalah {}”.format(nama, nim)) 35 Pemrosesan Bahasa Alami Python Hapus kode sebelumnya, ketik kode berikut ini: 1.pjg = int(input(“Panjang: ”)) 2.lbr = int(input(“Lebar:”)) 3.luas = pjg * lbr 4.print(“Luas adalah {}”.format(luas)) 36 Pemrosesan Bahasa Alami Pustaka NLTK Hubungkan ke Internet, buka konsol kemudian ketik: 1.pip install nltk Hapus kode sebelumnya, ketik kode berikut ini: 1.import nltk 2.nltk.download() Setelah dijalankan muncul kotak dialog mengunduh korpus, metode, dan lainnya Pilih tab collection → book → [download] Selanjutnya ketik kode berikut: 1.from nltk.book import * (run sekali, buat sebagai komentar) 2.print(text1) 37 Pemrosesan Bahasa Alami Pustaka NLTK (Google Colab) Buka Google Colab: colab.research.google.com Ketik kode berikut ini: 1.import nltk 2.nltk.download(“book”) 38 Pemrosesan Bahasa Alami Pencarian Teks Hapus kode sebelumnya kemudian ketik kode berikut ini: 1.text1.concordance(“monstrous”) - lihat hasilnya 2.text1.similar(“monstrous”) 3.text2.similar(“monstrous”) 4.text2.common_contexts([“monstrous”,“very”]) 5.text3.generate() 39 Analisis hasilnya! Pemrosesan Bahasa Alami Pencarian Teks 40 text1.similar("monstrous") akan menghasilkan konteks yang sama yaitu dengan pola word1 _ word2. Salah satu contoh kata yang sama adalah "doleful". Contohnya, jika kita jalankan perintah text1.concordance("monstrous") maka salah satu luarannya adalah kalimat "that has survived the flood; most monstrous and most mountainous ! That Himmal". Jika kita jalankan perintah text1.concordance("doleful") maka luarannya adalah kalimat "ite perspectives . There ' s a most doleful and most mocking funeral ! The sea". Selanjutnya, perintah text1.common_contexts(["monstrous", "doleful"]) akan menghasilkan "most_and" → "most monstrous and", "most doleful and". Pemrosesan Bahasa Alami Menghitung Kosa Kata Hapus kode sebelumnya kemudian ketik kode berikut ini: 1.len(text3) 2.sorted(set(text3)) 3.len(set(text3)) Lanjutkan dengan kode berikut ini: 1.len(text3) / len(set(text3)) – lexical diversity Lanjutkan dengan kode berikut ini: 1.text3.count(“smote”) 2.text4.count(“a”)/len(text4)*100 – persentase kata 41 Pemrosesan Bahasa Alami Laithan Tambahan Cari korpus/file teks yang berbahasa Indonesia Buat/cari kode Python berikut: Hitung berapa banyak jumlah kata dalam korpus Urutkan kata berdasarkan frekuensi kata (tinggi ke rendah) Buat pencarian kata dan tampilkan total kata tersebut dalam korpus 42 Contohnya luaran program: Masukan Kata : makan Hasil pencarian : kata “makan” berjumlah 10 di dalam korpus Selamat mencoba! Pemrosesan Bahasa Alami 43 Pemrosesan Bahasa Alami JANGAN MENUNDA PEKERJAAN! 44 Pemrosesan Bahasa Alami