Kamis, 23 November 2017

Natural Language Processing ( NLP )


  • Definisi NLP

Natural Language Processing merupakan operasi komputer menggunakan bahasa alami manusia misalnya bahasa inggris yang sering digunakan untuk menerima suatu respons maupun memberikan suatu instruksi.  Natural Language Processing  juga bisa diartikan suatu formulasi dan penelitian terhadap suatu mekanisme perhitungan yang efektif pada suatu  komputer agar bisa berinteraksi atau  berkomunikasi dengan menggunakan bahasa alami. Mekanisme ini melibatkan natural language generation (NLG) dan understanding. Sebuah arsitektur yang memuat tentang salah satu natural language generator maupun Natural Language Understanding (NLU) dapat dikatakan memuat tentang  Natural Language Processing. Apabila user dapat berinteraksi dengan komputer dengan  bahasa alami maka terbukti  arsitektur tersebut mempunyai Natural Language Processing didalamnya. Secara teori kebanyakan arsitektur dapat diterapkan ke dalam suatu  program dengan suatu  cara tertentu agar dapat mendukung Natural Language Processing. Misalnya dengan cara  mengimplementasikan arsitektur yang sudah ada untuk menunjukan apakah arsitektur tersebut  mendukung Natural Language Processing atau tidak. Penggunaan bahasa alami di dunia komputer biasanya digunakan pada sebuah laporan  misalnya prakiraan cuaca, laboratorium medis dan lain-lain.

  • Tahap-tahap NLP

Menurut Rich dan Knight (1991, pp379-380) tahapan Natural Language Processing terdiri dari beberapa level analisis . Level analisis tersebut adalah:

a. Morphological Analysis
Kata-kata secara individu dilakukan analisis berdasarkan komponennya, dan token yang tidak termasuk, seperti tanda baca dipisahkan dari kata-kata yang ada. Analisis ini memperhatikan arti dari setiap komponen yang ada  membentuk suatu kata. Analisis morfologi sangat penting untuk menentukan aturan kata yang ada dalam pada kalimat, termasuk tata bahasa.

b. Syntax Analysis
Urutan-mutan linear dari kata-kata diubah menjadi struktur yang menunjukkan bagaimana satu kata berhubungan dengan kata yang lain.Dimana analisis ini mempelajari aturan untuk menggabungkan kata menjadi frase dan kalimat, serta menggunakan aturan tersebut untuk menguraikan (parse) dan membentuk kalimat. Level analisis ini yang lebih banyak berhasil.

c. Semantic Analysis
Struktur yang diciptakan dari hasil  analisis sintaksis akan diperiksa arti yang sebenarnya. Kalau struktur tersebut tidak memenuhi persyaratan kaidah bahasa, maka kalimat tersebut dapat dianggap anomali semantik
.
d. Discourse Integration
Mungkin saja arti dari suatu kalimat bergantung dari kalimat sebelumnya dan mungkin dapat mempengaruhi kalimat-kalimat selanjutnya.

e. Pragmatics Analysis
Meinterpretasikan lagi apa yang di katakan dimana sebelumnya telah direpresentasikan oleh struktur tersebut guna untuk menentukan apa yang dimaksud sebenarnya.
Batasan-batasan dari kelima fase ini kadang-kadang belum jelas. Fase tersebut kadang dilakukan secara bertahap, tetapi kadang-kadang dilaksanakan sekaligus.

  • Aplikasi NLP
Secara umum, Jenis aplikasi yang bisa dibuat dalam bidang ilmu NLP terbagi dua, yaitu text-based application dan dialogue-based application.
Text-based application adalah segala macam aplikasi yang melakukan proses terhadap teks tertulis seperti misalnya dokumen, e-mail, buku dan sebagainya. Beberapa jenis aplikasi NLP yang berbasis teks :

1. Programs for classifying and retrieving documents by content

Program yang mampu mengklasifikasi dan mengambil isi dari suatu dokumen berdasarkan kontennya. Seperti spam filtering (pemfilteran pesan sampah), language identification (identifikasi bahasa), dan lain-lain.

2. Machine Translation


Program yang mampu mentranslasi kalimat baik berupa teks maupun suara dari satu bahasa alami ke bahasa lainnya. Contoh : Google Translate.



Dialogue-based application idealnya melibatkan bahasa lisan atau pengenalan suara, akan tetapi bisa juga memasukan interaksi dialog dengan mengetikkan teks pertanyaan melalui keyboard. Contoh :

