Sunday, April 12, 2015

Tweetbot menggunakan Algoritma Latent Semantic Analysys

 Sesuai dengan skripsi saya,saya sedang dalam proses membuat suatu account twitter yang dapat bekerja secara semantic dalam proses pencarian. Hasil dari yang saya buat ini adalah aku twitter yang nantinya dapat autotweet segala sesuatu yang bermakna diskon. Saya menggunakan Algoritma Latent Semantic dalam proses filternya.Nantinya, sistem hanya autotweet tweet yang bermakna diskon, apabila hanya ada kata “diskon” tetapi maknanya bukan memberitahu diskon, maka tidak akan ditampilkan. Hal ini menuntut sistem bekerja layaknya manusia yaitu dapa memilih dan mengetahui suatu makna tertentu.

ALGORITMA

Metode LSA (Latent Semantic Analysis)
Metode LSA (Latent Semantic Analysis) adalah salah satu metode yang digunakan untuk mencari kesamaan dokumen dengan dokumen lainnya. Metode ini juga memiliki beberapa tahap dalam mencari kesamaan dokumen. Tahap pertama yaitu parsing text, yaitu untuk mencari frekuensi kemunculan term dari dokumen dengan melakukan proses tokenisasi, filtering (stopwords removal), tahap yang terakhir yaitu dengan cosine similarity untuk menghitung kesamaan dokumen yang dibandingkan.


TF - IDF (Term Frequency - Inverse Document Frequency)
Algoritma tf - idf adalah suatu algoritma atau formula yang digunakan untuk menghitung bobot masing masing dokumen terhadap kata kunci. —Term frequency (tf) adalah frekuensi dari kemunculan sebuah term dalam dokumen yang bersangkutan, sedangkan —Inverse document frequency (idf) adalah suatu statistik yang mengkarakteristikkan sebuah term dalam keseluruhan koleksi dokumen [2]. TF merupakan pembobotan yang sederhana dimana penting tidaknya sebuah kata diasumsikan sebanding dengan jumlah kemunculan kata tersebut dalam dokumen, sementara IDF adalah pembobotan yang mengukur seberapa penting sebuah kata dalam dokumen bila dilihat secara global pada seluruh dokumen. Nilai pembobotan TF x IDF akan tinggi jika nilai TF besar dan kata yang diamati tidak ditemukan di banyak dokumen [3].

Keterangan :
N : Jumlah dokumen
dft : Jumlah dokumen yang mengandung term yang bersangkutan
tfd,t : Frekuensi dari
kemunculan sebuah term dalam dokumen yang bersangkutan

Vector S M
Vector Space Model (vektor ruang model) banyak digunakan untuk mempresentasikan dokumen ke dalam bentuk sebuah ruang vektor yang selanjutnya akan digunakan dalam pencarian dan penyaringan informasi, pengindeksan dan penyusunan peringkat berdasarkan tingkat relevansi terhadap dokumen lain.

Cosine Similarity
Cosine Similarity adalah salah satu metode dalam menghitung kesamaan pada dua buah vektor dengan cara mengukur sudut cosinus dari kedua vektor tersebut. Dalam kasus ini vektor tersebut akan di dapatkan menggunakan VSM (Vector Space Model). Dengan cara inilah Sosine Similarity dapat digunakan untuk melakukan perhitungan kesamaan dari dokumen. Rumus yang digunakan oleh cosine similarity adalah :

Cosine similarity memiliki indeks dari 0 sampai dengan 1 dimana apabila hasilnya 1 dapat diambil kesimpulan bahwa sudut yang dibentuk dari dua buah vektor tersebut adalah 0 derajat (Cos 0 = 1). Ini berarti kedua buah vektor yang dibentuk dari dokumen adalah sama. Apabila hasilnya 0 maka sudut yang dibentuk dari dua buah vektor tersebut adalah 90 derajat (Cos 90 = 0). Dimana kedua buah vektor dokumen tersebut berbeda jauh.

