Chatbot as an Internet of Thing

Preview Chatbot, Machine Learning & Natural Language Processing

Ron Ashrovy
6 min readOct 29, 2017
Original Works by Henk Pelk on ITNext | Basic Understanding by Ron Ashrovy

Bagi yang belum mengetahui apa itu Internet of thing atau biasa di singkat IoT, sederhananya adalah smartphone anda mampu “berinteraksi” dengan smartphone yang lainnya tanpa anda perintah. Dengan kata lain smartphone anda seperti makhluk hidup yang mampu berkomunikasi mandiri. IoT juga yang membuat kita mengenal iPv6 dan jaringan 5G. Tidak hanya smartphone, tetapi device yang lain juga mampu berkomunikasi.

Sounds like movie right? Tapi itulah faktanya

Pada tahun 2020 di estimasi akan ada lebih dari 20 milyar device yang akan saling terkoneksi nantinya. Fokus pada artikel ini adalah menjelaskan tentang Chatbot dan Machine Learning selamat membaca.

Chatbot itu apa sih?

Pada artikel-artikel saya sebelumnya, saya sudah mendefinisikan seperti apa itu chatbot. Intinya adalah Chatbot adalah sebuah sistem dialog yang dirancang untuk berkomunikasi dengan manusia. Pada saat ini beberapa chatbot sudah mampu berkomunikasi secara langsung kepada manusia, baik menggunakan suara atau text, tetapi sebagian lainnya masih seperti search engine pada umumnya. Berikut adalah beberapa langkah yang dilakukan oleh chatbot untuk memproses informasi dari manusia:

Langkah-nya ialah mengubah inputan user menjadi konteks yang dimengerti oleh chatbot. Bagaimana caranya? Menggunakan input recognizers dan decoders yang menganalisis ucapan, text bahkan gesture. Berikutnya Kita mengaplikasikan Natural Language Processing untuk meng-analisis text dan mencari semantic. Input diatur dan diproses oleh dialog manager untuk memasitkan bahwa alur informasi sudah tepat dari dan kepada user.

On the other hand, dialog manager juga memastikan bahwa inputan yang diberikan pecahkan oleh task manager. Selanjutnya, output manager akan menerjemahkan hasilnya menjadi output yang dapat diterima oleh manusia. Natural language generator berfungsi meniru cara manusia berinteraksi, dari tulisan hingga mimik visual.

Interface untuk IoT

Pertanyaan selanjutnya, pada platform apa chatbot mampu bergerak didalam lingkup IoT, well diantaranya ada Facebook Messenger yang SDK-nya disediakan dan mampu meng-integrasikan layanannya sendiri. Sebagai contoh penulis akan mengambil integrasi antara Uber dan Facebook Messenger yang mampu membuat kita memesan mobil dan menentukan rute sekaligus mengetahui jumlah yang harus dibayarkan.

Saya coba jelaskan dengan bahasa yang lebih familiar, di Indonesia kita memiliki aplikasi yang tidak asing ditelinga kita yaitu gojek. Nah menariknya, selama ini kita memesan gojek dengan aplikasi-nya tersendiri bukan dengan chatting, kita juga perlu mencari lokasi kita dan lokasi tujuan. Apabila itu dihandle dengan chatbot, kita cukup mengatakan “dari posisi saya saat ini ke gedung LKPP” selesai! Apabila alamatnya sangat spesifik anda cukup input kan atau cari lewat map.

Dari hal ini kita mengambil sebuah kesimpulan bahwa sebuah sistem seperti chatbot dengan machine learning membutuhkan peranan natural language processing untuk mengkonversi inputan menjadi bahasa mesin dan sebaliknya.

NLP, Dialog System dan Tugas-tugasnya