1. Intelligent personal assistant

Perangkat lunak yang mampu melakukan tugas-tugas dan jasa berdasarkan inputan dari pengguna, lokasi, dan memiliki kemampuan untuk mengakses informasi dari berbagai sumber online (seperti cuaca, keadaan lalu lintas, berita, saham, dll). Contohnya adalah Siri pada produk-produk Apple dan S-Voice pada produk-produk seluler Samsung.


2. Chatbot

Chatbot adalah program komputer yang didesain untuk mensimulasikan sebuah percakapan cerdas dengan satu atau lebih pengguna manusia melalui inputan suara atau teks, utamanya digunakan untuk percakapan kecil. Contoh : Cleverbot, SimSimi, dan begobet.


Sumber : 

INTERNATIONAL JOURNAL OF TECHNOLOGY ENHANCEMENTS AND EMERGING ENGINEERING RESEARCH, VOL 1, ISSUE 4 131 ISSN 2347-4289



Rabu, 22 November 2017

Sistem Pakar


  •  Definisi Sistem Pakar
Sistem pakar adalah salah satu cabang dari AI yang membuat penggunaan secara luas knowledge yang khusus untuk penyelesaian masalah. Seorang pakar adalah orang yang mempunyai keahlian dalam bidang tertentu,yaitu pakar yang mempunyai knowledge atau kemampuan khusus yang orang lain tidak mengetahui atau mampu dalam bidang yang dimilikinya. Ketika sistem pakar dikembangkan pertama kali sekitar tahun 70-an sistem pakar hanya berisi knowledge. Namun demikian sekarang ini istilah sistem pakar sudah di gunakan untuk berbagai macam sistem yang menggunakan teknologi sistem pakar itu. Profesor Edward Fieganbaum(1982 : 1) dari Universitas Stanford sebagai seorang pelopor awal dari teknologi sistem pakar, mendefinisikan sistem pakar sebagai "… suatu program komputer cerdas yang menggunakan knowledge dan prosedur inferensi untuk menyelesaikan masalah yang cukup sulit sehingga membutuhkan seorang yang ahli untuk menyelesaikannya.

  • Struktur Sistem Pakar

Sistem pakar disusun oleh dua bagian yaitu lingkungan pengembangan dan lingkungan konsultasi. lingkungan pengembangan sistem pakar digunakan untuk memasukan knowledge  pakar ke dalam lingkungan sistem pakar, sedangkan lingkungan konsultasi digunakan oleh pengguna yang bukan pakar guna memperoleh knowledge pakar.



Komponen utama pada struktur sistem pakar meliputi:

1.    Basis Pengetahuan (Knowledge Base)
Basis pengetahuan merupakan inti dari suatu sistem pakar, yaitu berupa representasi pengetahuan dari pakar. Basis pengetahuan tersusun atas fakta dan kaidah. Fakta adalah informasi tentang objek, peristiwa, atau situasi. Kaidah adalah cara untuk membangkitkan suatu fakta baru dari fakta yang sudah diketahui. Menurut Gondran (1986) dalam Utami (2002), basis pengetahuan merupakan representasi dari seorang pakar, yang kemudian dapat dimasukkan kedalam bahasa pemrograman khusus untuk kecerdasan buatan (misalnya PROLOG atau LISP) atau shell sistem pakar (misalnya EXSYS, PC-PLUS, CRYSTAL, dsb.)

2.    Mesin Inferensi (Inference Engine)
Mesin inferensi berperan sebagai otak dari sistem pakar. Mesin inferensi berfungsi untuk memandu proses penalaran terhadap suatu kondisi, berdasarkan pada basis pengetahuan yang tersedia. Di dalam mesin inferensi terjadi proses untuk memanipulasi dan mengarahkan kaidah, model, dan fakta yang disimpan dalam basis pengetahuan dalam rangka mencapai solusi atau kesimpulan. Dalam prosesnya, mesin inferensi menggunakan strategi penalaran dan strategi pengendalian.
Strategi penalaran terdiri dari strategi penalaran pasti (Exact Reasoning) dan strategi penalaran tak pasti (Inexact Reasoning). Exact reasoning akan dilakukan jika semua data yang dibutuhkan untuk menarik suatu kesimpulan tersedia, sedangkan inexact reasoning dilakukan pada keadaan sebaliknya.
Strategi pengendalian berfungsi sebagai panduan arah dalam melakukan prose penalaran. Terdapat tiga tehnik pengendalian yang sering digunakan, yaitu forward chaining, backward chaining, dan gabungan dari kedua tehnik pengendalian tersebut.