Metode Perhitungan Semantic Similarity
Perhitungan semantic similarity ini diimplementasikan melalui tahap-tahap berikut :
Gambar 1. Perancangan Pembuatan Sistem

Gambar 1 merupakan rancangan sistem yang dilakukan. Berikut akan dijelaskan masing-masing prosesnya :
  1. Masukkan Link
Pada tahap ini, user memasukkan link ke search bar yang tersedia. Terdapat dua search bar, pertama untuk link dengan isi artikel sebagai penguji dan kedua diisi dengan web dimana menyimpan artikel yang diuji.
  1. Simpan Artikel dalam Format Teks
Pada langkah ini, sistem akan mengambil artikel atau postingan yang ada pada web kemudian menyimpannya dalam bentuk teks.
  1. Tokenisasi, Stopwords Removal dan Stemming.
  1. Tokenisasi
Tokenisasi merupakan suatu proses pemisahan setiap kata yang terdapat dalam suatu artikel. Di tahap ini akan dilakukan pemotongan string input berdasarkan tiap kata yang menyusunnya [4].
Langkah-langkah melakukan tokenisasi :
  1. Carilah tanda baca yang ada di dalem artikel (seperti titik, koma,titik dua, titik koma, tanda seru, tanda tanya dan sebagainya).
  2. Hilangkan semua tanda baca tersebut.
  3. Susun dan rapikan kembali artikel.

  1. Stopwords Removal
Tahap ini merupakan proses penghilangan kata-kata tidak penting (stopwords) dari suatu artikel. Proses penghilangan dilakukan dengan pencocokan kata-kata yang ada dalam artikel terhadap sebuah tabel yang berisikan daftar kata-kata tidak penting [5].
Langkah-langkah melakukan stopword removal :
  1. Carilah kata umum yang tidak memiliki makna di dalam artikel (pada umumnya merupakan preposisi, seperti yang, di, ke, dari, dan sebagainya).
  2. Hilangkan semua stopword tersebut.
  3. Susun dan rapikan kembali artikel.

  1. Stemming
Stemming merupakan proses pengembalian suatu kata berimbuhan ke bentuk dasarnya (root word). [5].
Langkah-langkah melakukan stopword removal :
  1. Carilah kata yang memiliki imbuhan dan akhiran lalu ubahlah menjadi kata dasarnya (contoh : merubah >> ubah, melupakan >> lupa, dan lain-lain).
  2. Susun dan rapikan kembali artikel.

Karena nantinya akan berhubungan dengan interaksi pengguna twitter lainnya, maka saya juga membutuhkan sebuag agent communication language dan bahasa natural alami. Saya juga akan memodelkan percakapan. Nantinya saya akan membuat dengan menggunakan ptyhon dan library gensim.

Agent Comunication Language (ACL)
Sebuah Agent Comunication Language (ACL) adalah agen yang dapat berkomunikasi dengan agen lain untuk menyelesaikan tugas-tugas. Seperti bahasa yang harus menjadi salah satu tempat inkonsistensi dan menyeleksi variasi notasi secara acak. Dalam pencarian untuk bahasa seperti itu, para peneliti di ARPD Knowledge Sharing Effort [Neches, 1993] mendefinisikan komponen ACL mampu memenuhi standar tersebut.
Menurut definisi ini, pesan ACL hanyalah sebuah ekspresi KQML dimana argumen adalah kalimat KIF terbentuk dari kata-kata dalam kosa kata ACL. Biasanya , ACL disusun dalam tiga lapisan yaitu :
  • Protokol komunikasi agen umum
  • Format umum untuk isi pesan komunikasi
  • Ontologi bersama (semantik)
Oleh karena itu, arsitektur agen perlu kedua representasi dan model komunikasi di mana model representasi meliputi ontologi yang menentukan model domain atau kosakata dari domain wacana dan konten bahasa yang mewakili keseluruhan agen (misalnya keyakinan, keinginan dan niat). ACL terkadang disebut sebagai bahasa pembungkus karena mereka menerapkan tingkat pengetahuan protokol komunikasi yang tidak menyadari pilihan bahasa konten dan mekanisme spesifikasi ontologi.

