IDENTIFIKASI NAMA TEMPAT DARI DOKUMEN TEXT MENGGUNAKAN SINGLE LAYER PERCEPTRON NETWORK
Yono Cahyono 41510110079
PROGRAM STUDI INFORMATIKA FAKULTAS ILMU KOMPUTER UNIVERSITAS MERCU BUANA JAKARTA 2016
http://digilib.mercubuana.ac.id/
IDENTIFIKASI NAMA TEMPAT DARI DOKUMEN TEXT MENGGUNAKAN SINGLE LAYER PERCEPTRON NETWORK
Laporan Tugas Akhir Diajukan Untuk Melengkapi Persyaratan Menyelesaikan Gelar Sarjana Komputer
Disusun oleh : Yono Cahyono 41510110079
PROGRAM STUDI INFORMATIKA FAKULTAS ILMU KOMPUTER UNIVERSITAS MERCU BUANA JAKARTA 2016
http://digilib.mercubuana.ac.id/
http://digilib.mercubuana.ac.id/
http://digilib.mercubuana.ac.id/
IDENTIFIKASI NAMA TEMPAT DARI DOKUMEN TEXT MENGGUNAKAN SINGLE LAYER PERCEPTRON NETWORK Mujiono Sadikin1, Yono Cahyono2 Jurusan Tehnik Informatika, Fakultas Ilmu Komputer, Universitas Mercu Buana Jl. Raya Meruya Selatan, Kembangan, Jakarta 11650 E-mail:
[email protected],
[email protected],
[email protected],
[email protected] ABSTRAK Seiring perkembangan teknologi, lalu lintas dan kebutuhan orang terhadap data meningkat secara signifikan, sehingga volume data semakin bertambah besar, sangat variatif, sangat cepat pertumbuhannya dan mungkin tidak terstruktur. Khususnya text, user menuntut kecepatan akses dan akurasi yang baik dalam menganalisa data yang diperlukan sehingga perlu diolah khusus dengan teknologi inovatif sehingga mendapatkan informasi yang mendalam dan dapat membantu pengambilan keputusan yang lebih baik. Pada penelitian ini, peneliti menggunakan teknik single layer perceptron network untuk mengetahui keakuratan teknik algoritma single layer perceptron network dalam mempelajari dan mengklasifikasi mana text yang merupakan nama tempat dan mana yang bukan nama tempat. Hasil akhir penelitian ini adalah rata-rata training dan testing dari 10 (sepuluh) kali pengujian dari kumpulan data text yang telah diacak. Rata-rata akurasi dari training dari data yang disajikan adalah 50.2% dan rata-rata akurasi testing adalah sebesar 48.3% Kata Kunci: Matlab, Single Layer perception, Dataset, Nama Tempat, SINAPTIKA Along with the development of technology, traffic and the needs of the data increases significantly, because of that volume of data is highly growing, very varied, fast-growing and may not be structured. Especially data text, the user requires access speed and accuracy in analyzing the necessary data needs to be processed with innovative technology to obtain in-depth information and can help in making a better decision. In this study, researchers used a technique of single layer perceptron network to determine the accuracy of a single-layer perceptron algorithmic techniques in studying and classifying network where text is the name of the place and is not the name of the place. The final result of this research is the average training and testing of 10 (ten) times the test of a collection of data text which has been encrypted. The average accuracy of the training of the data presented was 50.2% and the average accuracy testing of the data presented was 48.3% Keywords: Matlab, Single Layer perception, Dataset, Name of Place, SINAPTIKA
I. PENDAHULUAN
merupakan salah satu upaya pengembangan dan penerapan ilmu teknologi informasi. Single layer perceptron network adalah teknik yang akan diterapkan untuk mengklasifikasikan mana teks yang merupakan nama tempat dan mana teks yang bukan merupakan nama tempat pada penelitian kali ini. Teknik tersebut merupakan teknik paling sederhana pada sistem yang disebut Jaringan Syaraf Tiruan[3], sistem ini merupakan salah satu metode dari Machine Learning. Peneliti melakukan pengujian menggunakan algoritma single layer perceptron network yang sudah ada dalam mengklasifikasikan mana text yang merupakan nama tempat dan mana text yang bukan nama tempat. Dataset yang akan digunakan pada
Pertumbuhan perangkat mobile dan data internet ternyata sangat mempengaruhi perkembangan volume dan jenis data yang terus meningkat secara signifikan, berbagai jenis data, mulai data yang berupa teks, gambar atau foto, video hingga bentuk data-data lainnya membanjiri sistem komputasi[1]. Alat dan teknik analisis data yang tradisional tidak dapat digunakan untuk mengekstrak informasi dari data yang sangat besar. Untuk itu perlu diolah khusus dengan teknologi inovatif sehingga mendapatkan informasi yang mendalam dan dapat membantu pengambilan keputusan yang lebih baik[2]. Menentukan teks yang merupakan nama tempat pada kalimat dengan menggunakan sistem komputer
1 http://digilib.mercubuana.ac.id/
penelitan ini adalah nama-nama kota dan negara yang terdapat di dunia dalam ejaan Indonesia. Penelitian ini dilakukan untuk mengetahui seberapa besar akurasi training dan testing algoritma single layer perceptron network, dalam mempelajari dan meng-klasifikasikan mana text yang merupakan nama tempat dan mana yang bukan nama tempat
memproses suatu informasi. Jaringan Syaraf Tiruan memiliki pendekatann yang berbeda dengan komputer konvensional dalam memecahkan masalah Jaringan syaraf tiruan adalah suatu prosesor yang melakukan pendistribusian secara besar-besaran, yang memiliki kecenderungan alami untuk menyimpan suatu pengenalan yang pernah dialaminya, dengan kata lain Jaringan Syaraf Tiruan memiliki kemampuan untuk dapat melakukan pembelajaran dan pendeteksian terhadap sesuatu objek Jaringan syaraf tiruan mempunyai dua tahap proses, yaitu Proses pelatihan dan Proses pengujian. Tahap pelatihan memerlukan waktu yang lama, karena pada proses ini akan dicari suatu bobot yang dapat memenuhi dari sejumlah data yang akan dilatih berdasarkan algoritma pembelajarannya Jaringan Syaraf Tiruan[3] bisa dikelompokkan menjadi dua kategori yaitu Feed-forward network (jaringan saraf umpan maju) dan Recurrent-feedback network (jaringan saraf umpan balik). Feed-forward network dicirikan dengan graf yang tidak memiliki loop sedangkan recurrent-forward network pada grafnya memiliki loop-loop koneksi balik Bentuk dasar arsitektur suatu jaringan syaraf tiruan adalah sebagaimana pada Gambar 1.
II. STUDI TERKAIT II.1. Tinjauan Pustaka Salah satu masalah pada klasifikasi text adalah data yang berdimensi tinggi sehingga menyebabkan banyaknya atribut yang kurang relevan. Jika semua atribut tersebut digunakan, maka akan mengurangi kinerja dari sebuah classifier. Atribut yang banyak membuat accuracy menjadi rendah. Untuk mendapatkan accuracy yang lebih baik, atribut yang ada harus dipilih dengan algoritma yang tepat[3]. Penelitian yang sering dilakukan dalam hubungannya dengan jaringan syaraf tiruan adalah penggunaan algoritma pelatihan dan struktur jaringan yang tepat sehingga mampu memberikan kinerja dan keluaran yang baik. II.2. Machine Learning Machine Learning menurut Entin Martina [4] adalah suatu disiplin ilmu dari Computer Science yang mempelajari bagaimana membuat komputer/mesin itu mempunyai suatu kecerdasan, agar mempunyai kecerdasan, komputer/mesin harus belajar, dengan kata lain, Machine Learning adalah bidang keilmuan yang berisi tentang pembelajaran komputer/mesin untuk menjadi cerdas. Dikemudian hari dengan teknologi Machine Learning memungkinkan semua peralatan elektronik dan tranportasi menjadi otomatis dan Driverless[5]
Gambar 1. Arsitektur dasar Jaringan syaraf tiruan II.5. Single Layer Perceptron Single-layer perceptron bisa dibilang merupakan salah satu teknik jaringan saraf tiruan yang paling sederhana. Jaringan ini hanya memiliki lapisan input dan lapisan output. Jaringan ini termasuk supervised learning, artinya metode pembelajarannya dilakukan melalui contoh-contoh. Jaringan akan ditraining dengan sekumpulan contoh-contoh yang diketahui input dan outputnya. Selama proses belajar tersebut jaringan akan menyesuaikan nilai bobotnya agar menghasilkan output yang diinginkan. Jaringan ini bisa digambarkan seperti Gambar 2 berikut :
II.3. Word2vec Word2vec diperkenalkan oleh Tomáš Mikolov (bersama-sama dengan rekan-rekannya di Google) algoritma tanpa pengawasan untuk belajar makna di balik kata-kata[6]. Word2vec secara luas tampil sebagai anggota dari "gelombang baru" dari algoritma mesin pembelajaran berdasarkan jaringan saraf, sering disebut sebagai Deef Learning, Menggunakan sejumlah besar teks biasa tanpa anotasi, word2vec belajar hubungan antara kata-kata secara otomatis. Output adalah vektor, satu vektor per kata, dengan hubungan linear yang luar biasa sehingga menunjukan bahwa kata dari berbagai objek yang berhubungan memiliki nilai vektor yang berdekatan[7] II.4. Jaringan Syaraf Tiruan Jaringan Syaraf Tiruan ditemukan pada tahun 1943 oleh neurophysiologist Waren McCuloch dan logician Walter Pits, namun teknologi yang ada saat itu belum memungkinkan mereka berbuat lebih jauh[3]. Jaringan Syaraf Tiruan adalah paradigma pemrosesan suatu informasi yang terinspirasi oleh sistem syaraf mahluk hidup, sama seperti otak manusia yang
Gambar 2 Single Layer Perceptron
2 http://digilib.mercubuana.ac.id/
III.
METODE PENELITIAN
2. Teks menjadi vector
III.1. Pengumpulan Data Pada tahap ini, peneliti mengumpulkan data text dari jurnal dan berita on-line. Kemudian file yang berbentuk pdf dikonversi menjadi file berbentuk docx menggunakan Nitro Pro 10, dan diolah menggunakan Microsoft Word, dan Microsoft Excel agar dataset sesuai dengan format yang diinginkan. Format yang dimaksud adalah format yang telah ditentukan agar dataset dapat diproses oleh script yang akan mengklasifikasikan mana kata yang rupakan nama tempat dan mana kata yang bukan merupakan kata tempat. Berikut adalah tahapan pengumpulanya:
Dari file plantext yang berisi data teks satu kalimat – satu baris akan kita rubah menjadi vector dengan menggunakan model word2vec. Script yang saya gunakan pada tahap ini adalah word2vec hasil pengembangan dari team Google [7] Gambar 5. Hasil proses word2vec
1. Konversi file Kebanyakan file jurnal yang diperoleh berekstensi (.pdf). Maka untuk mengumpulkan dataset dilakukan konversi dari file (.pdf) menjadi file (.doc) menggunakan Nitro Pro 10. 2. Menghilangkan tanda baca kecuali titik(.). Tanda baca akan berpengaruh pada saat script dijalankan pada mathlab. Dimana script akan kesulitan dalam mengklasifikasikan mana kata keterangan waktu dan bukan keterangan waktu. Peneliti menghilangkan tanda baca dengan cara me-replace semua tanda baca kecuali titik (.) dengan karakter kosong (tidak diisi).
Gambar 5. Hasil word2vec Hasil dari tahap proses word2vec bisa kita lihat pada Gambar 5. Setiap kata yang memiliki arti yang sama, atau berkaitan satu sama lain akan mempunyai nilai vector berdekatan. III.3. Membuat Kamus Kata Nama Tempat 1. Konversi teks menjadi tabel per kata Cara ini dilakukan untuk mempereloh dataset dengan ketentuan satu kata – satu baris, yang digunakan untuk pelebelan pada mathlab.
Gambar 3. replace semua tanda baca Lakukan konversi file dan hilangkan semua tanda baca untuk setiap jurnal yang akan dipakai sebagai dataset. III.2. Merubah Data Teks Menjadi Vector 1. Konversi teks menjadi tabel per kalimat Cara ini dilakukan untuk memperoleh dataset dengan format satu kalimat satu baris. Gambar 6. Satu kata satu baris Pada gambar 6 Separate text at pilih Other, lalu set dengan karakter (spasi). Kemudian akan didapat tabel satu kata – satu baris. copy-paste tabel ke cell excel, dan lakukan pelebelan terhadap masing-masing baris kata pada excel. Pelebelan adalah tahap selanjutnya setelah kita mendapatkan data kata pada excel. Ketentuanya jika kata adalah kata tempat, maka pelebelan diisi dengan 1. Sedangkan jika kata
Gambar 4. Konversi teks menjadi tabel per kalimat
3 http://digilib.mercubuana.ac.id/
bukan kata keterangan waktu, maka isi pelebelan dengan 0.
2. Import dataset ke-Workpace Mathlab Dataset yang telah didapat dari proses word2vec di-import kedalam mathlab.
Gambar 2 Pelabelan Pada Excel Hasil dari tahap merubah teks menjadi vector (word2vec) di-import ke dalam mathlab, dan diberi nama variable X dan xS. Variable X merupakan dataset dari kata yang telah dirubah menjadi vector.
2. Kamus Nama Tempat Tahap selanjutnya adalah membuat kamus Nama Tempat dari pelabelan pada excel. Hilangkan semua kata yang ber-label 0 (bukan Nama Tempat)
Gambar 5. Dataset X Pada dataset X mempunyai 503422 baris dan 300 kolom. 503422 baris merupakan total dataset kata yang telah dikumpulkan, kemudian dirubah menjadi vector. Setiap baris memiliki 3 kata yang telah dirubah menjadi vector, dengan ketentuan 100 kolom per-kata. Jadi dalam satu baris memiliki 300 kolom. Sedangkan dataset xS merupakan dataset kata yang telah dikumpulkan.
Gambar 3. Kamus Nama Tempat III.4. Pembuatan Dataset Sebelum melakukan training dan testing hal yang selanjutnya perlu dilakukan adalah pembuatan dataset yang nantinya akan digunakan pada saat training dan testing pada Mathlab. Berikut adalah tahapanya: 1. File data matlab dan script, atau fungsi dimasukkan dalam 1 (satu) folder
Gambar 6. Dataset xS
Gambar 4. Folder File data matlab dan script
Pada dataset xS memiliki 503422 baris dan 3 kolom. Setiap baris merupakan kalimat yang terdiri dari 3 kata (3 kolom). Selain data hasil word2vec, import juga data kamus yang telah dibuat.
Tahap ini dilakukan untuk mempermudah proses, gambar 4 adalah gambar yang menunjukan 10 (sepuluh) File data matlab dan script, atau fungsi dimasukkan dalam satu folder yang sama.
4 http://digilib.mercubuana.ac.id/
IV. PROSES TRAINING DAN TESTING
3. Pelabelan Dataset Dataset Xs yang sebelumnya telah diimport kedalam Mathlab akan diberi label sesuai Kamus. Script dan fungsi yang digunakan untuk melakukan pelebelan ini bersumber dari GitHub, yang berjudul stanford_dl_ex yang dibagikan oleh Andrew Maas dan Sameep Tandon[8]. Scrip yang dijalankan pada tahap ini adalah s_createLabelText.m. Berikut adalah scrit-nya.
Sebelum proses traing dan testing dilakukan masukan train.X, train.Y, test.X, dan test.Y dari X dan Y dengan perbandingan 80% untuk training, dan 20% untuk testing. Pengujian akan dilakukan sebanyak 10 (sepuluh) kali dengan train.X, train.Y, test.X, dan test.Y yang berbeda dari dataset X dan dataset Y berdasarkan setiap baris pada tabel R (hasil random). Dari setiap pengujian yang dilakukan akan diperoleh tingkat akurasi testing dan training yang kemudian akan dibuat nilai rataratanya. Untuk mendapatkan train.X, train.Y, test.X, dan test.Y yang berbeda dari dataset X dan dataset Y berdasarkan setiap baris pada tabel R, maka dilakukan looping terhadap source code yang dipakai untuk membuat train.X, train.Y, test.X, dan test.Y. Berikut adalah source code untuk membuat train.X, train.Y, test.X, dan test.Y dari dataset X dan dataset Y berdasarkan baris tabel R:
datasize=size(X,1); Y=zeros(datasize,1); for ik=1:datasize [find_]=f_IsMemberDrug(Kamus, xS(ik,2)); if (find_)Y(ik)=1; else Y(ik)=0; end end
iTrain=int32(n*0.8); train.X=X(R(1,1:iTrain),:); train.Y=Y(R(1,1:iTrain),:); test.X=X(R(1,iTrain+1:n),:); test.Y=Y(R(1,iTrain+1:n),:);
Dataset Y memiliki jumlah baris yang sama dengan dataset xS karena dataset Y merupakan dataset xS dengan Kamus yang menjadi penentunya. Setiap baris dataset xS yang sesuai dengan dataset Kamus, secara otomatis, pada baris yang sama dengan dataset xS di dataset Y akan diisi 1. Sebaliknya jika Setiap baris dataset xS yang tidak ada pada dataset Kamus, pada baris yang sama dengan dataset xS di dataset Y akan diisi 0.
R(1,.... merupakan baris pertama pada tabel R, maka untuk membuat train.X, train.Y, test.X, dan test.Y
4. Random dataset Sumber script dan fungsi yang digunakan sama dengan pelebelan dataset[8]. Pada tahap random script dengan nama script_random.m yang dijalankan. Berikut adalah script-nya:
dari dataset X dan dataset Y berdasarkan setiap baris tabel R, dilakukan looping untuk baris selanjutnya pada tabel R. Berikut adalah soure code-nya:
n = size(Y,1); ix=zeros(n,1); indx=zeros(n,1); a = randperm(n); b = bsxfun(@plus, a, transpose(1:20)); R = mod(b, n) + 1;
acc adalah variable baru yang akan dibuat, yang merupakan tempat akurasi training dan testing dari setiap pengujian yang dilakukan. Sedangkan R(i,.... merupakan baris pada tabel R, jadi setiap kali looping i akan ditambah 1 (i+1). Script dan fungsi yang digunakan untuk proses training dan testing bersumber dari GitHub, yang berjudul stanford_dl_ex yang dibagikan oleh Andrew Maas dan Sameep Tandon[8], dengan nama script ex1b_logreg.m.
Akan didapatkan matrik R sebanyak 20 baris, dan 503422(sesuai total data) kolom. Tabel R yang didapatkan memiliki 20 baris, setiap baris merupakan hasil random index X, maka pada setiap baris R memiliki urutan yang berbeda-beda berdasarkan hasil random index X.
IV.1. Training Seperti yang telah dijelaskan sebelumnya, single layer perceptron network termasuk supervised learning, artinya metode pembelajarannya dilakukan dengan mempelajari contoh-contoh yang diketahui input dan output-nya. Jaringan akan di-training dengan sekumpulan contoh-contoh yang diketahui input dan
5 http://digilib.mercubuana.ac.id/
Pengujian dilakukan sebanyak 10 kali dari train.X, train.Y, test.X, test.Y yang berbeda dari dataset X dan dataset Y berdasarkan setiap baris R hasil random sebelumnya. Berikut adalah hasilnya:
output-nya. Selama proses belajar tersebut jaringan akan menyesuaikan nilai bobotnya agar menghasilkan output yang diinginkan[9]. Jadi semakin banyak mesin belajar maka, maka akan semakin besar pula kebenaran mesin dalan menentukan mana text nama tempat dan bukan nama tempat. Berikut source code yang digunakan pada saat training: theta = rand(n,1)*0.001; theta=minFunc(@logistic_regression_vec, theta, options, train.X, train.Y)
Gambar 7. Hasil training dan testing disimpan di variable acc theta = rand(n,1)*0.001; adalah Inisialisasi Theta dengan random. Sedangkan baris selanjutnya proses learning yang menghasilkan nilai . Masukan dari data training berupa variable X dan variable Y dan train.X, train.Y yang sebelumnya dimasukan. Setelah dilakukan proses training didapatkan nilai dari yang akan digunakan untuk memprediksi variable Y yang merupakan target pada proses testing.
Pada variable acc terdapat hasil training dan testing dari 10 kali pengujian 1. Hasil Training
Gambar 8. Hasil training disimpan di acc.Train
IV.2. Testing Pada tahap testing source code yang digunakan adalah sebagai berikut:
2.
sigmoid(theta(:)'*X(:,1)) theta(:)'*X(:,1) ytest=sigmoid(theta'*X) > 0.5;
Gambar 9. Hasil testing disimpan di acc.Test Untuk mengetahui rata-rata seberapa akurat algoritma single layer peceptron pada saat training dan testing adalah dengan menjumlahkan semua hasil training dan testing lalu dibagi 10. Rata-rata akurasi training algoritma single layer peceptron network dalam meng-klasifikasikan mana nama tempat dan bukan nama tempat adalah sebesar 50.2 %. Sedangkan rata-rata akurasi untuk testing dalam mengklasifikasikan mana kata nama tempat dan mana yang bukan nama tempat adalah sebesar 48.3 %.
Proses testing ini membuat nilai menjadi kisaran [0,1]. V.
Hasil Testing
HASIL PENGUJIAN
Hasil pengujian yang akan didapat adalah ratarata akurasi training dan testing dari setiap pengujian. Untuk mengetahui akurasi tersebut source code yang digunakan adalah sebai berikut:
VI. KESIMPULAN DAN SARAN
accuracy=(ytest==Y)
VI.1. Kesimpulan Kesimpulan yang dapat diambil dari penelitian terhadap algoritma single layer peceptron dalam menentukan mana text yang merupakan nama tempat atau bukan nama tempat, adalah sebagai berikut: 1. Algoritma single layer perceptron berjalan dengan baik dan dapat membedakan mana kata yang merupakan nama tempat dan mana yang bukan nama tempat, walaupun tingkat akurasi masih rendah 2. Dari 10 kali pengujian dari dataset yang dirandom, rata-rata akurasi algoritma single layer peceptron dalam meng-klasifikasikan mana nama tempat dan bukan nama tempat yang ditraining adalah sebesar 50.2%. Sedangkan rata-
Source code diatas membandingkan nilai biner ytest dengan Y yang merupakan nilai keluaran yang benar. sum(accuracy) sum disini merupakan proses menghitung akurasi yang didapat pada saat proses testing. sum(accuracy)/size(y,2) Pada source code diatas nilai akurasi akan dirubah kedalam bentuk persen (%).
6 http://digilib.mercubuana.ac.id/
rata akurasi testing, dalam meng-klasifikasin mana nama tempat dan mana bukan nama tempat adalah sebesar 48.3%. 3. Banyaknya dataset yang digunakan akan sangat mempengaruhi akurasi, karena semakin banyak training maka akan semakin besar tingkat akurasinya.
eksplorasi model - modelnya,” http://rrchrsfst10.web.unair.ac.id/, 2014. .
VI.2. Saran 1. 2.
Menambah dataset yang digunakan agar mendapatkan akurasi hingga 100%. Melakukan pengujian algoritma single layer perceptron dengan dataset selain data Nama Tempat.
DAFTAR PUSTAKA [1]
S. Dessureault, Understanding big data, vol. 11, no. 1. 2016.
[2]
E. Eaton and D. DeRons, Understanding Big Data. .
[3]
E. L. I. Yani, “Pengantar Jaringan Syaraf Tiruan,” pp. 0–14, 2005.
[4]
E. Martiana, “Introduction to Machine Learning Entin Martiana Learning from Data.”
[5]
Erick techo.id, “Masa depan kendaraan moderen ada di tangan provider telco?,” 15 April , 2016. [Online]. Available: http://www.techno.id/tech-news/masa-depankendaraan-modern-ada-di-tangan-providertelco-1604141.html. [Accessed: 12-May2016].
[6]
T. Mikolov, K. Chen, G. Corrado, and J. Dean, “Efficient Estimation of Word Representations in Vector Space,” Jan. 2013.
[7]
Admin, “Word2vec: Neural Word Embeding in Java.” [Online]. Available: http://deeplearning4j.org/word2vec. [Accessed: 07-Jun-2016].
[8]
A. Maas and S. Tandon, “stanford_dl_ex,” https://github.com. .
[9]
R. C. Hanjani, “Neural Network dan
7 http://digilib.mercubuana.ac.id/
http://digilib.mercubuana.ac.id/
http://digilib.mercubuana.ac.id/