Bilingual Deep-Learning NLP (Indonesian + English)
A pair of deep-learning sentiment classifiers for tweets — one for Indonesian, one for English — that clean raw, noisy tweet text, embed it with trained word vectors, and predict sentiment with a CNN + LSTM network, served behind a simple Flask web API. (Built during an internship at Kazee.)
What it does. Given the text of a tweet, the models predict its sentiment (negative / neutral / positive). Two parallel pipelines cover two languages: an Indonesian model using Indonesian-specific preprocessing (Sastrawi stemming + stopword removal) and an English model using NLTK-style preprocessing. Each is wrapped in a small Flask service that takes raw text and returns a prediction, so the classifier can be called like any web endpoint.
Social-media text is a hard input for classic ML:
/predict endpoint that runs the full
clean→encode→predict pipeline on incoming text.| Layer | Technologies |
|---|---|
| Modeling | Keras / TensorFlow — Embedding → Conv1D (×3, dropout) → LSTM → Dense → softmax |
| Embeddings | Word2Vec (Gensim) trained on corpus; Doc2Vec explored |
| Preprocessing (ID) | Sastrawi stemmer + stopword remover, regex tweet cleaning |
| Preprocessing (EN) | NLTK tokenization, regex tweet cleaning |
| Encoding | Keras Tokenizer + pad_sequences |
| Serving | Flask (/predict endpoint) |
| Workflow | Jupyter notebooks (preprocess · embeddings · model · report), pickled tokenizer + saved model/weights |
Disclaimer: sample visuals may contain anonymized, simulated, or non-production values for presentation purposes.