Implementasi analisis sentimen untuk teks berbahasa Indonesia di media sosial dengan Python di JupyterLab
.
- 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
; - Classifier: Support Vector Machine (SVM) dengan linear kernel.
Repositori ini dibuat untuk mengimplementasikan analisis sentimen 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
- Klasifikasi: SVM
- Plotting
- pandas >= 0.25.0
- numpy >= 1.16.6
- nltk
- scikit-learn
- imbalanced-learn
- jupyterlab
Prasyarat
pip3 install . -r requirements.txt
atau instal package satu per satu
pip3 install --user --upgrade [nama package]
Clone Repositori
git clone https://github.com/onpilot/sentimen-bahasa.git
cd sentimen-bahasa
jupyter-lab
Saya punya instalasi Python versi lama untuk projek lain. Apa perlu di-uninstall dulu?
Ya. Atau gunakan Conda untuk memanajemen instalasi Python.
- 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 - publikasi #refs
- python code coverage
Silakan cek repositori ini, ya: #https://github.com/louisowen6/NLP_bahasa_resources #https://github.com/makcedward/nlp #https://github.com/keon/awesome-nlp