• Tidak ada hasil yang ditemukan

Klasifikasi Artikel Berita Berbahasa Indonesia Berbasis Naïve Bayes Classifier Menggunakan Confix-stripping Stemmer

N/A
N/A
Protected

Academic year: 2021

Membagikan "Klasifikasi Artikel Berita Berbahasa Indonesia Berbasis Naïve Bayes Classifier Menggunakan Confix-stripping Stemmer"

Copied!
46
0
0

Teks penuh

(1)

Klasifikasi Artikel Berita Berbahasa

Indonesia Berbasis Naïve Bayes

Classifier Menggunakan Confix-stripping

Stemmer

5210100106 - Amalia Anjani A.

Dosen Pembimbing

Dosen Pembimbing I

: Prof. Ir. Arif Djunaidy, M.Sc, Ph.D

(2)

Metodologi Pengerjaan

Penentuan

tujuan dan

studi literatur

Penyiapan

data

Perancangan

desain

aplikasi

Praproses

data

klasifikasi

Latih

Pembahasan

Evaluasi

uji

klasifikasi

Uji Klasifikasi

Evaluasi

model

klasifikasi

Ya Ya Tidak Tidak

(3)

Latar belakang, rumusan masalah, tujuan,

batasan pengerjaan, manfaat

(4)

Latar Belakang

Berita mengalir begitu

(5)

Latar Belakang (cont)

Namun:

Editor harus membaca

artikel satu per satu

Kurang efisien

Berita terlambat

disampaikan

Aplikasi yang

membantu kategorisasi

secara mudah

Diharapkan:

Membantu kinerja editor

Efisien

Berita cepat

(6)

Latar Belakang – Metode (cont)

Klasifikasi

Dokumen

Bahasa

Indonesia

Naïve Bayes Classifier (NBC)

K-Nearest Neigbour

Support Vector Machines (SVM)

Rule Learning Algorthm

NBC

hanya butuhkan jumlah training data yang

kecil untuk menentukan estimasi parameter

yang diperlukan dalam proses klasifikasinya

(7)

Latar Belakang – Metode (cont)

Klasifikasi Dokumen

Berbahasa Indonesia

Stemming

Hilangkan awalan,

akhiran, sisipan,

dan confixes

Nazief

Stemmer

Confix-Stripping

Stemmer

Lebih baik dari:

Arifin dan Setiono,

Vega

(8)

Rumusan Masalah dan Tujuan

Rumusan Masalah

Bagaimana membangun

aplikasi pengklasifikasi

artikel berita berbahasa

Indonesia berbasis NBC

menggunakan confix-stripping

stemmer yang dapat dengan

mudah dioperasikan oleh

editor berita?

Tujuan

Membangun aplikasi

pengklasifikasi artikel berita

berbahasa Indonesia

berbasis naïve bayes classifier

menggunakan confix-stripping

stemmer untuk membantu

para editor berita dalam

pengklasifikasian artikel

berita.

(9)

Batasan Masalah

Data yang digunakan

merupakan artikel-artikel

berita berbahasa Indonesia

yang didapatkan dari portal

berita kompas.com.

Data yang digunakan pada

tahap latih dan uji merupakan

sampel artikel berita dalam

rentang waktu mulai pertama

artikel berita tersimpan di

kompas.com hingga akhir

tahun 2013.

Kategori yang digunakan

terbatas pada 12 kategori

yakni :

nasional, internasional,

olahraga, sains, edukasi,

ekonomi, tekno, entertaintment,

otomotif, health, properti, dan

travel.

Kategori yang digunakan

tidak bersifat hirarki atau

(10)

Manfaat

Penulis

Tugas akhir ini

merupakan

sumbangsih dalam

bidang ilmu klasifikasi

teks secara umum,

dengan menggunakan

metode naïve bayes

classifiers dan

confix-stripping stemmer secara

khususnya.

Pelaku Bidang Jurnalistik

Hasil tugas akhir ini

diharapkan mampu

membantu para pelaku

di bidang jurnalistik

dan para editor berita

khususnya dalam

pengkategorian artikel

berita sehingga

diharapkan dapat

meningkatkan efisiensi

kerja dan mampu

mempercepat

tersampaikannya berita.

