Ekstraksi Pasangan Pertanyaan-Jawaban dari Forum Online

30 January 2018 at 10:53 | Posted in bahasa indonesia, penelitian, text processing | Leave a comment

Forum online masih memiliki potensi yang besar walaupun popularitasnya turun sejalan dengan populernya group FB dan app group chat.  Di forum online, thread sudah dikelompokkan dalam topik dan umumnya ada moderator yang mencegah spam dan bot sehingga  data lebih “bersih” dibandingkan Twitter.  Saya jadi tertarik untuk mencoba me-mining data di forum online ini.

Salah satu fungsi utama forum adalah untuk media tanya jawab.  Ini yang rencananya saya akan ekstrak, pasangan pertanyaan dan jawabannya (PPJ). Pasangan ini  nantinya akan digunakan sebagai basis pengetahuan  QA (question-answering) system, termasuk chatbot.

Saya memilih forum online kaskus, dengan sub topik roda-empat, dan dengan thread mengenai mobil ayla agnia (karena paling banyak).  Bentuknya megathread, yaitu satu thread besar dengan ratusan halaman. Saya crawl dengan sangat pelan (30 menit per halaman) jadi mudah-mudahan tidak menggangu.  Untuk mengambil pasangan pertanyaan-jawaban (PPJ),  saya ambil posting yang menggunakan quote  dan reply (gambar bawah).

quote

Masalahnya, tidak semua quote dan reply adalah PPJ. Ada  quote yang bukan pertanyaan, ada reply yang berbentuk pertanyaan balik (bukan jawaban) dan ada  pasangan quote-reply yang tidak relevan (misal sapaaan selamat pagi dan jawabannya).

Saya menggunakan klasifikasi teks untuk mencari pasangan quote-reply yang merupakan PPJ. Pelabelan dilakukan oleh saya sendiri, dari  1030 pasangan quote-reply, 189 masuk ke kelas PPJ dan 841 non-PPJ.   Di luar dugaan, ternyata hanya sedikit pasangan quote-reply yang dapat digunakan (10%-an).  Penyebabnya mungkin mega-thread juga digunakan untuk tempat kumpul-kumpul sehingga banyak percakapan yang keluar dari topik.

Selanjutnya saya coba beberapa teknik klasifikasi dan untuk pertama kalinya saya menggunakan scikit-learn  (pelan-pelan migrasi dari Java ke Python 🙂 ) .   Karena ini eksplorasi pertama, supaya cepat saya tidak menggunakan praproses dan fitur-fitur lain, hanya bag-of-words teks quote dan reply-nya. Masalah imbalance juga tidak ditangani.

Data displit menjadi 70% data training, 30% data validasi. Hasil terbaik adalah dengan teknik SGD sbb  (precision, recall, F1):

Non PPJ:  0.89, 0.97, 0.93
PPJ: 0.76, 0.43, 0.55

Hasilnya menurut saya lumayan, mengingat kelas PPJ hanya 10% (kelas minoritas) dan belum dilakukan optimasi apapun.

Untuk eksplorasi berikutnya (selain tentunya meningkatkan akurasi):

  • Lintas domain, misalnya model yang ditraining untuk data otomotif sebagus apa jika diaplikasikan ke data thread tentang smartphone.
  • Pertanyaan-jawaban yang berbentuk thread diskusi. Jadi PPJ yang saling berkait.  ini mungkin  cocok untuk chatbot, agar bot dapat memberikan respon yang lebih natural.
  • Membangun QA System atau chatbot yang menggunakan data ini.

 

Link ke paper: https://osf.io/preprints/inarxiv/5rxak/

Advertisements

Leave a Comment »

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Blog at WordPress.com.
Entries and comments feeds.

%d bloggers like this: