9/18/14
KOM341 Temu Kembali Informasi
KULIAH #2 • Pemrosesan Teks • Java
Proses Perolehan Informasi Sederhana KORPUS
OFFLINE PROCESS
JULIO ADISANTOSO - ILKOM IPB
JULIO ADISANTOSO - ILKOM IPB
1
9/18/14
Pengertian TEKS o Teks ≈ Korpus ≈ Koleksi dokumen yang bisa dibaca oleh mesin o Contoh: n Kumpulan artikel surat kabar yang diperoleh dari Internet n Kumpulan skripsi mahasiswa yang telah dikumpulkan secara digital oleh perpustakaan
JULIO ADISANTOSO - ILKOM IPB
Korpus o Korpus adalah teks alami yang dipilih dengan cara tertentu. o Masalah pada perancangan korpus n Ukuran n Jenis n Bahasa
o Media: teks, audio, video (multimedia) o Isu pada korpus: n Tokenisasi pada korpus n Anotasi pada korpus JULIO ADISANTOSO - ILKOM IPB
JULIO ADISANTOSO - ILKOM IPB
2
9/18/14
Contoh Korpus Free text Sekurangnya 17 ribu ayam ras milik peternak di wilayah kabupaten Kotawaringin Timur (Kotim) , Kalimantan Tengah mati dan kuat dugaan akibat terserang virus avian influenza (AI) atau yang lagi ramai disebut penyakit flu burung. Kasubdin Produksi Peternakan Dinas Pertanian Kotim Drh. Mawardi di Sampit, Selasa mengatakan sebanyak 17 ribu ekor ayam ras yang mati diduga terserang flu burung itu sejak Desember 2003. Dari hasil diagnosa Balai Penyelidikan dan Pengujian Veteriner (BPPV) regional V Banjar Baru Kalimantan Selatan yang diterima Disnak Kotim, Senin (26/1) menyebutkan ayam yang mati terserang panyakit itu hanya ada dua kemungkinan yaitu terserang virus AI dan VVND atau tetelo. "Namun kasus kematian masal ayas ras di Kotim kemungkinan besar akibat akibat serangan virus avian influenza yang bila menular kepada manusia namanya menjadi flu burung," ucapnya. JULIO ADISANTOSO - ILKOM IPB
Contoh Korpus XML Format
DOC01 <TITLE>Flu Burung Menyerang Kalimantan Tengah Ark, Ant 7 Februari 2003 Sekurangnya 17 ribu ayam ras milik peternak di wilayah kabupaten Kotawaringin Timur (Kotim) , Kalimantan Tengah mati dan kuat dugaan akibat terserang virus avian influenza (AI) atau yang lagi ramai disebut penyakit flu burung. Kasubdin Produksi Peternakan Dinas Pertanian Kotim Drh. Mawardi di Sampit, Selasa mengatakan sebanyak 17 ribu ekor ayam ras yang mati diduga terserang flu burung itu sejak Desember 2003.
Dari hasil diagnosa Balai Penyelidikan dan Pengujian Veteriner (BPPV) regional V Banjar Baru Kalimantan Selatan yang diterima Disnak Kotim, Senin (26/1) menyebutkan ayam yang mati terserang panyakit itu hanya ada dua kemungkinan yaitu terserang virus AI dan VVND atau tetelo. "Namun kasus kematian masal ayas ras di Kotim kemungkinan besar akibat akibat serangan virus avian influenza yang bila menular kepada manusia namanya menjadi flu burung," ucapnya.
JULIO ADISANTOSO - ILKOM IPB
JULIO ADISANTOSO - ILKOM IPB
3
9/18/14
Melacak Teks o Operasi dasar dalam string matching o Contoh: n Dapatkan semua baris yang dimulai dengan kata Flu. n Dapatkan semua baris yang dimulai dengan kata Huruf Besar. n Dapatkan semua baris yang memiliki kata terdiri dari huruf besar semua. n Hitung banyaknya kata Flu pada dokumen tersebut. n dsb.
JULIO ADISANTOSO - ILKOM IPB
Statistik Teks o Jumlah Kata n Seberapa besar korpus yang ada (N)
o Jenis kata n Berapa jumlah kata yang unik? n Berapa besar perbendaharaan kata pada korpus?
o Token kata n Berapa jumlah kata pada korpus? n Berapa frekuensi dari setiap jenis kata? n Kata apa yang paling sering muncul pada korpus?
JULIO ADISANTOSO - ILKOM IPB
JULIO ADISANTOSO - ILKOM IPB
4
9/18/14
Prosedur Menghitung Frekuensi Kata o o o o o o
Tokenisasi : mendapatkan kata Ubah menjadi huruf kecil Urutkan menurut abjad Hitung frekuensi kemunculan kata Urutkan menurut frekuensinya Hitung frekuensi dari frekuensi kemunculan kata
JULIO ADISANTOSO - ILKOM IPB
Fenomena Frekuensi Kata o Sejumlah kata merupakan kata yang sangat umum (frekuensi sangat besar), misalnya “the”, “of” o Kebanyakan kata sangat jarang muncul (frekuensi sangat kecil). o Setengah dari kata-kata pada korpus hanya muncul sekali.
JULIO ADISANTOSO - ILKOM IPB
JULIO ADISANTOSO - ILKOM IPB
5
9/18/14
Contoh Kata
Frekuensi Kata (f)
Peringkat (r)
f*r
name
21
400
8400
comes
16
500
8000
group
13
600
7800
science
11
700
7700
family
10
800
8000
begin
9
900
8100
broke
4
2000
8000
seems
2
3000
6000
could
2
4000
8000
JULIO ADISANTOSO - ILKOM IPB
Hukum Zipf o Menjelaskan adanya hubungan antara frekuensi dan urutan/rank (George Kingsley Zipf). o Urutan/Rank: n hitung berapa kali kata muncul pada semua teks di dalam korpus (f). n urutkan sesuai dengan frekuensi kemunculan kata membentuk rank (r).
o Terdapat konstanta c sehingga f * r = c
JULIO ADISANTOSO - ILKOM IPB
JULIO ADISANTOSO - ILKOM IPB
6
9/18/14
Luhn’s Ideas
kata-kata yang paling umum dan paling tidak umum adalah tidak signifikan untuk indexing
JULIO ADISANTOSO - ILKOM IPB
Stopwords o STOPWORDS: n Terdapat kata yang merupakan bagian terbesar dari teks yang tidak perlu digunakan sebagai penciri dokumen. n Terdapat banyak ragam kata yang hanya muncul sedikit sekali di dalam suatu teks. n Contoh: to, in, form, yang, dan
o Kata-kata dengan frekuensi cukup (di bagian tengah) adalah yang paling baik digunakan sebagai penciri dokumen.
JULIO ADISANTOSO - ILKOM IPB
JULIO ADISANTOSO - ILKOM IPB
7
9/18/14
Tokenisasi o Pengertian : suatu tahap pemrosesan di mana teks input dibagi menjadi unit-unit kecil yang disebut token, yang dapat berupa suatu kata, suatu angka, atau suatu tanda baca. o Konsekuensinya: n n n n
Perlu mengenali unit secara otomatis Apakah suatu kata itu? Kalimat? Paragraf?
JULIO ADISANTOSO - ILKOM IPB
Kata o Karakter alfanumerik yang saling terhubung yang dipisahkan oleh whitespace. o Whitespace: spasi, tab, newline o Masalah: n n n n
B2B, amazon.com, Micro$oft isn’t, Jum’at pro-aktif, out-of-date tanda sambung pada akhir baris
JULIO ADISANTOSO - ILKOM IPB
JULIO ADISANTOSO - ILKOM IPB
8
9/18/14
Segmentasi kata o Proses tokenisasi sederhana, tetapi tidak terlepas dari kesalahan. o Contoh: n Kata majemuk: Jurusan Surabaya-Jakarta n Frase: tusuk jarum, keras kepala, sistem informasi n Nomor telpon (0251) 8356653 +62 251 8625584
o Menjadi topik dari ekstraksi informasi
JULIO ADISANTOSO - ILKOM IPB
Kalimat o Satu atau lebih string kata yang diakhiri dengan suatu tanda berhenti sepenuhnya, tanda tanya atau tanda seru. o Contoh: n n n n n n
Akhir dari baris. Akhir dari suatu cerita! Apakah kamu sudah punya pacar? Ia sering mengunjungi friendster.com. Dr. Iwan pergi ke Surabaya. Dia mengatakan “Bohong!”.
JULIO ADISANTOSO - ILKOM IPB
JULIO ADISANTOSO - ILKOM IPB
9
9/18/14
Batas kalimat o Hipotesakan bahwa batas kalimat sesudah . ? ! o Pindahkan batas kalimat sesudah tanda petik, bukan setelah titik. n “Jangan ambil buku itu. Buku itu milik pak Budi. ”, kata ibu kepada Ani.
o Jangan gunakan titik jika: n Sebelumnya adalah singkatan yg umum yg biasanya bukan akhir kalimat, tp biasanya diikuti oleh nama dengan huruf besar: Prof. n Didahului oleh singkatan yang umum dan tidak diikuti oleh kata dengan huruf besar: Jr.
o Jangan kenali sebagai batas jika ada ! atau ? yang diikuti oleh huruf kecil JULIO ADISANTOSO - ILKOM IPB
Pemrosesan Teks Otomatis o Menghitung kata pada teks o Mengurutkan kata o Menghitung berbagai nilai statistik kata n Input : berkas teks (bisa berupa korpus) n Output : daftar kata beserta frekuensinya
o Pertanyaannya: n Bagaimana program komputernya? n Bahasa pemrograman apa yang digunakan?
JULIO ADISANTOSO - ILKOM IPB
JULIO ADISANTOSO - ILKOM IPB
10
9/18/14
Java o Free for download à http://java.sun.com o Unit terkecil program Java adalah Class yang terdiri dari methods (C:procedure) dan instance (C: data) o Contoh: public class Hello { public static void main(String[] args) { // menampilkan string ke layar System.out.println("Hello world!"); } } JULIO ADISANTOSO - ILKOM IPB
Program Java o Program Java harus disimpan dengan nama *.java o Nama File seharusnya sama dengan nama class public nya o Program yang berada pada satu folder dianggap sebagai satu package o Berisi komentar secukupnya untuk memperjelas kode program
JULIO ADISANTOSO - ILKOM IPB
JULIO ADISANTOSO - ILKOM IPB
11
9/18/14
Standard input o Menggunakan kelas BufferedReader yang berada di java.io import java.io.*; o Menyimpan input keyboard ke dalam buffer BufferedReader dataIn = new BufferedReader(new InputStreamReader(System.in));
o Menyimpan input ke dalam variabel sementara bertipe String try { String temp = dataIn.readLine(); } catch(IOException e){ System.out.println("Error input"); } o Contoh (stdin.java) à menghitung rata-rata dari n bilangan riil. JULIO ADISANTOSO - ILKOM IPB
Standard output o Tanpa format System.out.print(rataan); System.out.println(rataan); o Dengan format System.out.format("%.2f \n", rataan);
JULIO ADISANTOSO - ILKOM IPB
JULIO ADISANTOSO - ILKOM IPB
12
9/18/14
Array dalam Java o Sama dengan program dalam C o Mendeklarasikan variabel array int []usia; atau int usia[]; o Membuat objek array (dalam Java disebut sebagai instantiation) int usia[]; usia = new int[100]; atau bisa juga ditulis sekaligus menjadi int usia[] = new int[100]; o Dapat juga langsung didefinisikan seperti dalam C boolean hasil[]={ true, false, true }; int[] nilai = {100, 90, 80, 75}; String hari[] = {"Senin","Selasa","Rabu"}; JULIO ADISANTOSO - ILKOM IPB
Mendefinisikan Class dalam Java o Definisi class <modifier> class
{ * * <methodDeclaration>* } o Contoh: public class Lingkaran { //area penulisan kode selanjutnya } JULIO ADISANTOSO - ILKOM IPB
JULIO ADISANTOSO - ILKOM IPB
13
9/18/14
Contoh class Lingkaran public class Lingkaran { // Instance variables private double x; private double y; private double r; // Instance methods public void set(double x, double y, double r) { this.x=x; this.y=y; this.r=r; } public double luas() { double phi=3.14; return phi*r*r; }
}
// main routine public static void main(String[] args) { // penulisan kode program utama } JULIO ADISANTOSO - ILKOM IPB
Tokenisasi dengan Java o Dapat menggunakan dua metode: n Class StringTokenizer n Method split
o Lihat file contoh
JULIO ADISANTOSO - ILKOM IPB
JULIO ADISANTOSO - ILKOM IPB
14