Ilmu Pengetahuan dan

Teknologi

Hasil tugas akhir ini

diharapkan dapat

menjadi dasar bagi

pengembangan

teknologi yang

berkaitan dengan

klasifikasi teks

(11)

Dasar teori pendukung pengerjaan tugas akhir

(12)

Praproses Teks

Case Folding

Mengubah semua teks

menjadi huruf kecil

Menghilangkan karakter

selain huruf

Tokenizing

melakukan pemotongan

string masukan yakni

teks, berdasarkan tiap

kata yang menyusunnya

Stopping

Menghilangkan kosakata

yang bukan merupakan

ciri unik pada suatu

dokumen

Stemming

proses pemetaan dan

penguraian berbagai

bentuk dari suatu kata

menjadi bentuk kata

dasarnya

(13)

Nazief Stemmer

Algoritma stemming Nazief dan

Adriani dikembangkan

berdasarkan aturan bahasa

Indonesia

Kata-kata bahasa Indonesia

menggunakan berbagai imbuhan

yakni :

awalan (prefix),

sisipan (infix),

akhiran (suffix)

kombinasi awalan dan akhiran

(confixes).

Inflection Suffixes : kelompok

akhiran yang tidak mengubah

bentuk kata dasar.

Derivation Suffixes (Akhiran) :

kumpulan akhiran yang secara

langsung ditambahkan pada

kata dasar.

Derivation Prefixes (Awalan) :

Kumpulan awalan yang dapat

ditambahkan langsung pada

kata dasar yang sudah

mendapatkan penambahan

sampai dua awalan.

(14)

Langkah Nazief Stemmer

Kata yang belum di-stemming dicari ke dalam

kamus kata dasar. Jika ditemukan maka kata

tersebut diasumsikan sebagai kata dasar dan

tahapan berhenti. Akan tetapi jika tidak

ditemukan maka dilanjutkan pada tahap

kedua.

Hilangkan Inflectional Particle (lah', kah',

tah',pun') dan kata ganti kepunyaan (ku',

'-mu', '-nya').

Hilangkan imbuhan akhiran ('-i', '-kah', '-an')

Hilangkan imbuhan awalan ('di-, 'ke-', 'se-', 'me-',

'be-', 'pe-', 'te-') dengan iterasi maksimum adalah

tiga kali:

1. Langkah berhenti jika :

terjadi kombinasi awalan dan akhiran terlarang

seperti pada tabel 4.1

awalan yang dideteksi saat ini sama dengan

awalan yang dihilangkan sebelumnya

Tiga awalan telah dihilangkan

2. Identifikasikan tipe awalan dan hilangkan.

Awalan terbagi menjadi dua tipe:

standar = 'di-', 'ke-', 'se-' yang dapat langsung

dihilangkan dari kata.

kompleks = 'me-', 'be-', 'pe-', 'te-' merupakan tipe

awalan yang dapat bermorfologi sesuai kata

dasar yang mengikutinya. Sehingga digunakan

aturan pada tabel 4.2 untuk mendapatkan

pemenggalan yang tepat.

3. Cari kata yang telah dihilangkan awalannya

dalam kamus. Jika tidak ditemukan maka

(15)

Confix-Stripping Stemmer

Menggunakan kamus kata dasar

yang lebih lengkap

Memodifikasi dan menambahkan

aturan pemenggalan untuk tipe

awalan yang kompleks

Menambahkan aturan stemming

untuk kata ulang dan bentuk jamak

Mengubah urutan stemming untuk

beberapa kasus tertentu.

Penghilangan awalan dilakukan

terlebih dahulu kemudian diikuti oleh

penghilangan akhiran. Aturan ini

disebut rule precedence dan berlaku

jika kata memiliki kombinasi

awalan-akhiran 'be-lah', 'be-an', 'me-i', 'di-i',

'pe-i', atau 'te-i'.

Aturan Format Kata Pemenggalan

12 Mempe… Mem-pe…

16 Meng{g|h|q|k} Meng-{g|h|q|k}

Aturan Format Kata Pemenggalan

12 Mempe{r|l}… Mem-pe..

16 Meng{g|h|q}… Meng-{g|h|q}…

Aturan Format Kata Pemenggalan