Bahasa Alami ( Natural Language)

Bahasa adalah suatu sistem untuk komunikasi yang terdiri simbol dan aturan yang digunakan untuk mengekspresikan ide, pikiran dan perasaan. Bahasa alami adalah bahasa yang dipakai oleh manusia untuk berkomunikasi dalam kehidupan sehari-hari. Bahasa alami yang digunakan oleh manusia tergantung dengan daerah di mana manusia tinggal. Contoh bahasa alami adalah diantaranya bahasa Indonesia, bahasa Inggris, bahasa Jepang dan lain-lain. Bahasa melibatkan proses pengenalan bunyi atau huruf,sintaksis,kalimat,inferensi semantik tingkat tinggi, bahkan komunikasi emosi lewat irama bicara [Rudiyanto, 2005]
Bahasa alami sendiri oleh para ahli didefinisikan menjadi beberapa tingkat analisis yang berbeda yaitu :
  • Persanjakan. Persanjakan berhubungan dengan ritme dan intonasi
  • Fonologi. Fonologi merupakan analisis bunyi yang tergabungkan untuk membentuk bahasa.
  • Morfologi. Morfologi menyimak komponen-komponen yang memiliki makna yang membentuk kata, antara lain melibatkan awalan dan akhiran yang mengubah arti kata-kata dasar.
  • Sintaksis. Sintaksis merupakan studi yang menyimak tentang aturan penggabungan kata menjadi frase dan kalimat yang diperkenankan dan pemakaian aturan-aturan tersebut menjadi kalimat. Semantik menyimak arti kata,frase dan kalimat serta cara penyampaiannya dalam bahasa alami.
  • Pragmatik. Pragmatik merupakan studi tentang cara penggunaan bahasa dan pengaruhnya pada pendengar.
  • Pengetahuan tentang dunia sekitar, pengetahuan tentang dunia sekitar mencakup pengetahuan dunia fisis, dunia interaksi sosial dan peranan tujuan dalam komunikasi.
