Pengolahan Teks (Text Processing)

10 Oktober 2007

Tulisan ini seharusnya mendahului tulisan saya mengenai peringkasan teks (text summarization) karena ini merupakan latar belakangnya tapi biarlah :-)

Riset mengenai pemrosesan teks sebenarnya telah lama dilakukan, untuk peringkasan teks misalnya, telah mulai diteliti sejak tahun 1958 oleh peneliti dari IBM. Meredup di tahun 70-80 dan kembali bergairah di akhir tahun 90-an sampai sekarang. Mengapa pemrosesan teks kembali bangkit menjadi “primadona”?

Jawabannya adalah internet. Jumlah dokumen teks yang ada di internet tumbuh dengan sangat pesat. Menurut riset dari Barkeley, ukuran internet di tahun 2002 mencapai 532,897 Terabytes dengan sekitar 41.7%-nya adalah teks (bayangkan tuh jadi berapa Tera dokumen!, dan ini berupa teks bukan multimedia!). Dokumen teks ini dapat berupa static page, dynamic page, file dokumen, email, forum online dan blog.

Dokumen teks juga semakin berperan sejalan munculnya web 2.0 yang mendorong pengguna internet untuk membuat dan berbagi content (dua yang paling terkenal: blog dan social network). Aliran content segar dengan volume besar per harinya membanjiri internet. Anda dapat membayangkan jumlah posting seluruh blog sedunia dalam sehari? Coba tambahkan dengan berita dari seluruh koran, kantor berita! Berapa ratus atau ribu halaman mungkin (per harinya). Tambahkan lagi email.. huh.

Volume yang besar membuat pengguna internet semakin sulit memperoleh informasi yang sesuai dengan apa yang diinginkan. Untuk kasus blog, penggunaan blog aggregator dapat membantu, tetapi tetap saja ada kemungkinan blog atau posting yang menarik yang terlewat dengan sia-sia (mungkin termasuk blog ini hehe, kasihan deh).

Dibutuhkan teknik tertentu untuk mengolah dokumen teks. Inilah fungsi dari pengolahan teks (text processing).

Pengolahan teks mencakup:

  • Information retrieval: pencarian dokumen
  • Klasifikasi dokumen: membagi dokumen ke dalam kelas-kelas yang telah ditentukan sebelumnya. Misalnya secara otomatis dapat menentukan apakah dokumen ini masuk ke dalam kategori politik, ekonomi, militer dan lain sebagainya.
  • Document Clustering: mirip dengan klasifikasi dokumen, hanya saja kelas dokumen tidak ditentukan sebelumnya. Misalnya berita tentang lalulintas dapat menjadi satu kelas dengan berita tentang kriminal karena didalamnya banyak memuat tentang orang yang tewas, cedera, rumah sakit dsb.
  • Peringkasan teks. Menghasilkan ringkasan suatu dokumen secara otomatis.
  • Ekstraksi informasi. Mengekstrak informasi yang dianggap penting dari suatu dokumen. Misalnya pada dokumen lowongan, walaupun memiliki format beragam dapat diekstrak secara otomatis job title, tingkat pendidikan, penguasaan bahasa dsb.

Contoh perusahaan yang sukses menerapkan text processing? Tidak lain dan tidak bukan adalah Google :-)   Searching, news.google.com, ad-sense adalah contoh-contoh aplikasi text procssing.

Mengingat pentingnya ilmu text processing, jurusan ilkom di seluruh dunia mulai menawarkan perkuliahan yang khusus membahas tentang hal ini. Saya sendiri setelah lulus merencanakan akan membuka kuliah text processing ini di Ilkom UPI. Tapi saya harus lulus dulu deh hehe.

