BAB II LANDASAN TEORI
1.2
Text Mining Text mining memiliki definisi menambang data yang berupa teks
dimana sumber data biasanya didapatkan dari dokumen, dan tujuannya adalah mencari kata-kata yang dapat mewakili isi dari dokumen sehingga dapat dilakukan analisa keterhubungan antar dokumen. Sedangkan menurut situs wikipedia, Penambangan teks (bahasa Inggris: text mining) adalah proses ekstraksi pola berupa informasi dan pengetahuan yang berguna dari sejumlah besar sumber data teks, seperti dokumen Word, PDF, kutipan teks, dll. Jenis masukan untuk penambangan teks ini disebut data tak terstruktur dan merupakan pembeda utama dengan penambangan data yang menggunakan data terstruktur atau basis data sebagai masukan. Penambangan teks dapat dianggap sebagai proses dua tahap yang diawali dengan penerapan struktur terhadap sumber data teks dan dilanjutkan dengan ekstraksi informasi dan pengetahuan yang relevan dari data teks terstruktur ini dengan menggunakan teknik dan alat yang sama dengan penambangan data. Proses yang umum dilakukan oleh penambangan teks di antaranya adalah perangkuman otomatis, kategorisasi dokumen, penggugusan teks, dll.Tujuan dari text mining adalah untuk mendapatkan informasi yang berguna dari sekumpulan dokumen. Jadi, sumber data yang digunakan pada text mining adalah kumpulan teks yang memiliki format yang tidak terstruktur atau minimal semi terstruktur. Adapun tugas khusus dari text mining antara lain yaitu pengkategorisasian teks (text categorization) dan pengelompokan teks text clustering). Text mining merupakan penerapan konsep dan teknik data mining untuk mencari pola dalam teks, yaitu proses penganalisisan teks guna menyarikan informasi yang bermanfaat untuk tujuan tertentu. Berdasarkan ketidakteraturan struktur data teks, maka proses text mining memerlukan beberapa tahap
21
awal yang pada intinya adalah mempersiapkan agar teks dapat diubah menjadi lebih terstruktur.
Tahapan Text Mining
Gambar 2. 1 Proses Text Mining Masalah Umum yang ditangani
Klasifikasi Dokumen
Information Retrieval
Pengorganisasian dan Clustering Dokumen
Information Extraction
Klasifikasi Dokumen
Gambar 2. 2 Proses Klasifikasi Dokumen
22
Analisis Cluster
Analisis cluster adalah pengorganisasian kumpulan pola ke dalam cluster (kelompok-kelompok) berdasar atas kesamaannya.
Pola-pola dalam suatu cluster akan memiliki kesamaan ciri/sifat daripada pola-pola dalam cluster yang lainnya.
Clustering bermanfaat untuk melakukan analisis pola-pola yang ada, mengelompokkan, membuat keputusan dan machine learning, termasuk data mining, document retrieval, segmentasi citra, dan klasifikasi pola.
Metodologi clustering lebih cocok digunakan untuk eksplorasi hubungan antar data untuk membuat suatu penilaian terhadap strukturnya.
Algoritma yang digunakan pada text mining, biasanya tidak hanya melakukan perhitungan hanya pada dokumen, tetapi pada juga feature. Empat macam feature yang sering digunakan:
Character, merupakan komponan individual, bisa huruf, angka, karakter spesial dan spasi, merupakan block pembangun pada level paling tinggi pembentuk semantik feature, seperti kata, term dan concept. Pada umumnya, representasi character-based ini jarang digunakan pada beberapa teknik pemrosesan teks.
Words.
Terms, merupakan single word dan frasa multiword yang terpilih secara langsung dari corpus. Representasi term-based dari dokumen tersusun dari subset term dalam dokumen.
Concept, merupakan feature yang di-generate dari sebuah dokumen secara manual, rule-based, atau metodologi lain.
23
1.3
Text Preprocessing Struktur data yang baik dapat memudahkan proses komputerisasi
secara otomatis. Pada Text Mining, informasi yang akan digali berisi informasi-informasi yang strukturnya sembarang. Oleh karena itu, diperlukan proses pengubahan bentuk menjadi data yang terstruktur sesuai kebutuhannya untuk proses dalam data mining, yang biasanya akan menjadi nilai-nilai numerik. Proses ini sering disebut Text Preprocessing (Ronen Feldman, 2007). Setelah data menjadi data terstruktur dan berupa nilai numerik maka data dapat dijadikan sebagai sumber data yang dapat diolah lebih lanjut. Berberapa proses yang dilakukan adalah sebagai berikut : 1. Case folding Case folding adalah mengubah semua huruf dalam dokumen menjadi huruf kecil. Hanya huruf „a‟ sampai dengan „z‟ yang diterima. Karakter selain huruf dihilangkan dan dianggap delimiter (Ronen Feldman, 2007).
Gambar 2. 3 Proses case folding 2. Tokenizing Tahap Tokenizing adalah tahap pemotongan string input berdasarkan tiap kata yang menyusunnya.
24
Gambar 2. 4Proses Tokenizing
1.4
Text Transformation 1. Stopword removal atau filtering Tahap filtering adalah tahap mengambil kata - kata penting dari hasil token. Bisa menggunakan algoritma stoplist (membuang kata yang kurang penting) atau wordlist (menyimpan kata penting). Stoplist / stopword adalah kata-kata yang tidak deskriptif yang dapat dibuang dalam pendekatan bag-of-words (Ronen Feldman, 2007).
Gambar 2. 5 Proses stopword removal atau filtering
25
2. Stemming Tahap stemming adalah tahap mencari root kata dari tiap kata hasil filtering. Pada tahap ini dilakukan proses pengembalian berbagai bentukan kata ke dalam suatu representasi yang sama.
Gambar 2. 6 Proses stemming
1.5
Sentiment Analysis Sentiment Analysis atau opinion mining merupakan proses
memahami, mengekstrak dan mengolah data tekstual secara otomatis untuk mendapatkan informasi sentiment yang terkandung dalam suatu kalimat opini. Sentiment Analysis dilakukan untuk melihat pendapat atau kecenderungan opini terhadap sebuah masalah atau objek oleh seseorang, apakah cenderung berpandangan atau beropini negatif atau positif (Bo Pang, 2002). Sentiment Analysis dapat dibedakan berdasarkan sumber datanya, beberapa level yang sering digunakan dalam penelitian Sentiment Analysis adalah Sentiment Analysis pada level dokumen dan Sentiment Analysis pada level kalimat (Fink Clayton, 2011). Berdasarkan level sumber datanya Sentiment Analysis terbagi menjadi 2 kelompok besar yaitu : Coarse-grained Sentiment Analysis Fined-grained Sentiment Analysis
26
Coarse-grained Sentiment Analysis Pada Sentiment Analysis jenis ini, Sentiment Analysis yang dilakukan adalah pada level dokumen. Secara garis besar fokus utama dari Sentiment Analysis jenis ini adalah menganggap seluruh isi dokumen sebagai sebuah sentiment positif atau sentiment negatif (Fink Clayton, 2011). Salah satu contoh yang menggambarkan coarse-grained Sentiment Analysis adalah sebagai berikut : “ Time and time again, the wily filmmakers sprinkle the overarching storyline of the fall and decline of Larry Gopnik’s life (a masterful, wide-ranging and sensitive performance from Michael Stuhlbarg) with a fine combination of overt, discreet and subliminal set-ups whose payoffs give their film extra punch and an unstoppable pace.” (Fink Clayton, 2011)
Pada review diatas, dapat disimpulkan dengan jelas bahwa sentiment yang terkandung dalam review tersebut adalah positif, dapat di jelaskan dengan kata-kata subjektif positif seperti “masterful” , “extra punch”, dan “unstopabble pace”.
Fined-grained Sentiment Analysis Fined-grained Sentiment Analysis adalah Sentiment Analysis pada level kalimat. Fokus utama fined-greined Sentiment Analysis adalah menentukan sentiment pada setiap kaliamat pada suatu dokumen, dimana kemungkinan yang terjadi adalah terdapat sentiment pada level kalimat yang berbeda pada suatu dokumen (Fink Clayton, 2011).
1.6
Klasifikasi Klasifikasi merupakan suatu pekerjaan menilai objek data untuk
memasukkannya ke dalam kelas tertentu dari sejumlah kelas yang tersedia.
27
Dalam klasifikasi ada dua pekerjaan utama yang dilakukan, yaitu : pertama, Pembangunan model sebagai prototype untuk disimpan sebagai memori dan kedua, Penggunaan model tersebut untuk melakukan pengenalan/ klasifikasi/ prediksi pada suatu objek data lain agar diketahui di kelas mana objek data tersebut dalam model yang mudah disimpan (Prasetyo, Eko. 2012). Contoh aplikasi yang sering ditemui adalah pengklasifikasian jenis hewan, yang mempunyai sejumlah atribut. Dengan atribut tersebut, jika ada hewan baru, kelas hewannya bisa langsung diketahui. Contoh lain adalah bagaimana melakukan diagnosis penyakit kulit kanker melanoma (Prasetyo, Eko. 2012), yaitu dengan melakukan pembangunan model berdasarkan data latih yang ada, kemudian menggunakan model tersebut untuk mengidentifikasi penyakit pasien baru sehingga diketahui apakah pasien tersebut menderita kanker atau tidak.
1.7
K-Nearest Neighbor Algoritma k-nearest neighbor (KNN) adalah sebuah metode
untuk melakukan klasifikasi terhadap
objek
berdasarkan
data
pembelajaran yang jaraknya paling dekat dengan objek tersebut. KNN termasuk algoritma supervised learning dimana hasil dari query instance yang baru diklasifikan berdasarkan mayoritas dari kategori pada KNN. Nanti kelas yang paling banyak muncul yang akan menjadi kelas hasil klasifikasi. Tujuan dari algoritma ini adalah mengklasifikasikan obyek baru bedasarkan
atribut
dan
training
sample.
Classifier tidak
menggunakan model apapun untuk dicocokkan dan hanya berdasarkan pada memori. Diberikan titik query, akan ditemukan sejumlah k obyek atau (titik training) yang paling dekat dengan titik query. Klasifikasi menggunakan voting terbanyak diantara klasifikasi dari algoritma
k-nearest
neighbor (KNN)
menggunakan
k
obyek.. klasifikasi
ketetanggaan sebagai nilai prediksi dari query instanceyang baru.
28
Algoritma
metode
K-Nearest
Neighbor
(KNN)
sangatlah
sederhana, bekerja berdasarkan jarak terpendek dari query instance ke training
sample untuk menentukan
diproyeksikan ke
ruang
KNN-nya.
Training
sample
berdimensi banyak, dimana masing-masing
dimensi merepresentasikan fitur dari data. Ruang ini dibagi menjadi bagian-bagian berdasarkan klasifikasi training sample. Sebuah titik pada ruang ini ditandai kelas c jika kelas c merupakan klasifikasi yang paling banyak ditemui pada k buah tetangga terdekat dari titik tersebut. Dekat atau jauhnya tetangga biasanya dihitung menggunakan penghitung jarak dianaranya adalah menggunakan Minkowski Distance dan City Block Distance. Jarak Minkowski dan City Block berfungsi menguji ukuran yang bisa digunakan sebagai interpretasi kedekatan jarak antara dua obyek. Berikut adalah rumus minkowski :
r disebut sebagai order dari Minkowski distance. Jika r = 1 , maka formulasi jarak tersebut adalah City Block distance. dimana matriks D(a,b) adalah jarak skalar dari kedua vektor adan b dari matriks dengan ukuran dimensi. Semakin besar nilai D akan semakin jauh tingkat keserupaan antara kedua individu dan sebaliknya jika nilai D semakin kecil maka akan semakin dekat tingkat keserupaan antar individu tersebut. Nilai k yang terbaik untuk algoritma ini tergantung pada data. Secara umum, nilai k yang tinggi akan mengurangi efek noise pada klasifikasi, tetapi membuat batasan antara setiap klasifikasi menjadi semakin kabur. Nilai
k yang bagus dapat dipilih dengan optimasi
parameter, misalnya dengan menggunakan cross-validation.
Kasus
khusus dimana klasifikasi diprediksikan berdasarkan training data yang
29
paling dekat (dengan kata lain, k = 1) disebut algoritma nearest neighbor. Ketepatan algoritma KNN sangat dipengaruhi oleh ada atau tidaknya fitur-fitur yang tidak relevan atau jika bobot fitur tersebut tidak setara dengan relevansinya algoritma
ini
sebagian
terhadap
klasifikasi.
Riset
terhadap
besar membahas bagaimana memilih dan
memberi bobot terhadap fitur agar performa klasifikasi menjadi lebih baik. Langkah-langkah untuk menghitung metode K-Nearest Neighbor : 1.
Menentukan parameter K (jumlah tetangga paling dekat).
2.
Menghitung kuadrat jarak(query instance) masing-masing obyek terhadap data sampel yang diberikan.
3.
Kemudian
mengurutkan
objek-objek
tersebut
kedalam
kelompok yang mempunyai jarak terkecil. 4.
Mengumpulkan kategori Y (Klasifikasi nearestneighbor)
5.
Dengan menggunakan kategori nearest neighbor yang paling mayoritas maka dapat dipredisikan nilai query instance yang telah dihitung.
1.8
TF (Term Frequency) Term frequency merupakan salah satu metode untuk menghitung
bobot tiap term dalam teks. Dalam metode ini, tiap term diasumsikan memiliki nilai kepentingan yang sebanding dengan jumlah kemunculan term tersebut pada teks (Mark Hall & Lloyd Smith, 1999). Bobot sebuah term t pada sebuah teks dirumuskan dalam persamaan berikut : W(d,t) = TF(d,t)
Dimana TF(d,t) adalah term frequency dari term t di teks d. Term frequency dapat memperbaiki nilai recall pada information retrieval, tetapi tidak selalu memperbaiki nilai precision. Hal ini disebabkan term yang frequent cenderung muncul di banyak teks, sehingga term-term tersebut
30
memiliki kekuatan diskriminatif/keunikan yang kecil. Untuk memperbaiki permasalahan ini, term dengan nilai frekuensi yang tinggi sebaiknya dibuang dari set term. Menemukan threshold yang optimal merupakan fokus dari metode ini. 1.9
DF (Document Frequency) Document frequency adalah jumlah dokumen yang mengandung
suatu term tertentu. Tiap term akan dihitung nilai document frequency-nya (DF). Lalu term tersebut diseleksi berdasarkan jumlah nilai DF. Jika nilai DF berada di bawah threshold yang telah ditentukan, maka term akan dibuang. Asumsi awalnya adalah bahwa term yang lebih jarang muncul tidak memiliki pengaruh besar dalam proses pengelompokkan dokumen. Pembuangan term yang jarang ini dapat mengurangi dimensi fitur yang besar pada text mining. Perbaikan dalam pengelompokkan dokumen ini juga dapat terjadi jika term yang dibuang tersebut juga merupakan noise term. Document frequency merupakan metode feature selection yang paling sederhana dengan waktu komputasi yang rendah (Yiming Yang & Jan O. Pedersen, 1997). Ilustrasi dari metode document frequency ini adalah sebagai berikut. Jika terdapat data berjumlah 5000 dokumen, dan jumlah dokumen yang mengandung term “teknologi” adalah 150 dokumen. Maka nilai DF(teknologi) adalah 150. 1.10
KNIME Analytics Platform Pengembangan KNIME dimulai Januari 2004 oleh Devloper
perangkat lunak di Konstanz University sebagai produk proprietary. Tim pengembang asli yang dipimpin oleh Michael Berthold berasal dari sebuah perusahaan di Silicon Valley menyediakan perangkat lunak untuk industri farmasi. KNIME telah dikembangkan sejak hari pertama menggunakan profesional proses rekayasa perangkat lunak yang ketat karena itu jelas dari awal bahwa itu akan digunakan di perusahaan-perusahaan skala besar. Tujuan awalnya adalah untuk menciptakan sebuah platform pengolahan
31
data modular, sangat sederhana dan opensource yang memungkinkan untuk integrasi yang dapat digunakan dibanyak flatform seperti windows, linux, mac os. Eksplorasi visual yang tanpa fokus pada area aplikasi tertentu. Platform ini dimaksudkan untuk menjadi kolaborasi dan penelitian Platform dan juga harus melayani sebagai platform integrasi untuk berbagai proyek analisis data lainnya. The KNIME Analytics merupakan landasan menggabungkan ratusan
node
pengolahan
data
input/output,
preprocessing
dan
pembersihan, pemodelan, analisis dan data mining serta berbagai tools interaktif, seperti plot pencar, koordinat paralel dan lain-lain. Aplikasi ini mengintegrasikan semua modul analisis weka data mining terkenal dan plugin tambahan memungkinkan R-script yang akan dijalankan dan menawarkan akses ke perpustakaan besar statistic .KNIME didasarkan pada platform Eclipse dan, melalui API modular, mudah extensible ketika diinginkan, node kustom dan jenis dapat diimplementasikan di KNIME dalam beberapa jam sehingga memperpanjang KNIME untuk memahami dan memberikan dukungan tingkat pertama untuk data yang sangatdomain tertentu 1.11
Twitter Twitter merupakan sebuah situs media sosial mikroblog yang
memungkinkan penggunanya untuk mengirim dan membaca pesan singkat yang disebut dengan tweets atau kicauan. Penulisan tweets sendiri maksimum 140 karakter yang akan muncul secara realtime pada tampilan home pengguna. Twitter didirikan pertama kali oleh Jack Dorsey dari perusahaan podcasting Odeo. Awalnya layanan ini diberi nama “twttr”, terinspirasi dari nama situs sharing foto flickr. Pada juli 2006 media sosial ini diluncurkan untuk publik dengan nama “Twitter”. Fitur yang terdapat pada twitter ,antara lain:
32
1.
Halaman Utama (Home) Halaman utama merupakan kumpulan tweets yang di posting oleh pengguna baik informasi, bertita, gambar bahkan cek-in di suatu wilayah atau tempat secara realtime.
2.
Profil (Profile) Profil merupakan kumpulan tweet yang pernah dibuat pengguna dan informasi mengenai data diri.
3.
Following Following merupakan akun seseorang yang mengikuti dengan akun twitter lain. tweet yang di posting oleh following akan muncul di halaman utama.
4.
Followers Followers merupakan pengguna yang ingin berteman dan mengetahui aktifitas tweet seseorang. tweet yang di posting oleh followers akan muncul di halaman utama.
5.
Mentions Konten ini merupakan balasan dari percakapan agar pengguna dapat langsung menandai orang yang akan diajak bicara.
6.
Favorite Tweets ditandai sebagai favorit agar tidak hilang dan mudah untuk dicari untuk menemukan tweet sebelumnya.
7.
Pesan Langsung(Direct Message) Direct message merupakan media pengirimman pesan secara privasi antar pengguna.
8.
Hastag Hastag ditandai dengan “#” berfungsi untuk mencari topik yang sejenis.
9.
List Pengguna twitter dapat mengelompokan followers kedalam satu grup sehingga memudahkan untuk dapat melihat informasi secara keseluruhan.
33
10.
Trending Topic Topik yang sedang ramai dibicarakan oleh banyak pengguna dalam suatu waktu bersamaan.
1.11.1 Twitter API (Application Programming Interface) Application Programming Interface merupakan sebuah fungsi atau perintah-perintah yang digunakan untuk mengembangkan bahasa dalam system calls untuk memudahkan developer dengan bahasa atau fungsi yang lebih terstruktur. Para developer menggunakan twitter API untuk membuat aplikasi, website, dan informasi lain yang berinteraksi dengan Twitter. Dokumentasi mengenai
twitter API dapat dilihat pada
http://dev.twitter.com System call Interface berfungsi sebagai penghubung antara API dan system call yang dimengerti oleh sistem operasi. System call Interface menerjemahkan perintah dalam API dan memanggil fungsi yang tersedia dalam System call yang diperlukan. Perintah dari user tersebut, diterjemahkan oleh program menjadi perintah open ( ). Twitter API terdiri dari 3 (tiga) bagian yaitu. 1.
Search API Dirancang untuk memudahkan user dalam mengelola query search
di konten twitter. User dapat menggunakannya untuk mencari keyword berdasarkan kata khusus atau mencari tweet lebih spesifik berdasarkan username twitter. 2.
Representational State Transfer (REST) API Twitter REST memberikan core data dan core twitter objects,
memperbolehkan developer untuk mengakses inti dari twitter seperti timeline, status update dan informasi user. REST API digunakan dalam membangun sebuah aplikasi twitter yang kompleks yang memerlukan inti dari twitter.
34
3.
Streaming API Streaming API digunakan developer untuk kebutuhan yang lebih
intensif seperti melakukan penelitian dan analisis data. Streaming API dapat menghasilkan aplikasi yang dapat mengetahui statistik status update, follower dan lain sebagainya.
35