34 terC1erC2… terC1erC2… dimana C1!=’r’

35 peC1erC2… peC1erC2… dimana

(16)

Naïve Bayes Classifier (NBC)

Algoritma yang digunakan untuk

mencari nilai probabilitas

tertinggi untuk mengklasifikasi

data uji pada kategori yang

paling tepat.

Dua tahap dalam proses

Pelatihan

dilakukan proses analisis

terhadap sampel dokumen

berupa pemilihan kosa kata dan

penentuan probabilitas prior

bagi tiap kategori berdasarkan

sampel dokumen.

Klasifikasi /Pengujian

ditentukan nilai kategori dari

suatu dokumen berdasarkan term

yang muncul dalam dokumen

yang diklasifikasi

(17)

Tahap Pelatihan

Nilai P(v

j

) ditentukan pada saat

pelatihan

Dimana :

|doc j| = banyak dokumen (dalam

hal ini artikel berita) yang memiliki

kategori j dalam pelatihan

|contoh| = banyak dokumen

(dalam hal ini artikel berita) dalam

contoh yang digunakan untuk

pelatihan.

𝑃 𝑤

𝑘

𝑣

𝑗

) =

𝑛 + |𝑘𝑘𝑘𝑘𝑘𝑘𝑘𝑘|

𝑛

𝑘

+ 1

Dimana:

P(w

k

| v

j

)= probabilitas kata w

k

dalam kategori j

n

k

= frekuensi munculnya kata w

k

dalam dokumen yang berkategori v

j

n = banyaknya seluruh kata dalam

dokumen berkategori v

j

|kosakata| = banyaknya kata

dalam contoh pelatihan

(18)

Tahap Pengujian

Pada saat klasifikasi algoritma akan mencari probabilitas

tertinggi dari semua kategori dokumen yang diujikan

(V

MAP

)

setiap dokumen direpresentasikan dengan pasangan

atribut “a

1

, a

2

, a

3

,.. a

n

” dimana a

1

adalah kata

pertama, a

2

adalah kata kedua dan seterusnya.

(19)

Sampel Data

Penentuan Besar Sampel

Rumus Slovin

Pengambilan Sampel

Systematic random sampling

Tetapkan interval

pengambilan satu sampel

𝑘 =

𝑁

𝑛

Pilih secara acak sebuah

angka yang menjadi random

start : 1 < random start < k

Satuan sampel lainnya dipilih

secara sistematis sesuai

dengan intervalnya.

(20)

Data ini digunakan sebagai masukan dari

aplikasi

(21)

Penyiapan Data

Data artikel berita

Systematic random sampling

No Kategori Berita Jumlah Sampel Data Latih Jumlah Data Uji Jumlah

1 Nasional 100 70 30 2 Internasional 100 70 30 3 Olahraga 100 70 30 4 Sains 99 70 29 5 Edukasi 97 68 29 6 Ekonomi 100 70 30 7 Tekno 100 70 30 8 Entertainment 100 70 30 9 Otomotif 99 70 29 10 Health 100 70 30 11 Properti 100 70 30 12 Travel 100 70 30 TOTAL 1195 838 357

No Kategori Berita Rentang Waktu Berita

1 Nasional 4 Januari 2008 – 31 Desember 2013

2 Internasional 5 Januari 2008 – 31 Desember 2013

3 Olahraga 7 Januari 2008 – 31 Desember 2013

4 Sains 8 Januari 2008 – 31 Desember 2013

5 Edukasi 3 Januari 2011 – 31 Desember 2013

6 Ekonomi 7 Januari 2008 – 31 Desember 2013

7 Tekno 11 Februari 2008 – 31 Desember 2013

8 Entertainment 10 Januari 2008 – 31 Desember 2013

9 Otomotif 21 Januari 2008 – 31 Desember 2013

10 Health 21 Januari 2008 – 31 Desember 2013

11 Properti 1 Maret 2008 – 31 Desember 2013

(22)

Penyiapan Data (cont)

(23)

Desain basis data, diagram usecase, diagram

sekuen, diagram aktivitas, dan diagram kelas

(24)

Desain Aplikasi

Desain basis data

Diagram usecase