Belakangan ini beberapa perusahaan berusaha mengembangkan chatbot agar terasa mirip dengan manusia dan berkompetisi satu sama lainnya. Jika kita flashback kebelakang bahwa chatbot awalnya dibangun dengan menggunakan pattern recognition atau rule based expression matching atau machine learning yang simpel, yang intinya chatbot berusaha menangkap kata kunci untuk memberikan jawaban kembali kepada user. Hal ini yang menyebabkan chatbot terasa cukup kaku didalam membahas suatu topik terkonsentrasi sekalipun.

Chatbot yang baru lebih terasa cerdas dengan menggunakan deep learning yang mampu menganalisis inputan dari user dan juga menghasilkan sebuah jawaban. NLP (Natural Language Processing) berperan menerjemahkan input dan ouput pada bahasa yang di mengerti oleh manusia dan mesin. Masalah yang sering terjadi saat ini ialah chatbot seringkali mengalami kesalahan gramatical didalam menjawab sebuah pertanyaan yang diberikan. Untuk mengatasi hal ini diperlukan pelatihan yang luar biasa lama lama dan mahal.

Bentuk pertanyaan juga bisa menjadi masalah pada chatbot. Pertanyaan yang pendek bisa lebih cepat di proses sedangkan pertanyaan panjang lebih sulit diproses karena NLP harus menangkap maksud dari pertanyaan tersebut kemudian me-ringkas itu. Selain me-ringkas berikut ini adalah contoh-contoh dari implementasi NLP yang bisa dipelajari:

  • Summarization

Peringkasan terkait dengan jumlah inputan yang besar diringkas menjadi pendek dan tepat, seperti pada contoh pada bot ini.

  • Open and Closed Question

Lebih tepatnya ini bot yang mejawab pertanyaan general atau pertanyaan terkonsentrasi

  • Conference

Jujur pada bagian ini saya kurang begitu mengerti, pada artikel aslinya menyebutkan bahwa benda-benda dan kata-kata saling berhubungan dengan contoh “The Office is situated in Rotterdam”. Bot mampu menyebutkan kata lain sesuai dengan maksud office tersebut. Mungkin ada yang bisa membantu saya menerjemahkan ini?

  • Ambiguity

Seperti yang kita tahu, bot bertanggung jawab untuk menghubungkan makna dengan sebuah kata yang benar dan tata bahasa yang bersifat ambigu

  • Morphology

Dikarenakan setiap bot memiliki morfologi yang berbeda, chatbot harus bisa memisahkan menjadi morfem-morfem secara individual

  • Semantics

Makna kalimat atau bahasa alami manusia yang terkait. Bisa dibilang ini adalah pemahaman dan cara untuk merespon dari input pertanyan

  • Text Structure

Terkait dengan struktur teks, tanda baca, penggunaan spasi dan lain-lain yang bersifat teknis.

  • Sentiment

Chatbot harus bisa mendeteksi polaritas emosional subjek yang dibicarakan oleh manusia. Yang nantinya akan dipaparkankan dari jawaban yang dilontarkan oleh chatbot itu sendiri untuk lebih ramah terhadap emosi manusia.

Machine Learning

Seperti halnya NLP, Machine learning merupakan salah satu AI pada komputer science, hanya saja, machine learning bisa diaplikasikan dimana saja, sedangkan NLP lebih fokus terhadap pengoalahan bahasa alami (seperti chatbot). Didalam machine learning memiliki dua jenis algoritma pembelajaran, yaitu supervised dan unsupervised. Untuk jenis supervised sendiri merupakan algoritma yang input dan hasilnya merupakan value yang diinginkan, yang berarti algoritma jeneisini menetapkan fungsi yang disimpulkan ke data sehingga data yang baru sekalipun tetap menghasikan output yang sama. Terbalik dengan unsupervised dimana mesinnya sendiri yang memberikan fungsi untuk yang menyimpulkan data melalui analisis dan ekstrapolasi pola dari raw data. Hal yang perlu kita kenal lainnya didalam machine learning yaitu terdapat layer yang dapat menganalisis data secara hirarki kemudian mengekstrak baik pada algoritma supervised dan unsupervised. Dan juga hidden layer yang adalah bagian dari pengolahan data dan neural network.

