Tuesday, May 19, 2015

Tweetbot menggunakan Library Gensim pada Python

Pada tulisan saya kali ini adalah membuat tweetbot menggunakan gensim pada python
1.Install python terlebih dahulu, saya menggunakan python versi terbaru yaitu python 2.7.9





2. Setelah install python,register akun twitter (apabila belum dibuat), apabila sudah punya maka login pada twitter.com
3. Buka apps.twitter.com kemudian isi form nama application ini merupakan form dari informasi dan kerja aplikasi








4. Kemudian klik "Create your app"
5. Apabila aplikasi yang sudah kita buat berhasil maka akan ada tampilan seperti dibawah ini. Buka tab detail. Untuk consumer key saya sengaja di tutupi karena ini merupakan privacy yang harus dijaga demi masalah keamanan

6. Tab key. Key ini nantinya akan digunakan dalam koding pada python pada tahap memanggil API twitter



7. Kemudian klik "Create my access token"



Python
Sejarah Python

    Python dikembangkan oleh Guido van Rossum pada tahun 1990 di CWI, Nama Python dipilih Guido van Rossum sebagai nama bahasa ciptaannya karena kecintaanya pada acara televisi Monty Python's Flying Circus. Amsterdam sebagai kelanjutan dari bahasa pemrograman ABC . Versi terakhir yang dikeluarkan dari CWI adalah 1.2.
     Tahun 1995 Guido van Rossum pindah ke CNRI dan terus melanjutkan pengembangan Python. Versi terakhir yang dikeluarkan adalah 1.6. Pada Tahun 2000, Guido van Rossum dan para pengembang inti Python pindah ke BeOpen.com yang merupakan sebuah perusahaan komersial dan membentuk BeOpen PythonLabs. Python 2.0 dikeluarkan oleh BeOpen. Setelah mengeluarkan Python 2.0, Guido van Rossum dan beberapa anggota tim PythonLabs pindah ke DigitalCreations.
   Saat ini pengembangan Python terus dilakukan oleh sekumpulan pemrogram yang dikoordinir Guido van Rossum dan Python Software Foundation. Python Software Foundation adalah sebuah organisasi non-profit yang dibentuk sebagai pemegang hak cipta intelektual Python sejak versi 2.1 dan dengan demikian mencegah Python dimiliki oleh perusahaan komersial. Saat ini distribusi Python sudah mencapai versi 2.6.1 dan versi 3.0.


Fitur Pada Python

  • Memiliki kepustakaan yang luas.
  • Memiliki tata bahasa yang jernih dan mudah dipelajari.
  • Berorientasi obyek.
  • Memiliki sistem pengelolaan memori otomatis (garbage collection, seperti Java).
  • Modular, mudah dikembangkan dengan menciptakan modul-modul baru.
  • Memiliki fasilitas pengumpulan sampah otomatis, python memiliki fasilitas pengaturan penggunaan ingatan komputer sehingga para pemrogram tidak perlu melakukan pengaturan ingatan komputer secara langsung.
  • Memiliki banyak fasilitas pendukung sehingga mudah dalam pengoperasiannya.
Tahap di dalam Python :
1. Install tweepy menggunakan pip dengan cara
    cd C:\Python27\Scripts (enter)
   pip install tweepy (enter)
tunggu beberapa saat sampai sudah selesai mendownload
2. Buat file dan simpan di dalam folder scripts
isi tweetBot.py

import tweepy
class TwitterAPI:
def __init__(self):
consumer_key = ""
consumer_secret = ""
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
access_token = ""
access_token_secret = ""
auth.set_access_token(access_token, access_token_secret)
self.api = tweepy.API(auth)
def tweet(self, message):
self.api.update_status(status=message)
if __name__ == "__main__":
twitter = TwitterAPI()
twitter.tweet("I'm posting a tweet!")
3. Untuk cosumer_key,consumer_secret,access_token dan access_secret di isi dengan nilai yang sudah kita dapatkan dalam membuat aplikasi di dalam apps.twitter.com
4. Kemudian run tweetBot.py
*demi keamanan aplikasi, untuk key yang dibutuhkan diberikan warna merah
5. Apabila sudah berhasil di run kemudian periksa pada akun twitternya apa sudah berhasil di posting apa belum
Ini merupakan hasil dari posting tweet menggunakan twitter.com. Pada kotak merah terlihat tweet di post via twitter Web Client
Ini hasil posting tweet menggunakan aplikasi yang dibuat dengan Python. Pada kotak berwarna merah, tertulis tweet di posting menggunakan aplikasi DiscountYeah (nama sesuai dengan yang kita input disaat membuat description aplikasi

Gensim
Gensim merupakan open-source model ruangvektor dan pemodelan topik toolkit, diimplementasikan dalam bahasa pemrograman Python, menggunakan NumPy, SciPy dan opsional Cython untuk kinerja. Hal ini secara khusus ditujukan untuk menangani koleksi teks besar, menggunakan algoritma secara online efisien.
Gensim termasuk implementasi tf-idf, proyeksi acak,pembelajaran mendalam dengan algoritma word2vec.

Install Scipy,Numpy,upgrade Gensim

easy_install Scipy
easy_install NumPy
easy_install --ugrade gensim

Menjalankan LSA
 from gensim import corpora, models, utils
>>> import logging
>>> logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)

>>> corpus = corpora.MmCorpus('/tmp/deerwester.mm') # load a corpus of nine documents, from the Tutorials
>>> id2word = corpora.Dictionary.load('/tmp/deerwester.dict')

>>> lsi = models.LsiModel(corpus, id2word=id2word, num_topics=200, chunksize=1, distributed=True) # run distributed LSA on nine documents
Referensi :

http://gustiaguss.blogspot.com/2015/01/pengertian-dan-sejarah-python.html
http://stackoverflow.com/questions/29372611/error-when-running-lda-on-tweets-using-gensim-in-python
https://radimrehurek.com/gensim/tut1.html
https://radimrehurek.com/gensim/dist_lsi.html
https://groups.google.com/forum/#!forum/gensim
http://en.wikipedia.org/wiki/Gensim



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



Tuesday, January 13, 2015

Cash Flow - (Pengantar Bisnis Informatika)





Laporan Pembagian Tugas Kelompok - (Pengantar Bisnis Informatika)



Nama

Job Description


Work Flow

Winda Gardena
1.      Mengatur jadwal rapat dan pembagian tugas
2.      Penyusunan isi makalah dan analisa system manajement keuangan

1.      Membentuk kelompok
2.      Mencari materi
3.      Wawancara
4.      Editor
5.      Upload tugas

Intan Permatasari
1.      Menentukan perusahaan dan mencari profil perusahaan
2.       Mencari informasi sumber daya manusia nya

RR. Syakina Nidiasari
1.      Pengumpulan dan pemilihan berkas dokumen
2.      Mengumpulkan informasi perusahaan

Nurhayati Anissa
1.      Menyusun pertanyaan wawancara
2.      Pembuatan slide presentasi

Muhammad Setiawan
1.      Wawancara pemilik perusahaan
2.      Editor berkas dokumen