# Social Media Hate Speech Detection Using Machine Learning Approach

Farhatul Haider, Ismotara Dipty, Fiaj Rahman, Md Assaduzzaman, Amir Sohel

► To cite this version:

Farhatul Haider, Ismotara Dipty, Fiaj Rahman, Md Assaduzzaman, Amir Sohel. Social Media Hate Speech Detection Using Machine Learning Approach. 6th International Conference on Computational Intelligence in Data Science (ICCIDS), Feb 2023, Chennai, India. pp.218-229, 10.1007/978-3-031-38296-3_17. hal-05466032

HAL Id: hal-05466032

https://inria.hal.science/hal-05466032v1

Submitted on 19 Jan 2026

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons CC BY 4.0 - Attribution - International License
<figure><img src="image_2.png" /></figure>

ifip

International Federation for Information Processing

This document is the original author manuscript of a paper submitted to an IFIP
conference proceedings or other IFIP publication by Springer Nature. As such, there
may be some differences in the official published version of the paper. Such
differences, if any, are usually due to reformatting during preparation for publication or
minor corrections made by the author(s) during final proofreading of the publication
manuscript.
# Social Media Hate Speech Detection Using Machine Learning Approach

Farhatul Haider, Ismotara Dipty, Fiaj Rahman, Md Assaduzzaman (✉),
and Amir Sohel

Department of CSE, Daffodil International University, Dhaka, Bangladesh
{farhatul15-3178,ismotara15-3243,fiaj15-3077,
assaduzzaman.cse,amir.cse}@diu.edu.bd

**Abstract.** Humanity has profited enormously from the interchange of information and the expanding use of social media but it has also raised a number of challenges, such as the persistence of hate speech. This growing problem on social media platforms, latterly studies used a different type of point engineering system and machine literacy algorithms to automatically descry hate comments on numerous data. As we know, several studies have been done so far and compared several point engineering strategies with machine literacy algorithms to discover which strategy is the most productive. This investigation aims to examine the performance of multiple engineering approaches with five machine literacy algorithms. The data sets contain the class orders hate speech, not hate speech and offensive comments independently. These social media posts are split into these two groups. To recognize the particular traits of hate speech text messages, the appropriate n-gram feature sets are extracted. The n-gram TF-IDF weights provide the foundation for these feature models. The main aspiration of this research work is to analyze, and resolve the above problem and compare algorithms and features used in machine learning to automatically detect hate speech and specified them like labeling into various classes like hate speech, offensive, and neither, etc. After using different classifiers, “Random Forest” has come up with better accuracy, precision, and recall compared to SVM (Support Vector Machine), Naive Bayes, Logistic Regression, Ada Boost, and Gradient boost algorithms. This system achieved an accuracy of 90.26% using a Random Forest. The experimental result showed that the “Random Forest” provided the best all-around accuracy from the model that has been made and it is more accurate than compare to other work done in recent times on this. So, the result obtain from the model, based on the resulting intensity of the comments can be extracted.

**Keywords:** Machine learning Techniques · Random Forest · Hate Speech
# 1 Introduction

Hate speech is defined as any speech that denigrates a group of people due to their race, religion, nationality, national origin, sexual orientation, or gender identity. There will be 4.70 billion social media users worldwide in July 2022. Thanks to the 227 million new users who have joined since then, there are more people using social media now than there were a year ago. Every month, 2.936 billion individuals use Facebook [1] Every month, at least 2 billion individuals use WhatsApp 396.5 million people use Twitter globally. It is logical to presume that Twitter's 206 million daily active users [2] use the website frequently to see what other people are up to. Hate speech is a common practice in today's society on Facebook, Twitter, and other social media platforms. The spread of hatred frequently involves hate speech. Everyone should feel free to access and use the great wealth of information available on the internet. However, hate speech is a serious issue online. Automatic hate speech identification is desperately needed as a result of these issues and the prevalence of hate speech online [3]. The general public's thoughts and feelings are significantly influenced by the media. We have observed "Hate Speech" in social media platforms' comment sections, online forums, and other places, so it is obvious that individuals use it in constantly inventive new ways. Even when they do not use inflammatory language, they may nonetheless be engaging in hate speech. Such material leads to crimes including cyberbullying, riots, fraud, loss of respect, and even murder, in addition to spreading hate and false information. Because hate speech has a negative impact on society, identifying it is crucial. By using a variety of "Machine Learning" models in concert as an ensemble, we can increase the detection of hate speech while catching as much of it as feasible.