Neural Networks

Merupakan salah satu dari algoritma pembelajaran pada machine learning yang memiliki layer-layer untuk melakukan analisis dan mempelajari data.

Hampir disetiap hidden layer mencoba mendeteksi pola pada gambar, begitu pola terdeteksi maka layer berikutnya akan melanjutkan perkerjaannya. Gambar diatas adalah contoh yang bisa dijadikan gambaran, dimana pada layer pertama mencoba mendeteksi pada bagian tepi, kemudian layer berikutnya menggabungkan dengan sisi lain yang ditemukan, hingga pada akhirnya mendeteksi pola roda atau dan jendela. Secara garis besarnya bisa dibilang semakin banyak layernya maka akan semakin kompleks sistem dan semakin akurat hasilnya (walau pun tidak selalu seperti itu, anda bisa cek di tulisan blog saya sebelumnya).

Machine Learning Algorithm

Berikut ini adalah beberapa algoritma pembelajaran pada machine learning yang umum ditemukan:

Decision Tree Algorthms

Pada algoritma ialah bagaimana membuat keputusan berdasarkan decision tree dari kemungkinan dan konsekuensinya, hingga biaya, peluangh dan utilitas. Metode ini memungkinan untuk melakukan pendekatan secara logis dan bertahap untuk mencapai kesimpulan yang cocok.

Bayesian Algorithms

Menerapkan teorema Bayesian untuk masalah regresi dan klasifikasi yang terkait probalilitas. Algoritma ini mencoba menunjukkan hubungan porbalilistik antra variabel yang berbeda kemudian menentukannya.

Regression Algorithms

Lebih cocok dipakai untuk stastistical machine learning, algoritma regresi akan mencari lalu memodelkan hubungan antara variabel. Dengan meng-observasi relasi maka kita akan bertujuan membentuk sebuah fungsi. Yang berarti akan lebih banyak variabel yang perlu diamati.

Support Vector

Merupakan algortima yang digunakan untuk melakukan pengelompokan titik pada demensional plane. Pengelompokan dilakukan dengan menciptakan hyperplane yang memisahkan kelompok dengan margin selebar mungkin.

Ensemble methods

Menggabungkan beragam algoritma supervised learning. Dengan kombinasi dari model yang berbeda untuk memproduksi hasil yang lebih baik. Dengan mengkombinasikan beberapa mtode kita bisa meng-handle bias dengan model-model tertentu.

Clustering Algorithms

Tujuan dari algoritma mengelompokkan data yang ada ke dalam kelompok-kelompok, dimana data-data yang mirip dibandingkan dengan kelompok lain. Metode pengelompokan yang lebih penting adalah hirarkis, sentroid, distribusi dan densitas.

Association Rule Learning Algorithms

Ini adalah aturan yang dibangun antara itemstes dan setiap transaksi untuk item ini. Antara relasi antara X dan Y, aturan ini ditemukan untuk mengobservasi database dengan itemset dan item therein.

Artficial Neural Network Algorithms

Terinspirasi dari otak manusia, algoritma ini berinteraksi dan berkomunikasi satu sama lainnya. Disetap komunikasi merupakan berat (weighted) dari pembelajaran sebelumnya dan setiap inputan baru akan diperlakukan dari pembelajaran sebelumnya. Algoritma ini yang nantinya akan dikenal sebagai deep learning untuk pembelajaran lebih detail.

Dimensionality Analysis Algorithms

Merupakan jumlah variabel didalam data dan dimensi yang dimilikinya. Jenis analisis ini bertujuan mengurangi jumlah dimensi dengna variabel terkait sedangkan pada saat yang sama juga mempertahankan informasi yang sama. Dengan kata lain menghapus data yang kurang tetapi hasilnya juga tetap sama.

--

--