• Tidak ada hasil yang ditemukan

ANALISIS DAN PERANCANGAN SISTEM

3.2. Perancangan Sistem

3.2. Perancangan Sistem

Metode yang diajukan Penulis untuk melakukan entity tagging terdiri dari beberapa proses. Seperti yang diilustrasikan pada Gambar 3.3, Proses-proses yang akan dilakukan adalah sebagai berikut: pengumpulan artikel-artikel Wikipedia Indonesia, ekstraksi teks yang terdapat pada artikel-artikel Wikipedia Indonesia, sentence tokenizing menggunakan Natural Language Toolkit, pengecekan bahasa dilakukan pada setiap kalimat yang diperoleh dengan menggunakan language detection tool, proses POS-Tagging untuk setiap kata menggunakan HMM POS-Tagging, proses pelabelan entitas pada masing kata dengan data entitas DBpedia, pemodelan menggunakan Stanford-CRF yang telah mengimplementasikan algoritma Conditional Random Field,

pelatihan model dan pengujian model. Setiap tahapan yang dilakukan akan dijelaskan dengan lebih terperinci pada bagian-bagian selanjutnya.

Gambar 3.3. Arsitektur Umum

3.2.1. Ekstraksi XML

Data dump Wikipedia yang berformat XML masih terdapat konten yang tidak diperlukan seperti infobox, tabel, gambar dan sebagainya. Pada penelitian ini, Penulis hanya menggunakan data teks dari artikel Wikipedia. Untuk memperoleh data teks tersebut, Penulis menggunakan WikiExtractor tool yang dapat diperoleh pada http://medialab.di.unipi.it/wiki/Wikipedia_Extractor. Tool ini dikembangkan oleh Giuseppe et al. Tool ini mampu untuk melakukan filter pada file dump Wikipedia, dan

mengekstrak teks dari artikel-artikel Wikipedia. sebagai contoh, dapat dilihat pada Gambar 3.4.

Gambar 3.4. Contoh Artikel Wikipedia

Pada gambar 3.4, dapat dilihat penggalan artikel “Soekarno” yang diambil dari halaman Wikipedia terdapat gambar, infobox yang dapat dilihat pada gambar 3.4 bagian ‘A’, daftar isi yang dapat dilihat pada gambar 3.4 bagian ‘B’ dan rujukan referensi. Pada penelitian ini, artikel pada gambar 3.4 akan diekstraksi dengan menggunakan WikiExtractor tool untuk memperoleh teks yang terdapat dari artikel “Soekarno”

tersebut.

3.2.2. Sentence Tokenizing

Teks yang diperoleh dari hasil ekstraksi tersebut berupa kumpulan paragraf-paragraf.

Untuk memudahkan pada proses pengecekan bahasa, dilakukan sentence tokenizing pada artikel Wikipedia. Setiap kalimat pada setiap paragraf akan dipisah sehingga hanya

terdapat satu kalimat pada setiap baris. Proses ini dilakukan dengan menggunakan Natural Language Tookit. Contoh sentence tokenizing dapat dilihat pada gambar 3.5.

Gambar 3.5. Contoh Sentence Tokenizing

Pada gambar 3.5 [A] merupakan contoh paragraf yang belum melalui proses sentence tokenizing. Paragraf ini memiliki tiga buah kalimat, hasil dari sentence tokenizing dapat dilihat pada gambar 3.5 [B] sampai dengan 3.5 [E] yang merupakan hasil pemisahan dari keempat kalimat yang terdapat pada gambar 3.5 [A].

3.2.3. Pengecekan bahasa

Penelitian ini lebih mengutamakan kata-kata dalam Bahasa Indonesia, sedangkan pada artikel Wikipedia Indonesia masih terdapat kata-kata dalam bahasa asing. Untuk meminimalkan kata-kata dalam bahasa asing, Penulis melakukan pengecekan bahasa pada setiap kalimat yang diperoleh pada tahap sebelumnya. Untuk melakukan pengecekan bahasa, dilakukan dengan menggunakan language detector tool yang dikembangkan oleh Shuyo et al. Tool ini mampu untuk mengenali 71 jenis bahasa.

Adapun cara kerja dari tool ini adalah tool ini menerima input berupa kalimat,

