Pemrosesan bahasa alamiah membantu komputer berkomunikasi dengan manusia dalam bahasanya sendiri dan membuat skala tugas-tugas yang terkait bahasa lainnya. Misalnya, NLP memungkinkan komputer untuk membaca teks, mendengar ucapan, menafsirkannya, mengukur sentimen, dan menentukan bagian mana yang penting. Mesin saat ini dapat menganalisis data berbasis bahasa lebih banyak dibandingkan manusia, tanpa rasa lelah dan dengan cara yang konsisten serta tidak bias. Mengingat banyaknya data tidak terstruktur yang dihasilkan setiap hari, dari rekam medis hingga media sosial, automasi akan sangat penting untuk sepenuhnya menganalisis data teks dan ucapan dengan efisien. Menyusun sumber data yang sangat tidak terstrukturBahasa manusia amat sangat kompleks dan beragam. Kita mengekspresikan diri dengan cara yang tak terbatas, baik secara verbal maupun tertulis. Tidak hanya ada ratusan bahasa dan dialek, namun di dalam setiap bahasa ada juga serangkaian aturan tata bahasa dan sintaksis, istilah, dan kata-kata slang. Saat kita menulis, kita seringkali salah eja atau menyingkat kata, atau menghilangkan tanda baca. Saat kita berbicara, kita memiliki dialek kedaerahan, dan kita terkadang bergumam, gagap, dan meminjam istilah-istilah dari bahasa lain. Meskipun pembelajaran yang disupervisi dan tidak disupervisi, dan khususnya pembelajaran mendalam, sekarang banyak digunakan untuk pemodelan bahasa manusia, ada juga kebutuhan untuk pemahaman sintaksis dan semantik serta keahlian domain yang tidak selalu hadir dalam pendekatan pembelajaran mesin ini. NLP sangat penting karena membantu menyelesaikan ambiguitas dalam bahasa dan menambahkan struktur numerik yang berguna untuk data bagi banyak aplikasi hilir, seperti pengenalan ujaran atau analisis teks. Secara mendasar, komunikasi adalah salah satu hal paling penting yang dibutuhkan manusia sebagai makhluk sosial. Ada lebih dari trilyunan halaman berisi informasi pada Website, dimana kebanyakan diantaranya menggunakan bahasa natural. Isu yang sering muncul dalam pengolahan bahasa adalah ambiguitas, dan bahasa yang berantakan/tidak formal (tidak sesuai aturan bahasa). Gambar 1. Ilustrasi Penggunaan Bahasa Natural Language Processing (NLP) merupakan salah satu cabang ilmu AI yang berfokus pada pengolahan bahasa natural. Bahasa natural adalah bahasa yang secara umum digunakan oleh manusia dalam berkomunikasi satu sama lain. Bahasa yang diterima oleh komputer butuh untuk diproses dan dipahami terlebih dahulu supaya maksud dari user bisa dipahami dengan baik oleh komputer. Ada berbagai terapan aplikasi dari NLP. Diantaranya adalah Chatbot (aplikasi yang membuat user bisa seolah-olah melakukan komunikasi dengan computer), Stemming atau Lemmatization (pemotongan kata dalam bahasa tertentu menjadi bentuk dasar pengenalan fungsi setiap kata dalam kalimat), Summarization (ringkasan dari bacaan), Translation Tools (menterjemahkan bahasa) dan aplikasi-aplikasi lain yang memungkinkan komputer mampu memahami instruksi bahasa yang diinputkan oleh user. I. NLP Area Pustejovsky dan Stubbs (2012) menjelaskan bahwa ada beberapa area utama penelitian pada field NLP, diantaranya:
II. Terminologi NLP Perkembangan NLP menghasilkan kemungkinan dari interface bahasa natural menjadi knowledge base dan penterjemahan bahasa natural. Poole dan Mackworth (2010) menjelaskan bahwa ada 3 (tiga) aspek utama pada teori pemahaman mengenai natural language:
Contoh kalimat di bawah ini akan membantu untuk memahami perbedaan diantara ketiga aspek tersebut di atas. Kalimat-kalimat ini adalah kalimat yang mungkin muncul pada bagian awal dari sebuah buku Artificial Intelligence (AI):
Kalimat pertama akan tepat jika diletakkan pada awal sebuah buku, karena tepat secara sintaks, semantik, dan pragmatik. Kalimat kedua tepat secara sintaks dan semantic, namun kalimat tersebut akan menjadi aneh apabila diletakkan pada awal sebuah buku AI, sehingga kalimat ini tidak tepat secara pragmatik. Kalimat ketiga tepat secara sintaks, tetapi tidak secara semantik. Sedangkan pada kalimat keempat, tidak tepat secara sintaks, semantik, dan pragmatik. Selain daripada ketiga istilah tersebut ada beberapa istilah yang terkait dengan NLP, yaitu:
III. Information Retrieval Information Retrieval (IR) adalah pekerjaan untuk menemukan dokumen yang relevan dengan kebutuhan informasi yang dibutuhkan oleh user. Contoh sistem IR yang paling popular adalah search engine pada World Wide Web. Seorang pengguna Web bisa menginputkan query berupa kata apapun ke dalam sebuah search engine dan melihat hasil dari pencarian yang relevan. Karakteristik dari sebuah sistem IR (Russel & Norvig, 2010) diantaranya adalah:
Gambar 2. Proses dari Information Retrieval IV. Morphological Analysis Proses dimana setiap kata yang berdiri sendiri (individual words) dianalisis kembali ke komponen pembentuk mereka dan token nonword seperti tanda baca dsb dipisahkan dari kata tersebut. Contohnya apabila terdapat kalimat: “I want to print Bill’s .init file” Jika morphological analysis diterapkan ke dalam kalimat di atas, maka:
Syntactic analysis harus menggunakan hasil dari morphological analysis untuk membangun sebuah deskripsi yang terstruktur dari kalimat. Hasil akhir dari proses ini adalah yang sering disebut sebagai parsing. Parsing adalah mengkonversikan daftar kata yang berbentuk kalimat ke dalam bentuk struktur yang mendefinisikan unit yang diwakili oleh daftar tadi. Hampir semua sistem yang digunakan untuk syntactic processing memiliki dua komponen utama, yaitu:
Cara yang paling umum digunakan untuk merepresentasikan grammar adalah dengan sekumpulan production rule. Rule yang paling pertama bisa diterjemahkan sebagai “Sebuah Sentence terdiri dari sebuah Noun Phrase, diikuti oleh Verb Phrase”, garis vertical adalah OR, sedangkan ε mewakili string kosong. Proses parsing menggunakan aturan-aturan yang ada pada Grammar, kemudian membandingkannya dengan kalimat yang diinputkan. Struktur paling sederhana dalam melakukan parsing adalah Parse Tree, yang secara sederhana menyimpan rule dan bagaimana mereka dicocokkan satu sama lain. Setiap node pada Parse Tree berhubungan dengan kata yang dimasukkan atau pada nonterminal pada Grammar yang ada. Setiap level pada Parse Tree berkorespondensi dengan penerapan dari satu rule pada Grammar. Contoh: Terdapat Grammar sebagai berikut:
Maka, apabila terdapat kalimat “Bill printed the file”, representasi Parse Tree nya akan menjadi: Pembangunan Parse Tree ini didasarkan pada Grammar yang digunakan. Apabila Grammar yang digunakan berbeda, maka Parse Tree yang dibangun harus tetap berdasarkan pada Grammar yang berlaku. Contoh: Terdapat Grammar sebagai berikut:
Maka Parse Tree untuk kalimat “John ate the apple” akan menjadi: V. Stemming & Lemmatization Stemming merupakan sebuah proses yang bertujuan untuk mereduksi jumlah variasi dalam representasi dari sebuah kata (Kowalski, 2011). Resiko dari proses stemming adalah hilangnya informasi dari kata yang di-stem. Hal ini menghasilkan menurunnya akurasi atau presisi. Sedangkan untuk keuntungannya adalah, proses stemming bisa meningkatkan kemampuan untuk melakukan recall. Tujuan dari stemming sebenarnya adalah untuk meningkatkan performace dan mengurangi penggunakan resource dari sistem dengan mengurangi jumlah unique word yang harus diakomodasikan oleh sistem. Jadi, secara umum, algoritma stemming mengerjakan transformasi dari sebuah kata menjadi sebuah standar representasi morfologi (yang dikenal sebagai stem). Contoh: “comput” adalah stem dari “computable, computability, computation, computational, computed, computing, compute, computerize” Ingason dkk. (2008) mengemukakan bahwa lemmatization adalah sebuah proses untuk menemukan bentuk dasar dari sebuah kata. Nirenburg (2009) mendukung teori ini dengan kalimatnya yang menjelaskan bahwa lemmatization adalah proses yang bertujuan untuk melakukan normalisasi pada teks/kata dengan berdasarkan pada bentuk dasar yang merupakan bentuk lemma-nya. Normalisasi disini adalah dalam artian mengidentifikasikan dan menghapus prefiks serta suffiks dari sebuah kata. Lemma adalah bentuk dasar dari sebuah kata yang memiliki arti tertentu berdasar pada kamus. Contoh:
Algoritma Stemming dan Lemmatization berbeda untuk bahasa yang satu dengan bahasa yang lain. VI. Contoh Aplikasi NLP Penelitian yang dikerjakan oleh Suhartono, Christiandy, dan Rolando (2013) adalah merancang sebuah algoritma lemmatization untuk Bahasa Indonesia. Algoritma ini dibuat untuk menambahkan fungsionalitas pada algoritma Stemming yang sudah pernah dikerjakan sebelumnya yaitu Enhanced Confix-Stripping Stemmer (ECS) yang dikerjakan pada tahun 2009. ECS sendiri merupakan pengembangan dari algoritma Confix-Stripping Stemmer yang dibuat pada tahun 2007. Pengembangan yang dikerjakan terdiri dari beberapa rule tambahan dan modifikasi dari rule sebelumnya. Langkah untuk melakukan suffix backtracking juga ditambahkan. Hal ini untuk menambah akurasi. Secara mendasar, algoritma lemmatization ini tidak bertujuan untuk mengembangkan dari metode ECS, larena tujuannya berbeda. Algoritma lemmatization bertujuan untuk memodifikasi ECS, supaya lebih tepat dengan konsep lemmatization. Namun demikian, masih ada beberapa kemiripan pada proses yang ada pada ECS. Ada beberapa kasus yang mana ECS belum berhasil untuk digunakan, namun bisa diselesaikan pada algoritma lemmatization ini. Gambar 3. Indonesian Lemmatizer Pengujian validitas pada algoritma ini adalah dengan menggunakan beberapa artikel yang ada di Kompas, dan diperoleh hasil sebagai berikut:
Hasil dari pengujian menunjukkan bahwa akurasi yang diperoleh sekitar 98.71%. T = Total data count V = Valid test data count S = Successful lemmatization E = Error / Kegagalan P = Precision Aplikasi NLP yang lainnya adalah seperti penerjemah bahasa, chatting dengan komputer, meringkas satu bacaan yang panjang, pengecekan grammar dan lain sebagainya. DAFTAR PUSTAKA
|