# 2 Literature Review

On social media, hate speech is being used more and more. As a result, many scholars have already categorized texts to identify hate speech using supervised machine learning. Researchers have employed a wide range of feature extraction approaches, including methods based on dictionaries, bags of words, N-grams, TF IDF etc. In this part, a review of earlier research on the subject of recognizing hate speech and other offensive speech will be provided.

Three main steps were employed by Shoven Ahammed et al. [2019] [4] to identify hate speech in Bangle. Due to the lack of a Bangla data set. Data from Facebook has been gathered by the author. Formatting the dataset is the first step. The author used machine learning to incorporate hate speech that was taken from Facebook. The SVM approach had the loftiest F1 score of 0.71, while the Naive Bayes approach had the loftiest F1 score of 0.73.

The work done by Peter Burnap et (2016) [5] was a wordbook-based methodology that is used to identify hate on Twitter. Numerical vectors were constructed in this discourse by employing an N-gram point engineering strategy and a pre-determined word bank of furious expressions. The authors' SVM-specific ML
classifier had a maximum F-score of 67% when used to categorize the generated numerical vector.

Sean MacAvaney et al study's from 2019 [6] examined the difficulties faced by automated internet tools when seeking to identify hate speech. The author gathers and summarizes notable a selection of sources with examples of hate speech. An easier alternative to neural techniques is a multi-view SVM, claim the authors. R. Srinivasan focuses on sentiment analysis with unequal class label distribution [7]. Additionally, the book promotes "code-mixing". When several languages are present, the text switches between them. In the research being put forth, various machine learning methods will be evaluated using the F1-Score metric. These methods include the Logistic Regression, Support Vector Machine, Random Forest Classifier, Naive Bayes Classifier, and XGBoost Classifier. The purpose of this comparison is to determine the most effective algorithm.

Stéphan Tulkens et al. (2016) [8] also applied a wordbook-based methodology to identify specific racism in Dutch media platforms. The authors of the study regarded the word distribution in the three wordbooks as a feature. They provided the SVM classifier with the generated parcels. Their trial's outcomes led to an F-Score of 0.46.

Ishan Sanjeev Upadhyay and his team conducted an experiment [9] where they tested two different techniques. The first technique involved training classifiers based on Support Vector Machine (SVM), Random Forest, and Long Short-Term Memory (LSTM), and Logistic Regression using contextual embeddings. The second technique involved refining the output layer and pre-trained transformer models to form an ensemble of 11 models, with the final prediction made through majority voting. The results of the experiment, as measured by the weighted F1-Scores for Tamil, Malayalam, and English, indicated that the second technique outperformed the first.

The proposed model by Warner and Hirschberg (2012) [10] identified hate speech based on a variety of criteria, including religion. Initially classifying data at the paragraph level, they then asked annotators to manually annotate the data set before using it for annotation. Their attention was on stereotypes, so they made the decision to create linguistic models for stereotypes to denote hate speech. They published a racist Classifier for speech first. They deleted the 9000 paragraphs that matched their regular expression out of 9000 after finding those that did not include any inappropriate language. Seven more categories were then picked to further annotate the data. They employed a twofold cross-validation classifier to find a more accurate data set after this annotation for their gold corpus.

With the model or system, Watanabe, Bouazizi, and Ohtsuki (2018) [11] came which definitely a different study looked at a large sample of tweets that had hate speech, offensive language, both hate speech and offensive language, or no communication at all. In fact, this is the data set used in the experiments in this thesis. In the study mentioned, they attempted to categorize and predict hate speech using four separate sets of information from the tweets. The model, which was trained on all data types, was able to predict tweets that were only
offensive or non-offensive with an accuracy of 87.4 and hostile, offensive, or clean speech with a lower accuracy of 78.4.

Derogatory and unpleasant terms have recently been created and identified in a number of languages thanks to some excellent effort (i-e: Danish). A significant research project in 2019 [12] focused on the creation of a Danish data set for the detection of hate speech and abusive language. Facebook and Reedit comments are included in the data set. A wide range of insulting words and targets were also accessible. The authors used deep literacy models with a range of point sets to get the greatest accuracy of 0.74.