42 Tanggapan ke “Pengolahan Teks (Text Processing)”

  1. hanhan Berkata

    pak text prosesing itu masih berkaitan dengan data mining?
    oiya pak, kalau saya ngambil TA yang dari usulan bapak tea, tentang bayes dan email (semacam pendeteksi spam), apakah bisa (maksudnya apakah terlalu berat buat saya?).
    terimakasih pak.

  2. yudiwbs Berkata

    Sering disebut text mining sebenarnya. Teknik pada text processing sering digunakan dalam text mining.

    Untuk TA, bisalah tidak terlalu susah kok. Coba cari di situs saya, ada paper yang membahas secara detil algoritma naive bayes. Cuma karena anda mahasiswa matematik, mungkin bisa lebih diperdalam aspek matematiknya.

  3. hanhan Berkata

    terimakasih pak. saya sudah donlod paper bapak.

  4. endhy Berkata

    pak Yudi, boleh minta source code dari klasifikasi dokumen berita berbahasa indonesia menggunakan naive bayes classifier..
    terima kasih pak

  5. yudiwbs Berkata

    @endhy,

    Coba kirim email ke saya, kita ngobrol dulu deh :-) Prinsipnya saya sih tidak masalah men-share source. Tapi jangan sampai hanya digunakan begitu saja untuk skripsi atau tugas kuliah. Harus ada nilai tambahnya, misalnya Anda akan menambahkan fitur xxx, atau Anda akan membuat fitur yyyy jadi lebih baik atau sofware ini menjadi bagian dari sistem yang lebih besar dst.

  6. endhy Berkata

    ok pak, yang pasti saya ingin tahu metodenya saja soalnya yang dipakai datanya pakai dokumen berbahasa inggris

  7. yudiwbs Berkata

    @endhy, IMO, metodenya lebih jelas dilihat di paper saya (bisa didownload di fpmipa.upi.edu/staff/yudi). Source kode-nya masih acak-acakan soalnya hehe.

    Untuk dokumen berbahasa Inggris, hanya perlu diubah di tahap preprocessing, yaitu bagian stopwords removal.

  8. endhy Berkata

    terima kasih pak, tapi saya juga perlu source codenya pak, nanti mau saya convert ke java dan nanti mungkin bisa disempurnakan yang sebagai data bukan txt tapi doc

  9. endhy Berkata

    oh ya pak kira kira data 600 artikel sudah bisa untuk klasifikasi 5 -6 kategori?

  10. yudiwbs Berkata

    @endhy, ini maksudnya tahap training ya? Jawabannya menurut saya tergantung dokumennya. Nanti kan diukur kinerjanya, dari sana ketahuan apakah corpusnya dapat digunakan atau tidak.

    BTW naive bayes adalah metode yang kinerjanya tidak terlalu bagus, biasanya hanya berperan sebagai baseline method. Yang paling bagus setahu saya adalah SVM.

  11. hanhan Berkata

    assalamualaikum. maaf mengganggu pk, kira-kira bapak punya referensi kata-kata apa saja dalam bahasa inggris yang masuk ke dalam stopwords removal?

    terimakasih pak.

  12. yudiwbs Berkata

    Untuk bahasa Inggris banyak, googling saja dengan keyword “English stopwords”. Kalau yang bahasa Indonesia memang jauh lebih sedikit.

  13. endhy Berkata

    Assalamualaikum.
    mengganggu skali lagi, ada masalah lagi…

    Pas saya buat scriptnya di localhost waktu ditampilkan di browser lancar2 saja , sewaktu saya upload di hostingan kenapa muncul error di browser

    “You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ” at line 1″

    Apa memang karena beda versi Mysql nya ? jika iya bagaimana agar script tsb bisa jalan di hostingan , apa yg hrs saya rubah ?

  14. yudiwbs Berkata

    Coba ditulis SQL-nya yang mana. Kemudian versi mysql localhost berapa? dan versi mysql di hosting berapa?

  15. endhy Berkata

    CREATE TABLE `category` (
    `ID` int(5) NOT NULL default ‘0′,
    `PV` int(50) default ‘0′,
    `N` int(5) default ‘0′,
    `PW` varchar(100) default NULL,
    PRIMARY KEY (`ID`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

    CREATE TABLE `doc` (
    `id` int(5) NOT NULL auto_increment,
    `content` longtext,
    `clean_content` longtext,
    `frek` longtext,
    `kategori` int(2) default ‘0′,
    PRIMARY KEY (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=51 ;

    software yang digunakan apache2triad_1.5.2
    updated MySQL to 4.1.11
    updated PHP to 5.0.4

    kira kira apa yang salah dengan type tabel diatas….

  16. yudiwbs Berkata

    Error saat create tabelnya ya? Wah nggak tahu tuh, sepertinya normal-normal saja. Tapi bukannya sekarang MySQL biasanya versi 5? Saya pernah kena masalah kompatibilitas saat MySQL 4 diupgrade ke 5.

    BTW ati-ati menggunakan huruf besar dan kecil di field MySQL+PHP, bisa jadi masalah.

  17. endhy Berkata

    untuk simpan data paragraf text dalam database type longtext itu yang buat jadi error

  18. endhy Berkata

    untuk upgrade mysql 4 to mysql 5 apakah phpmyadmin di apache 2triad1.5.2 masih bisa berfungsi

  19. endhy Berkata

    apa phpmyadmin juga ikut diupgrade??

  20. yudiwbs Berkata

    Baca saja manual phpmyadminnya, biasanya ada versi minimal MySQL yang harus digunakan. Tapi seharusnya tidak terlalu masalah, phpmyadmin hanya interface saja kok.

  21. endhy Berkata

    pak
    Query was empty
    penyebabnya apa???

  22. yudiwbs Berkata

    @endny: saya tidak tahu.

    Itulah mengapa saya rekomendasikan anda lebih baik buat sendiri dari nol. Kode saya itu versi awal yang masuk dalam kategori prototype. Undocumented dan terlalu rapuh untuk diutak-atik, kecuali mungkin oleh saya sendiri. Kalau masih mau pakai ya resiko tanggung sendiri :-) IMO, sayang waktu anda terlalu banyak dihabiskan untuk kode saya yang masih berantakan, kalau anda buat sendiri mungkin malah lebih cepat.

  23. endhy Berkata

    ya ku coba bwat sendiri
    tapi pak di web bapak juga error bagian learn bayesnya tapi kenapa kok bisa jalan…
    hatur nuwun

  24. good luck Berkata

    tooolonnnnggg……
    ada yang bisa bantu saya dalam memahami apa itu text mining??
    contoh kasus di dunia nyata seperti apa si??
    thx

  25. yudiwbs Berkata

    ^
    IMO text mining adalah proses pencarian informasi berharga yang sebelumnya tidak diketahui dari kumpulan dokumen teks.

    Aplikasinya banyak, mulai dari google adsense sampai machine translation.

    Dulu saya pernah coba membuat sinonim untuk bahasa Indonesia, sumbernya berita dari Kompas (tapi tidak terlalu banyak). Waktu itu muncul kumpulan sinonim yang aneh yang mengaitkan kematian, cedera, rumah sakit dan PJKA. Ternyata di dokumen yang saya gunakan ada beberapa berita tentang kecelakaan kereta api. Dipikir-pikir mungkin program saya bisa digunakan untuk humas sebuah perusahaan. Berdasarkan berita pada rentang tertentu, apa sinonim dari sebuah merk atau nama perusahaan? hal positif atau negatif? :-)

  26. indah_tuing Berkata

    Pak… tanya nih…
    dari Klasifikasi Berita Berbahasa Indonesia menggunakan Naïve Bayes Classifier itu kalo ada document baru yang telah melalui proses klasifikasi… apakah document baru tersebut ikut dimasukkan ke dalam database..??
    mohon penjelasannya…
    thx before…

  27. yudiwbs Berkata

    @indah, sudah saya balas emailnya

  28. Andy Berkata

    Selamat Pagi Pak Yudi, saya ada tugas Machine Learning dan topik saya adalah Klasifikasi Berita berbahasa Indonesia Menggunakan Teknik Support Vector Machine (SVM), rencananya saya menggunakan SVM Light (joachim 1998). saya masih bingung bagaimana penerapan SVM ke aplikasi untuk klasifikasi dokumen.
    kalau boleh saya minta source code dari klasifikasi dokumen berita berbahasa indonesia menggunakan naive bayes classifier..untuk perbandingan saja.
    terimakasih sebelumnya pak

  29. yudiwbs Berkata

    Source codenya belum siap untuk orang lain :-)

    Masih berantakan dan tidak dapat langsung digunakan, coba baca comment sebelum ini, kasihan jadinya malah menghabiskan waktu.

  30. bagus Berkata

    haloo mas makasi banget ilmunya. btw blh minta ilmu lagi g…. hehehe berhubung TA saya ada hubungannya ama ini tapi ditambah sama backpropagation.kira-kira ada saran gak mas buat masukan hasil bayes ke neural networkna

  31. yudiwbs Berkata

    Untuk apa neural netnya?

    Saya pikir neural net tidak cocok untuk text processing. Masalahnya text processing melibatkan dimensi yang sangat besar (jumlah dimensi = jumlah kata yang unik), yang tidak cocok untuk neural net.

    Dulu saya pernah mendapat tugas klasifikasi dengan neural net. Dimensinya harus dikurangi 90% dulu baru sistem dapat feasible dijalankan (30 menit). Hasilnya jelas jadi jelek.

  32. azul Berkata

    Aww.
    Pak, kira-kira untuk skripsi boleh tidak melakukan analisis text mining pada blog sendiri ?
    Trims

  33. yudiwbs Berkata

    Salah satu karakteristik data mining, termasuk text mining adalah analisis terhadap data yang sangat besar. Kalau blog sendiri, kemungkinan kurang banyak datanya.

  34. atok Berkata

    mas yudi, saya tertarik belajar klasifikasi teks.biasanya saya menggunakan software rapidminer, tetapi saya kesulitan untuk mengetahui tingkat akurasi per dokumen.kebanyakan software hanya menampilkan tingkat akurasi per kelasnya.Mungkin mas yudi bisa bantu saya beri informasi.
    trims..

  35. yudiwbs Berkata

    @atok

    Untuk task klasifikasi? setahu saya memang akurasi diukur berdasarkan kelas. Cuma memang penting kita mengetahui dokumen mana yang “nyasar” ke kelas lain.

  36. raysha Berkata

    Salam kenal..

    pak sy skr sdg mengerjakan TA ttg text Summarization dg menambahkan faktor Keyphrase Extraction. Kalo Keyphrase Extraction lebih bagus mana ya pak KEA (nzdl.org/Kea) atau Turney (extractorlive). Sy coding dg php awalnya ingin pakai KEA tp terhalang di vocabulary nya. Kalau boleh share ttg keyphrase ya pak. thx

  37. Aryo Berkata

    maap pak,saya ingin bertanya tentang text processing. selain dengan klasifikasi, cara melakukan keyphrase extraction yang lainnya apa ya pak? apa bisa hanya dengan parameter IR saja, seperti TF/IDF saja, tanpa melakukan klasifikasi?

  38. N. Sukranadi Berkata

    Salam kenal,
    Pak saya mau curhat nih.Saya ibu rumah tangga. Baru2 ini saya iseng ikut ujian S2 UI. Saya bingung menentukan jurusan. Akhirnya pas detik2 terakhir saya pilih jur Ilmu Komputer. Ternyata saya lulus (tahap1 ). Tapi saya bingung, mengingat pengalaman ( jam terbang ) sy di bidang pemrograman tidak banyak, dan sudah tidak aktif sejak lama. Tapi saya punya ketertarikan unk belajar lagi, dan berharap mendapat skill yang cukup untuk kelak berwirausaha dlm bid. komputer.Menurut bapak apakah saya masih layak ikut kuliah ilmu komputer dan kira2 apa bentuk usaha yang mungkin selain mengajar ilmu komputer? Terima kasih atas waktu & jwbnya

    • yudiwbs Berkata

      Kalau layak saya pikir semua orang layak bu . Lagipula bidang ini cocok untuk orang yang ingin bekerja fleksibel dari sisi waktu dan tempat.

  39. asmara Berkata

    mas saya mau nanya ada ga langkah step2 untuk teks classification dengan SVM sampe menjadi suatu implementasi? dalam artian ada cntohnya begitu…….klo ada boleh dunks….kirim ke emailku dunks…..asmara@rapid-solution.com butuh buat skripsi nih mas

  40. aziz Berkata

    salam kenal…
    bapak… saya tertarik pada klasifikasi Berita berbahasa Indonesia dengan naive bayes bapak dan rencana saya untuk TA…
    bisa saya minta konsep perhitungannya pada tahap..learn dan klasifikasinya pak….
    soalnya pada tahap klasifikasi saya agak bingung pada perhitungan rumus naivenya… boleh nanti saya nanti kirim sampel learn dan klasifikasinya pada bapak lewat email…dan saya minta bimbingannya…

  41. itok Berkata

    pak, klo buu pemrosesan teks apa yahh ?
    kok saya cari referensinya sulit

    -thanks-


Tinggalkan Balasan