Unit dasar bahasa adalah kalimat. Kalimat menyatakan pikiran secara lengkap dalam bentuk pertanyaan, perintah atau seruan. Kalimat terdiri dari unit-unit individual yang disebut kata. Kata itu sendiri akan memiliki makna jika dihubungkan dengan kata yang lain.
Linguistik adalah bidang ilmu yang khusus mengkaji tentang bagaimana bahasa distrukturkan dan digunakan. Bidang ilmu ini salah satunya membahasa tentang perbendaharaan kata dan leksikon.
Pembendaharaan kata adalah sekumpulan kata-kata dan frase-frase yang digunakan dalam bahasa tertentu. Sebagai bagian dari pengkajian bahasa, linguis mendefinisikan semua kata-kata dan frase-frase yang digunakan secara umum kemudian mengorganisasikannya ke dalam sebuah leksikon. Leksikon adalah kamus yang mendaftar kata-kata bahasa secara alfabet

    1. Tahap Analisis NLP
      Secara umum, ada tiga tahapan untuk analisis pemahaman bahasa alami yaitu :
      1. Parsing(penguraian) merupakan tindakan menganalisa struktur sintaks kalimat. Parsing tidak hanya membuktikan bahwa kalimat dapat dibentuk secara sintaksis, tetapi juga dapat menentukan struktur lingustiknya. Dengan mengidentifikasi hubungan-hubunganlingustik utamanya seperti subject-verb,verb-object, dan noun-modifier, maka penguraian(parser) memberikan suatu kerangka/bentuk diagram bagi interpretasi semantik dan hal ini sering kali digambarkan dalam pohon pengurai. Penguraian menggunakan pengetahuan sintaks bahasa, morfologi dan beberapa semantik bahasa.
      2. Interpretasi semantik, pada tahap ini menghasilkan suatu representasi arti dari teks. Representasi lain umumnya digunakan, meliputi ketergantungan konseptual, bingkai dan representasi berbasis logika. Interpretasi semantik menggunakan pengetahuan tentang arti kata dari struktur linguistiknya, seperti peranan kata benda atau transitivitas kata kerja. Tahap ini juga melakukan pengujian konsistensi semantik.
      3. Struktur-struktur dari basis pengetahuan ditambahkan pada representasi kalimat untuk menghasilkan representasi perluasan dari arti kalimat. Struktur yang dihasilkan merepresentasikan makna dari teks bahasa alami dan digunakan oleh sistem untuk pemrosesan lebih jauh.
      Chat Box
        Kata bot berasal dari kata robot, yang dapat diartikan sebagai sebuah program komputer yang berfungsi mengumpulkan informasi atau memberikan layanan yang biasanya telah dijadwalkan sebelumnya. Sebuah bot biasanya mencari informasi di internet, mengumpulkan informasi sesuai dengan yang diinginkan, kemudian mengeluarkan atau memberikan output secara periodik atau sesuai dengan perintah.
        Bot biasa digunakan dalam IRC (Internet Chat Group) di mana bot tersebut melakukan berbagai fungsi seperti menyapa partisipan baru dan memonitor penggunaan kata-kata yang tidak pantas. Sekarang ini, bot dapat mengumpulkan informasi, mengolah informasi tersebut dan memberikan respon terhadap pengguna dan event yang terjadi di internet. Beberapa jenis bot bekerja secara silent di internet tanpa sepengetahuan, namun ada pula bot yang bekerja secara interaktif yang dapat diajak berbicara yaitu chat bot
          Chat bot adalah sebuah simulator percakapan yang berupa program komputer yang dapat berdialog dengan penggunaannya dalam bahasa alami. Karena chat bot hanya sebuah program bukan robot, maka yang dimaksud dengan dialog antara manusia sebagai pengguna dengan chat bot dilakukan dengan cara mengetik apa yang akan dibicarakan dan chat bot akan memberikan respon. Orang yang membuat dan mengembangkan program chat bot disebut bot master.
    1. Turing Test
Turing test adalah usulan untuk mengetes kemampuan sebuah mesin untuk melakukan percakapan seperti manusia. Konsep dari Turing test sebagai berikut : Seorang manusia sebagai penilai melakukan percakapan bahasa alami dengan dua pihak lain, satu manusia dan satunya lagi mesin, jika penilai tidak dapat mengatakan yang mana mesin dan yang mana manusia, maka mesin tersebut telah berhasil melalui tes tersebut. Diasumsikan bahwa mnusia dan mesin mencoba untuk terlihat seperti manusia. Untuk menjaga test diatur lebih sederhana dan universal, percakapan biasanya dibatasi dengan teks saja.


Memodelkan Percakapan
    Pembuatan model dialog menggunakan notasi. Berikut beberapa notasi :
  • Instances. Biasanya berupa tugas, proses atau benda. Instances yang diwakili oleh simbol-simbol yang disebut life line
  • Pesan. Sebuah pesan dikirim oleh sebuah instance dan diterima oleh instance yang lain yang diwakili oleh garis depan panah yang menunjukkan tujuan pesan
  • Timer. Sebuah instance dapat dimulai dengan timer, yang akan berhenti dalam waktu-waktu tertentu. Sebuah timer juga dapat dibatalkan oleh instance yang menciptakannya



Referensi

http://apranolo.tif.uad.ac.id/wp-content/uploads/2014/12/Bab-5-Natural-Language-Processing.pdf 14 maret

http://ir.uiowa.edu/cgi/viewcontent.cgi?article=1246&context=etd#page=2&zoom=auto,0,749 17 maret

http://ebiquity.umbc.edu/_file_directory_/papers/185.pdf 17 maret

http://www.lirmm.fr/~jonquet/publications/documents/RR-LIRMM-05006-Jonquet-Cerri-01-05.pdf 17 maret



1 comment:

  1. Mas artikel y bagus, bisa beri rujukan buku buat lsa ga mas, saya lg TA bingung cari rujukanya
    Mksh

    ReplyDelete