bab iii analisa dan perancangan...
TRANSCRIPT
12
BAB III
ANALISA DAN PERANCANGAN SISTEM
3.1. Analisa Masalah
Belakangan ini orang-orang sangat aktif di media sosial, terutama di Twitter. Setiap detik
seorang pengguna bisa mem-posting informasi melalui Twitter sebanyak lebih dari 750 tweet.
Banyak informasi yang bisa didapat dari Twitter, mulai dari informasi umum sampai khusus.
Oleh karena itu, banyak pengguna Twitter kesulitan untuk mengklasifikasikan informasi atau
data dari Twitter sesuai dengan yang diinginkan.
Banyak cara untuk mengolah data Twitter, salah satu caranya adalah menggunakan
identifikasi entitas NER. Aplikasi NER sebenarnya sudah banyak ditemukan, misalkan NER
Stanford dan OpenNLP. NER Stanford adalah implementasi Java dari NER, merupakan sebuah
tools berbasis Java yang menyediakan API untuk pemrosesan bahasa alami (NLP). Dengan
OpenNLP, kita dapat melakukan beberapa pemrosesan sepertisentence detection, tokenization,
named-entity detection, parts-of-speech (POS) tagging, chunking & parsing, dan coreference.
Untuk dapat menggunakan OpenNLP, kita harus menyediakan training model terlebih dahulu
[3].
Untuk penggunaan Twitter berbahasa Indonesia, NER Stanford dan OpenNLP bisa
digunakan, tetapi masih belum ada penelitian untuk membandingkan kedua algoritma ini. Oleh
karena itu, tujuan dari penelitian yang akan diangkat oleh penulis adalah bagaimana
mengetahui NER yang memiliki tingkat efektifitas yang lebih baik untuk digunakan pada
Twitter berbahasa Indonesia, antara NER Stanford atau OpenNLP.
3.2. Analisa Tweet
Tweet adalah sebuah postingan seseorang di sebuah jejaring sosial Twitter yang berisi
sebuah informasi tertentu. Sebuah Tweet memiliki tujuan tersendiri, tergantung siapa yang
menulisnya. Tweet dalam bahasa Indonesia terbagi menjadi dua macam, yaitu Tweet Formal
atau Tweet yang mengandung EYD yang benar seperti unggahan dari akun berita, koran,
majalah, dan lain sebagainya. Kemudian ada Tweet Non-Formal yang biasanya diunggah oleh
remaja, artis, dan lain sebagainya atau lebih tepatnya Tweet yang tidak mengandung EYD yang
benar.
13
3.2.1. Tweet Bahasa Indonesia Formal
Di bawah ini adalah beberapa contoh Tweet bahasa Indonesia Formal.
- @kompascom : Empat Kota di Dunia yang Menolak Mobil Diesel.
- @kompascom : Johan Budi: Kok Pak Syarief Hasan Merasa Pak SBY yang
Dituduh?.
- @Metro_TV : Indonesia-Uni Eropa Lakukan Pertemuan Komite.
- @Metro_TV : Ini Senjata Rahasia Nokia untuk Menang di Pasar Smartphone
Tahun Depan http://metrotvn.ws/B623426
- @tvOneNews : Usai Aksi Kita Indonesia, 200 Tanaman di Bundaran HI Rusak.
- @bolacomID : Piala AFF 2016: Cerita Biksu Thailand dan Uang 100 Baht
http://dlvr.it/Mq25Lr
3.2.2. Tweet Bahasa Indonesia Non-Formal
Di bawah ini adalah beberapa contoh Tweet bahasa Indonesia Non-Formal.
- @netmediatama : Cuma di NETGiveaway Special, km bisa menang lebih dari 1
hadiah kece! Salah 1 nya ada Gadget loh!
- @netmediatama : Yuhuuu, pasang alarm kamu buat nonton @rafaell_16 di
@PagiPagi_NET besok ;)
- @ELFARAFM : Yep! Kita uda masuk ke segment baru kita nih, jadi di segment
"APA YA?" ini kita bakal kasih topik yanh ambigu. ikutan gabungan kuy ~
- @PrincesSyahrini : Jangan k mana" pemirsa aku akan kembali lg d
@YuKeepSmile_TTV #Syahrini_Goyang_Morena
- @PrincesSyahrini : makasih buat kalian semua.. i luv u.. kalian memang paling se su
atu dan tercetarrr .....
3.3. Analisa Kebutuhan Hardware
Hardware adalah istilah untuk menyebut perangkat keras pada komputer yang digunakan
untuk melakukan perintah yang telah diprogramkan, atau lebih mudahnya hardware adalah
sebuah perangkat yang bisa disentuh secara nyata oleh tangan manusia, seperti keyboard,
monitor, mouse, motherboard, memori, RAM, dan lain sebagainnya. Kebutuhan perangkat
keras yang akan digunakan dalam pembuatan file model pada tugas akhir ini adalah sebagai
berikut:
- Prosesor : Intel Core i3 3227U
- Memori : 4GB RAM
14
- HDD : 1 TB
- Grafik : NVIDIA GeForce 710M
- Lain-lain : Keyboard, mouse, monitor.
3.4. Analisa Kebutuhan Software
Software adalah bagian yang terpisah dengan hardware, software sendiri adalah sebuah
program untuk menjalankan perangkat keras untuk memudahkan pekerjaan manusia.
Kebutuhan perangkat lunak yang akan digunakan dalam pembuatan file model pada tugas akhir
ini adalah sebagai berikut:
- Sistem Operasi Windows 10 Pro 64 bit
- Java Development Kit (JDK) Versi 1.8
- Java Runtime Environment (JRE) Versi 1.8
- Stanford NER versi 3.5.0
- opennlp-tools-1.7.2
- Notepad ++ Versi 6.8.6
- Sublime Text
- Net Bean 8.2
3.5. Perancangan Sistem
3.5.1. Perancangan Sistem NER Stanford
Berikut ini merupakan alur perancangan sistem untuk membangun model pada tugas
akhir ini:
Pengumpulan
Data
Pengelompokan
Data Tagging Data
Training Model Model NER
Stanford
Gambar 3. 1. Arsitektur Sistem NER Stanford
15
3.5.2. Perancangan Sistem OpenNLP NER
Berikut ini merupakan alur perancangan sistem untuk membangun model pada tugas
akhir ini:
3.6. Pengumpulan Data
Teknik pengumpulan data Tweet pada tugas akhir ini yaitu menggunakan bahasa
pemrograman java memanfaatkan akses Twitter API. Twitter API adalah sebuah fitur yang
diberikan pihak Twitter untuk memudahkan para developer mengambil data dari Twitter.
Pengumpulan data dari Twitter dapat digunakan untuk berbagai kebutuhan, seperti mengetahui
popularitas kandidat pilkada atau pemilu, mendapatkan informasi mengenai popularitas suatu
produk, atau digunakan untuk melihat semua Mention dan Retweet dari suatu akun Twitter.
Gambar 3. 3. Kode Program Java untuk Mengunduh Data Tweet
Pengumpulan
Data
Pengelompokan
Data Tagging Data
Training Model Model OpenNLP
NER
. Gambar 3. 2. Arsitektur Sistem OpenNLP NER
16
3.7. Pengelompokan Data NER Stanford
3.7.1. Pengelompokan Data NER Stanford
Data Twitter dibagi menjadi 2 set data, yaitu data trainning dan data testingting. Data
training nantinya akan digunakan untuk membangun sebuah model, sedangkan data testingting
nantinya akan digunakan untuk melakukan pengujian model yang telah dibangun sebelumnya.
2 set data masing-masing akan dikelompokkan menjadi dua kelompok, yaitu data pertama yang
berisi Tweet berbahasa Indonesia Formal dan kelompok data kedua yang berisi Tweet
berbahasa Indonesia Non-Formal. Pengelompokan data dapat dilihat pada tabel di bawah ini.
Tabel 3.1. Pengelompokan Data NER Stanford
Data Bahasa Indonesia
Jumlah Formal Non-Formal
Data Training 4.765 4.735 9.500
Data Testing 1.134 1.366 2.500
Jumlah 12.000
Gambar 3. 4. Data Formal
Gambar 3. 5. Data Non-Formal
17
3.7.2. Tagging NER Stanford
Proses tagging data Tweet pada tugas akhir ini mengacu pada aturan (tagset) sesuai
dengan rumusan masalah yang sudah ditentukan. Berikut merupakan aturan yang akan
digunakan:
Tabel 3.2. Aturan Tag NER Stanford
NO. TAG KET. CONTOH
1 O Tidak Dikenali -
2 PERSON Nama orang Ahok, Jokowi, Roy
3 LOCATION Nama tempat Jakarta, Pasar, Bandung
4 ORGANIZATION Nama organisasi BMKG, BNI, BNN
Tagging data dilakukan tiap token, dengan format:TAG, sehingga setelah semua data
ditandai, hasilnya seperti gambar di bawah ini:
Gambar 3. 6.Data Setelah Ditandai
3.7.3. Training Data NER Stanford
Data training yang sudah melalui proses tagging, selanjutnya akan diproses dan akan
menghasilkan sebuah file model dalam bentuk biner yang nantinya akan digunakan pada
aplikasi NER Stanford. Model yang akan dibangun nantinya berjumlah 3 model. Model
pertama model untuk Tweet Bahasa Indonesia Formal, model kedua model untuk Tweet
Bahasa Indonesia Non-Formal, dan yang ketiga model untuk Tweet bahasa Indonesia umum.
Di bawah ini adalah flowchart Pembuatan Model NER Stanford.
18
java -cp stanford-ner.jar
edu.stanford.nlp.process.WhitestingpaceToken
izer TAG_FORMAL.txt > TAG_FORMAL.tok
Gambar 3. 7. Flowchart Pembuatan Model NER Stanford
Training Model NER Stanford
1. Tokenisasi
Setelah melalui proses tagging, data training akan ditokenisasi dan membentuk
satu kata per baris dengan menggunakan class Java, yaitu WhitestingpaceTokenizer.
Class tersebut dapat ditemukan pada direktori stanford-ner.jar. Berikut ini command
yang akan digunakan:
Hasil dari proses tokenisasi menghasilkan file .tok. Berikut ini merupakan hasil
tokenisasi:
19
Gambar 3. 8. Hasil Tokenisasi Data
2. Proses Menghilangkan Slash (/)
Data training yang sudah membentuk file .tok akan dimodifikasi, yaitu dengan cara
menghilangkan tanda miring atau slash (/) dan menggantinya dengan spasi. Hal ini
diperlukan agar tag pada data training dapat terbaca oleh CRFClassifier. Proses ini dapat
dilakukan dengan cara manual atau menggunakan aplikasi pihak ketiga, seperti
Notepad++. Berikut ini merupakan hasil dari proses tersebut.
Gambar 3. 9. Proses Menghilangkan (/) NER Stanford
3. Pembuatan File Proop
Proop adalah File Properties yang berisi pengaturan file untuk pembuatan model
dari data training. Beberapa parameter penting yang akan di-set dalam file ini antara lain
trainFileList dan serializeTo. Berikut ini adalah tampilan dari file Proop yang telah
diubah.
20
Gambar 3. 10. Pembuatan File Proop
4. Melatih Data Training
Proses melatih data training dilakukan dengan menggunakan class Java, yaitu
CRFClassifier. Class tersebut dapat ditemukan pada direktori Stanford-ner.jar. Berikut
ini merupakan command yang akan digunakan:
Hasil dari proses tersebut membentuk sebuah model dengan ekstensi .ser.gz. File
model tersebut berbentuk biner. Berikut merupakan hasil dari proses tersebut.
Gambar 3. 11. Hasil Data Training
java -cp stanford-ner.jar
edu.stanford.nlp.ie.crf.CRFClassifier -prop
TAG_FORMAL.prop
21
3.8. Pengelompokan Data OpenNLP NER
3.8.1. Pengelompokan Data OpenNLP
Data Twitter dibagi menjadi 2 set data, yaitu data trainning dan data testingting. Data
training nantinya akan digunakan untuk membangun sebuah model, sedangkan data testingting
nantinya akan digunakan untuk melakukan pengujian model yang telah dibangun sebelumnya.
2 set data masing-masing akan dikelompokkan menjadi dua kelompok, yaitu data pertama yang
berisi Tweet berbahasa Indonesia Formal dan kelompok data kedua yang berisi Tweet
berbahasa Indonesia Non-Formal. Pengelompokan data dapat dilihat pada tabel di bawah ini.
Tabel 3.3. Pengelompokan Data OpenNLP NER
Data Bahasa Indonesia
Jumlah Formal Non-Formal
Data Training 4.765 4.735 9.500
Data Testingting 1.134 1.366 2.500
Jumlah 12.000
Gambar 3. 12. Data Formal
Gambar 3. 13. Data Non-Formal
22
3.8.2. Tagging Data OpenNLP NER
Seperti halnya NER Stanford, OpenNLP juga akan dibagi menjadi 2 set data, yaitu data
training dan data testingting, tetapi yang membedakan adalah OpenNLP harus dipisahkan di
setiap aturan tagset-nya, contohnya seperti di bawah:
Tabel 3.4. Cara Tagging OpenNLP NER
NO. TAG KET. CONTOH
1 <START:person>...<END> Nama orang Ahok, Jokowi, Roy
2 <START:location>...<END> Nama tempat Jakarta, Jombang
3 <START:organization>...<END> Nama organisasi BMKG, BNI, BNN
Tagging data dilakukan setiap token yang mengandung konotasi person, location, dan
organization, dengan format: TAG, sehingga setelah semua data telah ditandai, hasilnya
seperti pada gambar di bawah ini:
Gambar 3. 14. Tagging OpenNLP NER
3.8.3. Training Data OpenNLP NER
Data training yang sudah melalui proses tagging, selanjutnya akan diproses dan akan
menghasilkan sebuah file model dalam bentuk biner yang nantinya akan digunakan pada
perhitungan OpenNLP NER. Model yang akan dibangun nantinya berjumlah 3 model. Model
pertama yaitu model untuk Tweet Bahasa Indonesia Formal, model kedua yaitu model untuk
Tweet Bahasa Indonesia Non-Formal, dan model ketiga yaitu untuk Tweet Bahasa Indonesia
umum, ditambah pemisahan setiap Tagset person, location, dan organization.
3.8.4. Pembuatan File .bin
Setelah data selesai di-tagging, tahap selanjutnya adalah membuat file .BIN dengan
menggunakan tools yang sudah disediakan oleh OpenNLP. Berikut ini merupakan command
yang akan digunakan:
java -jar opennlp-tools-1.5.0.jar
TokenNameFinderTrainer -model TAG_FORMAL_lengkap.bin -
data TAG_FORMAL_lengkap.txt -encoding UTF-8 -lang en
23
Hasil dari proses tersebut akan membentuk file .bin. File model tersebut berbentuk biner.
Berikut merupakan hasil proses tersebut:
Gambar 3. 15. Hasil Data Training