Kannada Tweets for Sentiment Analysis
Description
This dataset contains 1,000 short Kannada texts labelled for binary sentiment (positive or negative). It was prepared for training and evaluating sentiment classifiers in Kannada, a low-resource Dravidian language spoken mainly in Karnataka, India. All texts are in Kannada script and read like posts on Twitter, most are one or two sentences long, many use colloquial spoken Kannada, and some carry Kannada hashtags. Topics include Kannada cinema (Sandalwood) and OTT series, film music, festivals and greetings, cricket and kabaddi, Bengaluru traffic and public transport, food and restaurants, civic issues such as drinking water, power cuts and road conditions, farming and floods, COVID-19, Kannada language pride, office and student life, online shopping and customer service, and travel within Karnataka. File format One Excel file (dataset.xlsx) with two columns: Reviews: the Kannada text. Every entry begins with a "$" character, which should be stripped before tokenisation. Sentiment: "pos" or "neg".
Files
Steps to reproduce
1. Collection and labelling: Kannada tweets were collected from Twitter, and each one was read and labelled by hand as positive (pos) or negative (neg). 2. Loading: open dataset.xlsx and read the Reviews and Sentiment columns. Remove the "$" at the start of each entry, and drop the six duplicate texts if you want a clean split. 3. Tokenisation: split each tweet into word tokens. The original study used Python with the NLTK library. 4. Cleaning: remove punctuation marks and symbols, including commas, full stops, colons, semicolons, exclamation and question marks, quotation marks, brackets, hyphens, ellipses and the "$" character. 5. Stop-word removal: remove Kannada stop words (conjunctions and other function words that carry no sentiment). 6. Stemming: reduce each word to its root by stripping Kannada suffixes. 7. Feature extraction: convert the preprocessed tweets into TF-IDF (term frequency-inverse document frequency) vectors. 8. Train-test split: hold out 20% of the data for testing and train on the remaining 80%. 9. Classification: train and compare Logistic Regression, Stochastic Gradient Descent (SGD), Support Vector Classifier (SVC), Linear SVC, K Neighbors, Multinomial Naive Bayes, Gaussian Naive Bayes and Random Forest classifiers. Scikit-learn implementations with default settings can be used. 10. Evaluation: report accuracy, precision, recall, F1 score and the confusion matrix on the test set. In the published study, Multinomial Naive Bayes gave the highest accuracy (75%). The random seed for the split and the exact stop-word list were not published, so repeated runs may give accuracies a few points away from the reported values.
Categories
Funders
- VGST, Govt. of KarnatakaGrant ID: Grant No. KSTePS/VGST-KFIST(L1)/2016-17 /GRD-570/2017-18/137/345/936)