/sentimen-bahasa

Analisis Sentimen teks bahasa Indonesia dengan SVM

Primary LanguageJupyter NotebookMIT LicenseMIT

sentimen-bahasa

Python 3.7|3.8|3.9 GitHub license

Implementasi analisis sentimen untuk teks berbahasa Indonesia di media sosial dengan Python di JupyterLab.

Sentiment analysis implementation 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 in ipynb-en folder.

Set

tl;dr

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.

Algoritma yang termasuk

  • 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

Prasyarat

  • pandas >= 0.25.0
  • numpy >= 1.16.6
  • nltk
  • scikit-learn
  • imbalanced-learn
  • jupyterlab

Instalasi

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

FAQ

Saya punya instalasi Python versi lama untuk projek lain. Apa perlu di-uninstall dulu?

Ya. Atau gunakan Conda untuk memanajemen instalasi Python.

to-dos

  • 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

Bacaan Lanjut

Silakan cek repositori ini, ya: #https://github.com/louisowen6/NLP_bahasa_resources #https://github.com/makcedward/nlp #https://github.com/keon/awesome-nlp