TINJAUAN PUSTAKA
Menurut R. Feldman dan J. Sanger, text mining adalah suatu proses untuk
menggali informasi dimana seorang pengguna atau user berinteraksi dengan dokumen
menggunakan tool analisis. Sedangkan menurut O. Maimon dan L. Rokach, text
mining adalah suatu proses ekstrasi pola tertentu dari database dokumen teks yang
besar dan bertujuan untuk menemukan pengetahuan [6].
Pada kasus teks mining, konsep dan teknik yang digunakan adalah untuk mencari
informasi yang bermanfaat dengan melakukan analisa dari teks tersebut. Jika data yang
digunakan pada teks mining sudah memiliki pola yang terstruktur tugas dari teks
mining hanya tinggal mengklasifikasi teks tersebut atau melakukan pengelompokan
pada teks. Jika data yang digunakan masih memiliki ketidak strukturan pada
susunannya maka dilakukan proses preprocessing untuk membuat data menjadi
terstruktur.
2.4 Zomato
2.4 Preprocessing
2.4.1 Casefolding
2.4.2 Tokenization
2.4.3 Stemming
Stemming merupakan proses untuk mendapatkan kata dasar dari kata yang
memiliki imbuhan, baik imbuhan awalan (prefix) maupun imbuhan akhiran (suffix).
Algoritma stemming untuk bahasa yang satu berbeda dengan bahasa lainnya. Untuk
bahasa Indonesia Algoritma Nazief dan Adriani memiliki tingkat akurasi yang baik
dikarenakan berdasar pada aturan morfologi bahasa Indonesia yang luas [7].
Stop word adalah kata umum (common word) yang biasanya muncul dalam jumlah
besar dan dianggap tidak memiliki makna. Untuk analisis sentimen berbasis aspek
stopword removal digunakan untuk mengurangi jumlah kata yang harus diproses.
2.6.1 Python
Python adalah bahasa yang mudah dipelajari serta berfokus pada kode. Python
dianggap memiliki kode-kode pemograman yang sangat jelas, lengkap, dan mudah
untuk dipahami. Python secara umum berbentuk pemograman berbasis objek. Python
dapat digunakan untuk pembangunan perangkat lunak yang dapat berjalan di berbagai
platform sistem informasi [9].
2.7 CNN
CNN untuk mengklasifikasikan kata pertama kali diperkenalkan oleh Kim (2014),
dengan mengambil kalimat dari panjang variasinya sebagai input dan menghasilkan
vektor dengan panjang tetap sebagai output. Sebelum dilatih, untuk setiap kata
dilakukan word embedding untuk setiap kata di glosarium dari semua kalimat input
yang dihasilkan. Semua kata yang sudah dilakukan word embedding ditumpuk didalam
matriks M. Pada lapisan input kata yang sudah di embedding terdiri dari kalimat latih
yang diambil dari M. Panjang maksimum kalimat yang dapat ditangani oleh jaringan
telah diatur. Kalimat yang kepanjangan akan dipotong dan kalimat yang kurang akan
disisipi oleh vektor bernilai 0. Kemudian dropout regularization digunakan untuk
mengontrol over-fitting. Di lapisan konvolusi beberapa filter dengan jendela berbeda
berpindah ukuran pada word embedding untuk melakukan satu dimensi lilitan. Saat
filter bergerak banyak urutan yang menangkap fitur sintaksis dan semantik dalam n-
gram yang difilter dihasilkan. Banyak urutan fitur digabungkan kedalam feature map.
Didalam lapisan pooling, operasi pooling max overtime (Collobert dll., 2011)
diterapkan untuk menangkap fitur lokal yang paling berguna dari feature map. Fungsi
aktivasi ditambahkan untuk menggabungkan element-wise non-linearity. Output dari
beberapa filter digabung kedalam lapisan gabungan. Setelah dropout process lainnya,
lapisan softmax yang terhubung sepenuhnya menghasilkan distribusi probabilitas
melalui label dari beberapa kelas. CNN adalah salah satu model koneksi yang paling
umum digunakan untuk klasifikasi. Connectionism Model fokus pada pembelajaran
dari rangsangan lingkungan dan menyimpan informasi ini dalam bentuk koneksi antar
neuron. Bobot dalam jaringan saraf disesuaikan menurut data pelatihan dengan
beberapa algoritma pembelajaran. Semakin besar perbedaan dalam data pelatihan,
maka lebih sulit untuk algoritma pembelajaran mengadaptasi data pelatihan dan hasil
klasifikasi yang lebih buruk. Kalimat dibagi menjadi beberapa jenis sesuai dengan
jumlah target yang diungkapkan didalamnya dapat mengurangi perbedaan data di
setiap kelompok, maka dari itu tingkatan akurasi klasifikasi secara keseluruhan [10].
di mana ⊕ adalah operator gabungan. Secara umum, misalkan xi: i + j merujuk pada
gabungan kata-kata xi, xi + 1,. . . , xi + j. Operasi konvolusi melibatkan filter w ∈ Rhk, yang
diterapkan pada a jendela kata h untuk menghasilkan fitur baru. Untuk misalnya, fitur ci
dihasilkan dari jendela kata xi: i + h − 1 oleh :
Di sini b ∈ R adalah istilah bias dan f adalah non-linear fungsi seperti tangen hiperbolik.
Filter ini diterapkan ke setiap jendela kata yang memungkinkan di kalimat {x1: j, x2: j + 1,. . . ,
xn − h + 1: n} untuk diproduksi peta fitur :
Bi-LSTM menggunakan dua LSTM untuk mempelajari setiap token dari urutan
berdasarkan pada konteks masa lalu dan masa depan token. Sebagaimana yang telah
ditunjukkan pada Gambar 2, satu LSTM memproses urutan dari kiri ke kanan, yang
lain dari kanan ke kiri. Pada setiap langkah waktu t, disembunyikan lapisan kedepan
dengan fungsi unit tersembunyi - → h dihitung berdasarkan keadaan tersembunyi
sebelumnya - → h t − 1 dan input pada langkah saat ini xt dan lapisan belakang
tersembunyi dengan fungsi unit tersembunyi ← - h dihitung berdasarkan keadaan
tersembunyi di masa depan ← - h t + 1 dan input di langkah saat ini xt. Representasi
konteks maju dan mundur, dihasilkan oleh - → ht dan ← - masing-masing, disatukan
menjadi panjang vektor. Gabungan hasil adalah prediksi teacher-given target signal.
Sebagai model urutan yang banyak digunakan, conditional random field (CRF) adalah
jenis probabilistik grafis model tidak diskriminatif, yang mewakili distribusi log-linear
tunggal menghasilkan output lebih terstruktur sebagai fungsi dari pengamatan tertentu
urutan input.
(2,3)
Gambar 3 Bi-LSTM CRF target ekspresi dan klasifikasi kata
Zx adalah faktor normalisasi nilai output keseluruhan S (y, x) adalah himpunan klik G, s (ys,
xs) adalah potensi klik pada klik s. Setelah itu, dalam model BiLSTM-CRF, sebuah softmax atas
semua urutan tag yang mungkin menghasilkan probabilitas untuk urutan y. Prediksi urutan output
dihitung sebagai berikut:
(2.4)
(2.5)
A adalah matriks skor transisi, Ayi, yi + 1 mewakili skor transisi dari tag yi ke yi +1. n adalah
panjang a kalimat, P adalah matriks skor keluaran oleh jaringan BiLSTM, Pi, yi adalah skor ke-y
Saya menandai kata ke-i dalam sebuah kalimat. Seperti yang ditunjukkan pada Gambar. 2, teknik
putus digunakan setelah input lapisan BiLSTM-CRF untuk mengurangi overfitting pada data
pelatihan. Teknik ini pertama kali diperkenalkan oleh Hinton, Srivastava, Krizhevsky, Sutskever,
dan Salakhutdinov (2012) untuk mencegah kerjasama yang kompleks pada data pelatihan. Ini
telah memberikan perbaikan besar pada banyak tugas. Setelah ekstraksi target oleh BiLSTM-CRF,
semua kalimat diucapkan diklasifikasikan ke dalam kalimat tidak-sasaran, satu-sasaran, dan
kalimat multi-target, sesuai dengan jumlah target yang diekstraksi dari mereka [10].
2.9 OOP
1. Abstract Class
a. Kelas merupakan deskripsi abstrak informasi dan tingkah laku dari
sekumpulan data.
b. Kelas dapat diilustrasikan sebagai suatu cetak biru(blueprint) atau
prototipe yang digunakan untuk menciptakan objek.
c. Kelas merupakan tipe data bagi objek yang mengenkapsulasi data dan
operasi pada data dalam suatu unit tunggal.
d. Kelas mendefinisikan suatu struktur yang terdiri atas data kelas (data
field), prosedur atau fungsi (method), dan sifat kelas (property).
2. Encapsulation
a. Istilah enkapsulasi sebenarnya adalah kombinasi data dan fungsionalitas
dalam sebuah unit tunggal sebagai bentuk untuk menyembunyikan detail
informasi.
b. Proses enkapsulasi memudahkan kita untuk menggunakan sebuah objek
dari suatu kelas karena kita tidak perlu mengetahui segala hal secara rinci.
c. Enkapsulasi menekankan pada antarmuka suatu kelas, atau dengan kata
lain bagaimana menggunakan objek kelas tertentu.
d. Contoh: kelas mobil menyediakan antarmuka fungsi untuk menjalankan
mobil tersebut, tanpa kita perlu tahu komposisi bahan bakar, udara dan
kalor yang diperlukan untuk proses tersebut.
3. Inheritance
a. Kita dapat mendefinisikan suatu kelas baru dengan mewarisi sifat dari
kelas lain yang sudah ada.
b. Penurunan sifat ini bisa dilakukan secara bertingka-ttingkat, sehingga
semakin ke bawah kelas tersebut menjadi semakin spesifik.
c. Sub kelas memungkinkan kita untuk melakukan spesifikasi detail dan
perilaku khusus dari kelas supernya.
d. Dengan konsep pewarisan, seorang programmer dapat menggunakan kode
yang telah ditulisnya pada kelas super berulang kali pada kelas-kelas
turunannya tanpa harus menulis ulang semua kode-kode itu.
4. Polymorphism
a. Polimorfisme merupakan kemampuan objek-objek yang berbeda kelas
namun terkait dalam pewarisan untuk merespon secara berbeda terhadap
suatu pesan yang sama.
b. Polimorfisme juga dapat dikatakan kemampuan sebuah objek untuk
memutuskan method mana yang akan diterapkan padanya, tergantung
letak objek tersebut pada jenjang pewarisan.
c. Method overriding.
d. Method name overloading.
2.9.1 UML