3.    Basis Data (Database)
Basis data terdiri atas semua fakta yang diperlukan, dimana fakta-fakta tersebut digunakan untuk memenuhi kondisi dari kaidah-kaidah dalam sistem. Basis data menyimpan semua fakta, baik fakta awal pada saat sistem mulai beroperasi, maupun fakta-fakta yang diperoleh pada saat proses penarikan kesimpulan sedang dilaksanakan. Basis data digunakan untuk menyimpan data hasil observasi dan data lain yang dibutuhkan selama pemrosesan.

4.    Antarmuka Pemakai (User Interface)
Fasilitas ini digunakan sebagai perantara komunikasi antara pemakai dengan sistem.



  • Beberapa Contoh Sistem Pakar

1.      MYCIN
Memberikan diagnosa dan solusi pengobatan penyakit.
2.      MACSYMA
Menangani masalah matematika.
3.      DENDRAL
Mengidentifikasi struktur molekular campuran yang tidak dikenal.
4.      XCON&XSEL
Membantu konfigurasi sistem komputer besar.
5.      SOPHIE
Melakukan analisis sirkuit elektronik.
6.      Prospector
Membantu mencari dan menemukan deposit dalam geologi.
7.      FOLIO
Membantu memberikan keputusan bagi seorang manajer dalam hal stok broker dan investasi.
8.      DELTA
Pemeliharaan lokomotif disel.

  • Kelebihan & Kekurangan Sistem Pakar

Sistem pakar sekarang banyak digunakan baik pada aplikasi bisnis maupun apikasi lainnya. Akan tetapi perlu juga diketahui bahwa seperti halnya sistem yang lainnya, selain memberikan banyak kelebihan, sistem pakar juga mempunyai beberapa kelemahan. 
Kelebihan-kelebihan dari sistem pakar secara umum adalah sebagai berikut:

1. Memberikan pengambilan keputusan yang lebih baik. Karena sistem pakar memberikan jawaban yang konsisten dan logis dari waktu ke waktu. Jawaban yang diberikan logis karena alasa logiknya dapat diberikan oleh sistem pakar dalam proses konsultasi.

2. Memberikan solusi tepat waktu. Kadang kala seorang manajer membutuhkan jawaban dari pakar, tetapi pakar yang dibutuhkan tidak berada ditempat, sehingga keputusan menjadi terlambat. Dengan sistem pakar, jawaban yang dibutuhkan oleh pengambil keputusan selalu tersedia setiap saat dibutuhkan.

3. Menyimpan pengetahuan di organisasi. Pengetahuan pakar merupakan hal yang penting dan kadang kala pengetahuan iniakan hilang jika pakar keluar atau telah pensiun dari perusahaan. Dengan sistem pakar, pengetahuan dari pakar dapat disimpan di sistem pakar dan tersedia terus selama dibutuhkan.

Kekurangan-kekurangan dari sistem pakar adalah sebagai berikut:

1. Sistem pakar hanya dapat menangani pengetahuan yang konsisten. Sistem pakar dirancang dengan aturan-aturan yang hasilnya sudah pasti dan konsisten sesuai dengan alur di diagram pohonnya. Untuk pengetahuan yang cepat berubah-rubah dari waktu ke waktu, maka knowledge base di sistem pakar harus selalu diubah (perbaruired), yang tentu cukup merepotkan.

2. Sistem pakar tidak dapat menangani hal yang bersifat judgement. Sistem pakar memberikan hasil yang pasti, sehingga keputusan akhir pengambilan keputusan jika melibatkan kebijaksaaan dan institusi masih tetap di tangan manajemen.

3. Format knowledge base sistem pakar terbatas. Knowledge base pada sistem pakar berisi aturan-aturan (rules) yang ditulis dalam bentuk statemen if-then.

SUMBER:
Jurnal Teknologi Informasi DINAMIK Volume XIII, No.2, Juli 2008 : 115-124 ISSN : 0854-9524
Dym, Clive L & Levitt, Raymond E, Knowlegde-Based Systems in Engineering, McGraw-Hill, Singapore, 1991
Endra Pitowarno, Robotika: Disain, Kontrol, dan Kecerdasan Buatan, Andi, Yogyakarta, 2006.
 Giarratano, J and G. Riley, Expert System : Principle and Programming, 4th ed, PWS Kent, USA,2004