selanjutnya tool ini akan mendeteksi penggunaan bahasa pada kalimat tersebut dan menampilkan bahasa yang digunakan beserta persentase dari pemakaian bahasa tersebut pada kalimat tersebut. Dikarenakan pada penelitian ini hanya akan digunakan kalimat Bahasa Indonesia, sehingga Penulis melakukan penambahan pada tahap ini, dari hasil yang diperoleh dari language detector tool, Penulis akan memeriksa bahasa yang dihasilkan dari tool tersebut, apabila bahasa yang digunakan bukan Bahasa Indonesia, kalimat tersebut tidak akan digunakan pada tahapan selanjutnya. Contoh pengecekkan bahasa dapat dilihat pada Gambar 3.6.

Gambar 3.6. Contoh Pengecekkan Bahasa

Gambar 3.6 merupakan contoh pengecekkan bahasa yang dilakukan dengan language detector tool, pada Gambar 3.6 kalimat-kalimat tersebut tidak dihapus dikarenakan pada kalimat tersebut tidak terdapatnya kata atau frasa yang berasal dari

bahasa asing. Oleh karena itu, kelima kalimat tersebut akan digunakan pada penelitian ini.

3.2.4. POS-Tagging

Untuk memperoleh data training yang lebih baik, Penulis menggunakan POS-Tagging untuk meningkatkan kualitas dari data training. POS-Tagging digunakan untuk mengetahui kelas kata masing-masing kata dimana kelas kata ini kemudian akan digunakan untuk menentukan kata-kata yang memiliki entitas person, location atau organisation. Untuk POS-Tagging, Penulis menggunakan “HMM based POS-Tagging”

yang dikembangkan oleh Wicaksono et al. POS-Tagging ini dapat mengkatergorikan kata ke dalam 35 jenis kelas kata yang dapat dilihat pada Tabel 3.1.

Tabel 3.1. Kategori Kelas Kata

No POS Nama No POS Nama 7 . Sentence Terminator 25 CDC Collective Numerals

8 , Comma 26 CDP Primary Numerals

Gambar 3.7. Contoh POS-Tagging

Gambar 3.7. merupakan contoh POS-Tagging, pada gambar 3.7 bagian [A]

merupakan kalimat yang akan dilakukan POS-Tagging dan gambar 3.7 bagian [B]

merupakan kalimat yang telah melalui proses POS-Tagging. Pada gambar 3.7 bagian [B], jenis kelas kata dengan katanya dipisah oleh tanda garis miring ( / ). Pada hasil POS-Tagging tersebut dapat dilihat beberapa jenis kelas kata pada kalimat tersebut seperti common noun (NN), proper noun (NNP), verb (VBI), Ordinal Numerals (CDO) dan sebagainya. Singkatan dari hasil POS-Tagging yang terdapat pada gambar 3.7 bagian B dapat dilihat pada tabel 3.1.

3.2.5. Entity Tagging

Pada tahap ini, teks yang telah melewati tahapan sebelumnya akan di tag dengan entitas masing-masing kata yang terdapat pada DBpedia. Adapun entitas yang akan di tag adalah “person” untuk nama orang, “location” untuk nama tempat atau lokasi,

“organisation” untuk nama organisasi dan “O” untuk kata yang tidak memiliki entitas.

Terdapat dua proses pada tahap ini. Pertama, entity tagging pada teks hasil pre-processing dan kedua, entity tagging pada teks hasil POS-Tagging. Cara kerja kedua proses ini hampir sama yaitu, sistem akan melakukan pengecekkan pada setiap kalimat teks dengan data entitas yang diperoleh dari DBpedia, apabila terdapat kata pada kalimat yang memiliki entitas pada data DBpedia, sistem akan melakukan tag kata tersebut dengan entitasnya. Namun pada proses kedua, Penulis menambahkan beberapa rule untuk data yang belum memiliki entitas sehingga dapat menambah jumlah data yang memiliki entitas. Rule yang digunakan adalah kata-kata yang umumnya

menunjukkan nama tempat, nama orang dan nama organisasi. Kata-kata yang menunjukkan nama tempat seperti “Pelabuhan”, “Laut”, “Terminal” dan sebagainya.

