Modul NLP
Modul NLP
Pemrosesan Bahasa alami NLP (Natural language Processing) adalah penerapan ilmu
computer, khususnya kecerdasan buatan (artificial intelligence), dan linguistik khususnya
linguistik komputasional (computational linguistics) untuk mengkaji interaksi antara komputer
dengan bahasa alami manusia dengan segala aturan gramatika dan semantiknya serta mengubah
bahasa tersebut menjadi repsentasi formal yang dapat diperoses oleh komputer.
Date: Jan-16-2012
Start: 10:00am
End: 11:30am
Where: Gates 159
c) Sentiment Analysis
Digunakan untuk melakukan product review agar mendapatkan resume dari produk
tersebut. Misalnya dari produk sebuah kamera terdapat komentar-komentar para
pengguna kamera tersebut. Dari komentar-komentar tersebut dihasilkan product
review berupa kalimat-kalimat yang positif dan negatif. Hal ini bisa dimanfaatkan
untuk menarik daya beli kamera ataupun untuk menentukan rating dari kamera
tersebut.
Contoh:
d) Machine Translation
Contoh : google translate merupakan mesin penerjemah yang menerapkan NLP agar
bisa merespon suatu bahasa berupa teks yang diinputkan kemudian secara otomasis
menerjemahkannya ke bahasa lain sesuai keinginan manusia/user.
e) Pemerolehan informasi (Information retrival)
Pencarian dokumen yang relevan, pencarian informasi spesifik di dalam dokumen,
serta pembuatan metadata
Contoh: Sistem IR yang paling popular adalah search engine pada World Wide Web.
f) Perangkuman otomatis (automatic summarization)
Pembuatan versi singkat berisi butiran-butiran penting dari suatu dokumen dengan
menggunakan program komputer.
g) Pengenalan wicara (speech recognation)
Pengubahan bahasa lisan menjadi masukan yang dikenali oleh mesin.
contoh: S-Voice pada Samsung.
h) Kategorisasi teks
Kategorisasi adalah proses untuk menemukan model atau fungsi yang menjelaskan
atau membedakan konsep atau kelas data, dengan tujuan untuk dapat memperkirakan
kelas dari suatu objek yang labelnya tidak diketahui.
Pada kategorisasi teks, diberikan sekumpulan kategori (label) dan koleksi dokumen
yang berfungsi sebagai data latih, yaitu data yang digunakan untuk membangun
model, dan kemudian dilakukan proses untuk menemukan kategori yang tepat untuk
dokumen test, yaitu dokumen yang digunakan untuk menentukan akurasi dari model.
Misalkan ada sebuah dokumen x sebagai inputan, maka output yang dihasilkan oleh
model tersebuat adalah kelas atau kategori y dari beberapa kategori tertentu yang
telah didefinisikan sebelumnya (y1,…,yk). Adapun contoh dari pemanfaatan
kategorisasi teks adalah pengkategorisasian berita ke dalam beberapa kategori seperti
bisnis, teknologi, kesehatan dan lain sebagainya; pengkategorisasian email sebagai
spam atau bukan; pengkategorisasian kilasan film sebagai film favorit, netral atau
tidak favorit; pengkategorisasian paper yang menarik dan tidak menarik; dan
penggunaan dari kategorisasi teks yang paling umum adalah kategorisasi otomatis
dari web pages yang dimanfaatkan oleh portal Internet seperti Yahoo. Kategorisasi
otomatis ini memudahkan proses browsing artikel berdasarkan topik tertentu yang
dilakukan oleh user. Salah satu algoritma kategorisasi yang sering digunakan adalah
algoritma Naive bayes multinomial. Algoritma ini merupakan algoritma yang
menerapkan metode probabilistic learning method.
2. Word Normalization
Word normalization merupakan proses pengubahan bentuk teks (baik indeks teks
maupun query term) menjadi bentuk yang sama dengan teks lainnya agar memiliki bentuk yang
serupa atau seragam sehingga dokumen lebih mudah untuk diproses. Word normalization sering
digunakan ketika mengkonversi text to speech, nomor, tanggal, akronim, dan singkatan yang
non-standar. Misal:
a) $200 menjadi two thousand dollars
b) U.S.A dengan USA menjadi United States of America
c) I like u’r dress menjadi I like your dress
Case folding adalah mengubah semua huruf dalam dokumen menjadi huruf kecil
(lower case). Hanya huruf ‘a’ sampai dengan ‘z’ yang diterima. Karakter selain huruf
dihilangkan dan dianggap delimiter. Tahap tokenizing/parsing adalah tahap pemotongan
string input berdasarkan tiap kata yang menyusunnya. Contoh dari tahap ini adalah sebagai
berikut:
2.2 Stopwords Removal
Stopwords merupakan kata umum (common word) yang biasanya muncul dalam
jumlah besar dan dianggap tidak memiliki makna. Tujuan melakukan stopwords removal
selain untuk menghilangkan kata yang tidak memiliki makna, juga untuk mengurangi jumlah
kata yang akan diproses. Contoh:
Berikut merupakan beberapa stopword dalam bahasa inggris:
Text segmentation merupakan proses membagi-bagi teks menjadi unit-unit yang berarti.
Sentence segmentation membagi string tertulis dalam komponen kata dilakukan dengan
menggunakan regular expression.
Regular Expression atau yang lebih sering disebut regex merupakan sebuah teknik
yang digunakan untuk mencocokan string teks, seperti karakter tertentu, kata-kata, atau pola
karakter. RegEx memiliki 2 fungsi utama yakni mencari dan mengganti, mencari suatu pola
tertentu dalam text lalu menggantinya menjadi pola yang lain.
Pola Penjelasan
[] Ekspresi kurung. Cocok dengan satu karakter yang berada dalam kurung,
misal: pattern "a[bcd]i" cocok dengan string "abi", "aci", dan "adi".
Penggunaan range huruf dalam kurung diperbolehkan, misal : pattern "[a-z]"
cocok dengan salah satu karakter diantara string "a" sampai "z".
Pattern [0-9] cocok dengan salah satu angka.
Jika ingin mencari
karakter "-" juga, karakter tersebut harus diletakkan di depan atau di
belakang kelompok, misal: "[abc-]".
[^ ] Cocok dengan sebuah karakter yang tidak ada dalam kurung, berlawanan
dengan yang diatas.
Misal: pattern "[^abc]" cocok dengan satu karakter apa saja kecuali "a",
"b", "c".
? Cocok dengan nol atau satu karakter sebelumnya.
misal: pattern "died?" cocok dengan string "die" dan "died".
+ Cocok dengan satu atau lebih karakter sebelumnya.
Misal: "ye+s" cocok dengan "yes", "yeees", "yeeeees", dan seterusnya.
* Cocok dengan nol atau lebih karakter sebelumnya.
misal: pattern "ye*s" cocok dengan string "ys", "yes", "yees" dan
seterusnya.
{x} cocok dengan karakter sebelumnya sejumlah x karakter.
misal: pattern
"[0-9]{3}" cocok dengan bilangan berapa saja yang berukuran 3 digit.
{x,y} Cocok dengan karakter sebelumnya sejumlah x hingga y karakter.
Misal: pattern
"[a-z]{3,5}" cocok dengan semua susunan huruf kecil yang terdiri dari 3
sampai 5 huruf.
! Jika diletakkan di depan pattern, maka berarti "bukan".
Misal pattern "!a.u" cocok dengan string apa saja kecuali string "alu", "aku",
"abu", "acu", "aiu", dan seterusnya .
^ Jika diletakkan di depan pattern, akan cocok dengan awal sebuah string.
$ Jika diletakkan di belakang pattern, akan cocok dengan akhir sebuah string.
Misal: The end?.$ maka cocok dengan “!’
Contoh kasus regular expression:
a) Memblok semua yang huruf baik huruf kecil maupun besar
Stemming adalah proses mengubah kata berimbuhan menjadi kata dasar. Proses
stemming dapat membantu menemukan dokumen yang sedang dicari yaitu dengan
menanggalkan imbuhan-imbuhan hingga hanya menyisakan kata dasar. Algoritma yang
digunakan dalam melakukan stemming adalah algoritma porter.
Stemming khusus bahasa Inggris yang ditemukan oleh Martin Porter 1980. Mekanisme
algoritma dalam mencari kata dasar suatu kata berimbuhan dengan membuang imbuhan–
imbuhan (atau lebih tepatnya akhiran) pada kata–kata bahasa Inggris karena dalam bahasa
Inggris tidak mengenal awalan. Karena bahasa Inggris datang dari kelas yang berbeda, beberapa
modifikasi telah dilakukan untuk membuat Algoritma Porter sehingga dapat digunakan sesuai
dengan bahasa Indonesia.
Pada tahap ini dilakukan proses pengembalian berbagai bentukan kata ke dalam suatu
representasi yang sama. Tahap ini kebanyakan dipakai untuk teks berbahasa inggris dan lebih
sulit diterapkan pada teks berbahasa Indonesia. Hal ini dikarenakan bahasa Indonesia tidak
memiliki rumus bentuk baku yang permanen. Contoh dari tahapan ini pada teks berbahasa
inggris adalah sebagai berikut:
Untuk menangani masalah pada Porter Stemmer untuk Indonesia perlu ditambahkan
beberapa aturan dalam algoritma agar memberikan hasil yang lebih maksimal dan untuk
mempermudah proses stem maka dibuatlah beberapa kamus kecil, antara lain sebagai
berikut:
1. Kamus kata dasar yang dilekati partikel, untuk menyimpan kata dasar yang memiliki
suku kata terakhir (partikel infleksional) serta kata tersebut tidak mendapat imbuhan
apapun. Seperti : masalah.
2. Kamus kata dasar yang dilekati partikel berprefiks untuk menyimpan kata dasar yang
memiliki suku kata terakhir (partikel infleksional) dan mempunyai prefiks. Seperti :
menikah.
3. Kamus kata dasar yang dilekati kata ganti milik, untuk menyimpan kata dasar yang
memiliki suku kata terakhir (kata ganti infleksional) serta kata dasar tersebut tidak
mendapatkan imbuhan apapun. Seperti : bangku.
4. Kamus kata dasar yang dilekati kata ganti milik berprefiks, untuk menyimpan kata
dasar yang memiliki suku kata terakhir (kata ganti infleksional) dan mempunyai
prefiks. Seperti : bersuku.
5. Kamus kata dasar yang dilekati prefiks pertama, untuk menyimpan kata dasar yang
memiliki suku kata pertama (prefiks derivasional pertama) serta kata dasar tersebut
tidak mendapatkan imbuhan apapun.. Seperti : median.
6. Kamus kata dasar yang dilekati prefiks pertama bersufiks, untuk menyimpan kata
dasar yang memiliki suku kata pertama (prefiks derivasional pertama) dan
mempunyai sufiks derivasional. Seperti : terapan.
7. Kamus kata dasar yang dilekati prefiks kedua, untuk menyimpan kata dasar yang
memiliki suku kata pertama (prefiks derivasional kedua) serta kata dasar tersebut
tidak mendapatkan imbuhan apapun. Seperti : percaya.
8. Kamus kata dasar yang dilekati prefiks kedua bersufiks, untuk menyimpan kata dasar
yang memiliki suku kata pertama (prefiks derivasional) dan mempunyai sufiks
derivasional. Seperti : perasaan.
9. Kamus kata dasar yang dilekati sufiks, untuk menyimpan kata dasar yang memiliki
suku kata terakhir (sufiks derivasional). Seperti : pantai.
5. Representasi Fitur
Salah satu elemen kunci dari text mining adalah kumpulan dokumen yang berbasis teks. Pada
prakteknya, text mining ditujukan untuk menemukan pola dari sekumpulan dokumen yang jumlahnya
sangat besar dan bisa mencapai jumlah ribuan bahkan sampai jutaan. Koleksi dokumen bisa statis, dimana
dokumen tidak berubah, atau dinamis, dimana dokumen selalu diupdate sepanjang waktu.
Algoritma yang digunakan pada text mining, biasanya tidak hanya melakukan perhitungan hanya
pada dokumen, tetapi pada juga feature. Empat macam feature yang sering digunakan:
1. 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.
2. Words.
3. Terms merupakan single word dan frasa multiword yang terpilih secara langsung dari corpus.
Representasi term-based dari dokumen tersusun dari subset term dalam dokumen.
4. Concept, merupakan feature yang di-generate dari sebuah dokumen secara manual, rule-based,
atau metodologi lain. Pada tugas akhir ini, concept di-generate dari argument atau verb yang
sudah diberi label pada suatu dokumen.
Representasi fitur yang biasanya digunakan adalah dengan menggunakan matrix, dengan cara
mengumpulkan semua kata yang ada pada dokumen atau dengan kata lain kita membuat suatu vocabulary
yang digambarkan sebagai berikut :
Dokumen 1 :
Saya ingin pulang ke padang, Vocabulary
dengan cara itu saya bisa Saya, ingin, pulang, ke, padang,
mengucapkan terimakasih kepada dengan, cara, itu, bisa,
orang tua saya mengucapkan, terimakasih,
Dokumen 2 : kepada, orang, tua, Andi,
Andi bermimpi membelikan sebuah bermimpi, membelikan, sebuah,
mobil kepada seorang kakek kakek mobil, kepada, seorang, kakek,
yang ia temui dijalan yang, ia, temui, dijalan, Bagus,
Dokumen 3 : sekali, novel, baca, kemarin,
Bagus sekali novel yang saya baca malam
kemarin malam itu.
Pada gambar email diatas kita bisa tau bahwa email tersebut merupakan spam dan bukan
email personal untuk kita. Bisa dibuktikan bahwa dari subject email saja yang berupa “important
notice!” dan ditujukan bukan untuk seorang namun kepada undisclosed-recipients. Untuk
pegklasifikasian teks kita menginginkan bahwa sistem dapat mengklasifikasi apakah email
tersebut merupakan spam atau bukan spam .
Male or femail author
Dalam text classification kita dapat melakukan klasifikasi teks berdasarkan siapa yang
membuat dan menulis berdasarkan jenis kelami dari penulis tersebut. Misalnya terdapat dua
paragraf sebagai berikut :
1. By 1925 present-day Vietnam was divided into three parts under French colonial rule.
The southern region embracing Saigon and the Mekong delta was the colony of
Cochin-Vhina; the central area with its imperial capital at Hue was the protectorate of
Annam....
2. Clara never failed to be astonished by the extraordinary felicity of her own name. She
found it hard to trust herself to the mercy of fate, which had managed over the years
to converther greatest shame into one of her greatest assets...
Dari kedua paragraf diatas dapat kita tentukan bahwa penulis paragraf pertama berjenis kelamin
laki-laki dikarenakan lebih banyak menggunakan kata ganti “the” dan “was”, sebaliknya paragraf
kedua yang menulis adalah permpuan dikarenakan sering menggunakan kata “she” dan “her”.
Positive or negative movie review
Dalam text classification kita dapat menentukan sentimen positif ataupun negatif dari
review suatu produk atau dari suatu review movie yang terdapat diinternet. Misalnya terdapat
beberapa movie review sebgai berikut :
Metode klasifikasi yang sederhana yang dasarnya adalah arutan bayes. Naive bayes disebut juga
aturan bayes yang naif.
Berdasarkan pada representasi yang sangat sederhana dari sebuah dokumen yaitu :
o Bag of word
Bag of word dapat di representasikan, ketika kita mempunyai suatu dokumen seperti dibawah ini:
(
dan adegan petualangan yang
menyenangkan ... Saya akan γ
merekomendasikan hal ini kepada siapa
pun. Aku sudah melihatnya beberapa
kali, dan aku selalu senang melihat lagi
dan setiap kali saya punya teman yang
telah belum melihatnya saya akan
merekomendasikan film tersebut. )=c
Tugas kita adalah mengambil fungsi gamma ( γ ) dikalikan dengan sebuah dokumen yang kita
punya kemudian disimpan kedalam kelas (c). Kelas tersebut bisa bernilai positif ataupun negatif. Jadi
analisis sentimen menghasilkan nilai positif ataupun negatif. Satu hal yang bisa kita lakukan adalah
melihat kata kata individu dalam dokumen seperti kata-kata yang ditebali diatas. Kita juga bisa
mempresentasikan bag of word dengan menggunakan subset of words (bagian kata). Misalnya dari
dokumen diatas kita bisa dapatkan kata yang penting saja , namun kita tidak lagi mengetahui arti dari
kalimat tersebut dan tidak dapat lagi mengetahui informasi yang ingin disampaikan oleh dokumen
tersebut.
Kita dapat merepresentasikan dokumen sebagai vektor dari kata-kata misalnya sebagai berikut:
( ) =
Suka 2
γ Romantis 2
rekomendasi 1
Tertawa 1
Senang 1
...... ......
c
dalam vektor tersebut terdapat kata-kata apa saja yang muncul dan dianggap penting dari sebuah
dokumen, kemudian dihitung jumlah perkata tersebut ada berapa masing masing kata tersebut muncul
dalam dokumen kemudian hasilnya dimasukkan kedalam kelas tertentu apakah termasuk kedalam kelas
positif atau negatif.
P(c|d) =
P ( d|c ) . P(c)
P (d)
tujuan utama kita adalah mendapatkan nilai dari probabilitas setiap kelas, kita akan menggunakan nilai
probabilistik untuk mendapatkan kelas yang terbaik. Jadi aturan bayes adalah nilai probabilitas dari
dokumen dalem sebuah kelas dikalikan dengan nilai probabilitas kelasnya kemudian dibagi dengan
probabilitas dokumennya.
argmax
Cmap = P(C|d)
c ∈C
argmax
=
c ∈C
P ( d|c ) . P(C)
P( d)
argmax
= P(d|c).P(c)
c ∈C
Pada rumus diatas kelas terbaik adalah yang mempunyai maximum a posteriori class,
mencari nilai maksimum dari semua kelas ditentukan dengan rumus naive bayes namun
penyebut P(d) atau probabilitas dokumen dapat dihilangkan karena tidak mempengaruhi
perhitungan, karena kita ingin mendapatkan nilai yang maksimal. Persamaan diatas kemudian
diturunkan menjadi,
argmax
Cmap = P(d|c).P(c)
c ∈C
argmax
= P(x1,x2,...,xn |c) . P(c)
c ∈C
dokumen d direpresentasikan sebagai fitur x1,x2,...,xn.
Bagaimana cara kita melakukan perhitungan probabilitas dari sebuah kelas? Kita
hanya bertanya seberapa sering kelas ini terjadi. Perhitungan probabilitas dari sebuah kelas
bisa sesuai dengan perhitungan “frekuensi relatif” pada sebuah korpus atau sebuah dataset.
Probabilitas dari sebuah kelas relatif lebih mudah untuk dihitung, karena terdapat parameter
untuk probabilitas.
P(x1,x2,...,xn |c)
Bag of word assumption : asumsi bahwa posisi dalam dokumen tidak penting atau
tidak dipermasalahkan
Conditional independence : berasumsi bahwa perobabilitas fitur P(xi|cj) yang
independen diberikan pada kelas c. Misalnya suatu fitur muncul dan diberikan kelas,
maka fitur lainnya pun akan berikan kelas juga
Hasil dari kedua asumsi yang sederhana tersebut di representasikan kedalam rumus
sebagai berikut :
argmax
Cmap = P(x1,x2,...,xn |c) . P(c)
c ∈C
argmax
CNB = (P(cj) ∏ P(x∨c ))
c ∈C x∈ X
argmax
CNB = (P(cj) ∏ P(x∨c ))
c ∈C x∈ X
Penjelasan
P(cj) probabilitas dari setiap kelasnya
P(xi|cj) untuk setiap kelasm meliha setiap posisi dan untuk
setiap posisi kita melihat kata dalam posisi dan mencari
probabilitas yang diberikan pada kelas.
P(wi|cj) =
count (wi , cj)
∑ count (w , cj)
w ∈v
masalah yang akan timbul dalam menggunakan maximum likelihood adalah apabila kita mempunyai
dokumen latih dengan kata fantastic dan di klasifikasikan dalam topik yang positive.
count(fantastic∨ positive)
P(“fantastic”|positive) =
∑ count (w , positive)
w ∈v
= 0
kemungkinan probabilitas nol tidak dapat menjadi sebuah kondisi, tidak peduli dengan bukti yang lain.
Solusi untuk masalah tersebut sangat sederhana dengan menggunakan :
count ( wi , cj )+ 1
P(wi|c) =
∑ count ( w , cj )+ 1
w ∈v
= count(wi , cj)
¿¿
Dalam sebuah training corput kita dapat mengekstraksi list vocabulary setiap katanya . kemudian
dapat dilakukan
count ( wi , cj )+ 1
P(wi|c) =
∑ count ( w , cj )+ ¿ v +1∨¿ ¿
w ∈v
=
1
¿¿
P(c) = Probabilitas suatu kelas adalah jumlah dokumen dalam kelas dibagi dengan jumlah total
Nc dokumen yang ada.
N
Suatu kemungkinan atau probabilitas suatu kata diberi kelas adalah dengan
P(wi|c) =
menghitung jumlah kata yang sudah diberi kelas ditambah satu dan dibagi
count ( wi , cj )+ 1
dengan jumlah kelas ditambah dengan jumlah vocabulary yang ada.
count(C)+¿ v∨¿¿
Studi kasus, diberikan sebuah dokumen latih dan testing sebagai berikut:
Dalam tabel diatas terdapat dua data dari lima dokumen, empat dokumen merupakan data training
yang sudah mempunyai kelasnya, dan satu dokumen merupakan data testing yang belum diketahui
kelasnya, dari ke empat dokumen training dapat dilihat dokumen dokumen tersebut mempunyai dua kelas
yaitu c dan j. tiga dari dokumen training masuk kedalam kelas c dan satu dokumen masuk kedalam kelas
j. Tugas kita disini adalah menentukan apakah dokumen ke lima masuk kedalam kelas c ataukan masuk
kedalam kelas j, dengan cara :
1
P(j) = dilihat dari jumlah dokumen yang kelasnya j dibagi dengan jumlah dokumen
4
keseluruhan
Setelah kita mendapatkan probabilitas priornya, kemudian kita akan mencari probabilitas dari setiap
katanya.
P(Chinese|c) diperoleh dengan cara menghitung semua kata Chinese yang ada pada dokumen kelas c
lalu ditambah 1 kemudian dibagi dengan jumlah semua kata dalam kelas c ditambah jumlah vocabulary
pada semua kelas atau dokumen yang ada, sehingga didapatkan hasil sebagai berikut :
Conditional probability :
5+1 6 3
P(Chinese|c) = = = P(Chinese|j) =
8+6 14 7
1+1 2
=
3+6 9
0+1 1
P(Tokyo|c) = = P(Tokyo|j) =
8+6 14
1+1 2
=
3+6 9
0+1 1
P(Japan|c) = = P(Japan|c) =
8+6 14
1+1 2
=
3+6 9
Kita sudah mempunyai informasi yang kita butuhkan yaitu prior dan conditional probability. Lalu hal
yang dapat kita lakukan adalah melakukan perhitungan apakah dokumen kelima masuk kedalam kelas c
atau kedalam kelas j, berikut perhitungannya
Misalnya tabel diatas adalah menjelaskkan tentang perbedaan antara email spam dengan bukan spam. Maka
untuk kolom dari tabel diatas adalah menunjukkan keadaan yang sebenarnya dari dokumen, sedangkan
baris dalam tabel diatas menunjukkan keadaan pada sistem contoh dari penggunaan tabel diatas adalah
sebagai berikut :
TP (True Positive) adalah ketika pada keadaan sebenarnya email tersebut benar spam dan pada
sistem email tersebut terpilih sebagai spam
FP (False Positive) adalah terjadi ketika pada keadaan sebenarnya suatu dokumen atau email
adalah bukan spam namun pada sistem dokumen atau email tersebut dipilih ebagai spam.
FN (False Negative) adalah terjadi ketika pada keadaan sebenarnya dokumen atau email
tersebut adalah bukan spam namun pada sistem dokumen atau email tersebut tidak dipilih
sebagai spam.
TN (True Negative) adalah ketika pada keadaan sebenarnya dokumen atau email tersebut
adalah bukan spam dan pada sistem dokumen atau emai tersebut dipilih sebagai bukan spam
juga.
Untuk mengetahui akurasi dari klasifikasi yang akan kita lakukan pada misalnya deteksi email spam atau
bukan spam. Kita dapat melakukan perhitungan dengan cara sebagai berikut :
Akurasi =
TP+TN
TP+ FP+ FN +TN
Dalam banyak aplikasi, akurasi adalah perhitungan yang sangat berguna untuk mengetahui atau
mengevaluasi kondisi pada sistem. Namun pada beberapa kasus akurasi saja tidak cukup, karena akurasi
tidak menjamin ketepatan hasil kategorisasi untuk itu kita butuhkan adanya precision dan recall.
Precision adalah presentasi dari item yang terpilih benar, bisa ditunjukkan dengan rumus sebagai berikut :
Precission =
TP
TP+ FP
dan recall adalah presentasi dari item yang benar dimana item tersebut
terpilih, adapun rumus untuk recall adalah sebagai berikut :
Recall =
TP
TP+ FN
Biasanya nilai precision dan recall berbanding terbalik (trade of). Agar nilai precision dan recall
seimbang dilakukanlah perhitungan dengan menggunakan F-measure untuk mengukur performansi dari
sistem. Dengan rumus sebagai berikut :
1
F = 1 1 =
∝ +(1−∝)
p R
( β 2+1 ) PR
β 2 P+ R
Supaya nilai dari precision dan recall menjadi balance, rumus pada F measure biasanya dengan
∝=0.5 dan β=1 sehingga rumusnya menjadi
2 PR
F1 =
P+ R
Semakin besar nilai F1, maka performansi sistem akan semakin bagus.