The proposed model by Omar Sharif et al. [13] declare that when frightful content is blended with multilingual code, a mechanized framework may be able to identify it. In expansion to three profound learning calculations, the creator connected two machine learning strategies and three bunches of transformers for the expressed assignments. The weighted F1-Score for the given models was 0.76.

The proposed model by Schmidt et al. (2017) [14] discharged their inquiry about on the utilization of common dialect handling to the location of abhor speech. The usage of a few includes designing approaches for the directed categorization of abhor discourse writings was altogether explored by the creators. There were, which is this survey's primary blemish.

Unsupervised learning was utilized by Sylvia Jaki et al. (2019) [15] to appear how to distinguish abhor discourse on Twitter. They assembled more than 50,000 pieces of data. utilizing the Twitter API. They organized the words into clusters utilizing NLP procedures. The beat 250 most one-sided expressions were separated into three clusters utilizing circular k-means clustering and skip-grams. They have gotten an F1 score of 84.21 as a result.

The Malmasi and Zampieri character 4-gram [16] model has a 78% accuracy rate for identifying hate speech. They advise using a categorization ensemble to identify the issue of hate speech and making an effort to distinguish between profanity and hate speech.

The techniques used in basic sentiment analysis for forums and reviews are also applied in sentiment analysis on Twitter [2018] [17]. This is achieved by combining supervised and unsupervised machine learning methods with linked phrase collections (a lexicon). Determine the relationships between the values. The lexical approach has the drawback of ignoring context and other social cues.

Previous studies have demonstrated that numerous researchers from all around the world are engaged in the task of identifying hate speech written in a variety of languages. In this paper, we evaluated the performance of five ML classifiers on datasets including hate speech using feature engineering and feature engineering. To our knowledge, no study has used the random forest technique and attained a 90% accuracy rate. Up to 5 machine learning algorithms are available. According to experimental findings, the random forest model offers the best overall accuracy and is more accurate than earlier research on the topic. As a result, the model's output can be used to determine how strong the assertion is.
# 3 Methodology

By testing out several Classifiers, supervised machine learning is applied in this study. The labeled data sets underwent prepossessing to have any noisy components removed. The system can learn offensive phrase patterns by extracting the proper features. In order to choose the finest model, the performances of several Classifiers and feature models are ultimately evaluated using standard metrics. In order to select the top-performing model, the performances of several Classifiers and feature models are ultimately evaluated using specified criteria (Fig. 1).

<figure><img src="image_3.png" /><figcaption>Fig. 1. System Overview</figcaption></figure>

## 3.1 Data Collection

The data set is among the most important part of the research process because it confirms the findings. We have collected the data from publicly available resources like websites as well as from Kaggle [18]. In this data set we are working with one language that is “English”. There are a total of 8 fields in our data set then we have added an additional field called “Text Length” that counts the length of the selected rows tweet. The tweets are differentiated into three categories as Hate speech, non-hate speech, and offensive language.

## 3.2 Data Pre-processing

The longest phase took the longest, but it was also the most important for properly preparing the data for the machine learning phases that followed. The act of cleaning up data by removing HTML tags, punctuation, stop words, and other unnecessary and extraneous terminology is known as data pre-processing. To eliminate intrusive and unnecessary information from the tweets in our data set, we employed a number of prepossessing techniques. We prepossess the tweets
and change it into lower cases. Here we also remove all usernames, spaces, hash tag, stop words, punctuation, and URLs from the collected tweets using pattern-matching algorithms. In addition, we stemmed and tokenization previously edited tweets. Every tweet is first tokenization into words or tokens, and then each word is transformed to its root form using a Porter stammer, such as outraged to insult.

## 3.3 Feature Engineering

Machine learning algorithms are not capable of understanding categorization rules created from unstructured text. To enable these algorithms to comprehend the classification requirements, numerical features are required. The process of feature engineering is essential to extract primary characteristics of the raw text and represent them numerically. Since texts are typically unstructured data, converting the text data from its unstructured nature into an organized feature space is crucial for mathematical modeling, which is a fundamental component of all machine learning algorithms. Before feature engineering, the data set must be cleaned up of noise, such as superfluous numbers, popular words, and non-English terms. To enhance the level of performance and accuracy of our data analysis we included the tweet length as an additional field as a feature. We also used data visualization techniques and detected outliers in the data. Later in feature selection it was excluded due to its unhelpfully. To convert the textual data into numerical data, we have used TF-IDF vectorization with scores for both unigram and bigram. Additionally, we cleaned the dataset by removing capitalization, mentions of names, URL-links, and stop-words to ensure the accuracy of our results. So, with this we transform unstructured text into a well-organized format that is compatible with machine learning algorithms.

## 3.4 Data-Set

We collect this data from Kaggle. 24783 records and 7 columns were collected from the raw data. Only 20789 data could be used once the data was preprocessed. The tweets in this data set have been divided into three categories: hate speech, non-hate speech, and Offensive language. In this dataset, we have six column name count, hate speech, offensive language, neither, class, and tweet. We labeled this data in preprocess section. This statistic includes 5.8% of hate speech. The remaining 77.4% of the data, or 16.8% of it, are categorized as neither offensive nor offensive. The details of this distribution are also shown in Fig. 2.
<figure><img src="image_4.png" /><figcaption>Fig. 2. Total Types of Speech</figcaption></figure>

## 3.5 Splitting Data-Set

A training set and a testing set were generated from our data set. The prepossessed data were divided into two groups using a 75:25 ratio. Here we used 75% data for training tests and 25% used for testing. To learn the classification rules, the classification model is trained using training data. The categorization model is evaluated using 25% testing data.

## 3.6 Model Classification

The Support Vector Method (SVM), Logistic Regression (LR), Random Forest, Ada Boost method, and Gradient boost algorithm were some of the classifiers we employed. Our machine learning classifiers were trained using the retrieved features that were previously described.

**Support Vector Machine.** SVM separates [19] the data points into best-fit hyper planes after fitting the data. It balances different tests and gives more options for loss functions and penalties. SVM primarily serves as a binary classifier. The fact that a hyperplane has the formula $A.x + c = 0$, where A stands for the vector common to the hyperplane and c for its offset, is useful knowledge.

**Logistic Regression.** Statistical models include logistic regression [20]. In order to map its output to two or more discrete classes, it converts its output into a probability value. The preferred technique is logistic regression when the dependent variable is binary. The binary variable, which keeps information encoded as either 1 (means yes/hate speech) or 0 (stands for no/not hate speech), is easy to comprehend. Mathematical forecasts about the value of q as a function of z are made by a logistic regression model. The formula

$$ \log(q(z)/(1-q(z)) = B0 + B1 * z $$
is used to illustrate logistic regression. The odds represent the ratio of the likelihood of failure. Because the output b is sufficient for 1, logistic regression maps a linear combination of inputs to the log (odds).

**Random Forest.** During the training process, the Random Forest method [21], which is a type of ensemble learning, is employed for various tasks such as classification and regression. A lot of decision trees are built using this technique. The ultimate grouping for a given instance is based on a vote by the significant number of all the trees in the forest. Prior to training, three crucial hyper-parameters must be set for the Random Forest algorithm, including the number of nodes, trees, and selected features. Then, the Random Forest classifier can be used to tackle classification or regression problems. With the Random Forest technique, every decision tree is constructed using a random sample of the training data, with replacement. This helps to determine the importance of each feature and reduces the risk of overfitting.

**Gradient Boost Algorithm.** Gradient augmentation, a technique for improving machine learning [22], serves as a decision tree for enormous amounts of complex data. It is predicated on the idea that adding the next model to the previous group of models will lower the total prediction error. Decision trees are used to get the most accurate forecasts. The gradient boosting method is also known as the statistical prediction model.

**AdaBoost Algorithm.** A machine literacy system used in an ensemble setting is called AdaBoost [23], also known as Adaptive Boosting. The use of decision trees with one position or one split is the most popular AdaBoost fashion. Occasionally appertained to as “choice wholes”, these trees. Any machine learning algorithm’s performance may be bettered with AdaBoost. It works prodigies for aiding skittish scholars. The categorization delicacy of these models is only slightly better than randomness. The strategy that works with AdaBoost the best and is, therefore, most usually used is a decision tree with one level.

## 3.7 Model Evaluation

In many research fields, performance evaluation metrics are frequently used to gauge the effectiveness of various algorithms. These metrics are statistical formulas that express how much the expected and actual values differ. The effectiveness of algorithms for detecting hate speech is often evaluated using the standard metrics of F1-score, recall, and precision in this experiment, we aim to assess the evolution of performance. The foundation of performance evaluation is the calculation of False Positive (FP), True Negative (TN), and False Negative (FN) values, True Positive (TP) From these values, the following four metrics are derived: recall, accuracy, F1 score, and precision [24]. These four metrics serve as the deciding variables for evaluating the performance of the algorithms.
$$ \textbf{Accuracy} = \frac{T_p + T_N}{T_P + T_N + F_P + F_N} \qquad (1) $$

$$ \textbf{Precision} = \frac{T_P}{T_P + F_P} \qquad (2) $$

$$ \textbf{Recall} = \frac{T_P}{T_P + F_N} \qquad (3) $$

$$ \textbf{F1-Score} = \frac{2 * \textit{Precision} * \textit{Recall}}{\textit{Precision} + \textit{Recall}} \qquad (4) $$

# 4 Result and Discussion

This section explains the overall results. 25% of the data set was utilized as a test data set to gauge how well our model worked, with the remaining 75% being used to train the model and assess accuracy. The experimental work has evaluated three classifiers. Our test findings showed that the method, which is Random Forest, generated the best results. We achieve 90.26 accuracies with Random Forest, 89.38 accuracies with the SVM, 89.46 with Logistic Regression, 89.38 accuracies with the AdaBoost algorithm, and 89.96 accuracies with the Gradient boost algorithm respectively. So, our built model is quite good efficient as can be seen from how well all the algorithms are predicting the result. Among all algorithms, Random Forest is performing with the highest accuracy 90.26. That's why we can say that Random Forest generates the best result (Table 1 and Fig. 3).

<table><caption>**Table 1.** Accuracy comparison</caption><thead><tr><td>Classifier</td><td>Accuracy</td><td>Precision</td><td>Rec-all</td><td>F1-Score</td></tr></thead><tbody><tr><td>SVM</td><td>89.38%</td><td>0.92</td><td>0.95</td><td>0.94</td></tr><tr><td>Random Forest</td><td>90.26%</td><td>0.93</td><td>0.96</td><td>0.94</td></tr><tr><td>Logistic Regression</td><td>89.46%</td><td>0.91</td><td>0.97</td><td>0.94</td></tr><tr><td>AdaBoost Algorithm</td><td>89.38%</td><td>0.93</td><td>0.95</td><td>0.94</td></tr><tr><td>Gradient boost</td><td>89.96%</td><td>0.94</td><td>0.95</td><td>0.94</td></tr></tbody></table>
<figure><img src="image_5.png" /><figcaption>Fig. 3. Algorithm Comparison</figcaption></figure>

<figure><img src="image_6.png" /><figcaption>Fig. 4. Confusion Matrix for Algorithm</figcaption></figure>

Figure 4 also displays the confusion matrix for the top-performing analy-
ses. In this four-figure dataset, logistic regression is the first technique, followed
by the confusion matrix produced by the Random Forest, SVM, and Gradient
Algorithm classifiers using TFIDF features. Using the SVM method, we achieve
0.92% precision, 0.95% recall, and 0.94% F1-Score. The precision, recall, and F1-
Score outcomes with Random Forest were the same: 0.93%, 0.96%, and 0.94%.
Of the five algorithms, logistic regression has the lowest precision. Our model
has been evaluated against other advanced models reported in previous studies,
and has shown significant improvements in precision, recall, and F1-score. Our
model achieved superior results, with a precision of 0.93, recall of 0.96, and an
F1-score of 0.94, compared to the best-performing models in other papers, which
achieved a precision of 0.91, recall of 0.90, and an F1-score of 0.90 demonstrat-
ing promising results for accurate classification. Based on these findings, our model has demonstrated high effectiveness and reliability, with the potential for applications in various fields.

## 5 Conclusion

The purpose of this research is to evaluate the effectiveness of categorization in terms of recall, accuracy, and precision, by using computerized text categorization techniques to identify hate speech. To achieve this, five machine learning algorithms with feature engineering techniques were utilized. The results showed that the Random Forest algorithm performed better than LR, SVM, AdaBoost, and Gradient Boost in identifying hate speech, with an accuracy rate of 90.26%, which was higher than the other algorithms tested. Overall, the classifiers used in this study were effective in accurately identifying hate speech.

## References

1. Chaffey, D.: Global social media statistics research summary 2022. Smart Insights (2022). https://www.smartinsights.com/social-media-marketing/social-media-strategy/new-global-social-media-research

2. Shepherd, J.: 22 essential Twitter statistics you need to know in 2022. The Social Shepherd (2022). https://thesocialshepherd.com/blog/twitter-statistics

3. Kovács, G., Alonso, P., Saini, R.: Challenges of hate speech detection in social media. SN Comput. Sci. 2(2) (2021). https://doi.org/10.1007/s42979-021-00457-3

4. Ahammed, S., Rahman, M., Niloy, M.H., Chowdhury, S.M.H.: Implementation of machine learning to detect hate speech in Bangla language. In: 2019 8th International Conference System Modeling and Advancement in Research Trends (SMART), pp. 317–320. IEEE (2019)

5. Burnap, P., Williams, M.L.: Us and them: identifying cyber hate on Twitter across multiple protected characteristics. EPJ Data Sci. 5(1), 11 (2016)

6. MacAvaney, S., Yao, H.R., Yang, E., Russell, K., Goharian, N., Frieder, O.: Hate speech detection: challenges and solutions. PLoS ONE 14(8), e0221152 (2019)

7. Srinivasan, R., Subalalitha, C.N.: Sentimental analysis from imbalanced code-mixed data using machine learning approaches. Distrib. Parallel Databases 41, 1–16 (2021)

8. Tulkens, S., et al.: A dictionary-based approach to racism detection in Dutch social media. ArXiv preprint arXiv: 1608.08738 (2016)

9. Upadhyay, I.S., Wadhawan, A., Mamidi, R.: HopefulMen@ LT-EDI-EACL2021: hope speech detection using Indic transliteration and transformers (2021). arXiv preprint arXiv:2102.12082

10. Warner, W., Hirschberg, J.: Detecting hate speech on the world wide web. In: Proceeding LSM 2012, Proceedings of the Second Workshop on language in Social Media, no. Lsm, pp. 19–26 (2012)

11. Watanabe, H., Bouazizi, M., Ohtsuki, T.: Hate speech on Twitter: a pragmatic approach to collect hateful and offensive expressions and perform hate speech detection. IEEE Access 6, 13825–13835 (2018). https://doi.org/10.1109/ACCESS.2018.2806394
12. Gitari, N.D., Zuping, Z., Damien, H., Long, J.: A lexicon-based approach for hate speech detection. In. J. Multimed. Ubiquit. Eng. **10**(4), 215–230 (2015)

13. Sharif, O., Hossain, E., Hoque, M.M.: NLP-CUET@DravidianLangTech-EACL2021: offensive language detection from multilingual code-mixed text using transformers. arXiv:2103.00455 [cs] (2021). Accessed 11 Feb 2023

14. Schmidt, A., Wiegand, M.: A survey on hate speech detection using natural language processing. In: Proceedings of the Fifth International Workshop on Natural Language Processing for Social Media (2017)

15. Jaki, S., De Smedt, T.: Right-wing German hate speech on twitter: analysis and automatic detection. arXiv preprint arXiv:1910.07518 (2019)

16. Malmasi, S., Zampieri, M.: Detecting Hate speech in social media. arXiv:1712.06427 [cs] (2017)

17. Zimbra, D., Abbasi, A., Zeng, D., Chen, H.: The state-of-the-art in twitter sentiment analysis. ACM Trans. Manage. Inf. Syst. **9**(2), 1–29 (2018). https://doi.org/10.1145/3185045

18. Hate Speech and Offensive Language Dataset. http://www.kaggle.com, http://www.kaggle.com/datasets/mrmorj/hate-speech-and-offensive-language-dataset

19. Support Vector Machines. Scikit-learn. http://scikitlearn.org/stable/modules/svm.html

20. Logistic regression. Wikipedia (2023). http://en.m.wikipedia.org/wiki/. Logisticregression. Accessed 11 Feb 2023

21. Machine Learning Random Forest Algorithm - Javatpoint. http://www.javatpoint.com, http://www.javatpoint.com/machine-learning-random-forest-algorithm

22. ML - Gradient Boosting. GeeksforGeeks (2020). http://www.geeksforgeeks.org/ml-gradient-boosting/

23. Saini, A.: AdaBoost algorithm - a complete guide for beginners. Analytics Vidhya (2021). http://www.analyticsvidhya.com/blog/2021/09/adaboost-algorithm-a-complete-guide-for-beginners/

24. Confusion Matrix - an overview | ScienceDirect Topics. http://www.sciencedirect.com, http://www.sciencedirect.com/topics/engineering/confusion-matrix