Artikel PK IDArtikel Tanggal Judul Artikel FK1 IDKategori Kategori PK IDKategori Kategori ArtikelUji PK IDArtikelUji Tanggal Judul ArtikelUji HasilPraproses FK1 IDKategori KataDasar PK IDKataDasar KataDasar Stopword PK IDStopword Stopword User PK Username Password

uc Use Case Model

Administrator (from Actors) Melakukan praproses data latih Melakukan latih klasifikasi dan pembuatan model Melakukan uj i klasifikasi Menambahkan data artikel berita untuk latih

klasifikasi

Menambahkan data artikel berita untuk uj i

klasifikasi Melakukan praproses data uj i PenggunaUmum (from Actors) Mengklasifikasi Artikel Berita Login

(25)

Desain Aplikasi (cont)

Diagram sekuen

Diagram aktifitas

sd Sequence Insert

Administrator Form Input Artikel Berita

Tabel Artikel

request artikel()

getArtikel()

display()

isi kolom masukan artikel()

kolomIsNotNull() kolomIsNull() showMessage() isi kolom() insertArtikel() display()

act Activ ity Diagram Insert

Administrator Sistem

Mengisi semua kolom inputan

Menekan tombol tambah artikel

Menambahkan artikel ke dalam tabel artikelUj i Memilih pilihan data

Lebih lengkap dijelaskan pada

(26)

Diagram Kelas

class Diagram Kelas Klasifikasi

Koneksi - conn: Connection - dbName: String + driver: String - pass: String - url: string - user: String + konek() : Connection Praproses - ch: char - file: File - kata: String - kataA: String - kataAStem: String - kataBStem: String - kataUlangPecah: String - lenght: int - line: String - pilihan: int - pilihanProses: int - text: char - token: String - ubah: String + cekPrecedence() : boolean + doStem(String) : string + flagCekKamus(String) : int - isVowel(char) : boolean + pilihJenis() : void + pilihProses() : void + PraProses()

+ prosesStop(String, int) : void + readFileInput() : void + readFileKamus() : void + readFileStopword() : void + ReadKataDasar(String) : void + readKataInput(String, int) : void + readKataUlang(String) : void + readStop(String) : void - removeFirstOrderPrefix() : int - removeParticle() : int - removePossessivePronoun() : int - removeSecondOrderPrefix() : int - removeSuffix() : int

+ writeOutput(String, String) : void + writeOutput() : void

Learner + classifier: FilteredClassifier - fileName: String + filter: StringT oWordVector - resT mp: String - result: String - resultDetail: String - returnVal: int + trainData: Instances + evaluate() : void + learn() : string + Learner() + loadDataset(String) : void - readFileLatih() : void + saveModel(String) : void - writeModel() : void Klasifikasi + classifier: FilteredClassifier - file: File - instances: instances - pred: double - result: string + returnVal: int + text: string + classify() : string + Klasifikasi() + load(String) : void + loadModel(String) : void + makeInstance() : void - readFileKlasifikasi() : void - writeModelKlasifikasi() : void

Insert Artikel Berita - conn: Connection - pilihan: int + rs: ResultSet - sql: String + stmt: Statement + ArtikelBerita() + pilihJenis() : void

(27)

Case folding, tokenizing, stopping, dan stemming

(28)

Praproses Data

Empat tahap : case

folding, tokenizing,

stopping, dan

stemming

sd Sequence Praproses Administrator (from Actors)

HalamanPraproses Case Folding Stopwords Stemming Tabel ArtikelTabel StopwordsTabel KataDasarFileKeluaran

cekKolomIsNotNull() KolomIsNull() Pesan Error() isi kolom() requestArtikel() getArtikel() caseFolding() RequestStopwords() returnStopwords() hapusStopwords() RequestKamus() returnKamus() cariKataDasar() writeOutput() displayMessage()

(29)

Masukan : data latih yang telah melalui praproses

Keluaran : model klasifikasi

(30)

Latih Klasifikasi

sd Sequence Latih

Administrator Form Learner File Data Latih File Model

Klasifikaasi Evaluasi Data Latih Latih Model KolomIsNull() showMessageError() Isi semuaKolom() loadData() getData() ubahStringToVector() setClassifier NBC() evaluasi() displayEvaluasi() learn() writeModel() displayMessage()

(31)

Masukan : data uji yang telah melalui praproses

Keluaran : prediksi kelas

(32)

Uji Klasifikasi

sd Sequence Uj i

Administrator Form Klasifikasi File Model tempObject classifierTabel ArtikelUjiBuat instances Klasifikasi

load Model() saveModel() getArtikelUji() classify() edit Artikeluji() displayResult()

(33)

Uji Klasifikasi Pengguna Umum

act Activ ity Diagram Mengklasifikasikan Artikel Berita

Umum Sistem

Pengguna menekan tombol praproses

Melakukan praproses terhadap data uj i (diagram

aktiv itas melakukan praproses terhadap data uj i)

Menekan tombol mulai klasifikasi

Menampilkan pesan bahw a praproses selesai

Melakukan klasifikasi (diagram aktiv itas melakukan uj i klasifikasi)

Menampilkan hasil klasifikasi

(34)
(35)

Outline Uji Coba

Uji Verifikasi

Uji Verifikasi Fungsional

Aplikasi

Uji Verifikasi Hasil Uji

Keluaran

Uji Validasi

Uji Validasi Evaluasi

Model Klasifikasi

Uji Validasi Evaluasi

(36)

Uji Verifikasi Fungsional Aplikasi

Semua fungsi aplikasi

telah berjalan lancar

Tidak ditemukan error

(37)

Uji Verifikasi Hasil Uji

Aplikasi dapat

menghasilkan hasil

klasifikasi yang telah

sesuai dengan hasil

yang didapatkan

dengan WEKA dan

secara manual

(38)

Uji Validasi Model Klasifikasi

WEKA hasil lebih baik

karena menghasilkan

fitur lebih banyak

daripada aplikasi

Perbedaan tidak

signifikan

Metode evaluasi dengan

cross-validation

(39)

Uji Validasi Hasil Uji Klasifikasi

Hasil uji klasifikasi

aplikasi

pengklasifikasi

sama dengan

yang dihasilkan

oleh WEKA

(40)

Uji Validasi Hasil Uji Klasifikasi

Kesalahan terjadi karena

kata/fitur yang memiliki

nilai prediksi yang lebih

tinggi di kelas lain

daripada di kelas yang

benar

Hal ini terjadi karena fitur

yang muncul pada suatu

kategori juga muncul pada

kategori yang lain

(41)
(42)

Uji Validasi Hasil Uji Klasifikasi

Contoh 1

Nilai prediksi artikel tersebut

pada kategori :

nasional sebesar 0.115,

internasional sebesar 0.001,

edukasi sebesar 0.006,

entertainment sebesar 0.877.

Contoh 2

Nilai prediksinya pada

kategori nasional hanya

0.005 sedangkan kategori

edukasi 0.995

(43)
(44)

Kesimpulan

Aplikasi berhasil diuji cobakan pada data sampel

pada 12 kategori berita dengan total sebanyak

1195 artikel yang 70% data latih dan 30% data

uji.

Aplikasi pengklasifikasi artikel berita berhasil

mengklasifikasikan artikel berita sesuai dengan

kategori beritanya.

Aplikasi mudah digunakan sehingga

memungkinkan untuk diimplementasikan dan

digunakan untuk membantu para editor berita

dalam pengklasifikasian artikel berita berbahasa

Indonesia

Model yang dibuat oleh aplikasi WEKA sedikit

lebih tinggi daripada aplikasi pengklasifikasi

artikel berita. Karena jumlah fitur yang dihasilkan

oleh aplikasi WEKA lebih banyak daripada fitur

yang dihasilkan oleh aplikasi pengklasifikasi,

namun perbedaan tidak signifikan

Evaluasi terhadap hasil uji klasifikasi yang

dilakukan oleh aplikasi pengklasifikasi artikel

berita memiliki memiliki nilai akurasi, precission,

recall, dan f-measure sebesar 87.675%,

88.21%, 87.65%, dan 87.69%.

Hasil uji klasifikasi dengan menggunakan

aplikasi pengklasifikasi artikel berita memiliki

hasil yang sama dengan aplikasi WEKA.

Kesalahan klasifikasi terjadi karena nilai

predikasi pada kelas yang benar lebih rendah

daripada kelas yang salah.

