## 2 Sentiment Analysis Algorithms
### Deep Learning Approach
The text data were then represented using two feature extractors, the count vectorizer and TF-IDF vectorizer, which were classified separately using an MLP model with five hidden layers and ReLU activation. The results showed that the count vectorizer representation with MLP achieved the highest accuracy of 93.73%. [PERSON] et al. (2018) [25] conducted a sentiment analysis study comparing several machine learning and deep learning methods, including naive Bayes, support vector machine, logistic regression, k-nearest neighbors, an ensemble model, and a CNN. The dataset used was the IMDb dataset containing 3000 reviews with positive and negative labels. The text was preprocessed to remove irrelevant characters, symbols, repeating words, and stop words, and then represented using the count vectorizer. The results showed that the CNN model achieved the highest accuracy of 99.33%. [PERSON] et al. (2020) [26] compared machine learning and deep learning methods for sentiment analysis using two datasets: Sentiment140 and Twitter US Airline Sentiment. The dataset was preprocessed using tokenization and case folding and stop-word, URL, hashtag, and punctuation removal. The methods compared were multinomial naive Bayes, logistic regression, support vector machine, long short-term memory (LSTM), and an ensemble of multinomial naive Bayes, logistic regression, and support vector machine with majority voting. On the Sentiment140 dataset, LSTM recorded the highest accuracy of 82%, whereas support vector machine achieved the highest accuracy of 68.9% on the Twitter US Airline Sentiment dataset. [PERSON] et al. (2019) conducted a study that focused on sentiment analysis of 5000 Tweets in the Bangla language using LSTM [27]. The authors preprocessed the data by removing spaces and punctuation marks and split the dataset into 80% for training, 10% for validation, and 10% for testing. After tuning the hyperparameters, the authors found that an LSTM architecture with five layers, each with a size of 128, a batch size of 25, and a learning rate of 0.0001, achieved the highest accuracy of 86.3%. In another study, [PERSON] and [PERSON] (2019) analyzed sentiment in the Saudi dialect using LSTM and bidirectional long short-term memory (BiLSTM) models [28]. The authors used 60,000 Tweets with positive and negative sentiments in the Saudi dialect as their dataset and preprocessed the data by removing numbers, punctuation, special symbols, and non-Arabic letters. The data were then text-normalized to replace word forms with their lemmas and encoded using a word2 vec pretrained model for word embedding. The dataset was randomly split into 70% for training and 30% for testing and then trained and tested on both the LSTM and BiLSTM models. The results showed that the BiLSTM model performed better, achieving an accuracy of 94%. [PERSON] (2018) proposed a recurrent neural filter-based CNN and LSTM model for sentiment analysis [29]. The study utilized a recurrent neural network (RNN) as a convolutional filter in the model. The training and testing were performed using the Stanford Sentiment Treebank dataset, which was encoded using GloVe word embedding. The proposed model comprised an embedding layer using a GloVe pretrained model, a pooling layer, and an LSTM layer. To prevent overfitting, the authors adopted the Adam optimizer and early stopping. The model achieved an accuracy of 53.4% on the Stanford Sentiment Treebank dataset. In the paper by [PERSON] and [PERSON] (2019) [30], a hybrid model was proposed for sentiment analysis that combined the strengths of CNNs and LSTM. The data used in the study comprised 32,000 Tweets obtained from the International Workshop on Semantic Evaluation competition. To prepare the data, the authors performed preprocessing steps such as removing URLs, emoticons, and special characters, as well as converting all the text to lowercase characters. To represent the text, the hybrid model leveraged two different pretrained word embeddings, namely word2 vec and GloVe.