Topic Modelling on Portfolio

Fira Yusi Rukmana

Sosial Media


0 orang menyukai ini
Suka

Summary

Topic Modelling ialah sebuah model untuk menemukan topik abstrak yang terdapat pada sebuah dokumen. Topic Modelling adalah teknik text mining untuk menemukan struktur tersembunyi pada sebuah text. Hasil yang diperoleh dari aktivitas ini ialah menemukan kata kunci atau keyword dari sebuah text. Dalam melakukan teknik ini hal yang perlu dilakukan yaitu:

  1. Menyiapkan data teks yang akan dianalisis. Kemudian data text dibersihkan dengan menghapus karakter atau tanda baca yang tidak penting, menghapus angka, menghapus kata yang tidak memiliki bobot (kata hubung dll), dan juga melakukan tokenizers. Tokenizer ialah mengubah sebuah kalimat menjadi beberapa kata.
  2. Kemudian melakukan modelling, pada tahap ini text yang telah bersih akan dianalisis untuk menghasilkan sebuah topik. Output dari teknik ini ialah word cloud, yaitu gambar yang menunjukkan daftar kata kata yang digunakan secara umum pada sebuah text.

Teknik ini berfungsi untuk mengtahui hal apa yang dibahas oleh sebuah dokumen text, sehingga kita tidak perlu membaca secara keseluruhan untuk menemukan gagasan utama. Hal ini bisa digunakan oleh pihak BISA Design untuk admin agar mengetahui portofolio yang memiliki like terbanyak kira kira topik apa yang dibahas sehingga hal tersebut bisa menjadi rekomendasi penyusunan portofolio lainnya agar pembaca semakin banyak menikmati portofolio yang telah disusun.

Description

Topic modelling secara sederhana ialah menemukan topik pada sebuah sekumpulan dokumen text. Peran topik modelling ialah mengelompokkan data dengan topik yang serupa, namun hal ini bukan teknik klasifikasi. Pendekatan yang dilakukan pada teknik ini berbeda yaitu:

  • Menemukan pola topik abstrak pada kumpulan dokumen
  • Memberikan anotasi dokumen berdasarkan topik tersebut
  • Menggunakan anotasi dokumen untuk mengelompokkan data

Untuk aktivitas yang penulis lakukan hanya menemukan topik dari sebuah dokumen. Teknik ini merupakan bagian dari teknik unsupervised karena kita bisa melakukan analisis ini tanpa memerlukan label atau kelas dari sebuah data. 

 

Data

Data yang digunakan ialah deksripsi dari portofolio pada halaman website BISA DESIGN. Penulis menggunakan 1 portofolio untuk dilakukan analisis, sebenarnya bisa lebih dari itu. Namun disini satu deskripsi cukup untuk melakukan teknik analisis data topik modelling

https://bisa.design/

 

Pre-Processing

Pada tahap ini hal yang dilakukan yaitu melakukan text prepocessing, hal ini merupakan tahap awal dalam mengelola data text. Teknik ini mempersiapkan teks yang awalnya tidak terstruktur menjadi data yang baik dan siap untuk diolah. Tidak ada aturan yang baku dalam melakukan teknik ini, semua tergantung dari karakter data dan hasil apa yang kita inginkan dari hasil analisis data. 

Hal yang dilakukan oleh penulis ialah:

  1. Membuat text menjadi lower text, hal ini dilakukan karena bahasa pemograman python melihat kata “data” dengan “Data” menjadi dua value yang berbeda, sehingga untuk menghindari double value maka kita perlu melakukan lower text untuk seluruh deskripsi portofolio pada data text.
  2. Menghapus punctuation, ialah sebuah proses dimana sistem akan menghilangkan tanda baca, karakter atau simbol yang ada pada data text. Hal ini dihapus karena tidak memiliki pengaruh pada hasil teknik topik modelling.
  3. Menghapus angka, ialah sebuah proses dimana sistem akan menghilangkan angka. Hal ini dihapus karena angka dirasa tidak memiliki pengaruh dan tidak memiliki bobot dalam menentukan sebuah topik pada data text.
  4. Kemudian kita melakukan stopwords, dalam dunia pemograman NLP (natural language processing) merupakan kata yang diabaikan atau dihapus dalam pemrosesan dan biasanya disimpan dalam stop list kata apa saja yang dirasa tidak penting. Untuk bahasa indonesia kita menggunakan library sastrawi. Stop list ini berisi kata umum yang mempunyai fungsi tapi tidak memiliki arti seperti kata hubung, imbuhan dan lain lain. Pada tahap ini penulis juga melakukan penambahan kata pada stop list, kata ini ditemukan ketika model menghasilkan topik berupa kata hubung. 
  1. Kemudian melakukan tokenizing yaitu teknik untuk proses pemotongan teks menjadi bagian bagian yang lebih kecil, yang disebut token. Teknik ini juga biasanya disebut juga tahap lexical analysis adalah proses pemotongan teks menjadi bagian bagian yang lebih kecil yang disebut sebagai token. 
  2. Stemming, yaitu sebuah proses pengubahan bentuk kata menjadi kata dasar atau tahap mencari root dari tiap kata. 

Pada tahap ini, penulis memperoleh hasil data text sebagai berikut beserta output dari masing masing teknik preprocessing.

 

Modelling

Pada tahap modelling, library yang kita gunakan ialah count vectorizer dan latent Dirichlet Allocation. Count vectorizer digunakan untuk mengubah teks yang diberikan menjadi vektor berdasarkan frekuensi atau jumlah dari setiap kata yang muncul di seluruh teks.

Teknik latent Dirichlet Allocation (LDA) ialah contoh topic modelling yang digunakan untuk mengklasifikasikan teks dalam dokumen ke topik tertentu. Membangun topik per model pada dokumen dan menghasilkan per kata. Berikut contoh ilustrasi hasil dari LDA.

Untuk proses implementasi pada bahasa pemograman python, hal yang dilakukan ialah sebagai berikut. Setelah memanggil fungsi hal yang dilakukan ialah melakukan proses vectorizer untuk mengubah ke data vektor yang kemudian dilanjutkan ke pelatihan data menggunakan modul lda. Kemudian kita mencoba melakukan visualisasi dengan wordcloud dari hasil membangun model sebelumnya tadi. 

 

Text Modelling

Hasil yang diperoleh ialah word cloud dan topik pada sebuah dokumen tersebut. Berikut hasilnya.

Sehingga topik pada dokumen tersebut adalah form, global, icons, illustration, inovasi, dan typography.

 

Source Code

https://colab.research.google.com/drive/1x8PhZLuxdg6YC14pOZZftDA6UTGC5gaB?usp=sharing

 

Sumber Referensi

https://medium.com/@ranggaantok/topic-modelling-menggunakan-latent-dirchlect-allocation-3fdf979ffd05

https://medium.com/mandiri-engineering/text-preprocessing-tahap-awal-dalam-natural-language-processing-nlp-bc5fbb6606a

https://www.educative.io/answers/countvectorizer-in-python

Informasi Course Terkait
  Kategori: Artificial Intelligence
  Course: Data Science