Kata-kata yang menunjukkan nama orang seperti “Bapak”, “Ibu”, “Profesor” dan sebagainya. Kata-kata yang menunjukkan nama organisasi seperti “Bank”,

“Universitas”, “Sekolah”, “Partai” dan sebagainya. Contoh penggunaan rule yang dapat dilihat pada kalimat berikut yang telah dilakukan pos-tagging “Amir/NNP sedang/RB berbicara/VBI dengan/IN Bapak/NN Budi/NNP Santoso/NNP ./.” Pada kalimat tersebut dapat dilihat terdapat dua nama orang yaitu Amir dan Bapak Budi Santoso dan satu nama organisasi yaitu Partai Golongan Karya. Apabila nama orang dan nama organisasi tesebut tidak memiliki data entitas pada DBpedia maka pada penelitian ini data tersebut akan diproses berdasarkan rule yang telah disediakan. Secara umum, kata yang memiliki entitas Location, Person atau Organisation memiliki kelas kata NNP (Proper Noun). Dengan demikian, Penulis melakukan pengecekkan dengan memanfaatkan daftar kata yang telah disediakan dan jenis kelas katanya. Pertama, dilakukan pengecekkan kata pada kalimat yang terdapat pada daftar kata yang telah disediakan, pada kalimat tersebut terdapat dua kata yang memenuhi yaitu “Bapak”. Selanjutnya, Penulis melakukan pengecekkan pada kata setelah kata tersebut, apabila jenis kelas kata setelah kata tersebut adalah NNP (Proper Noun) maka kata tersebut akan di tag dengan jenis entitasnya. Seperti kata “Bapak”, setelah kata “Bapak” terdapat kata Budi dan Santoso yang memiliki kelas kata NNP. Oleh karena itu, pada penelitian ini Bapak Budi Santoso pada kalimat tersebut akan di tag dengan entitas Person.

3.2.6. Pemodelan Named Entity Recognition

Setelah melakukan tag entitas, selanjutnya Penulis melakukan pemodelan Named Entity Recognition. Model Named Entity Recognition yang dihasilkan bertujuan sebagai kamus data untuk melakukan entity tagging pada kalimat atau teks Bahasa Indonesia.

Sebelum melakukan pemodelan Named Entity Recognition, Penulis terlebih dahulu melakukan tokenisasi pada setiap kata dan entitasnya. Tokenisasi ini akan membagi kata dan entitasnya menjadi 2 kolom, kolom pertama adalah kata dan kolom kedua adalah entitasnya. Selanjutnya, Penulis melakukan pemodelan pada file hasil tokenisasi tersebut dengan menggunakan Stanford-CRF yang telah mengimplementasi metode Conditional Random Field. Pada saat melakukan pemodelan, Penulis hanya

menggunakan konfigurasi awal dari file properties Stanford-CRF yang dapat dilihat pada Gambar 3.8.

Gambar 3.8. Contoh Properties File Pemodelan NER

Pada Gambar 3.8, terdapat beberapa parameter yang digunakan pada file konfigurasi tersebut. Parameter-parameter tersebut terdiri dari parameter trainFile yang berfungsi untuk menentukan file yang akan dilatih. Parameter serializeTo yang berfungsi untuk menentukan model hasil pelatihan. Parameter map berfungsi untuk menentukan format dari file yang digunakan untuk training dalam hal ini kata terdapat pada kolom pertama dan jenis entitas terdapat pada kolom kedua. Parameter useClassFeature untuk menetukan kriteria dari golongan. Parameter useWord untuk memberikan kriteria dari kata pada file training. Parameter useNGrams untuk menghitung penggunaan sebuah kata. Parameter noMidNGrams untuk tidak menyertakan n-gram yang tidak mengandung kata yang berada di awal dan akhir kalimat. Parameter MaxNGramLeng menentukan panjang maksimal N-Gram.

Parameter usePrev untuk memperoleh kriteria dari kata sebelumnya seperti jenis entitas.

Parameter useNext untuk memperoleh kriteria dari kata setelahnya seperti jenis entitas.

Parameter useSequence untuk menggunakan kombinasi dari kata.

Dokumen terkait