Implementasi analisis sentimen untuk mengevaluasi performa leksikon dan metode ekstraksi fitur pada teks berbahasa Indonesia dengan Python di JupyterLab
.
Sentiment analysis implementation to evaluate lexicon and extraction feature methods performance using Python in
JupyterLab
. Primarily made for dealing with text in social media using Indonesian language (bahasa Indonesia). *Note: jupyter notebooks with English documentation can be found inipynb-en
folder.
- Dataset: cuitan Twitter berbahasa Indonesia mengenai sentimen penanganan covid-19 dari Prastyo et al. untuk data aspek umum;
- Slang & Stop Words: Kamus Alay (Colloquial Indonesian Lexicon) dan ID-Stopwords;
- Leksikon: InSet dan sentiwords_id (dari sentistrength_id);
- Ekstraksi Fitur:
term presence
,bag of words
,TF-IDF
; - Sintesis Data:
SVM-SMOTE
; - Classifier:
SVM
dengan linear kernel.
Repositori ini dibuat untuk mengevaluasi performa leksikon dan metode ekstraksi fitur pada analisis sentimen teks berbahasa Indonesia mengenai penanganan Covid-19 dengan Support Vector Machine (SVM). Pendekatan analisis sentimen dilakukan dengan pemelajaran semisupervisi—menggabungkan pendekatan berbasis leksikon dan pendekatan berbasis pemelajaran mesin. Setiap jupyter notebook (ipynb) disertai dengan petunjuk. Algoritma dibuat dengan memanfaatkan modul RegEx
bawaan Python dan library NLTK
, Scikit-learn
, juga imbalanced-learn
. Validasi dilakukan dengan k-Fold cv
setelah sebelumnya data disintesis (oversampling) dengan borderline SMOTE SVM atau SVM-SMOTE
.
- Pembersihan kata/prapengolahan teks
- Penggantian kata tidak baku
- Penghapusan stop words
- Pelabelan leksikon: InSet, sentiwords_id (dari sentistrength_id)
- Ekstraksi fitur: term presence, BoW, TF-IDF
- Sintesis data: SVM-SMOTE
- Klasifikasi: SVM
- Plotting
- pandas >= 0.25.0
- numpy >= 1.16.6
- nltk
- scikit-learn
- imbalanced-learn
- jupyterlab
Prasyarat
instal package satu per satu
pip3 install --user --upgrade [nama package]
atau
Clone Repositori
git clone https://github.com/onpilot/sentimen-bahasa.git
cd sentimen-bahasa
pip3 install -r requirements.txt
jupyter-lab
Saya punya instalasi Python versi lama untuk projek lain. Apa perlu di-uninstall dulu?
Ya. Atau gunakan aplikasi yang bisa memanajemen instalasi Python, seperti Conda atau Scoop.
Error: Microsoft Visual C++ 14.0 or greater is required!
Pengguna Windows perlu compiler Visual C++ 14.0 Build Tools atau versi di atasnya untuk package scikit-learn.
Publikasi mengenai projek ini bisa dilihat di: http://jurnal.umus.ac.id/index.php/intech/article/view/556
Jika kamu memanfaatkan repositori ini dalam publikasi akademis, kami sangat mengapresiasi sitasi ke paper berikut:
@article{j.ilm.intech:v03:02-556,
author = {Wildan Fariq Abdillah, Agyztia Premana, Raden Mohamad Herdian Bhakti},
title = {Analisis Sentimen Penanganan Covid-19 dengan Support Vector Machine: Evaluasi Leksikon dan Metode Ekstraksi Fitur},
journal = {Jurnal Ilmiah Intech: Information Technology Journal of UMUS},
year = {2021},
volume = {03},
issue = {02},
pages = {160-170},
issn = {2685-4902 (online)},
doi = {10.46772/intech.v3i02.556},
url = {http://jurnal.umus.ac.id/index.php/intech/article/download/556/373}
}
- jupyter notebooks (ipynb) + petunjuk bahasa Indonesia
- jupyter notebooks (ipynb) + English guide
- plotting refinement or addition
- implement sentistrength_id as whole, including question word, negation handling, etc.
- spell check: checker_id, stif-indonesia, Peter Norvig's, spellchecker, SymSpell.
-
stemmer/lemmatizer: PySastrawi, nlp-id - python code coverage