Hal ini dikarenakan banyak fitur yang sama

(45)

Referensi

 Asian, J. A. (2007). Stemming Indonesian : a confix-stripping

approach. ACM Trnsactions on Asian Language Information

Processing (TALIP), 6(4), 1-33.

 Dragut, E. F. (2009). Stop word and related problems in web

interface integration. Proceedings of the VLDB Endowment, 2(1), 349-360.

 Hamzah, A. (2012). Klasifikasi teks dengan Naive Bayes

Classifier (NBC) untuk pengelompokkan teks berita dan abstract akademis. Seminar Nasional Aplikasi Sains dan Teknologi Periode

III. Yogyakarta.

 Jian Sheu, J. (2008). An Efficient Two-Phase Spam Filtering

Method. Sciendirect.

 Joko Samodra, S. S. (2009). Klasifikasi dokumen teks berbahasa

Indonesia dengan menggunakan Naive Bayes. Seminar nasional

electrical, informatics, and it's education.

Kamus Besar Bahasa Indonesia. (n.d.). Korpus. Retrieved Maret

14, 2014, from kbbi.web.id: http://kbbi.web.id/korpus

Miller, T. (2005). Data and Tekx Mining A Business Application

Approach. New Jersey, USA: Prentice Hall.

Oracle. (n.d.). Classification. Retrieved Maret 14, 2014, from

docs.oracle.com:

http://docs.oracle.com/cd/B28359_01/datamine.111/b28129/classify .htm#i1005746

Oracle. (n.d.). Clustering. Retrieved Maret 14, 2014, from

/docs.oracle.com:

http://docs.oracle.com/cd/B28359_01/datamine.111/b28129/clusteri ng.htm#DMCON008

Pitoyo, A. (2014, Januari 15 ). Jumlah pengguna internet Indonesia capai

71,19 juta pada 2013. Retrieved Maret 14, 2014, from merdeka.com:

http://www.merdeka.com/teknologi/jumlah-pengguna-internet-indonesia-capai-7119-juta-pada-2013.html

Rijsbergen, C. (1979). Information Retrieval Glasgow. Information retrival

group, Univercity of Glasgow .

Tala, a. Z. (2003). A Study of Stemming Effects on Information Retrieval in

Bahasa Indonesia. Netherlands: Master of Logic Project. Institute for Logic,

Language and Computation, Universiteit van Amsterdam.

Tan, S. &. (2006). Introduction to Data Mining. Pearson Addison

Weasley.

Weiss, S. M. (2010). Text mining: predictive methods for analyzing

(46)

“usaha tidak pernah mengkhianati”

Gambar

Tabel Artikel
Diagram Kelas

Referensi

Dokumen terkait

Jumlah dokumen berita online dapat mencapai milyaran dokumen sehingga pengelompokan dokumen berita dibutuhkan untuk memudahkan penulis berita dalam melakukan

Proses klasifikasi mengunakan naïve Bayes model Multinomial dan model Bernouli , dengan data latih untuk setiap entitasnya didapatkan dari proses k-fold croos validation

Hasil evaluasi klasifikasi sentimen terhadap PSBB di Jakarta dengan menggunakan metode Naïve Bayes Classifier dengan 80% data latih dan 20% data uji serta dilakukan

Perancangan sistem klasifikasi ini berdasarkan kebutuhan data yaitu data uji dan data latih yang totalnya 120 data, lalu diagram flowchart untuk alur kerja sistem metode

Membuat perangkat lunak yang dapat melakukan klasifikasi data dengan metode Naïve Bayes dan mengetahui bagaimana mekanisme performa algoritma Naive Bayes terhadap

Sedangkan metode KNN dapat melakukan klasifikasi dengan cepat berdasarkan jarak terdekat diantara objek data.Berdasarkan hasil uji coba yang dilakukan, penggunaan

Berdasarkan rumusan permasalahan yang telah diuraikan sebelumnya, maka tujuan yang ingin dicapai dalam penelitian ini adalah mengukur ketepatan model klasifikasi data calon

Pada penelitian ini sistem klasifikasi Ulos Batak Toba menggunakan Naive Bayes Classifier dan haralick yang telah dibangun dapat melakukan proses klasifikasi Ulos Batak Toba sebanyak