Java untuk Text Processing

5 Juli 2008

Saat saya membuat tools untuk eksperimen tesis, ada beberapa class Java yang paling sering digunakan.  Class tersebut adalah:

  • Scanner untuk membaca file teks dan memparsing kalimat menjadi kata.
  • Printwriter untuk menulis file teks. Sangat dianjurkan untuk menyimpan hasil proses ke file pada setiap tahap.
  • HashMap untuk menyimpan informasi yang berkaitan dengan kata. Misalnya probabilitas dan frekuensi kemunculan kata.  Mengapa HashMap? karena waktu untuk menambah dan mengambil data dari struktur ini tetap dan saya tidak membutuhkan keterurutan.

Berikut contoh  pemakaian ketiga class tersebut untuk menghitung frekuensi kata di dalam dokumen dan menuliskannya ke file:


import java.io.*;
import java.util.HashMap;
import java.util.Scanner;
import java.util.Map;

public class HitungFrek {
    public static void main(String[] Args) {
        HashMap<String,Integer> countWord  = new HashMap<String,Integer>();  //frekuensi word di document
        String namaFileInput  = "c:\\tes.txt";
        String namaFileOutput = "c:\\freq.txt";
        Integer freq;
        String  kata;
        File f = new File(namaFileInput);
        try {
            Scanner sc = new Scanner(f);
            //hitung frekuensi
            while (sc.hasNext()) {
                kata = sc.next();
                freq = countWord.get(kata);  //ambil kata

                //jika kata itu tidak ada, isi dengan 1, jika ada increment
                countWord.put(kata, (freq == null) ? 1 : freq + 1);
            }
            sc.close();
            //simpan hasilnya ke file teks
            PrintWriter pw = new PrintWriter(namaFileOutput);

            //loop untuk semua isi countWord
            for (Map.Entry<String,Integer> entry : countWord.entrySet()) {
                kata = entry.getKey();
                freq = entry.getValue();
                pw.println(kata+"="+freq);  //tulis ke file
            }
            pw.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Tags:

4 Tanggapan ke “Java untuk Text Processing”

  1. echo Berkata

    GOOODDDDD!

  2. shadiq Berkata

    pak, saya sewaktu semester 5 kemarin membuat aplikasi untuk menentukan derajat keterhubungan barang di swalayan dalam rangka UAS System Informasi, misal jika membeli HP, konsumen cenderung membeli Memory Card juga. tetapi tidak sebaliknya. Membeli MC tidak cenderung membeli HP.

    Jika di hubungkan dengan aplikasi text processing bapak mungkin dapat dijadikan untuk mengolah derajat keterhubungan kata dalam suatu kalimat… mungkin.

    tetapi fungsinya, BUKAN, misal: probabilitas munculnya kata “kamu” setelah kata “aku” adalah n%. TETAPI : probabilitas munculnya kata “kamu”, jika didalam kalimat tersebut ada kata “aku” adalah n%.

    mungkin tidak terlalu berguna, tetap mungkin berguna…. sebab saya tidak mengetahui nanti fungsinya intinya jadi apa :p

    any way, saya kirim filenya ke email bapak.

  3. yudiwbs Berkata

    Maksudnya? Coba dijelaskan lagi

  4. shadiq Berkata

    maaf pak idenya muncul prematur, saya sempurnakan dulu.


Tinggalkan Balasan