├── .bumpversion.cfg ├── .circleci └── config.yml ├── .gitignore ├── .travis.yml ├── LICENSE ├── MANIFEST.in ├── README.md ├── emoint ├── __init__.py ├── ensembles │ ├── __init__.py │ ├── blending.py │ └── ensemble.py ├── examples │ ├── EmotionIntensity.ipynb │ └── MovieReview.ipynb ├── featurizers │ ├── __init__.py │ ├── afinn_valence_featurizer.py │ ├── agree_to_disagree_featurizer.py │ ├── base_featurizers.py │ ├── bing_liu_sentiment_featurizer.py │ ├── edinburgh_embeddings_featurizer.py │ ├── emoint_featurizer.py │ ├── emoji_featurizer.py │ ├── emoji_sentiment_ranking_featurizer.py │ ├── liwc_featurizer.py │ ├── mpqa_effect_featurizer.py │ ├── negating_featurizer.py │ ├── nrc_affect_intensity_featurizer.py │ ├── nrc_emotion_wordlevel_featurizer.py │ ├── nrc_expanded_emotion_featurizer.py │ ├── nrc_hashtag_emotion_featurizer.py │ ├── nrc_hashtag_sentiment_featurizer.py │ ├── senti_wordnet_featurizer.py │ ├── sentiment140_featurizer.py │ ├── sentistrength.py │ └── utils.py ├── resources │ ├── AFINN-emoticon-8.txt.gz │ ├── AFINN-en-165.txt.gz │ ├── BingLiu.txt.gz │ ├── Emoji_Sentiment_Data_v1.0.csv │ ├── LIWC2007.dic │ ├── NRC-Hashtag-Emotion-Lexicon-v0.2.txt.gz │ ├── NRC-Hashtag-Sentiment-Lexicon-v0.1 │ │ ├── README │ │ ├── bigrams-pmilexicon.txt.gz │ │ ├── pairs-pmilexicon.txt.gz │ │ ├── sentimenthashtags.txt │ │ └── unigrams-pmilexicon.txt.gz │ ├── NRC-emotion-lexicon-wordlevel-v0.92.txt.gz │ ├── NegatingWordList.txt.gz │ ├── SentiStrength.jar │ ├── SentiStrength │ │ ├── BoosterWordList.txt │ │ ├── EmoticonLookupTable.txt │ │ ├── EmotionLookupTable.txt │ │ ├── EmotionLookupTableGeneral.txt │ │ ├── EnglishWordList.txt │ │ ├── IdiomLookupTable.txt │ │ ├── NegatingWordList.txt │ │ ├── QuestionWords.txt │ │ └── SlangLookupTable.txt │ ├── SentiWordNet_3.0.0.txt.gz │ ├── Sentiment140-Lexicon-v0.1 │ │ ├── README │ │ ├── bigrams-pmilexicon.txt.gz │ │ ├── pairs-pmilexicon.txt.gz │ │ └── unigrams-pmilexicon.txt.gz │ ├── emoint │ │ ├── anger-ratings-0to1.dev.gold.txt │ │ ├── anger-ratings-0to1.dev.target.txt │ │ ├── anger-ratings-0to1.train.txt │ │ ├── fear-ratings-0to1.dev.gold.txt │ │ ├── fear-ratings-0to1.dev.target.txt │ │ ├── fear-ratings-0to1.train.txt │ │ ├── joy-ratings-0to1.dev.gold.txt │ │ ├── joy-ratings-0to1.dev.target.txt │ │ ├── joy-ratings-0to1.train.txt │ │ ├── sadness-ratings-0to1.dev.gold.txt │ │ ├── sadness-ratings-0to1.dev.target.txt │ │ └── sadness-ratings-0to1.train.txt │ ├── emoji2vec.txt.gz │ ├── mpqa.txt.gz │ ├── nrc_affect_intensity.txt.gz │ ├── w2v-dp-BCC-Lex.txt.gz │ └── w2v.twitter.edinburgh.100d.csv.gz ├── tests │ ├── __init__.py │ ├── test_ensembles.py │ └── test_featurizers.py └── utils │ ├── __init__.py │ ├── reformat.py │ └── utils.py ├── requirements.txt └── setup.py /.bumpversion.cfg: -------------------------------------------------------------------------------- 1 | [bumpversion] 2 | current_version = 0.1.0 3 | commit = True 4 | tag = True 5 | 6 | [bumpversion:file:setup.py] 7 | 8 | -------------------------------------------------------------------------------- /.circleci/config.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | 3 | jobs: 4 | build: 5 | docker: 6 | - image: circleci/openjdk:8-jdk 7 | working_directory: ~/circulate 8 | steps: 9 | - run: 10 | name: Install Python Pip JDK 11 | command: | 12 | sudo apt-get -qq update 13 | sudo apt-get -y install git openssh-client python3 python3-pip python3-dev software-properties-common 14 | - checkout 15 | - run: 16 | name: Private Pypi Config Setup 17 | command: | 18 | echo "[distutils]" >> ~/.pypirc 19 | echo "index-servers = pypi-private" >> ~/.pypirc 20 | echo "[pypi-private]" >> ~/.pypirc 21 | echo "repository=$PYPI_HOST" >> ~/.pypirc 22 | echo "username=$PYPI_USERNAME" >> ~/.pypirc 23 | echo "password=$PYPI_PASSWORD" >> ~/.pypirc 24 | - run: 25 | name: Pre-install Virtual Env 26 | command: | 27 | pip3 install virtualenv 28 | virtualenv -p python3 ~/venv 29 | - restore_cache: 30 | key: deps3.5-{{ .Branch }}-{{ checksum "requirements.txt" }} 31 | - run: 32 | name: Install Dependencies 33 | command: | 34 | . ~/venv/bin/activate 35 | export JDK_HOME=/usr/local/openjdk-8 36 | export JAVA_HOME=/usr/local/openjdk-8 37 | pip3 install -U pip wheel setuptools 38 | pip3 install cython 39 | pip3 install coveralls 40 | pip3 install --extra-index-url $PYPI_HOST_WITH_CRED -r requirements.txt 41 | - save_cache: 42 | key: deps3.5-{{ .Branch }}-{{ checksum "requirements.txt" }} 43 | paths: 44 | - "~/venv" 45 | - run: 46 | name: Test 47 | command: | 48 | . ~/venv/bin/activate 49 | export JDK_HOME=/usr/local/openjdk-8 50 | export JAVA_HOME=/usr/local/openjdk-8 51 | coverage run --source=emoint -m unittest discover -v 52 | coverage report 53 | COVERALLS_REPO_TOKEN=$COVERALLS_REPO_TOKEN coveralls --verbose 54 | - run: 55 | name: Push To Private Pypi Server 56 | command: | 57 | . ~/venv/bin/activate 58 | python3 setup.py bdist_wheel upload -r $PYPI_HOST 59 | python3 setup.py sdist upload -r $PYPI_HOST 60 | - store_artifacts: 61 | path: test-reports/ 62 | destination: tr1 63 | 64 | workflows: 65 | version: 2 66 | build-and-deploy: 67 | jobs: 68 | - build 69 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | .ipynb_checkpoints 3 | *.pyc 4 | .DS_Store 5 | build/ 6 | dist/ 7 | EmoInt.egg-info/ 8 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: python 2 | python: 3 | - "3.5" 4 | install: 5 | - pip3 install -U pip wheel setuptools 6 | - pip3 install coveralls --quiet 7 | - pip3 install cython --quiet 8 | - pip3 install -r requirements.txt --extra-index-url $PYPI_HOST_WITH_CRED --quiet 9 | 10 | script: coverage run --source=. -m unittest discover -v 11 | 12 | after_success: 13 | coveralls -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | recursive-include emoint/resources/* 2 | include README.md 3 | include requirements.txt 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # EmoInt 2 | [![Travis Build Status](https://api.travis-ci.org/SEERNET/EmoInt.svg)](https://travis-ci.org/SEERNET/EmoInt) 3 | [![CircleCI Build Status](https://circleci.com/gh/SEERNET/EmoInt.svg?style=svg)](https://circleci.com/gh/SEERNET/EmoInt) 4 | [![Coverage Status](https://coveralls.io/repos/github/SEERNET/EmoInt/badge.svg)](https://coveralls.io/github/SEERNET/EmoInt) 5 | 6 | EmoInt can be used for [affective computing](https://en.wikipedia.org/wiki/Affective_computing) 7 | like sentiment analysis, emotion classification, emotion intensity computing etc. This project is developed 8 | during [WASSA 2017](http://optima.jrc.it/wassa2017/) Emotion Intensity Task. It is inspired by 9 | [AffectiveTweets](https://github.com/felipebravom/AffectiveTweets) repo (baseline model for the Emotion Intensity Task). 10 | This project contains high level wrappers for combining various word embeddings and scripts for creating ensembles. 11 | 12 | ## Install 13 | 14 | ### Pre-requisites 15 | Some word-embeddings need to be downloaded separately for using all available featurizers. 16 | 17 | Note: Instructions to access these resources can be found [here](http://saifmohammad.com/WebPages/AccessResource.htm) 18 | 19 | The relevant word embeddings are: 20 | 21 | * NRC Affect Intensity: [Link](http://saifmohammad.com/WebPages/AffectIntensity.htm). Download to `emoint/resources/nrc_affect_intensity.txt.gz` 22 | * NRC Emotion Wordlevel Lexicons: [Link](http://saifmohammad.com/WebPages/lexicons.html). Download to `emoint/resources/NRC-emotion-lexicon-wordlevel-v0.92.txt.gz` 23 | * Sentiment140: [Link](http://saifmohammad.com/WebPages/lexicons.html). Download to `emoint/resources/Sentiment140-Lexicon-v0.1` 24 | 25 | ### Reformatting 26 | The NRC Emotion Wordlevel Lexicons are not in the standard format, we've provided a script to reformat it in the required format. 27 | 28 | ```python 29 | 30 | python emoint/utils/reformat.py emoint/resources/NRC-emotion-lexicon-wordlevel-v0.92.txt.gz 31 | 32 | ``` 33 | 34 | ### Installing 35 | 36 | The package can be installed as follows: 37 | ``` 38 | python setup.py install 39 | ``` 40 | 41 | ## Usage 42 | You can learn how to use the featurizers by following these notebooks in [examples](emoint/examples) directory 43 | 1. [Cornell Movie Review](http://www.cs.cornell.edu/people/pabo/movie-review-data/) -- [MovieReview.ipynb](emoint/examples/MovieReview.ipynb) 44 | 2. [WASSA 2017 Emotion Intensity](http://optima.jrc.it/wassa2017/) -- [EmotionIntensity.ipynb](emoint/examples/EmotionIntensity.ipynb) 45 | 46 | 47 | ## Running Tests 48 | ``` 49 | python -m unittest discover -v 50 | ``` 51 | 52 | ## Maintainers 53 | - [Venkatesh Duppada](https://venkatesh-1729.github.io) 54 | - [Sushant Hiray](https://sushant-hiray.me) 55 | 56 | ## Citation 57 | ``` 58 | @inproceedings{duppada2017seernet, 59 | title={Seernet at EmoInt-2017: Tweet Emotion Intensity Estimator}, 60 | author={Duppada, Venkatesh and Hiray, Sushant}, 61 | booktitle={Proceedings of the 8th Workshop on Computational Approaches to Subjectivity, Sentiment and Social Media Analysis}, 62 | pages={205--211}, 63 | year={2017} 64 | } 65 | ``` 66 | 67 | ## Acknowledgement 68 | This is open source work of [DeepAffects](https://www.deepaffects.com). [DeepAffects](https://www.deepaffects.com/dashboard) 69 | is an emotional intelligence analysis engine that measures the effect emotional intelligence 70 | has on team dynamics, and provides emotional analytics that serve as the basis of insights to improve 71 | project management, performance and satisfaction across organizations, projects, and teams. 72 | To watch DeepAffects in action: check out DeepAffects 73 | [Atlassian JIRA addon](https://marketplace.atlassian.com/plugins/com.deepaffects.teams.jira/cloud/overview) 74 | and our [Github addon](https://teams.deepaffects.com/). 75 | -------------------------------------------------------------------------------- /emoint/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SEERNET/EmoInt/e73ca6ef117d9f5a7738d47d6d91de0a88e5b03e/emoint/__init__.py -------------------------------------------------------------------------------- /emoint/ensembles/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SEERNET/EmoInt/e73ca6ef117d9f5a7738d47d6d91de0a88e5b03e/emoint/ensembles/__init__.py -------------------------------------------------------------------------------- /emoint/ensembles/blending.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | from sklearn.cross_validation import KFold 3 | from sklearn.linear_model import LogisticRegression 4 | 5 | 6 | def get_out(x, clf, regr): 7 | if regr: 8 | return clf.predict(x) 9 | else: 10 | return clf.predict_proba(x)[:, 1] 11 | 12 | 13 | def blend(X, y, X_submission, clfs, blend_clf=LogisticRegression(), n_folds=10, shuffle=True, seed=0, regr=True): 14 | """ 15 | This blending technique is used either for regression or binary classification 16 | :param X: cross validation X 17 | :param y: cross validation y 18 | :param X_submission: Submission X 19 | :param clfs: list of classifiers to blend 20 | :param blend_clf: classifier to blend all predictions 21 | :param n_folds: number of folds for cross validation 22 | :param shuffle: shuffle training data 23 | :param seed: seed to replicate results 24 | :param regr: regression or binary classification 25 | :return: y_submission. probability for class-1 in case of binary classification. 26 | regression value prediction in case of regression. 27 | """ 28 | np.random.seed(seed) 29 | 30 | if shuffle: 31 | idx = np.random.permutation(y.size) 32 | X = X[idx] 33 | y = y[idx] 34 | 35 | skf = list(KFold(np.size(y), n_folds)) 36 | 37 | dataset_blend_train = np.zeros((X.shape[0], len(clfs))) 38 | dataset_blend_test = np.zeros((X_submission.shape[0], len(clfs))) 39 | 40 | for j, clf in enumerate(clfs): 41 | dataset_blend_test_j = np.zeros((X_submission.shape[0], len(skf))) 42 | for i, (train, test) in enumerate(skf): 43 | X_train = X[train] 44 | y_train = y[train] 45 | X_test = X[test] 46 | y_test = y[test] 47 | 48 | clf.fit(X_train, y_train) 49 | y_test_pred = get_out(X_test, clf, regr) 50 | 51 | dataset_blend_train[test, j] = y_test_pred 52 | dataset_blend_test_j[:, i] = get_out(X_submission, clf, regr) 53 | 54 | dataset_blend_test[:, j] = dataset_blend_test_j.mean(1) 55 | 56 | clf = blend_clf 57 | clf.fit(dataset_blend_train, y) 58 | y_submission = get_out(dataset_blend_test, clf, regr) 59 | 60 | if not regr: 61 | y_submission = (y_submission - y_submission.min()) / (y_submission.max() - y_submission.min()) 62 | 63 | return y_submission 64 | -------------------------------------------------------------------------------- /emoint/ensembles/ensemble.py: -------------------------------------------------------------------------------- 1 | from collections import Counter 2 | from glob import glob 3 | 4 | import numpy as np 5 | from scipy.stats.mstats import gmean 6 | 7 | 8 | class Ensembler: 9 | def __init__(self): 10 | """ 11 | This method instantiates `Ensembler` class. 12 | """ 13 | return 14 | 15 | @staticmethod 16 | def deduce(l, weights, ensemble_type): 17 | """ 18 | This function computes individual prediction based on type of ensemble 19 | :param ensemble_type: Type of ensemble technique. eg: "amean", "gmean", "vote" etc. 20 | :param weights: weights of predictions, used only in voting. 21 | :param l: list of individual predictions 22 | :return: prediction of ensemble 23 | """ 24 | if ensemble_type == 'amean': 25 | return np.mean(np.array(l)) 26 | elif ensemble_type == 'gmean': 27 | assert (np.array(l) > 0).all(), 'Geometric mean cannot be applied to negative numbers' 28 | return gmean(np.array(l)) 29 | elif ensemble_type == 'vote': 30 | nl = [] 31 | if weights is not None: 32 | for i, p in enumerate(l): 33 | nl += [p] * weights[i] 34 | return Counter(l).most_common(1)[0][0] 35 | 36 | def ensemble(self, pred_files, ensemble_pred_file, weights=None, ensemble_type="amean"): 37 | """ 38 | This method creates ensemble prediction. 39 | :param ensemble_type: Type of ensemble technique. eg: "amean", "gmean", "vote" etc. 40 | :param weights: weights of predictions, used only in voting. eg: [1, 2, 3] 41 | :param pred_files: regular expression of prediction files. eg: results/prediction*.csv 42 | :param ensemble_pred_file: file to write ensemble output to. eg: results/ensemble_prediction.csv 43 | :return: None 44 | """ 45 | 46 | supported = ["amean", "gmean", "vote"] 47 | assert ensemble_type in supported, "Unsupported ensemble type. Choose one from {}".format(supported) 48 | 49 | with open(ensemble_pred_file, "w") as out_file: 50 | l = [] 51 | files = sorted(glob(pred_files)) 52 | if weights is not None: 53 | assert len(files) == len(weights), "Provide weights to all prediction files" 54 | for i, glob_file in enumerate(files): 55 | with open(glob_file, 'r') as f: 56 | lines = [float(x) for x in f.read().splitlines()] 57 | l.append(lines) 58 | zl = zip(*l) 59 | output = [] 60 | for x in zl: 61 | output.append(self.deduce(x, weights, ensemble_type)) 62 | for x in output: 63 | out_file.write("%s\n" % x) 64 | -------------------------------------------------------------------------------- /emoint/featurizers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SEERNET/EmoInt/e73ca6ef117d9f5a7738d47d6d91de0a88e5b03e/emoint/featurizers/__init__.py -------------------------------------------------------------------------------- /emoint/featurizers/afinn_valence_featurizer.py: -------------------------------------------------------------------------------- 1 | # coding=utf-8 2 | from emoint.featurizers.base_featurizers import SentimentIntensityLexiconFeaturizer 3 | from emoint.featurizers.utils import get_bigrams, merge_two_dicts 4 | from emoint.featurizers.utils import afinn_lexicon_path, afinn_emoticon_path 5 | 6 | """ 7 | Info: http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6010 8 | """ 9 | 10 | 11 | class AFINNValenceFeaturizer(SentimentIntensityLexiconFeaturizer): 12 | """AFINN Valence Lexicons Featurizer""" 13 | 14 | @property 15 | def id(self): 16 | return self._id 17 | 18 | @property 19 | def lexicon_map(self): 20 | return self._lexicon_map 21 | 22 | @property 23 | def citation(self): 24 | return self._citation 25 | 26 | def __init__(self, lexicons_path=afinn_lexicon_path, emoticon_path=afinn_emoticon_path, bigram=True): 27 | """Initialize Finn Årup Nielsen Valence Lexicon Featurizer 28 | :param lexicons_path path to lexicons file 29 | :param emoticon_path path to emoticons file 30 | :param bigram use bigram lexicons or not (default: True) 31 | """ 32 | self._id = 'AFINN' 33 | self._lexicon_map = merge_two_dicts(self.create_lexicon_mapping(lexicons_path), 34 | self.create_lexicon_mapping(emoticon_path)) 35 | self._citation = 'Nielsen, Finn Årup. "A new ANEW: Evaluation of a word list for sentiment analysis in' \ 36 | ' microblogs." arXiv preprint arXiv:1103.2903 (2011).' 37 | self.bigram = bigram 38 | 39 | def featurize(self, text, tokenizer): 40 | """Featurize tokens using AFINN Valence Lexicons 41 | :param text: text to featurize 42 | :param tokenizer: tokenizer to tokenize text 43 | """ 44 | tokens = tokenizer.tokenize(text) 45 | unigrams = tokens 46 | if self.bigram: 47 | bigrams = get_bigrams(tokens) 48 | return [x + y for x, y in zip(super(AFINNValenceFeaturizer, self).featurize_tokens(unigrams), 49 | super(AFINNValenceFeaturizer, self).featurize_tokens(bigrams))] 50 | else: 51 | return super(AFINNValenceFeaturizer, self).featurize_tokens(unigrams) 52 | -------------------------------------------------------------------------------- /emoint/featurizers/agree_to_disagree_featurizer.py: -------------------------------------------------------------------------------- 1 | from emoint.featurizers.afinn_valence_featurizer import AFINNValenceFeaturizer 2 | from emoint.featurizers.bing_liu_sentiment_featurizer import BingLiuFeaturizer 3 | from emoint.featurizers.edinburgh_embeddings_featurizer import EdinburghEmbeddingsFeaturizer 4 | from emoint.featurizers.mpqa_effect_featurizer import MPQAEffectFeaturizer 5 | from emoint.featurizers.negating_featurizer import NegationFeaturizer 6 | from emoint.featurizers.nrc_affect_intensity_featurizer import NRCAffectIntensityFeaturizer 7 | from emoint.featurizers.nrc_emotion_wordlevel_featurizer import NRCEmotionFeaturizer 8 | from emoint.featurizers.nrc_expanded_emotion_featurizer import NRCExpandedEmotionFeaturizer 9 | from emoint.featurizers.nrc_hashtag_emotion_featurizer import NRCHashtagEmotionFeaturizer 10 | from emoint.featurizers.nrc_hashtag_sentiment_featurizer import NRCHashtagSentimentFeaturizer 11 | from emoint.featurizers.senti_wordnet_featurizer import SentiWordNetFeaturizer 12 | from emoint.featurizers.sentiment140_featurizer import Sentiment140Featurizer 13 | from emoint.featurizers.sentistrength import SentiStrengthFeaturizer 14 | from emoint.featurizers.base_featurizers import Featurizer 15 | from emoint.featurizers.liwc_featurizer import LIWCFeaturizer 16 | 17 | 18 | class AgreeToDisagree(Featurizer): 19 | @property 20 | def citation(self): 21 | # Todo 22 | return "PLACEHOLDER" 23 | 24 | @property 25 | def id(self): 26 | return "EmoInt" 27 | 28 | def __init__(self): 29 | self.featurizers = [ 30 | AFINNValenceFeaturizer(), 31 | BingLiuFeaturizer(), 32 | MPQAEffectFeaturizer(), 33 | NRCAffectIntensityFeaturizer(), 34 | NRCEmotionFeaturizer(), 35 | NRCExpandedEmotionFeaturizer(), 36 | NRCHashtagEmotionFeaturizer(), 37 | NRCHashtagSentimentFeaturizer(), 38 | Sentiment140Featurizer(), 39 | SentiWordNetFeaturizer(), 40 | NegationFeaturizer(), 41 | LIWCFeaturizer() 42 | ] 43 | self._features = self.collect_features(self.featurizers) 44 | 45 | @staticmethod 46 | def collect_features(featurizers): 47 | features = [] 48 | for featurizer in featurizers: 49 | features += featurizer.features 50 | return features 51 | 52 | @property 53 | def features(self): 54 | return self._features 55 | 56 | @property 57 | def dim(self): 58 | """Dimension of feature space""" 59 | return len(self._features) 60 | 61 | def featurize(self, text, tokenizer): 62 | """Featurize using the following featurizers 63 | 1. AFINNValenceFeaturizer 64 | 2. BingLiuFeaturizer 65 | 3. EdinburghEmbeddingsFeaturizer 66 | 4. MPQAEffectFeaturizer 67 | 5. NegationFeaturizer 68 | 6. NRCAffectIntensityFeaturizer 69 | 7. NRCEmotionFeaturizer 70 | 8. NRCExpandedEmotionFeaturizer 71 | 9. NRCHashtagEmotionFeaturizer 72 | 10. NRCHashtagSentimentFeaturizer 73 | 11. SentiWordNetFeaturizer 74 | 12. Sentiment140Featurizer 75 | 13. SentiStrengthFeaturizer 76 | """ 77 | features = [] 78 | for featurizer in self.featurizers: 79 | features += featurizer.featurize(text, tokenizer) 80 | return features 81 | 82 | 83 | 84 | -------------------------------------------------------------------------------- /emoint/featurizers/base_featurizers.py: -------------------------------------------------------------------------------- 1 | import gzip 2 | from abc import ABCMeta, abstractmethod 3 | from collections import defaultdict 4 | 5 | import numpy as np 6 | 7 | 8 | class Featurizer(object): 9 | """Base class for all featurizers""" 10 | 11 | __metaclass__ = ABCMeta 12 | 13 | @property 14 | def id(self): 15 | """A unique identifier of the featurizer""" 16 | raise NotImplementedError("Implement method to return unique featurizer identifier") 17 | 18 | @property 19 | def features(self): 20 | """Method to return names of the features""" 21 | raise NotImplementedError("Implement method to return names of the features") 22 | 23 | @property 24 | def dim(self): 25 | """Method to return dimension of the feature space""" 26 | return len(self.features) 27 | 28 | @abstractmethod 29 | def featurize(self, text, tokenizer): 30 | """Method to create features from text""" 31 | raise NotImplementedError("Implement method to featurize text") 32 | 33 | @property 34 | def citation(self): 35 | """Add citation to papers or methods being implemented. Give credit where credit is due.""" 36 | raise NotImplementedError("Implement method to return citation of the paper or method being implemented") 37 | 38 | 39 | class LexiconFeaturizer(Featurizer): 40 | """Featurizer where we map lexicons to features""" 41 | 42 | __metaclass__ = ABCMeta 43 | 44 | @property 45 | def lexicon_map(self): 46 | """Method to populate lexicon to features mapping""" 47 | raise NotImplementedError("Implement method to populate lexicon to features mapping") 48 | 49 | def create_lexicon_mapping(self, lexicon_path): 50 | """Method to create lexicon mapping""" 51 | 52 | 53 | class EmbeddingFeaturizer(Featurizer): 54 | """Featurizer where we map lexicons to word embeddings""" 55 | 56 | __metaclass__ = ABCMeta 57 | 58 | @property 59 | def dim(self): 60 | """Dimension of word embeddings""" 61 | raise NotImplementedError("Implement method to return dimension of word embeddings") 62 | 63 | @property 64 | def features(self): 65 | return [self.id + '-' + str(x) for x in range(self.dim)] 66 | 67 | @property 68 | def embedding_map(self): 69 | """Method to populate lexicon to features mapping""" 70 | raise NotImplementedError("Implement method to populate lexicon to features mapping") 71 | 72 | def featurize(self, text, tokenizer): 73 | """Averaging word embeddings 74 | """ 75 | sum_vec = np.zeros(shape=(self.dim,)) 76 | tokens = tokenizer.tokenize(text) 77 | for token in tokens: 78 | if token in self.embedding_map: 79 | sum_vec = sum_vec + self.embedding_map[token] 80 | denom = len(tokens) 81 | sum_vec = sum_vec / denom 82 | return sum_vec 83 | 84 | @staticmethod 85 | def create_embedding_mapping(lexicon_path, word_first=True, leave_head=False): 86 | """Creates a map from words to word embeddings 87 | :param leave_head: Leave first line or not 88 | :param word_first: Whether the word is at starting or ending 89 | :param lexicon_path path of lexicon file (in gzip format) 90 | """ 91 | with gzip.open(lexicon_path, 'rb') as f: 92 | lines = f.read().splitlines() 93 | if leave_head: 94 | lines = lines[1:] 95 | lexicon_map = {} 96 | for l in lines: 97 | if isinstance(l, str): 98 | splits = l.split(' ') 99 | else: 100 | splits = l.decode('utf-8').split('\t') 101 | if word_first: 102 | lexicon_map[splits[0]] = np.asarray(splits[1:], dtype='float32') 103 | else: 104 | lexicon_map[splits[-1]] = np.asarray(splits[:-1], dtype='float32') 105 | return lexicon_map 106 | 107 | 108 | class SentimentLexiconFeaturizer(LexiconFeaturizer): 109 | """Sentiment Featurizer is where we have mappings from lexicons to Sentiment (Positive, Negative)""" 110 | 111 | __metaclass__ = ABCMeta 112 | 113 | @property 114 | def features(self): 115 | return [self.id + '-' + x for x in ['positive', 'negative']] 116 | 117 | def create_lexicon_mapping(self, lexicon_path): 118 | """Creates a map from lexicons to either positive or negative 119 | :param lexicon_path path of lexicon file (in gzip format) 120 | """ 121 | with gzip.open(lexicon_path, 'rb') as f: 122 | lines = f.read().splitlines() 123 | lexicon_map = {} 124 | for l in lines: 125 | splits = l.decode('utf-8').split('\t') 126 | lexicon_map[splits[0]] = splits[1] 127 | return lexicon_map 128 | 129 | def featurize(self, text, tokenizer): 130 | """This function returns count of positive and negative tokens 131 | :param text: text to featurize 132 | :param tokenizer: tokenizer to tokenize text 133 | """ 134 | positive_count, negative_count = 0.0, 0.0 135 | tokens = tokenizer.tokenize(text) 136 | for token in tokens: 137 | if token in self.lexicon_map: 138 | if self.lexicon_map[token] == 'positive': 139 | positive_count += 1 140 | else: 141 | negative_count += 1 142 | return [positive_count, negative_count] 143 | 144 | 145 | class SentimentIntensityLexiconFeaturizer(LexiconFeaturizer): 146 | """Sentiment Intensity Featurizer is where we have mappings from lexicons to Intensity (Positive, Negative)""" 147 | 148 | __metaclass__ = ABCMeta 149 | 150 | @property 151 | def features(self): 152 | return [self.id + '-' + x for x in ['PositiveScore', 'NegativeScore']] 153 | 154 | def create_lexicon_mapping(self, lexicon_path): 155 | """Creates a map from lexicons to either positive or negative 156 | :param lexicon_path path of lexicon file (in gzip format) 157 | """ 158 | with gzip.open(lexicon_path, 'rb') as f: 159 | lines = f.read().splitlines() 160 | lexicon_map = {} 161 | for l in lines: 162 | splits = l.decode('utf-8').split('\t') 163 | lexicon_map[splits[0]] = float(splits[1]) 164 | return lexicon_map 165 | 166 | def featurize(self, text, tokenizer): 167 | """This function returns sum of intensities of positive and negative tokens 168 | :param text: text to featurize 169 | :param tokenizer: tokenizer to tokenize text 170 | """ 171 | positive_score, negative_score = 0.0, 0.0 172 | tokens = tokenizer.tokenize(text) 173 | for token in tokens: 174 | if token in self.lexicon_map: 175 | if self.lexicon_map[token] >= 0: 176 | positive_score += self.lexicon_map[token] 177 | else: 178 | negative_score += self.lexicon_map[token] 179 | return [positive_score, negative_score] 180 | 181 | def featurize_tokens(self, tokens): 182 | """This function returns sum of intensities of positive and negative tokens 183 | :param tokens tokens to featurize 184 | """ 185 | positive_score, negative_score = 0.0, 0.0 186 | for token in tokens: 187 | if token in self.lexicon_map: 188 | if self.lexicon_map[token] >= 0: 189 | positive_score += self.lexicon_map[token] 190 | else: 191 | negative_score += self.lexicon_map[token] 192 | return [positive_score, negative_score] 193 | 194 | 195 | class EmotionLexiconFeaturizer(LexiconFeaturizer): 196 | """Sentiment Intensity Featurizer is where we have mappings from lexicons to Intensity (Positive, Negative)""" 197 | 198 | __metaclass__ = ABCMeta 199 | 200 | def get_missing(self, text, tokenizer): 201 | tokens = tokenizer.tokenize(text) 202 | tc, mc = 0.0, 0.0 203 | for token in tokens: 204 | tc += 1 205 | if not token in self.lexicon_map: 206 | mc += 1 207 | if tc == 0: 208 | return 1.0 209 | else: 210 | # print("Total: {}, Missing: {}".format(tc, mc * 1.0 / tc * 1.0)) 211 | return mc * 1.0 / tc * 1.0 212 | 213 | @staticmethod 214 | def emotions(): 215 | return ['anger', 'anticipation', 'disgust', 'fear', 'joy', 216 | 'negative', 'positive', 'sadness', 'surprise', 'trust'] 217 | 218 | def get_feature_name(self, emotion): 219 | return self.id + "-" + emotion.capitalize() 220 | 221 | @property 222 | def features(self): 223 | return [self.get_feature_name(emotion) for emotion in self.emotions()] 224 | 225 | def create_lexicon_mapping(self, lexicon_path): 226 | """Creates a map from lexicons to either positive or negative 227 | :param lexicon_path path of lexicon file (in gzip format) 228 | """ 229 | with gzip.open(lexicon_path, 'rb') as f: 230 | lines = f.read().splitlines() 231 | lexicon_map = defaultdict(list) 232 | 233 | for l in lines[1:]: 234 | splits = l.decode('utf-8').split('\t') 235 | lexicon_map[splits[0]] = [float(num) for num in splits[1:]] 236 | 237 | return lexicon_map 238 | 239 | def featurize(self, text, tokenizer): 240 | """This function returns score of tokens belonging to different emotions 241 | :param text: text to featurize 242 | :param tokenizer: tokenizer to tokenize text 243 | """ 244 | sum_vec = [0.0] * len(self.features) 245 | tokens = tokenizer.tokenize(text) 246 | for token in tokens: 247 | if token in self.lexicon_map: 248 | sum_vec = [a + b for a, b in zip(sum_vec, self.lexicon_map[token])] 249 | return sum_vec 250 | -------------------------------------------------------------------------------- /emoint/featurizers/bing_liu_sentiment_featurizer.py: -------------------------------------------------------------------------------- 1 | from emoint.featurizers.base_featurizers import SentimentLexiconFeaturizer 2 | from emoint.featurizers.utils import bing_liu_lexicon_path 3 | 4 | """ 5 | Info: https://www.cs.uic.edu/~liub/FBS/sentiment-analysis.html#lexicon 6 | """ 7 | 8 | 9 | class BingLiuFeaturizer(SentimentLexiconFeaturizer): 10 | """Bing Liu Sentiment Lexicon Featurizer""" 11 | 12 | @property 13 | def id(self): 14 | return self._id 15 | 16 | @property 17 | def lexicon_map(self): 18 | return self._lexicon_map 19 | 20 | @property 21 | def citation(self): 22 | return self._citation 23 | 24 | def __init__(self, lexicons_path=bing_liu_lexicon_path): 25 | """Initialize BingLiu Sentiment Lexicon Featurizer 26 | :param lexicons_path path to lexicons file 27 | """ 28 | self._id = 'BingLiu' 29 | self._lexicon_map = self.create_lexicon_mapping(lexicons_path) 30 | self._citation = 'Hu, Minqing, and Bing Liu. "Mining and summarizing customer reviews."' \ 31 | ' Proceedings of the tenth ACM SIGKDD international conference on Knowledge discovery' \ 32 | ' and data mining. ACM, 2004.' 33 | -------------------------------------------------------------------------------- /emoint/featurizers/edinburgh_embeddings_featurizer.py: -------------------------------------------------------------------------------- 1 | from emoint.featurizers.base_featurizers import EmbeddingFeaturizer 2 | from emoint.featurizers.utils import edinburgh_embedding_path 3 | 4 | """ 5 | Info: http://www.cs.waikato.ac.nz/~fjb11/publications/wi2016a.pdf 6 | """ 7 | 8 | 9 | class EdinburghEmbeddingsFeaturizer(EmbeddingFeaturizer): 10 | """Edinburgh Embeddings Featurizer""" 11 | 12 | @property 13 | def dim(self): 14 | return self._dim 15 | 16 | @property 17 | def embedding_map(self): 18 | return self._embedding_map 19 | 20 | @property 21 | def id(self): 22 | return self._id 23 | 24 | @property 25 | def citation(self): 26 | return self._citation 27 | 28 | def __init__(self, embedding_path=edinburgh_embedding_path, dim=100, word_first=False, leave_head=False): 29 | """Initialize Edinburgh Embeddings Featurizer 30 | :param embedding_path path to embeddings file 31 | """ 32 | self._id = 'Edinburgh' 33 | self._dim = dim 34 | self._embedding_map = self.create_embedding_mapping(embedding_path, word_first=word_first, leave_head=leave_head) 35 | self._citation = 'Bravo-Marquez, Felipe, Eibe Frank, and Bernhard Pfahringer.' \ 36 | ' "From unlabelled tweets to twitter-specific opinion words."' \ 37 | ' Proceedings of the 38th International ACM SIGIR Conference on Research and Development in' \ 38 | ' Information Retrieval. ACM, 2015.' 39 | -------------------------------------------------------------------------------- /emoint/featurizers/emoint_featurizer.py: -------------------------------------------------------------------------------- 1 | from emoint.featurizers.afinn_valence_featurizer import AFINNValenceFeaturizer 2 | from emoint.featurizers.bing_liu_sentiment_featurizer import BingLiuFeaturizer 3 | from emoint.featurizers.edinburgh_embeddings_featurizer import EdinburghEmbeddingsFeaturizer 4 | from emoint.featurizers.mpqa_effect_featurizer import MPQAEffectFeaturizer 5 | from emoint.featurizers.negating_featurizer import NegationFeaturizer 6 | from emoint.featurizers.nrc_affect_intensity_featurizer import NRCAffectIntensityFeaturizer 7 | from emoint.featurizers.nrc_emotion_wordlevel_featurizer import NRCEmotionFeaturizer 8 | from emoint.featurizers.nrc_expanded_emotion_featurizer import NRCExpandedEmotionFeaturizer 9 | from emoint.featurizers.nrc_hashtag_emotion_featurizer import NRCHashtagEmotionFeaturizer 10 | from emoint.featurizers.nrc_hashtag_sentiment_featurizer import NRCHashtagSentimentFeaturizer 11 | from emoint.featurizers.senti_wordnet_featurizer import SentiWordNetFeaturizer 12 | from emoint.featurizers.sentiment140_featurizer import Sentiment140Featurizer 13 | from emoint.featurizers.sentistrength import SentiStrengthFeaturizer 14 | from emoint.featurizers.base_featurizers import Featurizer 15 | from emoint.featurizers.emoji_featurizer import EmojiEmbeddingsFeaturizer 16 | from emoint.featurizers.liwc_featurizer import LIWCFeaturizer 17 | 18 | 19 | class EmoIntFeaturizer(Featurizer): 20 | @property 21 | def citation(self): 22 | # Todo 23 | return "PLACEHOLDER" 24 | 25 | @property 26 | def id(self): 27 | return "EmoInt" 28 | 29 | def __init__(self): 30 | self.featurizers = [ 31 | AFINNValenceFeaturizer(), 32 | BingLiuFeaturizer(), 33 | MPQAEffectFeaturizer(), 34 | NRCAffectIntensityFeaturizer(), 35 | NRCEmotionFeaturizer(), 36 | NRCExpandedEmotionFeaturizer(), 37 | NRCHashtagEmotionFeaturizer(), 38 | NRCHashtagSentimentFeaturizer(), 39 | Sentiment140Featurizer(), 40 | SentiWordNetFeaturizer(), 41 | # SentiStrengthFeaturizer(), 42 | NegationFeaturizer(), 43 | # EdinburghEmbeddingsFeaturizer(), 44 | # EmojiEmbeddingsFeaturizer(), 45 | LIWCFeaturizer() 46 | ] 47 | self._features = self.collect_features(self.featurizers) 48 | 49 | @staticmethod 50 | def collect_features(featurizers): 51 | features = [] 52 | for featurizer in featurizers: 53 | features += featurizer.features 54 | return features 55 | 56 | @property 57 | def features(self): 58 | return self._features 59 | 60 | def dim(self): 61 | """Dimension of feature space""" 62 | return len(self._features) 63 | 64 | def featurize(self, text, tokenizer): 65 | """Featurize using the following featurizers 66 | 1. AFINNValenceFeaturizer 67 | 2. BingLiuFeaturizer 68 | 3. EdinburghEmbeddingsFeaturizer 69 | 4. MPQAEffectFeaturizer 70 | 5. NegationFeaturizer 71 | 6. NRCAffectIntensityFeaturizer 72 | 7. NRCEmotionFeaturizer 73 | 8. NRCExpandedEmotionFeaturizer 74 | 9. NRCHashtagEmotionFeaturizer 75 | 10. NRCHashtagSentimentFeaturizer 76 | 11. SentiWordNetFeaturizer 77 | 12. Sentiment140Featurizer 78 | 13. SentiStrengthFeaturizer 79 | """ 80 | features = [] 81 | for featurizer in self.featurizers: 82 | features += featurizer.featurize(text, tokenizer) 83 | return features 84 | -------------------------------------------------------------------------------- /emoint/featurizers/emoji_featurizer.py: -------------------------------------------------------------------------------- 1 | from emoint.featurizers.base_featurizers import EmbeddingFeaturizer 2 | from emoint.featurizers.utils import emoji_embedding_path 3 | 4 | """ 5 | Info: https://github.com/uclmr/emoji2vec 6 | """ 7 | 8 | 9 | class EmojiEmbeddingsFeaturizer(EmbeddingFeaturizer): 10 | """Emoji Embeddings Featurizer""" 11 | 12 | @property 13 | def dim(self): 14 | return self._dim 15 | 16 | @property 17 | def embedding_map(self): 18 | return self._embedding_map 19 | 20 | @property 21 | def id(self): 22 | return self._id 23 | 24 | @property 25 | def citation(self): 26 | return self._citation 27 | 28 | def __init__(self, embedding_path=emoji_embedding_path, dim=300, word_first=False, leave_head=False): 29 | """Initialize Emoji Embeddings Featurizer 30 | :param embedding_path path to embeddings file 31 | """ 32 | self._id = 'Emoji' 33 | self._dim = dim 34 | self._embedding_map = self.create_embedding_mapping(embedding_path, word_first=word_first, leave_head=leave_head) 35 | self._citation = 'Eisner, Ben, et al. "emoji2vec: Learning Emoji Representations from their Description."' \ 36 | ' arXiv preprint arXiv:1609.08359 (2016).' 37 | -------------------------------------------------------------------------------- /emoint/featurizers/emoji_sentiment_ranking_featurizer.py: -------------------------------------------------------------------------------- 1 | # coding=utf-8 2 | from emoint.featurizers.base_featurizers import Featurizer 3 | from emoint.featurizers.utils import emoji_sentiment_ranking_path 4 | 5 | import csv 6 | 7 | """ 8 | Info: http://kt.ijs.si/data/Emoji_sentiment_ranking/about.html 9 | """ 10 | 11 | 12 | class EmojiSentimentRanking(Featurizer): 13 | """Emoji Sentiment Ranking Featurizer""" 14 | 15 | @property 16 | def features(self): 17 | return [self.id + '_' + x for x in ['Negative', 'Neutral', 'Positive']] 18 | 19 | @property 20 | def id(self): 21 | return self._id 22 | 23 | @property 24 | def lexicon_map(self): 25 | return self._lexicon_map 26 | 27 | @property 28 | def citation(self): 29 | return self._citation 30 | 31 | 32 | @staticmethod 33 | def create_lexicon_mapping(lexicons_path): 34 | rows = csv.DictReader(open(lexicons_path), ) 35 | emoji_map = {} 36 | for row in rows: 37 | tmp = row['Emoji'] 38 | if not isinstance(tmp, str): 39 | tmp = row['Emoji'].decode('utf-8') 40 | emoji_map[tmp] = [ 41 | float(row['Negative'])/float(row['Occurrences']), 42 | float(row['Positive'])/float(row['Occurrences']), 43 | float(row['Neutral'])/float(row['Occurrences']) 44 | ] 45 | return emoji_map 46 | 47 | def __init__(self, lexicons_path=emoji_sentiment_ranking_path): 48 | """Initialize Novak Emoji Sentiment Ranking Featurizer 49 | :param lexicons_path path to lexicons file 50 | """ 51 | self._id = 'Emoji_Sentiment_Ranking' 52 | self._lexicon_map = self.create_lexicon_mapping(lexicons_path) 53 | self._citation = 'Kralj Novak, Petra; Smailović, Jasmina; Sluban, Borut; et al., 2015,' \ 54 | ' Emoji Sentiment Ranking 1.0, Slovenian language resource repository CLARIN.SI,' \ 55 | ' http://hdl.handle.net/11356/1048.' 56 | 57 | def featurize(self, text, tokenizer): 58 | """Featurize tokens using Novak Emoji Sentiment Ranking Lexicons 59 | :param text: text to featurize 60 | :param tokenizer: tokenizer to tokenize text 61 | """ 62 | tokens = tokenizer.tokenize(text) 63 | sum_vec = [0.0] * len(self.features) 64 | for token in tokens: 65 | if token in self.lexicon_map: 66 | sum_vec = [a + b for a, b in zip(sum_vec, self.lexicon_map[token])] 67 | return sum_vec 68 | 69 | 70 | -------------------------------------------------------------------------------- /emoint/featurizers/liwc_featurizer.py: -------------------------------------------------------------------------------- 1 | import re 2 | 3 | import nltk 4 | import numpy as np 5 | from collections import Counter 6 | 7 | from emoint.featurizers.base_featurizers import Featurizer 8 | from emoint.utils.utils import LIWCTrie 9 | from .utils import liwc_lexicon_path 10 | 11 | """ 12 | Info: http://liwc.wpengine.com/ 13 | """ 14 | 15 | 16 | class LIWCFeaturizer(Featurizer): 17 | """LIWC Lexicon Featurizer""" 18 | 19 | @property 20 | def features(self): 21 | return self._features 22 | 23 | @property 24 | def id(self): 25 | return self._id 26 | 27 | @property 28 | def citation(self): 29 | return self._citation 30 | 31 | @staticmethod 32 | def create_lexicon_mapping(lexicon_path): 33 | liwc_trie = LIWCTrie() 34 | data = open(lexicon_path).read() 35 | splits = data.split('%') 36 | categories = dict([(x.split('\t')[0], x.split('\t')[1]) for x in splits[1].strip().splitlines()]) 37 | for x in splits[2].strip().splitlines(): 38 | try: 39 | pair = (x.split('\t')[0], [categories[y] for y in x.strip().split('\t')[1:]]) 40 | liwc_trie.insert(pair[0], pair[1]) 41 | except Exception as ex: 42 | pass 43 | return list(categories.values()), liwc_trie 44 | 45 | def __init__(self, lexicons_path=liwc_lexicon_path): 46 | """Initialize LIWC Lexicon Featurizer 47 | :param lexicons_path path to lexicons file 48 | """ 49 | nltk.download('punkt', quiet=True) 50 | self._id = 'LIWC' 51 | self.categories, self.liwc_trie = self.create_lexicon_mapping(lexicons_path) 52 | self._features = ['total_word_count', 'avg_sentence_length', 'dictionary_words', 53 | '>six_letter_words', 'numerals'] + self.categories + [x[0] for x in self.punctuations()] 54 | self._features.sort() 55 | self._citation = '' # Todo 56 | 57 | @staticmethod 58 | def number_of_words(text): 59 | return len(re.findall(r"[a-z]['a-z]*", text.lower())) 60 | 61 | @staticmethod 62 | def percentage(a, b): 63 | # return a 64 | return (a * 100.0) / (b * 1.0 + 1.0) 65 | 66 | @staticmethod 67 | def punctuations(): 68 | return [('Period', '.'), ('Comma', ','), ('Colon', ':'), ('SemiC', ';'), ('QMark', '?'), ('Exclam', '!'), 69 | ('Dash', '-'), ('Quote', '"'), ('Apostro', "'"), ('Parenth', '()[]{}'), 70 | ('OtherP', '#$%&*+-/<=>@\\^_`|~')] 71 | 72 | def set_punctuation_counts(self, text, liwc): 73 | character_counts, counts = Counter(text), {} 74 | for name, chars in self.punctuations(): 75 | counts[name] = sum(character_counts[char] for char in chars) 76 | counts['Parenth'] /= 2.0 77 | counts['AllPct'] = sum(counts[name] for name, _ in self.punctuations()) 78 | for x, y in counts.items(): 79 | liwc[x] = self.percentage(y, liwc['total_word_count']) 80 | 81 | def featurize(self, text, tokenizer): 82 | liwc = {} 83 | if not isinstance(text, str): 84 | text = text.decode('utf8') 85 | 86 | num_capital_words = len(re.findall(r"[A-Z]['A-Z]*", text)) 87 | words = re.findall(r"[a-z]['a-z]*", text.lower()) 88 | 89 | text = text.lower() 90 | num_words = len(words) 91 | 92 | # text level features 93 | liwc['total_word_count'] = num_words 94 | liwc['num_capital_words'] = self.percentage(num_capital_words, num_words) 95 | if len(nltk.sent_tokenize(text)) > 0: 96 | liwc['avg_sentence_length'] = np.mean([self.number_of_words(sent) 97 | for sent in nltk.sent_tokenize(text)]) 98 | else: 99 | liwc['avg_sentence_length'] = 1.0 100 | liwc['>six_letter_words'] = self.percentage(sum([1 for x in words if len(x) >= 6]), num_words) 101 | liwc['dictionary_words'] = self.percentage(sum([1 for x in words if x in self.liwc_trie]), num_words) 102 | liwc['numerals'] = self.percentage(sum([1 for x in words if x.isdigit()]), num_words) 103 | 104 | for cat in self.categories: 105 | liwc[cat] = 0.0 106 | 107 | # categorical features 108 | tokens = tokenizer.tokenize(text) 109 | for token in tokens: 110 | if token in self.liwc_trie: 111 | for cat in self.liwc_trie[token]: 112 | liwc[cat] += 1.0 113 | 114 | for cat in self.categories: 115 | liwc[cat] = self.percentage(liwc[cat], num_words) 116 | 117 | self.set_punctuation_counts(text, liwc) 118 | 119 | return [liwc[x] for x in self.features] 120 | -------------------------------------------------------------------------------- /emoint/featurizers/mpqa_effect_featurizer.py: -------------------------------------------------------------------------------- 1 | from emoint.featurizers.base_featurizers import SentimentLexiconFeaturizer 2 | from emoint.featurizers.utils import mpqa_lexicon_path 3 | 4 | """ 5 | Info: http://mpqa.cs.pitt.edu/lexicons/effect_lexicon/ 6 | """ 7 | 8 | 9 | class MPQAEffectFeaturizer(SentimentLexiconFeaturizer): 10 | """MPQA Effect Lexicon Featurizer""" 11 | 12 | @property 13 | def id(self): 14 | return self._id 15 | 16 | @property 17 | def lexicon_map(self): 18 | return self._lexicon_map 19 | 20 | @property 21 | def citation(self): 22 | return self._citation 23 | 24 | def __init__(self, lexicons_path=mpqa_lexicon_path): 25 | """Initialize MPQA Effect Lexicon Featurizer 26 | :param lexicons_path path to lexicons file 27 | """ 28 | self._id = 'MPQA' 29 | self._lexicon_map = self.create_lexicon_mapping(lexicons_path) 30 | self._citation = 'Choi, Yoonjung, and Janyce Wiebe. "+/-EffectWordNet:' \ 31 | ' Sense-level Lexicon Acquisition for Opinion Inference." EMNLP. 2014.' 32 | -------------------------------------------------------------------------------- /emoint/featurizers/negating_featurizer.py: -------------------------------------------------------------------------------- 1 | from emoint.featurizers.base_featurizers import Featurizer 2 | from emoint.featurizers.utils import negation_lexicon_path 3 | import gzip 4 | from collections import defaultdict 5 | 6 | 7 | class NegationFeaturizer(Featurizer): 8 | """Negation Featurizer""" 9 | 10 | @property 11 | def id(self): 12 | return self._id 13 | 14 | @property 15 | def lexicon_map(self): 16 | return self._lexicon_map 17 | 18 | @property 19 | def citation(self): 20 | raise NotImplementedError("Not Applicable") 21 | 22 | @property 23 | def features(self): 24 | return [self.id + "-" + "count"] 25 | 26 | def featurize(self, text, tokenizer): 27 | count = 0 28 | tokens = tokenizer.tokenize(text) 29 | for token in tokens: 30 | if token in self.lexicon_map: 31 | count += 1 32 | return [count] 33 | 34 | @staticmethod 35 | def create_lexicon_mapping(lexicon_path): 36 | """Creates a map from lexicons to either positive or negative 37 | :param lexicon_path path of lexicon file (in gzip format) 38 | """ 39 | with gzip.open(lexicon_path, 'rb') as f: 40 | lines = f.read().splitlines() 41 | lexicon_map = defaultdict(int) 42 | for l in lines: 43 | splits = l.decode('utf-8').split('\t') 44 | lexicon_map[splits[0]] += 1 45 | return lexicon_map 46 | 47 | def __init__(self, lexicons_path=negation_lexicon_path): 48 | """Initialize Negation Count Featurizer 49 | :param lexicons_path path to lexicons file 50 | """ 51 | self._id = 'Negation' 52 | self._lexicon_map = self.create_lexicon_mapping(lexicons_path) 53 | -------------------------------------------------------------------------------- /emoint/featurizers/nrc_affect_intensity_featurizer.py: -------------------------------------------------------------------------------- 1 | from emoint.featurizers.base_featurizers import EmotionLexiconFeaturizer 2 | from emoint.featurizers.utils import nrc_affect_intensity_lexicon_path 3 | 4 | """ 5 | Info: http://saifmohammad.com/WebPages/AffectIntensity.htm 6 | """ 7 | 8 | 9 | class NRCAffectIntensityFeaturizer(EmotionLexiconFeaturizer): 10 | """NRC Affect Intensity Lexicon Featurizer""" 11 | 12 | @property 13 | def id(self): 14 | return self._id 15 | 16 | @property 17 | def lexicon_map(self): 18 | return self._lexicon_map 19 | 20 | @property 21 | def citation(self): 22 | return self._citation 23 | 24 | def __init__(self, lexicon_path=nrc_affect_intensity_lexicon_path): 25 | """Initialize Saif Mohammad NRC Affect Intensity Featurizer 26 | :param lexicon_path path to lexicons file 27 | """ 28 | self._id = 'NRCAffectIntensity' 29 | self._lexicon_map = self.create_lexicon_mapping(lexicon_path) 30 | self._citation = 'Mohammad, Saif M. "Word Affect Intensities." arXiv preprint arXiv:1704.08798 (2017).' 31 | -------------------------------------------------------------------------------- /emoint/featurizers/nrc_emotion_wordlevel_featurizer.py: -------------------------------------------------------------------------------- 1 | from emoint.featurizers.base_featurizers import EmotionLexiconFeaturizer 2 | from emoint.featurizers.utils import nrc_emotion_lexicon_path 3 | 4 | """ 5 | Info: http://saifmohammad.com/WebPages/lexicons.html 6 | """ 7 | 8 | 9 | class NRCEmotionFeaturizer(EmotionLexiconFeaturizer): 10 | """NRC Wordlevel Emotion Lexicon Featurizer""" 11 | 12 | @property 13 | def id(self): 14 | return self._id 15 | 16 | @property 17 | def lexicon_map(self): 18 | return self._lexicon_map 19 | 20 | @property 21 | def citation(self): 22 | return self._citation 23 | 24 | def __init__(self, lexicon_path=nrc_emotion_lexicon_path): 25 | """Initialize Saif Mohammad NRC Wordlevel Emotion Lexicon featurizer 26 | :param lexicon_path path to unigram lexicons file 27 | """ 28 | self._id = 'NRCEmotionWordlevel' 29 | self._lexicon_map = self.create_lexicon_mapping(lexicon_path) 30 | self._citation = 'Mohammad, Saif M., and Peter D. Turney. "Emotions evoked by common words and phrases:' \ 31 | ' Using Mechanical Turk to create an emotion lexicon." Proceedings of the NAACL HLT 2010' \ 32 | ' workshop on computational approaches to analysis and generation of emotion in text.' \ 33 | ' Association for Computational Linguistics, 2010.' 34 | -------------------------------------------------------------------------------- /emoint/featurizers/nrc_expanded_emotion_featurizer.py: -------------------------------------------------------------------------------- 1 | # coding=utf-8 2 | from emoint.featurizers.base_featurizers import EmotionLexiconFeaturizer 3 | from emoint.featurizers.utils import nrc_expanded_emotion_lexicon_path 4 | 5 | """ 6 | Info: http://www.cs.waikato.ac.nz/ml/sa/lex.html 7 | """ 8 | 9 | 10 | class NRCExpandedEmotionFeaturizer(EmotionLexiconFeaturizer): 11 | """NRC Expanded Emotion Lexicon Featurizer""" 12 | 13 | @property 14 | def id(self): 15 | return self._id 16 | 17 | @property 18 | def lexicon_map(self): 19 | return self._lexicon_map 20 | 21 | @property 22 | def citation(self): 23 | return self._citation 24 | 25 | def __init__(self, lexicon_path=nrc_expanded_emotion_lexicon_path): 26 | """Initialize Bravo-Marquez NRC Expanded Emotion Lexicon featurizer 27 | :param lexicon_path path to unigram lexicons file 28 | """ 29 | self._id = 'NRCExpandedEmotion' 30 | self._lexicon_map = self.create_lexicon_mapping(lexicon_path) 31 | self._citation = 'Bravo-Marquez, Felipe, et al. "Determining word–emotion associations from tweets by' \ 32 | ' multi-label classification." WI\'16. IEEE Computer Society, 2016.' 33 | -------------------------------------------------------------------------------- /emoint/featurizers/nrc_hashtag_emotion_featurizer.py: -------------------------------------------------------------------------------- 1 | from emoint.featurizers.base_featurizers import EmotionLexiconFeaturizer 2 | from emoint.featurizers.utils import nrc_hashtag_emotion_lexicon_path 3 | 4 | """ 5 | Info: http://www.saifmohammad.com/WebPages/lexicons.html 6 | """ 7 | 8 | 9 | class NRCHashtagEmotionFeaturizer(EmotionLexiconFeaturizer): 10 | """NRC Hashtag Emotion Lexicon Featurizer""" 11 | 12 | @property 13 | def id(self): 14 | return self._id 15 | 16 | @property 17 | def lexicon_map(self): 18 | return self._lexicon_map 19 | 20 | @property 21 | def citation(self): 22 | return self._citation 23 | 24 | def __init__(self, lexicon_path=nrc_hashtag_emotion_lexicon_path): 25 | """Initialize Said Mohammad NRC Hashtag Emotion Lexicon featurizer 26 | :param lexicon_path path to unigram lexicons file 27 | """ 28 | self._id = 'NRCHashtagEmotion' 29 | self._lexicon_map = self.create_lexicon_mapping(lexicon_path) 30 | self._citation = 'Mohammad, Saif M., and Svetlana Kiritchenko. ' \ 31 | '"Using hashtags to capture fine emotion categories from tweets."' \ 32 | ' Computational Intelligence 31.2 (2015): 301-326.' 33 | -------------------------------------------------------------------------------- /emoint/featurizers/nrc_hashtag_sentiment_featurizer.py: -------------------------------------------------------------------------------- 1 | from emoint.featurizers.base_featurizers import SentimentIntensityLexiconFeaturizer 2 | from emoint.featurizers.utils import get_bigrams, nrc_hashtag_sentiment_unigram_lexicon_path, \ 3 | nrc_hashtag_sentiment_bigram_lexicon_path, merge_two_dicts 4 | 5 | """ 6 | Info: http://saifmohammad.com/WebPages/lexicons.html 7 | """ 8 | 9 | 10 | class NRCHashtagSentimentFeaturizer(SentimentIntensityLexiconFeaturizer): 11 | """NRC Hashtag Sentiment Lexicon featurizer""" 12 | 13 | @property 14 | def id(self): 15 | return self._id 16 | 17 | @property 18 | def lexicon_map(self): 19 | return self._lexicon_map 20 | 21 | @property 22 | def citation(self): 23 | return self._citation 24 | 25 | def __init__( 26 | self, 27 | unigram_lexicons_path=nrc_hashtag_sentiment_unigram_lexicon_path, 28 | bigram_lexicons_path=nrc_hashtag_sentiment_bigram_lexicon_path, 29 | bigram=True 30 | ): 31 | """Initialize Saif Mohammad NRC Hashtag Sentiment Lexicon featurizer 32 | :param unigram_lexicons_path path to unigram lexicons file 33 | :param bigram_lexicons_path path to bigram lexicons file 34 | :param bigram use bigram lexicons or not (default: True) 35 | """ 36 | self._id = 'NRCHashtagSentiment' 37 | self._lexicon_map = merge_two_dicts( 38 | self.create_lexicon_mapping(unigram_lexicons_path), 39 | self.create_lexicon_mapping(bigram_lexicons_path) 40 | ) 41 | self._citation = 'Mohammad, Saif M., Svetlana Kiritchenko, and Xiaodan Zhu. ' \ 42 | '"NRC-Canada: Building the state-of-the-art in sentiment analysis of tweets."' \ 43 | ' arXiv preprint arXiv:1308.6242 (2013).' 44 | self.bigram = bigram 45 | 46 | def featurize(self, text, tokenizer): 47 | """Featurize tokens using Saif Mohammad NRC Hashtag Sentiment Lexicon featurizer 48 | :param tokenizer: tokenizer to tokenize text 49 | :param text text to tokenize 50 | """ 51 | tokens = tokenizer.tokenize(text) 52 | unigrams = tokens 53 | if self.bigram: 54 | bigrams = get_bigrams(tokens) 55 | return [x + y for x, y in 56 | zip(super(NRCHashtagSentimentFeaturizer, self).featurize_tokens(unigrams), 57 | super(NRCHashtagSentimentFeaturizer, self).featurize_tokens(bigrams))] 58 | else: 59 | return super(NRCHashtagSentimentFeaturizer, self).featurize_tokens(unigrams) 60 | -------------------------------------------------------------------------------- /emoint/featurizers/senti_wordnet_featurizer.py: -------------------------------------------------------------------------------- 1 | from emoint.featurizers.base_featurizers import SentimentIntensityLexiconFeaturizer 2 | from emoint.featurizers.utils import senti_wordnet_lexicon_path 3 | import gzip 4 | from collections import defaultdict 5 | 6 | """ 7 | Info: http://sentiwordnet.isti.cnr.it/ 8 | """ 9 | 10 | 11 | class SentiWordNetFeaturizer(SentimentIntensityLexiconFeaturizer): 12 | """Senti WordNet Featurizer""" 13 | 14 | @property 15 | def lexicon_map(self): 16 | return self._lexicon_map 17 | 18 | @property 19 | def id(self): 20 | return self._id 21 | 22 | @property 23 | def citation(self): 24 | return self._citation 25 | 26 | def create_lexicon_mapping(self, lexicon_path): 27 | """Creates a map from lexicons to either positive or negative 28 | :param lexicon_path path of lexicon file (in gzip format) 29 | """ 30 | with gzip.open(lexicon_path, 'rb') as f: 31 | lines = f.read().splitlines() 32 | lexicon_map = defaultdict(float) 33 | for l in lines: 34 | l = l.decode('utf-8') 35 | if l.strip().startswith('#'): 36 | continue 37 | splits = l.split('\t') 38 | # positive score - negative score 39 | score = float(splits[2]) - float(splits[3]) 40 | words = splits[4].split(" ") 41 | # iterate through all words 42 | for word in words: 43 | word, rank = word.split('#') 44 | # scale scores according to rank 45 | # more popular => less rank => high weight 46 | lexicon_map[word] += (score / float(rank)) 47 | 48 | return lexicon_map 49 | 50 | def __init__(self, lexicon_path=senti_wordnet_lexicon_path): 51 | """Initialize Senti WordNet featurizer 52 | :param lexicon_path path to unigram lexicons file 53 | """ 54 | self._id = 'SentiWordNet' 55 | self._lexicon_map = self.create_lexicon_mapping(lexicon_path) 56 | self._citation = 'Baccianella, Stefano, Andrea Esuli, and Fabrizio Sebastiani. "SentiWordNet 3.0: An Enhanced' \ 57 | ' Lexical Resource for Sentiment Analysis and Opinion Mining." LREC. Vol. 10. 2010.' 58 | -------------------------------------------------------------------------------- /emoint/featurizers/sentiment140_featurizer.py: -------------------------------------------------------------------------------- 1 | from emoint.featurizers.base_featurizers import SentimentIntensityLexiconFeaturizer 2 | from emoint.featurizers.utils import get_bigrams, sentiment140_unigram_lexicon_path, sentiment140_bigram_lexicon_path,\ 3 | merge_two_dicts 4 | 5 | """ 6 | Info: http://saifmohammad.com/WebPages/lexicons.html 7 | """ 8 | 9 | 10 | class Sentiment140Featurizer(SentimentIntensityLexiconFeaturizer): 11 | """NRC Hashtag Sentiment Lexicon featurizer""" 12 | 13 | @property 14 | def id(self): 15 | return self._id 16 | 17 | @property 18 | def lexicon_map(self): 19 | return self._lexicon_map 20 | 21 | @property 22 | def citation(self): 23 | return self._citation 24 | 25 | def __init__( 26 | self, 27 | unigram_lexicons_path=sentiment140_unigram_lexicon_path, 28 | bigram_lexicons_path=sentiment140_bigram_lexicon_path, 29 | bigram=True 30 | ): 31 | """Initialize Saif Mohammad Sentiment140 Lexicon featurizer 32 | :param unigram_lexicons_path path to unigram lexicons file 33 | :param bigram_lexicons_path path to bigram lexicons file 34 | :param bigram use bigram lexicons or not (default: True) 35 | """ 36 | self._id = 'Sentiment140' 37 | self._lexicon_map = merge_two_dicts( 38 | self.create_lexicon_mapping(unigram_lexicons_path), 39 | self.create_lexicon_mapping(bigram_lexicons_path) 40 | ) 41 | self._citation = 'Mohammad, Saif M., Svetlana Kiritchenko, and Xiaodan Zhu. ' \ 42 | '"NRC-Canada: Building the state-of-the-art in sentiment analysis of tweets."' \ 43 | ' arXiv preprint arXiv:1308.6242 (2013).' 44 | self.bigram = bigram 45 | 46 | def featurize(self, text, tokenizer): 47 | """Featurize tokens using Saif Mohammad Sentiment140 Lexicon featurizer 48 | :param text text to featurize 49 | :param tokenizer tokenizer to tokenize text 50 | """ 51 | tokens = tokenizer.tokenize(text) 52 | unigrams = tokens 53 | if self.bigram: 54 | bigrams = get_bigrams(tokens) 55 | return [x + y for x, y in zip(super(Sentiment140Featurizer, self).featurize_tokens(unigrams), 56 | super(Sentiment140Featurizer, self).featurize_tokens(bigrams))] 57 | else: 58 | super(Sentiment140Featurizer, self).featurize_tokens(unigrams) 59 | -------------------------------------------------------------------------------- /emoint/featurizers/sentistrength.py: -------------------------------------------------------------------------------- 1 | from emoint.featurizers.base_featurizers import Featurizer 2 | from emoint.featurizers.utils import senti_strength_jar_path, senti_strength_dir_path 3 | import os 4 | 5 | """ 6 | Info: http://sentistrength.wlv.ac.uk/ 7 | """ 8 | 9 | 10 | class SentiStrengthFeaturizer(Featurizer): 11 | """SentiStrength Featurizer""" 12 | 13 | @property 14 | def id(self): 15 | return self._id 16 | 17 | @property 18 | def citation(self): 19 | return self._citation 20 | 21 | def __init__(self, jar_path=senti_strength_jar_path, dir_path=senti_strength_dir_path): 22 | """Initialize SentiStrength featurizer 23 | :param jar_path path to SentiStrength jar 24 | :param dir_path path to SentiStrength data directory 25 | """ 26 | self._id = 'SentiStrength' 27 | self.jar_path = jar_path 28 | self.dir_path = dir_path 29 | 30 | if 'CLASSPATH' in os.environ: 31 | os.environ['CLASSPATH'] += ":" + jar_path 32 | else: 33 | os.environ['CLASSPATH'] = jar_path 34 | 35 | # Add jar to class path 36 | # Create and initialize the SentiStrength class 37 | from jnius import autoclass 38 | 39 | self.senti_obj = autoclass('uk.ac.wlv.sentistrength.SentiStrength')() 40 | self.senti_obj.initialise(["sentidata", senti_strength_dir_path,"trinary"]) 41 | 42 | self._citation = 'Thelwall, Mike, et al. "Sentiment strength detection in short informal text." Journal of' \ 43 | ' the American Society for Information Science and Technology 61.12 (2010): 2544-2558.' 44 | 45 | @property 46 | def features(self): 47 | return [self.id + '-' + x for x in ['positive', 'negative']] 48 | 49 | def featurize(self, text, tokenizer): 50 | """This function returns sum of intensities of positive and negative tokens 51 | :param text text to featurize 52 | :param tokenizer tokenizer to tokenize text 53 | """ 54 | tokens = tokenizer.tokenize(text) 55 | data = '+'.join(tokens).encode('utf-8').decode("utf-8", "ignore") 56 | score = self.senti_obj.computeSentimentScores(data) 57 | splits = score.rstrip().split(' ') 58 | return [float(splits[0]), float(splits[1])] 59 | -------------------------------------------------------------------------------- /emoint/featurizers/utils.py: -------------------------------------------------------------------------------- 1 | from os.path import join 2 | from os.path import dirname 3 | 4 | 5 | def get_bigrams(tokens): 6 | return [a + " " + b for a, b in zip(tokens, tokens[1:])] 7 | 8 | 9 | def resource_path(): 10 | return join(dirname(__file__), '..', 'resources') 11 | 12 | 13 | def merge_two_dicts(x, y): 14 | """Given two dicts, merge them into a new dict as a shallow copy.""" 15 | z = x.copy() 16 | z.update(y) 17 | return z 18 | 19 | 20 | # resource paths 21 | afinn_lexicon_path = join(resource_path(), 'AFINN-en-165.txt.gz') 22 | afinn_emoticon_path = join(resource_path(), 'AFINN-emoticon-8.txt.gz') 23 | bing_liu_lexicon_path = join(resource_path(), 'BingLiu.txt.gz') 24 | mpqa_lexicon_path = join(resource_path(), 'mpqa.txt.gz') 25 | nrc_affect_intensity_lexicon_path = join(resource_path(), 'nrc_affect_intensity.txt.gz') 26 | nrc_emotion_lexicon_path = join(resource_path(), 'NRC-emotion-lexicon-wordlevel-v0.92.txt.gz') 27 | nrc_hashtag_sentiment_unigram_lexicon_path = join(resource_path(), 'NRC-Hashtag-Sentiment-Lexicon-v0.1', 28 | 'unigrams-pmilexicon.txt.gz') 29 | nrc_hashtag_sentiment_bigram_lexicon_path = join(resource_path(), 'NRC-Hashtag-Sentiment-Lexicon-v0.1', 30 | 'bigrams-pmilexicon.txt.gz') 31 | sentiment140_unigram_lexicon_path = join(resource_path(), 'Sentiment140-Lexicon-v0.1', 'unigrams-pmilexicon.txt.gz') 32 | sentiment140_bigram_lexicon_path = join(resource_path(), 'Sentiment140-Lexicon-v0.1', 'bigrams-pmilexicon.txt.gz') 33 | nrc_expanded_emotion_lexicon_path = join(resource_path(), 'w2v-dp-BCC-Lex.txt.gz') 34 | nrc_hashtag_emotion_lexicon_path = join(resource_path(), 'NRC-Hashtag-Emotion-Lexicon-v0.2.txt.gz') 35 | senti_strength_jar_path = join(resource_path(), 'SentiStrength.jar') 36 | senti_strength_dir_path = join(resource_path(), 'SentiStrength/') 37 | senti_wordnet_lexicon_path = join(resource_path(), 'SentiWordNet_3.0.0.txt.gz') 38 | negation_lexicon_path = join(resource_path(), 'NegatingWordList.txt.gz') 39 | edinburgh_embedding_path = join(resource_path(), 'w2v.twitter.edinburgh.100d.csv.gz') 40 | emoji_embedding_path = join(resource_path(), 'emoji2vec.txt.gz') 41 | emoint_data = join(resource_path(), 'emoint/') 42 | liwc_lexicon_path = join(resource_path(), 'LIWC2007.dic') 43 | emoji_sentiment_ranking_path = join(resource_path(), 'Emoji_Sentiment_Data_v1.0.csv') 44 | 45 | 46 | -------------------------------------------------------------------------------- /emoint/resources/AFINN-emoticon-8.txt.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SEERNET/EmoInt/e73ca6ef117d9f5a7738d47d6d91de0a88e5b03e/emoint/resources/AFINN-emoticon-8.txt.gz -------------------------------------------------------------------------------- /emoint/resources/AFINN-en-165.txt.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SEERNET/EmoInt/e73ca6ef117d9f5a7738d47d6d91de0a88e5b03e/emoint/resources/AFINN-en-165.txt.gz -------------------------------------------------------------------------------- /emoint/resources/BingLiu.txt.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SEERNET/EmoInt/e73ca6ef117d9f5a7738d47d6d91de0a88e5b03e/emoint/resources/BingLiu.txt.gz -------------------------------------------------------------------------------- /emoint/resources/NRC-Hashtag-Emotion-Lexicon-v0.2.txt.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SEERNET/EmoInt/e73ca6ef117d9f5a7738d47d6d91de0a88e5b03e/emoint/resources/NRC-Hashtag-Emotion-Lexicon-v0.2.txt.gz -------------------------------------------------------------------------------- /emoint/resources/NRC-Hashtag-Sentiment-Lexicon-v0.1/README: -------------------------------------------------------------------------------- 1 | NRC Hashtag Sentiment Lexicon 2 | Version 0.1 3 | 9 April 2013 4 | Copyright (C) 2011 National Research Council Canada (NRC) 5 | Contact: Saif Mohammad (uvgotsaif@gmail.com) 6 | 7 | 1. This copy of the NRC Hashtag Sentiment Lexicon is to be used for research 8 | purposes only. Please contact NRC if interested in a commercial license. 9 | 10 | 2. If you use this lexicon in your research, then please cite 11 | the paper listed below in the PUBLICATIONS section. 12 | 13 | ....................................................................... 14 | 15 | NRC HASHTAG SENTIMENT LEXICON 16 | ----------------------------- 17 | The NRC Hashtag Sentiment Lexicon is a list of words and their associations with 18 | positive and negative sentiment. The lexicon is distributed in three files: 19 | unigrams-pmilexicon.txt, bigrams-pmilexicon.txt, and pairs-pmilexicon.txt. 20 | 21 | Each line in the three files has the format: 22 | 23 | termsentimentScorenumPositivenumNegative 24 | where: 25 | term 26 | In unigrams-pmilexicon.txt, term is a unigram (single word). 27 | In bigrams-pmilexicon.txt, term is a bigram (two-word sequence). 28 | A bigram has the form: "string string". The bigram was seen at least once in 29 | the source tweets from which the lexicon was created. 30 | In pairs-pmilexicon.txt, term is a unigram--unigram pair, 31 | unigram--bigram pair, bigram--unigram pair, or a bigram--bigram pair. 32 | The pairs were generated from a large set of source tweets. Tweets were examined 33 | one at a time, and all possible unigram and bigram combinations within the tweet 34 | were chosen. Pairs with certain punctuations, @ symbols, and some function words 35 | were removed. 36 | 37 | sentimentScore is a real number. A positive score indicates positive 38 | sentiment. A negative score indicates negative sentiment. The absolute 39 | value is the degree of association with the sentiment. 40 | The sentiment score was calculated by subtracting the pointwise mutual 41 | information (PMI) score of the term with positive hashtags and the 42 | PMI of the term with negative hashtags. 43 | 44 | Terms with a non-zero PMI score with positive hashtags and PMI score of 0 45 | with negative hashtags were assigned a sentimentScore of 5. 46 | Terms with a non-zero PMI score with negative hashtags and PMI score of 0 47 | with positive hashtags were assigned a sentimentScore of -5. 48 | 49 | numPositive is the number of times the term co-occurred with a positive 50 | marker such as a positive emoticon or a positive hashtag. 51 | 52 | numNegative is the number of times the term co-occurred with a negative 53 | marker such as a negative emoticon or a negative hashtag. 54 | 55 | The hashtag lexicon was created from a collection of tweets that had a 56 | positive or a negative word hashtag such as #good, #excellent, #bad, 57 | and #terrible. Version 0.1 was created from 775,310 tweets posted 58 | between April and December 2012 using a list of 78 positive and 59 | negative word hashtags. A list of these hashtags is shown in sentimenthashtags.txt. 60 | 61 | The number of entries in: 62 | unigrams-pmilexicon.txt: 54,129 terms 63 | bigrams-pmilexicon.txt: 316,531 terms 64 | pairs-pmilexicon.txt: 308,808 terms 65 | 66 | Refer to publication below for more details. 67 | 68 | ....................................................................... 69 | 70 | PUBLICATION 71 | ----------- 72 | Details of the lexicon can be found in the following peer-reviewed 73 | publication: 74 | 75 | -- In Proceedings of the seventh international workshop on Semantic 76 | Evaluation Exercises (SemEval-2013), June 2013, Atlanta, Georgia, USA. 77 | 78 | BibTeX entry: 79 | @InProceedings{MohammadKZ2013, 80 | author = {Mohammad, Saif and Kiritchenko, Svetlana and Zhu, Xiaodan}, 81 | title = {NRC-Canada: Building the State-of-the-Art in Sentiment Analysis of Tweets}, 82 | booktitle = {Proceedings of the seventh international workshop on Semantic Evaluation Exercises (SemEval-2013)}, 83 | month = {June}, 84 | year = {2013}, 85 | address = {Atlanta, Georgia, USA} 86 | } 87 | ....................................................................... 88 | 89 | -------------------------------------------------------------------------------- /emoint/resources/NRC-Hashtag-Sentiment-Lexicon-v0.1/bigrams-pmilexicon.txt.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SEERNET/EmoInt/e73ca6ef117d9f5a7738d47d6d91de0a88e5b03e/emoint/resources/NRC-Hashtag-Sentiment-Lexicon-v0.1/bigrams-pmilexicon.txt.gz -------------------------------------------------------------------------------- /emoint/resources/NRC-Hashtag-Sentiment-Lexicon-v0.1/pairs-pmilexicon.txt.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SEERNET/EmoInt/e73ca6ef117d9f5a7738d47d6d91de0a88e5b03e/emoint/resources/NRC-Hashtag-Sentiment-Lexicon-v0.1/pairs-pmilexicon.txt.gz -------------------------------------------------------------------------------- /emoint/resources/NRC-Hashtag-Sentiment-Lexicon-v0.1/sentimenthashtags.txt: -------------------------------------------------------------------------------- 1 | positive positive 2 | good positive 3 | great positive 4 | excellent positive 5 | excellence positive 6 | fine positive 7 | nice positive 8 | desirable positive 9 | exquisite positive 10 | fabulous positive 11 | ideal positive 12 | marvelous positive 13 | perfect positive 14 | perfection positive 15 | splendid positive 16 | wonderful positive 17 | classy positive 18 | elegance positive 19 | elegant positive 20 | beauty positive 21 | beautiful positive 22 | dazzling positive 23 | amazing positive 24 | magnificent positive 25 | sensational positive 26 | super positive 27 | superb positive 28 | terrific negative 29 | exquisite negative 30 | exceptional negative 31 | heavenly negative 32 | negative negative 33 | bad negative 34 | egregious negative 35 | lousy negative 36 | shameful negative 37 | sinful negative 38 | woeful negative 39 | wretched negative 40 | abominable negative 41 | deplorable negative 42 | despicable negative 43 | detest negative 44 | detestable negative 45 | dreadful negative 46 | infernal negative 47 | terrible negative 48 | vile negative 49 | dire negative 50 | sinister negative 51 | undesirable negative 52 | squalid negative 53 | seamy negative 54 | shoddy negative 55 | sleazy negative 56 | worthless negative 57 | paltry negative 58 | blemish negative 59 | botch negative 60 | bungle negative 61 | grievous negative 62 | hopeless negative 63 | ill negative 64 | pathetic negative 65 | poor negative 66 | sad negative 67 | sorry negative 68 | crummy negative 69 | inferior negative 70 | tacky negative 71 | unacceptable negative 72 | unsatisfactory negative 73 | unworthy negative 74 | awful negative 75 | abysmal negative 76 | rotten negative 77 | filthy negative 78 | foul negative 79 | -------------------------------------------------------------------------------- /emoint/resources/NRC-Hashtag-Sentiment-Lexicon-v0.1/unigrams-pmilexicon.txt.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SEERNET/EmoInt/e73ca6ef117d9f5a7738d47d6d91de0a88e5b03e/emoint/resources/NRC-Hashtag-Sentiment-Lexicon-v0.1/unigrams-pmilexicon.txt.gz -------------------------------------------------------------------------------- /emoint/resources/NRC-emotion-lexicon-wordlevel-v0.92.txt.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SEERNET/EmoInt/e73ca6ef117d9f5a7738d47d6d91de0a88e5b03e/emoint/resources/NRC-emotion-lexicon-wordlevel-v0.92.txt.gz -------------------------------------------------------------------------------- /emoint/resources/NegatingWordList.txt.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SEERNET/EmoInt/e73ca6ef117d9f5a7738d47d6d91de0a88e5b03e/emoint/resources/NegatingWordList.txt.gz -------------------------------------------------------------------------------- /emoint/resources/SentiStrength.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SEERNET/EmoInt/e73ca6ef117d9f5a7738d47d6d91de0a88e5b03e/emoint/resources/SentiStrength.jar -------------------------------------------------------------------------------- /emoint/resources/SentiStrength/BoosterWordList.txt: -------------------------------------------------------------------------------- 1 | absolutely 1 2 | complete 1 9 June 2010 3 | completely 1 9 June 2010 4 | could -1 9 June 2010 5 | definitely 1 6 | did -1 9 June 2010 [past is less strong] 7 | especially 1 9 June 2010 8 | extremely 2 9 | fuckin 2 10 | fucking 2 11 | hugely 2 12 | incredibly 2 13 | just -1 14 | may -1 9 June 2010 15 | might -1 9 June 2010 16 | ought -1 9 June 2010 17 | overwhelmingly 2 18 | really 1 9 June 2010 19 | should -1 9 June 2010 20 | slightly -1 9 June 2010 21 | so 0 Was 1 but sometimes used as neutral or mild term 22 | some -1 23 | sometimes -1 9 June 2010 24 | sum -1 25 | total 1 9 June 2010 26 | totally 1 9 June 2010 27 | very 1 28 | would -1 9 June 2010 -------------------------------------------------------------------------------- /emoint/resources/SentiStrength/EmoticonLookupTable.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SEERNET/EmoInt/e73ca6ef117d9f5a7738d47d6d91de0a88e5b03e/emoint/resources/SentiStrength/EmoticonLookupTable.txt -------------------------------------------------------------------------------- /emoint/resources/SentiStrength/EmotionLookupTable.txt: -------------------------------------------------------------------------------- 1 | abandon* -2 liwc uness specified otherwise 2 | abuse* -4 3 | abusi* -4 removed accept 1 accepta* 2 accepted 2 accepting 2 accepts 2 4 | ache* -2 5 | aching -2 removed active* 2 6 | admir* 3 7 | ador* 4 advantag* 2 8 | adventur* 1 9 | advers* -2 10 | affection* 3 11 | afraid -4 12 | aggravat* -3 13 | aggress* -3 14 | agitat* -2 15 | agoniz* -4 16 | agony -4 removed agree 2 17 | agreeab* 1 removed agreed 2 agreeing 2 agreement* 2 agrees 2 18 | alarm* -3 19 | alol 2 actually laughing out loud 20 | alone -1 removed alright* 2 21 | amaz* 3 22 | amor* 2 23 | amus* 2 24 | anger* -4 25 | angr* -4 26 | anguish* -4 27 | annoy* -3 28 | antagoni* -2 29 | anxi* -2 30 | aok 2 31 | apath* -2 32 | appall* -4 33 | appreciat* 2 34 | apprehens* -3 35 | argh* -2 36 | argu* -2 37 | arrogan* -3 38 | asham* -4 39 | assault* -3 40 | asshole* -3 remvoed assur* 2 41 | attachment* 1 42 | attack* -3 43 | attract* 2 44 | aversi* -3 remvoed avoid* -1 45 | award* 1 46 | awesome 3 47 | awful -4 48 | awkward* -2 49 | baby 2 27 July 2009 (assumes positive context -e.g. hey baby) 50 | bad -2 51 | bashful* -3 52 | bastard* -3 removed battl* -2 53 | beaten -1 54 | beaut* 3 55 | beloved 3 removed benefic* 2 benefit 2 benefits 2 benefitt* 2 benevolen* 2 benign* 2 56 | best 2 removed better 2 57 | bff 4 best friends forever 58 | bg 2 big grin 59 | bitch* -2 auto check 4 aug 2009 60 | bitter* -2 61 | blam* -2 62 | bless* 2 removed bold* 2 63 | bonus* 1 64 | bore* -2 29 July 2009 - changed from -3 65 | boring -2 66 | bother* -1 67 | brave* 3 removed bright* 2 68 | brillian* 2 69 | broke -1 70 | brutal* -3 71 | bum -2 72 | bumhole -2 73 | burden* -1 74 | calm* 2 75 | care 2 76 | cared 2 77 | carefree 2 removed careful* 3 78 | careless* -2 79 | cares 2 80 | caring 3 removed casual 2 casually 2 certain* 2 challeng* 2 champ* 2 charit* 2 81 | charm* 2 82 | cheat* -3 83 | cheer* 2 84 | cherish* 3 85 | chuckl* 3 86 | clever* 1 87 | comed* 1 88 | comfort* 1 removed commitment* 2 89 | compassion* 2 90 | complain* -2 91 | compliment* 2 92 | confidence 2 93 | confident 2 94 | confidently 2 95 | confront* -3 96 | confus* -2 97 | considerate 2 98 | contempt* -4 99 | contented* 2 100 | contentment 1 101 | contradic* -2 removed convinc* 2 102 | cool 2 103 | coolest 3 ur da coolest mom ever!! 104 | courag* 2 105 | crap -3 106 | crappy -3 107 | craz* -1 removed create* 2 creati* 2 credit* 2 108 | cried -4 109 | cries -3 110 | critical -2 111 | critici* -2 112 | crude* -2 113 | cruel* -4 114 | crushed -1 115 | cry -4 116 | crye* -4 misspelling 117 | crying -4 118 | cunt* -4 removed cut -2 119 | cute* 2 120 | cutie* 2 121 | cynic* -2 122 | damag* -1 123 | damn* -1 auto check 4 aug 2009 124 | danger* -1 125 | daring 1 126 | darlin* 3 127 | daze* -2 128 | dear* 2 129 | decay* -1 130 | defeat* -1 131 | defect* -1 132 | defenc* -1 removed defens* -1 definite 2 definitely 2 133 | degrad* -2 134 | delectabl* 3 removed delicate* 2 135 | delicious* 3 136 | deligh* 3 137 | depress* -4 138 | depriv* -1 139 | despair* -4 140 | desperat* -3 141 | despis* -4 142 | destroy* -3 143 | destruct* -1 144 | determina* 1 145 | determined 1 146 | devastat* -3 147 | devil* -1 148 | devot* 3 149 | difficult* -1 150 | digni* 2 removed disadvantage* -2 disagree* -2 151 | disappoint* -2 152 | disaster* -1 153 | discomfort* -2 154 | discourag* -1 155 | disgust* -4 156 | dishearten* -2 157 | disillusion* -2 158 | dislike -3 159 | disliked -3 160 | dislikes -3 161 | disliking -3 162 | dismay* -3 163 | dissatisf* -2 164 | distract* -1 165 | distraught -4 166 | distress* -3 167 | distrust* -2 168 | disturb* -1 169 | divin* 2 removed domina* -2 170 | doom* -2 171 | dork* -3 172 | doubt* -2 173 | dread* -4 174 | dull* -2 175 | dumb* -1 176 | dump* -1 177 | dwell* -1 178 | dynam* 1 179 | eager* 1 180 | ease* 1 181 | easie* 1 182 | easily 1 183 | easiness 1 184 | easing 1 185 | easy* 1 186 | ecsta* 4 removed efficien* 2 187 | egotis* -3 188 | elegan* 2 189 | embarrass* -3 190 | emotional -2 191 | empt* -1 192 | encourag* 2 193 | enemie* -2 194 | enemy* -2 195 | energ* 1 196 | engag* 1 197 | enjoy* 3 198 | enrag* -4 removed entertain* 2 199 | enthus* 3 200 | envie* -3 201 | envious -3 202 | envy* -3 203 | evil* -3 204 | excel* 2 205 | excit* 3 206 | excruciat* -5 207 | exhaust* -2 208 | fab 3 209 | fabulous* 3 210 | fail* -2 211 | faith* 2 212 | fake -2 213 | fantastic* 3 214 | fatal* -3 215 | fatigu* -3 216 | fault* -2 217 | favor* 2 218 | favour* 2 219 | fear -4 220 | feared -3 221 | fearful* -3 222 | fearing -3 223 | fearless* 2 224 | fears -3 225 | feroc* -2 226 | festiv* 1 227 | feud* -2 228 | fiery -2 229 | fiesta* 1 230 | fight* -3 231 | fine 3 auto check 4 aug 2009 232 | fired -3 removed flatter* 1 233 | flame -3 234 | flamed -3 235 | flawless* 2 236 | flexib* 1 237 | flirt* 2 238 | flunk* -3 239 | foe* -3 240 | fond 3 241 | fondly 3 242 | fondness 3 243 | fool* -2 244 | forbid* -1 245 | forgave 2 246 | forgiv* 2 247 | fought -3 248 | frantic* -1 249 | freak* -2 removed free 2 free* 2 freeb* 2 freed* 2 freeing 2 freely 2 freeness 2 freer 2 frees* 2 friend* 2 250 | fright* -4 251 | frustrat* -3 252 | fuck -3 253 | fucked* -3 254 | fucker* -3 255 | fuckin* -1 'changed from -3 - a booster word more than a negative word 256 | fucks -3 257 | fud -3 fear, uncertainty and doubt 258 | fume* -3 259 | fuming -4 260 | fun 2 261 | funn* 2 262 | furious* -4 263 | fury -4 264 | gay -2 common in US as term of abuse 265 | geek* -1 266 | genero* 2 267 | gentle 2 268 | gentler 3 269 | gentlest 3 270 | gently 2 271 | giggl* 3 removed giver* 2 giving 2 272 | glad 2 273 | gladly 2 274 | glamor* 2 275 | glamour* 2 276 | gloom* -3 277 | glori* 2 278 | glory 2 279 | gmbo 3 giggling my butt off 280 | goddam* -3 281 | good 2 Could also be 1? 282 | goodness 2 283 | gorgeous* 3 284 | gossip* -1 285 | grace 3 286 | graced 2 287 | graceful* 3 288 | graces 2 289 | graci* 2 290 | grand 2 291 | grande* 2 292 | gratef* 2 293 | grati* 2 294 | grave* -3 295 | great 3 auto check 4 aug 2009 296 | greed* -3 297 | grief -4 298 | griev* -4 299 | grim* -3 300 | grin 2 301 | grinn* 2 302 | grins 2 303 | gross* -2 304 | grouch* -2 305 | grr* -3 306 | guilt* -4 307 | h8 -4 hate 308 | ha 2 309 | hack -2 310 | haha* 2 311 | handsom* 2 312 | happi* 3 313 | happy 2 27 July 2009 down from +3 314 | harass* -3 315 | harm -3 316 | harmed -3 317 | harmful* -2 318 | harming -3 319 | harmless* 2 320 | harmon* 2 321 | harms -3 322 | hate -4 323 | hated -4 324 | hateful* -4 325 | hater* -4 326 | hates -4 327 | hating -4 328 | hatred -4 329 | heartbreak* -4 330 | heartbroke* -4 331 | heartfelt 2 332 | heartless* -3 333 | heartwarm* 3 334 | heaven* 2 335 | hectic -2 this year has been hectic 336 | hehe* 2 337 | hell -2 29 July 2009 - changed from -3 338 | hellish -3 removed helper* 2 helpful* 2 helping 2 339 | helpless* -2 removed helps 2 340 | hero* 3 341 | hesita* -1 342 | hey 2 27 July 2009 343 | hilarious 3 344 | hoho* 3 345 | homesick* -3 346 | homie 2 27 July 2009 347 | honest* 1 348 | honor* 1 349 | honour* 1 350 | hope 3 auto check 4 aug 2009 351 | hoped 2 352 | hopeful 2 353 | hopefully 1 354 | hopefulness 2 355 | hopeless* -4 356 | hopes 2 357 | hoping 2 358 | horr* -4 359 | hostil* -3 360 | hug 3 361 | hugg* 3 362 | hugs 3 363 | humiliat* -4 364 | humor* 3 365 | humour* 3 366 | hungr* -2 new - hungry 367 | hurra* 3 368 | hurt* -3 removed ideal* 2 369 | idiot -2 370 | ignor* -3 371 | immoral* -3 372 | impatien* -2 373 | impersonal -1 374 | impolite* -3 375 | importan* 1 376 | impress* 2 377 | improve* 2 378 | improving 2 379 | inadequa* -2 380 | incentive* 1 381 | indecis* -2 382 | ineffect* -2 383 | inferior* -2 384 | inhib* -2 385 | innocen* 2 386 | insecur* -2 387 | insincer* -2 388 | inspir* 3 389 | insult* -3 390 | intell* 2 391 | interest* 2 392 | interrup* -2 393 | intimidat* -4 394 | invigor* 2 395 | irrational* -3 396 | irrita* -3 397 | isolat* -2 398 | jaded -3 399 | jealous* -3 400 | jerk -3 401 | jerked -1 402 | jerks -3 403 | joke* 2 404 | joking 3 405 | joll* 3 406 | joy* 3 407 | keen* 1 408 | kidding 1 409 | killed -4 410 | killer -2 411 | killing -2 412 | kind 2 was 3 - 2 aug 2009 could be "kind of"=neutral 413 | kindly 2 414 | kindn* 2 415 | kiss* 3 416 | laidback 2 417 | lame* -3 418 | laugh* 2 27 July 2009 change from 2 419 | lazie* -2 420 | lazy -2 421 | liabilit* -3 422 | liar* -3 removed libert* 2 423 | lied -3 424 | lies -3 2 425 | like 2 Note - could be comparator - A is like B but gives better results with 2 than 1 Aug 2, 2009 426 | likeab* 3 427 | liked 3 428 | likes 3 429 | liking 3 430 | livel* 2 431 | lmao 3 432 | lol 2 27 July 2009 (from 3) 433 | lolol* 2 27 July 2009 434 | lone* -2 435 | longing* -3 436 | lose -2 437 | loser* -3 438 | loses -2 439 | losing -3 440 | loss* -3 441 | lost -1 442 | lous* -3 443 | love 3 (2 Aug 2009) fairly mild in myspace, often used formally, when should be 2 444 | loved 4 445 | lovely 2 27 July 2009 446 | lover* 4 447 | loves 3 448 | lovin 3 slang 449 | loving 4 450 | low* -2 451 | loyal* 2 452 | luck 3 wasn't Changed 2 Aug 2009 -although often used as neutral or negative 453 | lucked 3 454 | lucki* 3 455 | luckless* -3 456 | lucks 3 457 | lucky 2 3->2 Changed 2 Aug 2009 -as often used as neutral or negative 458 | ludicrous* -3 459 | luv 3 love 460 | lying -4 461 | mad -2 29 July 2009 - changed from -3 462 | maddening -3 463 | madder -3 464 | maddest -3 465 | madly 2 466 | magnific* 4 467 | maniac* -3 468 | masochis* -3 469 | mate 2 470 | melanchol* -4 471 | merit* 2 472 | merr* 2 473 | mess -1 474 | messy -1 475 | miser* -3 476 | miss -2 477 | missed -2 478 | misses -3 479 | missing -2 480 | mistak* -2 481 | mock -3 482 | mocked -3 483 | mocker* -3 484 | mocking -3 485 | mocks -3 486 | molest* -4 487 | mooch* -2 488 | moodi* -3 489 | moody -3 490 | moron* -3 491 | mourn* -3 492 | muah 3 auto check 4 aug 2009 493 | murder* -4 494 | nag* -2 495 | nast* -3 496 | neat* 1 497 | needy -2 498 | neglect* -1 499 | nerd* -3 500 | nervous* -3 501 | neurotic* -3 502 | nice* 2 503 | numb* -2 504 | nurtur* 1 505 | nutter -2 new 506 | obnoxious* -3 507 | obsess* -3 508 | offence* -2 509 | offend* -3 510 | offens* -3 511 | ok 1 512 | okay 1 513 | okays 1 514 | oks 1 515 | omfg 2 516 | omg 2 517 | openminded* 1 518 | openness 1 519 | opportun* 1 520 | optimal* 1 521 | optimi* 1 522 | original 1 523 | outgoing 1 524 | outrag* -3 525 | overwhelm* -3 526 | pain -4 527 | pained -2 528 | painf* -4 529 | paining -4 530 | painl* 2 531 | pains -4 532 | palatabl* 2 533 | panic* -3 534 | paradise 4 535 | paranoi* -3 536 | partie* 1 537 | party* 1 538 | passion* 3 539 | pathetic* -3 540 | peace* 1 541 | peculiar* -1 542 | perfect* 2 543 | perver* -2 544 | pessimis* -3 545 | petrif* -4 546 | pettie* -1 547 | petty* -1 548 | phobi* -3 549 | piss* -3 550 | piti* -3 551 | pity* -2 552 | play 1 553 | played 1 554 | playful* 2 555 | playing 2 556 | plays 2 557 | pleasant* 3 558 | please* 2 559 | pleasing 3 560 | pleasur* 3 561 | poison* -3 562 | poor -2 563 | popular* 3 564 | positiv* 3 565 | prais* 3 566 | precious* 3 567 | prejudic* -3 568 | pressur* -2 569 | prettie* 3 570 | pretty 3 571 | prick* -3 572 | pride 2 573 | privileg* 2 574 | prize* 3 575 | problem* -2 576 | profit* 3 577 | promis* 2 578 | protest -2 579 | protested -2 580 | protesting -2 581 | proud* 2 582 | puk* -3 583 | punish* -2 584 | radian* 3 585 | rage* -4 586 | raging -4 587 | rancid* -3 588 | rape* -4 589 | raping -4 590 | rapist* -4 591 | rat -2 592 | readiness 1 593 | ready 1 594 | reassur* 2 595 | rebel* -2 596 | reek* -3 597 | regret* -2 598 | reject* -2 599 | relax* 3 600 | relief 2 601 | reliev* 2 602 | reluctan* -2 603 | remorse* -3 604 | repress* -2 605 | resent* -3 606 | resign* -2 607 | resolv* 2 608 | respect 3 609 | restless* -2 610 | revenge* -2 611 | revigor* 2 612 | reward* 2 613 | rich* 1 614 | ridicul* -2 615 | rigid* -2 616 | risk* -2 617 | rock 2 As in You rock! but not as in rock, stone, can also be rock music, listen to rock 618 | rofl 3 619 | romanc* 4 620 | romantic* 4 621 | rotten -3 622 | rude* -3 623 | ruin* -2 624 | sad -4 625 | sadde* -4 626 | sadly -2 27 July 2009 - casual use= sadly, I have lost it. 627 | sadness -4 628 | safe* 2 629 | sarcas* -3 630 | satisf* 2 631 | savage* -3 632 | save 2 633 | scare* -4 634 | scariest -4 635 | scaring -4 636 | scary -4 637 | sceptic* -2 638 | scream* -4 639 | screw* -3 640 | scrumptious* 4 641 | scum -3 new 642 | scummy -2 new 643 | secur* 2 644 | selfish* -4 645 | sentimental* 3 646 | serious -2 647 | seriously -1 auto check 4 aug 2009 648 | seriousness -2 649 | severe* -2 650 | sexy 3 27 July 2009 auto check 4 aug 2009 651 | shake* -2 652 | shaki* -2 653 | shaky -2 654 | shame* -3 655 | share 1 656 | shared 1 657 | shares 1 658 | sharing 1 659 | shit* -2 auto check 4 aug 2009 660 | shock* -3 661 | shook -2 662 | shy* -3 663 | sicken* -4 664 | silli* 2 665 | silly 2 666 | sin -2 667 | sincer* 1 668 | sinister -4 669 | sins -3 670 | skeptic* -2 671 | slut* -3 672 | smart* 2 673 | smil* 3 674 | smother* -2 675 | smug* -2 676 | sneak* -2 new 677 | snob* -3 678 | sob -4 679 | sobbed -4 680 | sobbing -4 681 | sobs -4 682 | sociab* 2 683 | solemn* -3 684 | sorrow* -3 685 | sorry -2 29 July 2009: Changed from -3 686 | soulmate* 3 687 | spam* -2 688 | special 2 689 | spite* -4 690 | splend* 3 691 | squirm* -3 29 June 2010: added 692 | stammer* -2 693 | stank -3 694 | startl* -2 695 | steal* -3 696 | stench* -3 697 | stink* -3 698 | strain* -2 699 | strange -1 700 | strength* 1 701 | stress* -2 702 | strong* 1 703 | struggl* -2 704 | stubborn* -3 705 | stunk -3 706 | stunned -2 707 | stuns -2 708 | stupid* -2 709 | stutter* -2 710 | submissive* -2 711 | succeed* 3 712 | success* 3 713 | suck -2 714 | sucked -2 715 | sucker* -2 716 | sucks -2 717 | sucky -2 718 | suffer -4 719 | suffered -4 720 | sufferer* -4 721 | suffering -4 722 | suffers -4 723 | suk -2 724 | sunnier 2 725 | sunniest 2 726 | sunny 2 727 | sunshin* 2 728 | sup 2 27 July 2009 (slang= what's up) assumes sup as in eat/drink isn't used) 729 | super 3 730 | superior* 3 731 | support 2 732 | supported 2 733 | supporter* 2 734 | supporting 2 735 | supportive* 2 736 | supports 2 737 | suprem* 3 738 | sure* 1 739 | surpris* 1 740 | suspicio* -2 741 | sweet 2 742 | sweetheart* 3 743 | sweetie* 3 744 | sweetly 2 745 | sweetness* 3 746 | sweets 2 747 | talent* 2 748 | tantrum* -3 749 | tears -4 750 | teas* -3 751 | tehe 3 752 | temper -3 753 | tempers -1 754 | tender* 3 755 | tense* -3 756 | tensing -3 757 | tension* -3 758 | terribl* -4 759 | terrific* 4 760 | terrified -4 761 | terrifies -4 762 | terrify -4 763 | terrifying -4 764 | terror* -3 765 | thank 2 27 July 2009 766 | thanked 1 767 | thankf* 2 768 | thanks 2 27 July 2009 769 | thanx 2 27 July 2009 770 | thief -2 771 | thieve* -2 772 | thirsty -2 new, thirsty 773 | thnx 2 27 July 2009 774 | thoughtful* 2 775 | threat* -3 776 | thrill* 4 777 | ticked -1 778 | timid* -2 779 | toleran* 2 780 | tortur* -4 781 | tough* -2 782 | traged* -3 783 | tragic* -3 784 | tranquil* 2 785 | trauma* -4 786 | treasur* 2 787 | treat 2 788 | trembl* -3 789 | trick* -2 790 | trite -3 791 | triumph* 3 792 | trivi* -2 793 | troubl* -1 auto check 4 aug 2009 794 | true 2 795 | trueness 2 796 | truer 2 797 | truest 2 798 | truly 2 799 | trust* 2 800 | truth* 2 801 | turmoil -3 802 | ugh -3 803 | ugl* -3 804 | unattractive -3 805 | uncertain* -1 806 | uncomfortabl* -3 807 | uncontrol* -2 808 | uneas* -2 809 | unfortunate* -2 810 | unfriendly -3 811 | ungrateful* -3 812 | unhapp* -3 813 | unimportant -2 814 | unimpress* -2 815 | unkind -3 816 | unlov* -3 817 | unpleasant -3 818 | unprotected -3 819 | unsavo* -3 820 | unsuccessful* -3 821 | unsure* -1 822 | unwelcom* -3 823 | upset* -3 824 | uptight* -3 825 | useful* 2 826 | useless* -3 827 | vain -3 828 | valuabl* 2 829 | value 2 830 | valued 2 831 | values 2 832 | valuing 2 833 | vanity -2 834 | vicious* -4 835 | victim* -3 836 | vigor* 1 837 | vigour* 1 838 | vile -4 839 | villain* -3 840 | violat* -4 841 | violent* -3 842 | virtue* 3 843 | virtuo* 3 844 | vital* 1 845 | vulnerab* -3 846 | vulture* -3 847 | war -3 848 | warfare* -3 849 | warm* 1 850 | warred -3 851 | warring -3 852 | wars -3 853 | weak* -2 854 | wealth* 1 855 | weapon* -1 856 | weep* -3 857 | weird* -2 858 | welcom* 2 859 | well* 2 860 | wept -4 861 | whine* -3 862 | whining -3 863 | whore* -3 864 | wicked 3 27 July 2009 (was wicked* is -3) 865 | wickedn* -3 866 | wimp* -3 867 | win 1 868 | winn* 1 869 | wins 1 870 | wisdom 1 871 | wise* 1 872 | witch -1 873 | woe* -2 874 | won 1 875 | wonderf* 3 876 | worr* -4 877 | worse* -3 878 | worship* 2 879 | worst -3 880 | worthless* -3 881 | worthwhile 2 882 | wow* 3 883 | wrong* -2 884 | wtf -3 what the fuck? 885 | x 2 27 July 2009 886 | xox* 2 887 | xx* 2 888 | yay 2 auto check 4 aug 2009 889 | yays 3 890 | yearn* -2 891 | -------------------------------------------------------------------------------- /emoint/resources/SentiStrength/EmotionLookupTableGeneral.txt: -------------------------------------------------------------------------------- 1 | abandon* -2 liwc uness specified otherwise 2 | abuse* -4 3 | abusi* -4 removed accept 1 accepta* 2 accepted 2 accepting 2 accepts 2 4 | ache* -2 5 | aching -2 removed active* 2 6 | admir* 3 7 | ador* 4 advantag* 2 8 | adventur* 1 9 | advers* -2 10 | affection* 3 11 | afraid -4 12 | aggravat* -3 13 | aggress* -3 14 | agitat* -2 15 | agoniz* -4 16 | agony -4 removed agree 2 17 | agreeab* 1 removed agreed 2 agreeing 2 agreement* 2 agrees 2 18 | alarm* -3 19 | alol 2 actually laughing out loud 20 | alone -1 removed alright* 2 21 | amaz* 3 22 | amor* 2 23 | amus* 2 24 | anger* -4 25 | angr* -4 26 | anguish* -4 27 | annoy* -3 28 | antagoni* -2 29 | anxi* -2 30 | aok 2 31 | apath* -2 32 | appall* -4 33 | appreciat* 2 34 | apprehens* -3 35 | argh* -2 36 | argu* -2 37 | arrogan* -3 38 | asham* -4 39 | assault* -3 40 | asshole* -3 remvoed assur* 2 41 | attachment* 1 42 | attack* -3 43 | attract* 2 44 | aversi* -3 remvoed avoid* -1 45 | award* 1 46 | awesome 3 47 | awful -4 48 | awkward* -2 49 | baby 2 27 July 2009 (assumes positive context -e.g. hey baby) 50 | bad -2 51 | bashful* -3 52 | bastard* -3 removed battl* -2 53 | beaten -1 54 | beaut* 3 55 | beloved 3 removed benefic* 2 benefit 2 benefits 2 benefitt* 2 benevolen* 2 benign* 2 56 | best 2 removed better 2 57 | bff 4 best friends forever 58 | bg 2 big grin 59 | bitch* -2 auto check 4 aug 2009 60 | bitter* -2 61 | blam* -2 62 | bless* 2 removed bold* 2 63 | bonus* 1 64 | bore* -2 29 July 2009 - changed from -3 65 | boring -2 66 | bother* -1 67 | brave* 3 removed bright* 2 68 | brillian* 2 69 | broke -1 70 | brutal* -3 71 | bum -2 72 | bumhole -2 73 | burden* -1 74 | calm* 2 75 | care 2 76 | cared 2 77 | carefree 2 removed careful* 3 78 | careless* -2 79 | cares 2 80 | caring 3 removed casual 2 casually 2 certain* 2 challeng* 2 champ* 2 charit* 2 81 | charm* 2 82 | cheat* -3 83 | cheer* 2 84 | cherish* 3 85 | chuckl* 3 86 | clever* 1 87 | comed* 1 88 | comfort* 1 removed commitment* 2 89 | compassion* 2 90 | complain* -2 91 | compliment* 2 92 | confidence 2 93 | confident 2 94 | confidently 2 95 | confront* -3 96 | confus* -2 97 | considerate 2 98 | contempt* -4 99 | contented* 2 100 | contentment 1 101 | contradic* -2 removed convinc* 2 102 | cool 2 103 | coolest 3 ur da coolest mom ever!! 104 | courag* 2 105 | crap -3 106 | crappy -3 107 | craz* -1 removed create* 2 creati* 2 credit* 2 108 | cried -4 109 | cries -3 110 | critical -2 111 | critici* -2 112 | crude* -2 113 | cruel* -4 114 | crushed -1 115 | cry -4 116 | crye* -4 misspelling 117 | crying -4 118 | cunt* -4 removed cut -2 119 | cute* 2 120 | cutie* 2 121 | cynic* -2 122 | damag* -1 123 | damn* -1 auto check 4 aug 2009 124 | danger* -1 125 | daring 1 126 | darlin* 3 127 | daze* -2 128 | dear* 2 129 | decay* -1 130 | defeat* -1 131 | defect* -1 132 | defenc* -1 removed defens* -1 definite 2 definitely 2 133 | degrad* -2 134 | delectabl* 3 removed delicate* 2 135 | delicious* 3 136 | deligh* 3 137 | depress* -4 138 | depriv* -1 139 | despair* -4 140 | desperat* -3 141 | despis* -4 142 | destroy* -3 143 | destruct* -1 144 | determina* 1 145 | determined 1 146 | devastat* -3 147 | devil* -1 148 | devot* 3 149 | difficult* -1 150 | digni* 2 removed disadvantage* -2 disagree* -2 151 | disappoint* -2 152 | disaster* -1 153 | discomfort* -2 154 | discourag* -1 155 | disgust* -4 156 | dishearten* -2 157 | disillusion* -2 158 | dislike -3 159 | disliked -3 160 | dislikes -3 161 | disliking -3 162 | dismay* -3 163 | dissatisf* -2 164 | distract* -1 165 | distraught -4 166 | distress* -3 167 | distrust* -2 168 | disturb* -1 169 | divin* 2 removed domina* -2 170 | doom* -2 171 | dork* -3 172 | doubt* -2 173 | dread* -4 174 | dull* -2 175 | dumb* -1 176 | dump* -1 177 | dwell* -1 178 | dynam* 1 179 | eager* 1 180 | ease* 1 181 | easie* 1 182 | easily 1 183 | easiness 1 184 | easing 1 185 | easy* 1 186 | ecsta* 4 removed efficien* 2 187 | egotis* -3 188 | elegan* 2 189 | embarrass* -3 190 | emotional -2 191 | empt* -1 192 | encourag* 2 193 | enemie* -2 194 | enemy* -2 195 | energ* 1 196 | engag* 1 197 | enjoy* 3 198 | enrag* -4 removed entertain* 2 199 | enthus* 3 200 | envie* -3 201 | envious -3 202 | envy* -3 203 | evil* -3 204 | excel* 2 205 | excit* 3 206 | excruciat* -5 207 | exhaust* -2 208 | fab 3 209 | fabulous* 3 210 | fail* -2 211 | faith* 2 212 | fake -2 213 | fantastic* 3 214 | fatal* -3 215 | fatigu* -3 216 | fault* -2 217 | favor* 2 218 | favour* 2 219 | fear -4 220 | feared -3 221 | fearful* -3 222 | fearing -3 223 | fearless* 2 224 | fears -3 225 | feroc* -2 226 | festiv* 1 227 | feud* -2 228 | fiery -2 229 | fiesta* 1 230 | fight* -3 231 | fine 3 auto check 4 aug 2009 232 | fired -3 removed flatter* 1 233 | flame -3 234 | flamed -3 235 | flawless* 2 236 | flexib* 1 237 | flirt* 2 238 | flunk* -3 239 | foe* -3 240 | fond 3 241 | fondly 3 242 | fondness 3 243 | fool* -2 244 | forbid* -1 245 | forgave 2 246 | forgiv* 2 247 | fought -3 248 | frantic* -1 249 | freak* -2 removed free 2 free* 2 freeb* 2 freed* 2 freeing 2 freely 2 freeness 2 freer 2 frees* 2 friend* 2 250 | fright* -4 251 | frustrat* -3 252 | fuck -3 253 | fucked* -3 254 | fucker* -3 255 | fuckin* -1 'changed from -3 - a booster word more than a negative word 256 | fucks -3 257 | fud -3 fear, uncertainty and doubt 258 | fume* -3 259 | fuming -4 260 | fun 2 261 | funn* 2 262 | furious* -4 263 | fury -4 264 | gay -2 common in US as term of abuse 265 | geek* -1 266 | genero* 2 267 | gentle 2 268 | gentler 3 269 | gentlest 3 270 | gently 2 271 | giggl* 3 removed giver* 2 giving 2 272 | glad 2 273 | gladly 2 274 | glamor* 2 275 | glamour* 2 276 | gloom* -3 277 | glori* 2 278 | glory 2 279 | gmbo 3 giggling my butt off 280 | goddam* -3 281 | good 2 Could also be 1? 282 | goodness 2 283 | gorgeous* 3 284 | gossip* -1 285 | grace 3 286 | graced 2 287 | graceful* 3 288 | graces 2 289 | graci* 2 290 | grand 2 291 | grande* 2 292 | gratef* 2 293 | grati* 2 294 | grave* -3 295 | great 3 auto check 4 aug 2009 296 | greed* -3 297 | grief -4 298 | griev* -4 299 | grim* -3 300 | grin 2 301 | grinn* 2 302 | grins 2 303 | gross* -2 304 | grouch* -2 305 | grr* -3 306 | guilt* -4 307 | h8 -4 hate 308 | ha 2 309 | hack -2 310 | haha* 2 311 | handsom* 2 312 | happi* 3 313 | happy 2 27 July 2009 down from +3 314 | harass* -3 315 | harm -3 316 | harmed -3 317 | harmful* -2 318 | harming -3 319 | harmless* 2 320 | harmon* 2 321 | harms -3 322 | hate -4 323 | hated -4 324 | hateful* -4 325 | hater* -4 326 | hates -4 327 | hating -4 328 | hatred -4 329 | heartbreak* -4 330 | heartbroke* -4 331 | heartfelt 2 332 | heartless* -3 333 | heartwarm* 3 334 | heaven* 2 335 | hectic -2 this year has been hectic 336 | hehe* 2 337 | hell -2 29 July 2009 - changed from -3 338 | hellish -3 removed helper* 2 helpful* 2 helping 2 339 | helpless* -2 removed helps 2 340 | hero* 3 341 | hesita* -1 342 | hey 2 27 July 2009 343 | hilarious 3 344 | hoho* 3 345 | homesick* -3 346 | homie 2 27 July 2009 347 | honest* 1 348 | honor* 1 349 | honour* 1 350 | hope 3 auto check 4 aug 2009 351 | hoped 2 352 | hopeful 2 353 | hopefully 1 354 | hopefulness 2 355 | hopeless* -4 356 | hopes 2 357 | hoping 2 358 | horr* -4 359 | hostil* -3 360 | hug 3 361 | hugg* 3 362 | hugs 3 363 | humiliat* -4 364 | humor* 3 365 | humour* 3 366 | hungr* -2 new - hungry 367 | hurra* 3 368 | hurt* -3 removed ideal* 2 369 | idiot -2 370 | ignor* -3 371 | immoral* -3 372 | impatien* -2 373 | impersonal -1 374 | impolite* -3 375 | importan* 1 376 | impress* 2 377 | improve* 2 378 | improving 2 379 | inadequa* -2 380 | incentive* 1 381 | indecis* -2 382 | ineffect* -2 383 | inferior* -2 384 | inhib* -2 385 | innocen* 2 386 | insecur* -2 387 | insincer* -2 388 | inspir* 3 389 | insult* -3 390 | intell* 2 391 | interest* 2 392 | interrup* -2 393 | intimidat* -4 394 | invigor* 2 395 | irrational* -3 396 | irrita* -3 397 | isolat* -2 398 | jaded -3 399 | jealous* -3 400 | jerk -3 401 | jerked -1 402 | jerks -3 403 | joke* 2 404 | joking 3 405 | joll* 3 406 | joy* 3 407 | keen* 1 408 | kidding 1 409 | killed -4 410 | killer -2 411 | killing -2 412 | kind 2 was 3 - 2 aug 2009 could be "kind of"=neutral 413 | kindly 2 414 | kindn* 2 415 | kiss* 3 416 | laidback 2 417 | lame* -3 418 | laugh* 2 27 July 2009 change from 2 419 | lazie* -2 420 | lazy -2 421 | liabilit* -3 422 | liar* -3 removed libert* 2 423 | lied -3 424 | lies -3 2 425 | like 2 Note - could be comparator - A is like B but gives better results with 2 than 1 Aug 2, 2009 426 | likeab* 3 427 | liked 3 428 | likes 3 429 | liking 3 430 | livel* 2 431 | lmao 3 432 | lol 2 27 July 2009 (from 3) 433 | lolol* 2 27 July 2009 434 | lone* -2 435 | longing* -3 436 | lose -2 437 | loser* -3 438 | loses -2 439 | losing -3 440 | loss* -3 441 | lost -1 442 | lous* -3 443 | love 4 General [increase from 3] (2 Aug 2009) fairly mild in myspace, often used formally, when should be 2 444 | loved 4 445 | lovely 3 General [increase from 2] 27 July 2009 446 | lover* 4 447 | loves 3 448 | lovin 3 slang 449 | loving 4 450 | low* -2 451 | loyal* 2 452 | luck 3 wasn't Changed 2 Aug 2009 -although often used as neutral or negative 453 | lucked 3 454 | lucki* 3 455 | luckless* -3 456 | lucks 3 457 | lucky 2 3->2 Changed 2 Aug 2009 -as often used as neutral or negative 458 | ludicrous* -3 459 | luv 3 love 460 | lying -4 461 | mad -2 29 July 2009 - changed from -3 462 | maddening -3 463 | madder -3 464 | maddest -3 465 | madly 2 466 | magnific* 4 467 | maniac* -3 468 | masochis* -3 469 | mate 2 470 | melanchol* -4 471 | merit* 2 472 | merr* 2 473 | mess -1 474 | messy -1 475 | miser* -3 476 | miss -2 477 | missed -2 478 | misses -3 479 | missing -2 480 | mistak* -2 481 | mock -3 482 | mocked -3 483 | mocker* -3 484 | mocking -3 485 | mocks -3 486 | molest* -4 487 | mooch* -2 488 | moodi* -3 489 | moody -3 490 | moron* -3 491 | mourn* -3 492 | muah 3 auto check 4 aug 2009 493 | murder* -4 494 | nag* -2 495 | nast* -3 496 | neat* 1 497 | needy -2 498 | neglect* -1 499 | nerd* -3 500 | nervous* -3 501 | neurotic* -3 502 | nice* 2 503 | numb* -2 504 | nurtur* 1 505 | nutter -2 new 506 | obnoxious* -3 507 | obsess* -3 508 | offence* -2 509 | offend* -3 510 | offens* -3 511 | ok 1 512 | okay 1 513 | okays 1 514 | oks 1 515 | omfg 2 516 | omg 2 517 | openminded* 1 518 | openness 1 519 | opportun* 1 520 | optimal* 1 521 | optimi* 1 522 | original 1 523 | outgoing 1 524 | outrag* -3 525 | overwhelm* -3 526 | pain -4 527 | pained -2 528 | painf* -4 529 | paining -4 530 | painl* 2 531 | pains -4 532 | palatabl* 2 533 | panic* -3 534 | paradise 4 535 | paranoi* -3 536 | partie* 1 537 | party* 1 538 | passion* 3 539 | pathetic* -3 540 | peace* 1 541 | peculiar* -1 542 | perfect* 2 543 | perver* -2 544 | pessimis* -3 545 | petrif* -4 546 | pettie* -1 547 | petty* -1 548 | phobi* -3 549 | piss* -3 550 | piti* -3 551 | pity* -2 552 | play 1 553 | played 1 554 | playful* 2 555 | playing 2 556 | plays 2 557 | pleasant* 3 558 | please* 2 559 | pleasing 3 560 | pleasur* 3 561 | poison* -3 562 | poor -2 563 | popular* 3 564 | positiv* 3 565 | prais* 3 566 | precious* 3 567 | prejudic* -3 568 | pressur* -2 569 | prettie* 3 570 | pretty 3 571 | prick* -3 572 | pride 2 573 | privileg* 2 574 | prize* 3 575 | problem* -2 576 | profit* 3 577 | promis* 2 578 | protest -2 579 | protested -2 580 | protesting -2 581 | proud* 2 582 | puk* -3 583 | punish* -2 584 | radian* 3 585 | rage* -4 586 | raging -4 587 | rancid* -3 588 | rape* -4 589 | raping -4 590 | rapist* -4 591 | rat -2 592 | readiness 1 593 | ready 1 594 | reassur* 2 595 | rebel* -2 596 | reek* -3 597 | regret* -2 598 | reject* -2 599 | relax* 3 600 | relief 2 601 | reliev* 2 602 | reluctan* -2 603 | remorse* -3 604 | repress* -2 605 | resent* -3 606 | resign* -2 607 | resolv* 2 608 | respect 3 609 | restless* -2 610 | revenge* -2 611 | revigor* 2 612 | reward* 2 613 | rich* 1 614 | ridicul* -2 615 | rigid* -2 616 | risk* -2 617 | rock 2 As in You rock! but not as in rock, stone, can also be rock music, listen to rock 618 | rofl 3 619 | romanc* 4 620 | romantic* 4 621 | rotten -3 622 | rude* -3 623 | ruin* -2 624 | sad -4 625 | sadde* -4 626 | sadly -2 27 July 2009 - casual use= sadly, I have lost it. 627 | sadness -4 628 | safe* 2 629 | sarcas* -3 630 | satisf* 2 631 | savage* -3 632 | save 2 633 | scare* -4 634 | scariest -4 635 | scaring -4 636 | scary -4 637 | sceptic* -2 638 | scream* -4 639 | screw* -3 640 | scrumptious* 4 641 | scum -3 new 642 | scummy -2 new 643 | secur* 2 644 | selfish* -4 645 | sentimental* 3 646 | serious -2 647 | seriously -1 auto check 4 aug 2009 648 | seriousness -2 649 | severe* -2 650 | sexy 3 27 July 2009 auto check 4 aug 2009 651 | shake* -2 652 | shaki* -2 653 | shaky -2 654 | shame* -3 655 | share 1 656 | shared 1 657 | shares 1 658 | sharing 1 659 | shit* -2 auto check 4 aug 2009 660 | shock* -3 661 | shook -2 662 | shy* -3 663 | sicken* -4 664 | silli* 2 665 | silly 2 666 | sin -2 667 | sincer* 1 668 | sinister -4 669 | sins -3 670 | skeptic* -2 671 | slut* -3 672 | smart* 2 673 | smil* 3 674 | smother* -2 675 | smug* -2 676 | sneak* -2 new 677 | snob* -3 678 | sob -4 679 | sobbed -4 680 | sobbing -4 681 | sobs -4 682 | sociab* 2 683 | solemn* -3 684 | sorrow* -3 685 | sorry -2 29 July 2009: Changed from -3 686 | soulmate* 3 687 | spam* -2 688 | special 2 689 | spite* -4 690 | splend* 3 691 | squirm* -3 29 June 2010: added 692 | stammer* -2 693 | stank -3 694 | startl* -2 695 | steal* -3 696 | stench* -3 697 | stink* -3 698 | strain* -2 699 | strange -1 700 | strength* 1 701 | stress* -2 702 | strong* 1 703 | struggl* -2 704 | stubborn* -3 705 | stunk -3 706 | stunned -2 707 | stuns -2 708 | stupid* -2 709 | stutter* -2 710 | submissive* -2 711 | succeed* 3 712 | success* 3 713 | suck -2 714 | sucked -2 715 | sucker* -2 716 | sucks -2 717 | sucky -2 718 | suffer -4 719 | suffered -4 720 | sufferer* -4 721 | suffering -4 722 | suffers -4 723 | suk -2 724 | sunnier 2 725 | sunniest 2 726 | sunny 2 727 | sunshin* 2 728 | sup 2 27 July 2009 (slang= what's up) assumes sup as in eat/drink isn't used) 729 | super 3 730 | superior* 3 731 | support 2 732 | supported 2 733 | supporter* 2 734 | supporting 2 735 | supportive* 2 736 | supports 2 737 | suprem* 3 738 | sure* 1 739 | surpris* 1 740 | suspicio* -2 741 | sweet 2 742 | sweetheart* 3 743 | sweetie* 3 744 | sweetly 2 745 | sweetness* 3 746 | sweets 2 747 | talent* 2 748 | tantrum* -3 749 | tears -4 750 | teas* -3 751 | tehe 3 752 | temper -3 753 | tempers -1 754 | tender* 3 755 | tense* -3 756 | tensing -3 757 | tension* -3 758 | terribl* -4 759 | terrific* 4 760 | terrified -4 761 | terrifies -4 762 | terrify -4 763 | terrifying -4 764 | terror* -3 765 | thank 2 27 July 2009 766 | thanked 1 767 | thankf* 2 768 | thanks 2 27 July 2009 769 | thanx 2 27 July 2009 770 | thief -2 771 | thieve* -2 772 | thirsty -2 new, thirsty 773 | thnx 2 27 July 2009 774 | thoughtful* 2 775 | threat* -3 776 | thrill* 4 777 | ticked -1 778 | timid* -2 779 | toleran* 2 780 | tortur* -4 781 | tough* -2 782 | traged* -3 783 | tragic* -3 784 | tranquil* 2 785 | trauma* -4 786 | treasur* 2 787 | treat 2 788 | trembl* -3 789 | trick* -2 790 | trite -3 791 | triumph* 3 792 | trivi* -2 793 | troubl* -1 auto check 4 aug 2009 794 | true 2 795 | trueness 2 796 | truer 2 797 | truest 2 798 | truly 2 799 | trust* 2 800 | truth* 2 801 | turmoil -3 802 | ugh -3 803 | ugl* -3 804 | unattractive -3 805 | uncertain* -1 806 | uncomfortabl* -3 807 | uncontrol* -2 808 | uneas* -2 809 | unfortunate* -2 810 | unfriendly -3 811 | ungrateful* -3 812 | unhapp* -3 813 | unimportant -2 814 | unimpress* -2 815 | unkind -3 816 | unlov* -3 817 | unpleasant -3 818 | unprotected -3 819 | unsavo* -3 820 | unsuccessful* -3 821 | unsure* -1 822 | unwelcom* -3 823 | upset* -3 824 | uptight* -3 825 | useful* 2 826 | useless* -3 827 | vain -3 828 | valuabl* 2 829 | value 2 830 | valued 2 831 | values 2 832 | valuing 2 833 | vanity -2 834 | vicious* -4 835 | victim* -3 836 | vigor* 1 837 | vigour* 1 838 | vile -4 839 | villain* -3 840 | violat* -4 841 | violent* -3 842 | virtue* 3 843 | virtuo* 3 844 | vital* 1 845 | vulnerab* -3 846 | vulture* -3 847 | war -3 848 | warfare* -3 849 | warm* 1 850 | warred -3 851 | warring -3 852 | wars -3 853 | weak* -2 854 | wealth* 1 855 | weapon* -1 856 | weep* -3 857 | weird* -2 858 | welcom* 2 859 | well* 2 860 | wept -4 861 | whine* -3 862 | whining -3 863 | whore* -3 864 | wicked 3 27 July 2009 (was wicked* is -3) 865 | wickedn* -3 866 | wimp* -3 867 | win 1 868 | winn* 1 869 | wins 1 870 | wisdom 1 871 | wise* 1 872 | witch -1 873 | woe* -2 874 | won 1 875 | wonderf* 3 876 | worr* -4 877 | worse* -3 878 | worship* 2 879 | worst -3 880 | worthless* -3 881 | worthwhile 2 882 | wow* 3 883 | wrong* -2 884 | wtf -3 what the fuck? 885 | x 2 27 July 2009 886 | xox* 2 887 | xx* 2 888 | yay 2 auto check 4 aug 2009 889 | yays 3 890 | yearn* -2 891 | -------------------------------------------------------------------------------- /emoint/resources/SentiStrength/IdiomLookupTable.txt: -------------------------------------------------------------------------------- 1 | how are you 2 2 | it hanging 2 3 | shock horror -2 4 | wat up 2 5 | what's good 2 6 | what's up 2 7 | whats good 2 8 | whats up 2 9 | wuts good 2 10 | -------------------------------------------------------------------------------- /emoint/resources/SentiStrength/NegatingWordList.txt: -------------------------------------------------------------------------------- 1 | aren't 2 | arent 3 | can't 4 | cannot 5 | cant 6 | couldn't 7 | couldnt 8 | don't 9 | dont 10 | isn't 11 | isnt 12 | never 13 | not 14 | won't 15 | wont 16 | wouldn't 17 | wouldnt -------------------------------------------------------------------------------- /emoint/resources/SentiStrength/QuestionWords.txt: -------------------------------------------------------------------------------- 1 | who 2 | why 3 | what 4 | what's 5 | when 6 | whats 7 | where 8 | when 9 | how -------------------------------------------------------------------------------- /emoint/resources/SentiStrength/SlangLookupTable.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SEERNET/EmoInt/e73ca6ef117d9f5a7738d47d6d91de0a88e5b03e/emoint/resources/SentiStrength/SlangLookupTable.txt -------------------------------------------------------------------------------- /emoint/resources/SentiWordNet_3.0.0.txt.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SEERNET/EmoInt/e73ca6ef117d9f5a7738d47d6d91de0a88e5b03e/emoint/resources/SentiWordNet_3.0.0.txt.gz -------------------------------------------------------------------------------- /emoint/resources/Sentiment140-Lexicon-v0.1/README: -------------------------------------------------------------------------------- 1 | Sentiment140 Lexicon 2 | Version 0.1 3 | 9 April 2013 4 | Copyright (C) 2011 National Research Council Canada (NRC) 5 | Contact: Saif Mohammad (uvgotsaif@gmail.com) 6 | 7 | 1. This copy of the Sentiment140 Lexicon is to be used for research 8 | purposes only. Please contact NRC if interested in a commercial license. 9 | 10 | 2. If you use this lexicon in your research, then please cite 11 | the paper listed below in the PUBLICATIONS section. 12 | 13 | ....................................................................... 14 | 15 | SENTIMENT140 LEXICON 16 | -------------------- 17 | The Sentiment140 Lexicon is a list of words and their associations with 18 | positive and negative sentiment. The lexicon is distributed in three files: 19 | unigrams-pmilexicon.txt, bigrams-pmilexicon.txt, and pairs-pmilexicon.txt. 20 | 21 | Each line in the three files has the format: 22 | 23 | termsentimentScorenumPositivenumNegative 24 | where: 25 | term 26 | In unigrams-pmilexicon.txt, term is a unigram (single word). 27 | In bigrams-pmilexicon.txt, term is a bigram (two-word sequence). 28 | A bigram has the form: "string string". The bigram was seen at least once in 29 | the source tweets from which the lexicon was created. 30 | In pairs-pmilexicon.txt, term is a unigram--unigram pair, 31 | unigram--bigram pair, bigram--unigram pair, or a bigram--bigram pair. 32 | The pairs were generated from a large set of source tweets. Tweets were 33 | examined one at a time, and all possible unigram and bigram combinations 34 | within the tweet were chosen. Pairs with certain punctuations, @ symbols, 35 | and some function words were removed. 36 | 37 | 38 | sentimentScore is a real number. A positive score indicates positive 39 | sentiment. A negative score indicates negative sentiment. The absolute 40 | value is the degree of association with the sentiment. 41 | The sentiment score was calculated by subtracting the pointwise mutual 42 | information (PMI) score of the term with positive emoticons and the 43 | PMI of the term with negative emoticons. 44 | 45 | Terms with a non-zero PMI score with positive emoticons and PMI score of 0 46 | with negative emoticons were assigned a sentimentScore of 5. 47 | Terms with a non-zero PMI score with negative emoticons and PMI score of 0 48 | with positive emoticons were assigned a sentimentScore of -5. 49 | 50 | numPositive is the number of times the term co-occurred with a positive 51 | marker such as a positive emoticon or a positive emoticons. 52 | 53 | numNegative is the number of times the term co-occurred with a negative 54 | marker such as a negative emoticon or a negative emoticons. 55 | 56 | The Sentiment140 Lexicon was created from the Sentiment140 emoticon corpus of 1.6 million tweets. 57 | http://help.sentiment140.com/for-students 58 | 59 | The number of entries in: 60 | unigrams-pmilexicon.txt: 62,468 terms 61 | bigrams-pmilexicon.txt: 677,698 terms 62 | pairs-pmilexicon.txt: 480,010 terms 63 | 64 | Refer to publication below for more details. 65 | 66 | ....................................................................... 67 | 68 | PUBLICATION 69 | ----------- 70 | Details of the lexicon can be found in the following peer-reviewed 71 | publication: 72 | 73 | -- In Proceedings of the seventh international workshop on Semantic 74 | Evaluation Exercises (SemEval-2013), June 2013, Atlanta, Georgia, USA. 75 | 76 | BibTeX entry: 77 | @InProceedings{MohammadKZ2013, 78 | author = {Mohammad, Saif and Kiritchenko, Svetlana and Zhu, Xiaodan}, 79 | title = {NRC-Canada: Building the State-of-the-Art in Sentiment Analysis of Tweets}, 80 | booktitle = {Proceedings of the seventh international workshop on Semantic Evaluation Exercises (SemEval-2013)}, 81 | month = {June}, 82 | year = {2013}, 83 | address = {Atlanta, Georgia, USA} 84 | } 85 | ....................................................................... 86 | 87 | -------------------------------------------------------------------------------- /emoint/resources/Sentiment140-Lexicon-v0.1/bigrams-pmilexicon.txt.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SEERNET/EmoInt/e73ca6ef117d9f5a7738d47d6d91de0a88e5b03e/emoint/resources/Sentiment140-Lexicon-v0.1/bigrams-pmilexicon.txt.gz -------------------------------------------------------------------------------- /emoint/resources/Sentiment140-Lexicon-v0.1/pairs-pmilexicon.txt.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SEERNET/EmoInt/e73ca6ef117d9f5a7738d47d6d91de0a88e5b03e/emoint/resources/Sentiment140-Lexicon-v0.1/pairs-pmilexicon.txt.gz -------------------------------------------------------------------------------- /emoint/resources/Sentiment140-Lexicon-v0.1/unigrams-pmilexicon.txt.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SEERNET/EmoInt/e73ca6ef117d9f5a7738d47d6d91de0a88e5b03e/emoint/resources/Sentiment140-Lexicon-v0.1/unigrams-pmilexicon.txt.gz -------------------------------------------------------------------------------- /emoint/resources/emoint/anger-ratings-0to1.dev.gold.txt: -------------------------------------------------------------------------------- 1 | 10857 @ZubairSabirPTI pls dont insult the word 'Molna' anger 0.479 2 | 10858 @ArcticFantasy I would have almost took offense to this if I actually snapped you anger 0.458 3 | 10859 @IllinoisLoyalty that Rutgers game was an abomination. An affront to God and man. We must never speak of it again. anger 0.562 4 | 10860 @CozanGaming that's what lisa asked before she started raging at me, 'can I call you?' heh anger 0.500 5 | 10861 Sometimes I get mad over something so minuscule I try to ruin somebodies life not like lose your job like get you into federal prison anger 0.708 6 | 10862 Sometimes I get mad over something so minuscule I try to ruin somebodies life not like lose your job like get you into federal prison #anger anger 0.646 7 | 10863 I think @Sam_Canaday & @KYLEJDOWSON must actually have to be working like me & @dowson_brady because I havent got any snap chat videos today anger 0.250 8 | 10864 My eyes have been dilated. I hate the world right now with the rage of a thousand fiery dragons. I need a drink. anger 0.812 9 | 10865 @huwellwell One chosen by the CLP members! MP seats are not for people to dole out to their mates, we elect candidates. #fuming anger 0.682 10 | 10866 @huwellwell One chosen by the CLP members! MP seats are not for people to dole out to their mates, we elect candidates. anger 0.438 11 | 10867 @Yoshi_OnoChin can you please not have Canadian players play US players, that lag is atrocious. #fixthisgame #trash #sfvrefund anger 0.646 12 | 10868 @DailyMirror i love how theres no outrage that it's a white man but if it was a black man them BLM would be all over it regardless of reason anger 0.726 13 | 10869 Me being on my dean really saving a lot of ppl, bc I don't snap nomore & it take so much out of me.. anger 0.348 14 | 10870 Sorry guys I have absolutely no idea what time i'll be on cam tomorrow but will keep you posted. #fuming anger 0.417 15 | 10871 Sorry guys I have absolutely no idea what time i'll be on cam tomorrow but will keep you posted. anger 0.202 16 | 10872 Is it me, or is Ding wearing the look of a man who's just found his arch enemy in bed with his missus? #angryman anger 0.557 17 | 10873 Is it me, or is Ding wearing the look of a man who's just found his arch enemy in bed with his missus? #angryman #scowl anger 0.500 18 | 10874 @__NETFLIXNCHILL I fuck with madden way harder anger 0.521 19 | 10875 @TrussElise Obama must be fuming.. lol anger 0.500 20 | 10876 Hate when guys cant control their anger 🙃🙃 anger 0.646 21 | 10877 [ @HedgehogDylan ] *she would frown a bit, folding her arms* 'why is it that every time I'm in need of assistance someone expects a lil ** anger 0.500 22 | 10878 Literally fuming fuck sake anger 0.860 23 | 10879 @TrueAggieFan oh so that's where Brian was! Where was my invite? anger 0.438 24 | 10880 @TrueAggieFan oh so that's where Brian was! Where was my invite? #offended anger 0.417 25 | 10881 @DxfyingGrxvity - frustration, looking up at Elphaba in a frown of aggravation. Her high pitched voice was growing more and more -- anger 0.604 26 | 10882 It's the most magical time of the year......Xmas party announced and the #outrage commences. Gotta love Silicon Valley millennials. anger 0.429 27 | 10883 @LaureEve I am sitting here wrapped in a fluffy blanket, with incense burning, listening to Bon Iver and drinking mulled wine. I'm there. anger 0.250 28 | 10884 @RevTrevK @Wolfman93011 @Daraidernation @EROCKhd Take 2k out of it the numbers on madden are low and have dropped and people are unhappy anger 0.586 29 | 10885 I wouldn't have #anger issues.....if she didn't have #lying issues.....think about that one. #pow #lies #confusion anger 0.500 30 | 10886 @isthataspider @dhodgs i will fight this guy! Don't insult the lions like that! But seriously they kinda are.Wasted some of the best players anger 0.708 31 | 10887 Everybody talking about 'the first day of fall' but summer '16 is never gonna die #revenge @Drake anger 0.417 32 | 10888 The rage has died down. anger 0.438 33 | 10889 Ananya just grabbed a bible, opened it, started reading, and then said 'where do they talk about burning people?' anger 0.417 34 | 10890 All Brian does is sleep and aggravate me anger 0.833 35 | 10891 @komal_sidhnani true...\nThey r burning with other's pleasure!\nPpl in true love happiness everywhere _😃 anger 0.312 36 | 10892 @pbhushan1 @IndianExpress so in your opinion is this the worst delhi govt? #acrid #bitter #hypocrisy anger 0.708 37 | 10893 @pbhushan1 @IndianExpress so in your opinion is this the worst delhi govt? #acrid #hypocrisy anger 0.526 38 | 10894 i live and die for mchanzo honeymoon crashing and burning the second they move in together anger 0.479 39 | 10895 For the first time in my madden career I just set up a farm account. Should make MOTM much easier anger 0.271 40 | 10896 @LeonWobYP b***er off. NCFC is a grudge match :) anger 0.542 41 | 10897 Might just leave and aggravate bae anger 0.417 42 | 10898 Realest ever, relentless ever, inevitable that I win. anger 0.415 43 | 10899 Kik to trade, have fun or a conversation (kik: youraffair) #kik #kikme #messageme #textme #pics #trade #tradepics #dm #bored anger 0.241 44 | 10900 Kik to trade, have fun or a conversation (kik: youraffair) #kik #kikme #messageme #textme #pics #trade #tradepics #dm #snap #bored anger 0.167 45 | 10901 You're so thirsty for the chance to disagree w/ the left, that you don't even realize when something is an affront to your bigoted platform. anger 0.500 46 | 10902 S/O to the girl that just hit my car...not only did she get lucky w/ no scratch but also from being spared the wrath of sleep deprived Kait🙃 anger 0.542 47 | 10903 @LiamCannon1 He's just too raging to type properly... Ha ha! anger 0.375 48 | 10904 #oow16 #sting decent new song anger 0.125 49 | 10905 Ok scrubbed hands 5 times before trying to put them in.\nEyeballs #burning \n#EvenMoreBlind accidentally scared the #cat whilst #screeching anger 0.604 50 | 10906 Just joined #pottermore and was sorted into HUFFLEPUFF 😡😡😡 #fuming anger 0.708 51 | 10907 Just joined #pottermore and was sorted into HUFFLEPUFF 😡😡😡 anger 0.438 52 | 10908 @reluctantnicko Don't ask, you don't get. Apologies if I've offended you. All due respect Alan, I think you've been fed duff info. anger 0.427 53 | 10909 I miss my gran singing Rawhide, in her deep baritone growl. anger 0.292 54 | 10910 Having a baby born too soon is #lifechanging 6 years on and it feels like only yesterday #sad #happy #angry #emotionalrollercoaster anger 0.375 55 | 10911 Having a baby born too soon is #lifechanging 6 years on and it feels like only yesterday #sad #happy #emotionalrollercoaster anger 0.354 56 | 10912 @UKBlogAwards @ModishMale I would always be honest but it's great to feedback opinion to the brand - don't want to offend them #BlogHour anger 0.438 57 | 10913 @fluffysoftlouis no no. I insist that you give me your best insult first anger 0.562 58 | 10914 @SSheil coincidentally watched Ulzana's Raid last night - brutally indignant filmmaking. anger 0.542 59 | 10915 @RealJamesWoods @KennyCoble saddest part of this whole mess is that all of this #anger is #misdirected they should march 2 the #WhiteHouse anger 0.667 60 | 10916 Note to self ~ Stop laughing at things that offend you, it's ok to get mad at people \n#NoteToSelf #offended #mad #upset anger 0.542 61 | 10917 I think our defense here at USC is playing well, we just need to fix a few things on offense and we can win the PAC 12 this year' anger 0.250 62 | 10918 Eat my ass' is no longer an insult anger 0.438 63 | 10919 Why to have vanity sizes?Now sizes S,XS(evenXXS sometimes) are too big, WTF?! Dear corporate jerks, Lithuania didn't need this. #rant #angry anger 0.708 64 | 10920 Why to have vanity sizes?Now sizes S,XS(evenXXS sometimes) are too big, WTF?! Dear corporate jerks, Lithuania didn't need this. #rant anger 0.518 65 | 10921 @MaddenFreestyle i turn the game on wanting to play madden, and before i load up a game i just turn it off now. anger 0.500 66 | 10922 @marcavis @AntisocialJW2 I've always been fiery, but never radical. anger 0.438 67 | 10923 Taking umbrage because Jimmy Carr claimed that Bilbo Baggins went to Mordor on 8 out of 10 cats does Countdown. Know your Baggins', mate. anger 0.375 68 | 10924 Anger, resentment, and hatred are the destroyer of your fortune today. anger 0.396 69 | 10925 Anger, resentment, and hatred are the destroyer of your fortune today.' anger 0.375 70 | 10926 If I spend even 5 minutes with you and you already irritate me I seriously will bitch you out until you shut up anger 0.812 71 | 10927 Sting is just too damn earnest for early morning listening. anger 0.370 72 | 10928 Sting is just too damn earnest for early morning listening. #sting anger 0.446 73 | 10929 Just seeing Alex revells face gets me angry anger 0.583 74 | 10930 @HomeSwapperteam Spent months arranging swap , new jobs etc, now I've found out she's been leading me on a merry dance. #fuming with her anger 0.667 75 | 10931 @danbloom1 beware the fury of a weak king anger 0.417 76 | 10932 @DJ_JeanFranko growl!!! anger 0.500 77 | 10933 (Sam) Brown's Law: Never offend people with style when you can fake that, you have to break us in this Island. anger 0.333 78 | 10934 @FluDino Event started! everyone is getting ready to travel to the lake of rage, where everything glows anger 0.521 79 | 10935 @TrevorHMoore @paget_old In Scotland, the right-wingers are the most rabid anti-nationalists. Socialists are mostly in favour. anger 0.604 80 | 10936 @Jen_ny69 People will always get offended everyone's situation is different! Just because we have kids doesn't mean we have to settle anger 0.562 81 | 10937 @gayla_weeks1 I try not to let my anger seep into reviews, but I resent having my time wasted on books like that. Time is precious. anger 0.625 82 | 10938 I hope my hustle don't offend nobody anger 0.292 83 | 10939 Just watched Django Unchained, Other people may frown, but I titter in delight! 2/5 anger 0.229 84 | 10940 Lol little things like that make me so angry x anger 0.604 85 | -------------------------------------------------------------------------------- /emoint/resources/emoint/anger-ratings-0to1.dev.target.txt: -------------------------------------------------------------------------------- 1 | 10857 @ZubairSabirPTI pls dont insult the word 'Molna' anger NONE 2 | 10858 @ArcticFantasy I would have almost took offense to this if I actually snapped you anger NONE 3 | 10859 @IllinoisLoyalty that Rutgers game was an abomination. An affront to God and man. We must never speak of it again. anger NONE 4 | 10860 @CozanGaming that's what lisa asked before she started raging at me, 'can I call you?' heh anger NONE 5 | 10861 Sometimes I get mad over something so minuscule I try to ruin somebodies life not like lose your job like get you into federal prison anger NONE 6 | 10862 Sometimes I get mad over something so minuscule I try to ruin somebodies life not like lose your job like get you into federal prison #anger anger NONE 7 | 10863 I think @Sam_Canaday & @KYLEJDOWSON must actually have to be working like me & @dowson_brady because I havent got any snap chat videos today anger NONE 8 | 10864 My eyes have been dilated. I hate the world right now with the rage of a thousand fiery dragons. I need a drink. anger NONE 9 | 10865 @huwellwell One chosen by the CLP members! MP seats are not for people to dole out to their mates, we elect candidates. #fuming anger NONE 10 | 10866 @huwellwell One chosen by the CLP members! MP seats are not for people to dole out to their mates, we elect candidates. anger NONE 11 | 10867 @Yoshi_OnoChin can you please not have Canadian players play US players, that lag is atrocious. #fixthisgame #trash #sfvrefund anger NONE 12 | 10868 @DailyMirror i love how theres no outrage that it's a white man but if it was a black man them BLM would be all over it regardless of reason anger NONE 13 | 10869 Me being on my dean really saving a lot of ppl, bc I don't snap nomore & it take so much out of me.. anger NONE 14 | 10870 Sorry guys I have absolutely no idea what time i'll be on cam tomorrow but will keep you posted. #fuming anger NONE 15 | 10871 Sorry guys I have absolutely no idea what time i'll be on cam tomorrow but will keep you posted. anger NONE 16 | 10872 Is it me, or is Ding wearing the look of a man who's just found his arch enemy in bed with his missus? #angryman anger NONE 17 | 10873 Is it me, or is Ding wearing the look of a man who's just found his arch enemy in bed with his missus? #angryman #scowl anger NONE 18 | 10874 @__NETFLIXNCHILL I fuck with madden way harder anger NONE 19 | 10875 @TrussElise Obama must be fuming.. lol anger NONE 20 | 10876 Hate when guys cant control their anger 🙃🙃 anger NONE 21 | 10877 [ @HedgehogDylan ] *she would frown a bit, folding her arms* 'why is it that every time I'm in need of assistance someone expects a lil ** anger NONE 22 | 10878 Literally fuming fuck sake anger NONE 23 | 10879 @TrueAggieFan oh so that's where Brian was! Where was my invite? anger NONE 24 | 10880 @TrueAggieFan oh so that's where Brian was! Where was my invite? #offended anger NONE 25 | 10881 @DxfyingGrxvity - frustration, looking up at Elphaba in a frown of aggravation. Her high pitched voice was growing more and more -- anger NONE 26 | 10882 It's the most magical time of the year......Xmas party announced and the #outrage commences. Gotta love Silicon Valley millennials. anger NONE 27 | 10883 @LaureEve I am sitting here wrapped in a fluffy blanket, with incense burning, listening to Bon Iver and drinking mulled wine. I'm there. anger NONE 28 | 10884 @RevTrevK @Wolfman93011 @Daraidernation @EROCKhd Take 2k out of it the numbers on madden are low and have dropped and people are unhappy anger NONE 29 | 10885 I wouldn't have #anger issues.....if she didn't have #lying issues.....think about that one. #pow #lies #confusion anger NONE 30 | 10886 @isthataspider @dhodgs i will fight this guy! Don't insult the lions like that! But seriously they kinda are.Wasted some of the best players anger NONE 31 | 10887 Everybody talking about 'the first day of fall' but summer '16 is never gonna die #revenge @Drake anger NONE 32 | 10888 The rage has died down. anger NONE 33 | 10889 Ananya just grabbed a bible, opened it, started reading, and then said 'where do they talk about burning people?' anger NONE 34 | 10890 All Brian does is sleep and aggravate me anger NONE 35 | 10891 @komal_sidhnani true...\nThey r burning with other's pleasure!\nPpl in true love happiness everywhere _😃 anger NONE 36 | 10892 @pbhushan1 @IndianExpress so in your opinion is this the worst delhi govt? #acrid #bitter #hypocrisy anger NONE 37 | 10893 @pbhushan1 @IndianExpress so in your opinion is this the worst delhi govt? #acrid #hypocrisy anger NONE 38 | 10894 i live and die for mchanzo honeymoon crashing and burning the second they move in together anger NONE 39 | 10895 For the first time in my madden career I just set up a farm account. Should make MOTM much easier anger NONE 40 | 10896 @LeonWobYP b***er off. NCFC is a grudge match :) anger NONE 41 | 10897 Might just leave and aggravate bae anger NONE 42 | 10898 Realest ever, relentless ever, inevitable that I win. anger NONE 43 | 10899 Kik to trade, have fun or a conversation (kik: youraffair) #kik #kikme #messageme #textme #pics #trade #tradepics #dm #bored anger NONE 44 | 10900 Kik to trade, have fun or a conversation (kik: youraffair) #kik #kikme #messageme #textme #pics #trade #tradepics #dm #snap #bored anger NONE 45 | 10901 You're so thirsty for the chance to disagree w/ the left, that you don't even realize when something is an affront to your bigoted platform. anger NONE 46 | 10902 S/O to the girl that just hit my car...not only did she get lucky w/ no scratch but also from being spared the wrath of sleep deprived Kait🙃 anger NONE 47 | 10903 @LiamCannon1 He's just too raging to type properly... Ha ha! anger NONE 48 | 10904 #oow16 #sting decent new song anger NONE 49 | 10905 Ok scrubbed hands 5 times before trying to put them in.\nEyeballs #burning \n#EvenMoreBlind accidentally scared the #cat whilst #screeching anger NONE 50 | 10906 Just joined #pottermore and was sorted into HUFFLEPUFF 😡😡😡 #fuming anger NONE 51 | 10907 Just joined #pottermore and was sorted into HUFFLEPUFF 😡😡😡 anger NONE 52 | 10908 @reluctantnicko Don't ask, you don't get. Apologies if I've offended you. All due respect Alan, I think you've been fed duff info. anger NONE 53 | 10909 I miss my gran singing Rawhide, in her deep baritone growl. anger NONE 54 | 10910 Having a baby born too soon is #lifechanging 6 years on and it feels like only yesterday #sad #happy #angry #emotionalrollercoaster anger NONE 55 | 10911 Having a baby born too soon is #lifechanging 6 years on and it feels like only yesterday #sad #happy #emotionalrollercoaster anger NONE 56 | 10912 @UKBlogAwards @ModishMale I would always be honest but it's great to feedback opinion to the brand - don't want to offend them #BlogHour anger NONE 57 | 10913 @fluffysoftlouis no no. I insist that you give me your best insult first anger NONE 58 | 10914 @SSheil coincidentally watched Ulzana's Raid last night - brutally indignant filmmaking. anger NONE 59 | 10915 @RealJamesWoods @KennyCoble saddest part of this whole mess is that all of this #anger is #misdirected they should march 2 the #WhiteHouse anger NONE 60 | 10916 Note to self ~ Stop laughing at things that offend you, it's ok to get mad at people \n#NoteToSelf #offended #mad #upset anger NONE 61 | 10917 I think our defense here at USC is playing well, we just need to fix a few things on offense and we can win the PAC 12 this year' anger NONE 62 | 10918 Eat my ass' is no longer an insult anger NONE 63 | 10919 Why to have vanity sizes?Now sizes S,XS(evenXXS sometimes) are too big, WTF?! Dear corporate jerks, Lithuania didn't need this. #rant #angry anger NONE 64 | 10920 Why to have vanity sizes?Now sizes S,XS(evenXXS sometimes) are too big, WTF?! Dear corporate jerks, Lithuania didn't need this. #rant anger NONE 65 | 10921 @MaddenFreestyle i turn the game on wanting to play madden, and before i load up a game i just turn it off now. anger NONE 66 | 10922 @marcavis @AntisocialJW2 I've always been fiery, but never radical. anger NONE 67 | 10923 Taking umbrage because Jimmy Carr claimed that Bilbo Baggins went to Mordor on 8 out of 10 cats does Countdown. Know your Baggins', mate. anger NONE 68 | 10924 Anger, resentment, and hatred are the destroyer of your fortune today. anger NONE 69 | 10925 Anger, resentment, and hatred are the destroyer of your fortune today.' anger NONE 70 | 10926 If I spend even 5 minutes with you and you already irritate me I seriously will bitch you out until you shut up anger NONE 71 | 10927 Sting is just too damn earnest for early morning listening. anger NONE 72 | 10928 Sting is just too damn earnest for early morning listening. #sting anger NONE 73 | 10929 Just seeing Alex revells face gets me angry anger NONE 74 | 10930 @HomeSwapperteam Spent months arranging swap , new jobs etc, now I've found out she's been leading me on a merry dance. #fuming with her anger NONE 75 | 10931 @danbloom1 beware the fury of a weak king anger NONE 76 | 10932 @DJ_JeanFranko growl!!! anger NONE 77 | 10933 (Sam) Brown's Law: Never offend people with style when you can fake that, you have to break us in this Island. anger NONE 78 | 10934 @FluDino Event started! everyone is getting ready to travel to the lake of rage, where everything glows anger NONE 79 | 10935 @TrevorHMoore @paget_old In Scotland, the right-wingers are the most rabid anti-nationalists. Socialists are mostly in favour. anger NONE 80 | 10936 @Jen_ny69 People will always get offended everyone's situation is different! Just because we have kids doesn't mean we have to settle anger NONE 81 | 10937 @gayla_weeks1 I try not to let my anger seep into reviews, but I resent having my time wasted on books like that. Time is precious. anger NONE 82 | 10938 I hope my hustle don't offend nobody anger NONE 83 | 10939 Just watched Django Unchained, Other people may frown, but I titter in delight! 2/5 anger NONE 84 | 10940 Lol little things like that make me so angry x anger NONE 85 | -------------------------------------------------------------------------------- /emoint/resources/emoint/fear-ratings-0to1.dev.gold.txt: -------------------------------------------------------------------------------- 1 | 21147 I know this is going to be one of those nights where it takes an Act of God to fall asleep. fear 0.771 2 | 21148 This is #horrible: Lewis Dunk has begun networking #a Neo-Geo with a his holiday home in Mexico. fear 0.479 3 | 21149 @JeffersonLake speaking of ex cobblers, saw Ricky Holmes at Charlton last week.. tracking back & defending... I dread seeing Gorre on ball.. fear 0.417 4 | 21150 @1johndes ball watching & Rojo'd header was equally dreadful!! fear 0.475 5 | 21151 Really.....#Jumanji 2....w/ The Rock, Jack Black, and Kevin Hart...are you kidding me! WTF! #ThisIsATerribleIdea fear 0.542 6 | 21152 Really.....#Jumanji 2....w/ The Rock, Jack Black, and Kevin Hart...are you kidding me! WTF! #ThisIsATerribleIdea #horrible fear 0.542 7 | 21153 Losing to Villa...'@M0tivati0nQuote: Most of the things people worry about are things that won't even matter to them a few months from now.' fear 0.311 8 | 21154 Are you worrying/worried?\n1Peter 5:7\nThrow all your worry on him, because he cares for you.#faith #leadership #worry #mindfulness #success fear 0.438 9 | 21155 If my concerns & anxiety don't matter to you then I shall return the favor. #EyeMatter fear 0.729 10 | 21156 There goes the butterflies in my stomach. #nervous #anxietyproblems fear 0.812 11 | 21157 There goes the butterflies in my stomach. #anxietyproblems fear 0.702 12 | 21158 @Evan_McMullin @TheBlazeRadio Classic SHITLIB bullshit. Create a horrible problem and then 'discuss' how to solve it. What a PIMP. fear 0.438 13 | 21159 @fatgirlhealthy @MBSCBILL ....so that what do to use violence and intimidation for a polictical agenda.; aka terrorism? fear 0.667 14 | 21160 Honestly, there are some awful people on the internet... smh... fear 0.542 15 | 21161 @ccrago It was dreadful, even after he met the Catfish he still thought it was her! fear 0.500 16 | 21162 @madhav_pastey moral of the story, never check mails in the night. PS. Most notices have nothing much to worry about. @ashwinikn fear 0.354 17 | 21163 “We can easily #forgive a #child who is #afraid of the #dark; the real #tragedy of #life is when #men are #afraid of the #light.”–Plato fear 0.375 18 | 21164 @All4 is the android app it designed to be buggy and work sporadically on a fire TV box? #shocking fear 0.520 19 | 21165 @All4 is the android app it designed to be buggy and work sporadically on a fire TV box? fear 0.250 20 | 21166 Having a terrific Tuesday? Crush it today with the Power of 4. Treat your internet like Pizza =D \n#PowerOf4 fear 0.250 21 | 21167 @joey_coops yes Hun! Avoid at all costs!! #nightmare fear 0.667 22 | 21168 @joey_coops yes Hun! Avoid at all costs!! fear 0.389 23 | 21169 The Apocalypse has hit our gym and it's nothing what I thought it would be...\n\nEveryone is wearing vests! What if it's contagious? #afraid fear 0.812 24 | 21170 The Apocalypse has hit our gym and it's nothing what I thought it would be...\n\nEveryone is wearing vests! What if it's contagious? fear 0.583 25 | 21171 You want bad service use #frontier they have #terrible service. Go to #AT&T anybody is better. I am going to complain to better business fear 0.333 26 | 21172 @TheDappaMc also £2.50 for a chocolate Feast ice lolly.. proper shocking 😩 fear 0.438 27 | 21173 @AttentiAlGatto LOL! Why would it scare me? It doesn't make any sense at all but it doesn't scare me! {chuckles} fear 0.292 28 | 21174 By officialy adopting #BurhanWani, a #Hizbul terrorist, #Pakistan n #NawazSharif hv md a cardinal mistake 2day tht'll haunt fr years. #UNGA fear 0.720 29 | 21175 @soozclifford Sure have... Sydney are too tough, too quick and their 'team' pressure is too much for the Cats to handle. Motlop/Cowan fear 0.356 30 | 21176 @soozclifford Sure have... Sydney are too tough, too quick and their 'team' pressure is too much for the Cats to handle. Motlop/Cowan #timid fear 0.340 31 | 21177 Okay. Brace yourself. I will attempt my first loaf of bread in the morning. I will use a dutch oven. I will make the dough now. #nervous fear 0.792 32 | 21178 Okay. Brace yourself. I will attempt my first loaf of bread in the morning. I will use a dutch oven. I will make the dough now. fear 0.479 33 | 21179 @spencer0415 awe, I love you kid!! fear 0.060 34 | 21180 The 2nd step to beating #anxiety or #depression is realising that it's not about waiting for ...., Take action yourself now. fear 0.479 35 | 21181 @AlaskaGurus @adventuretweets agreed! 😍 an awe to meet such beautiful, powerful animals. fear 0.208 36 | 21182 @BuzzFeed so this houses will get into my instestines and scare my poop and I'll shit my pants? fear 0.700 37 | 21183 Nothing worse than an uber driver that can't drive. #awful fear 0.688 38 | 21184 Nothing worse than an uber driver that can't drive. fear 0.562 39 | 21185 On @Varneyco/@FoxBusiness to talk latest on #Chelsea Bombing + #Ahmad_Khan_Rahami's trips to #Afghanistan/#Pakistan #tcot #terror fear 0.642 40 | 21186 On @Varneyco/@FoxBusiness to talk latest on #Chelsea Bombing + #Ahmad_Khan_Rahami's trips to #Afghanistan/#Pakistan #tcot fear 0.604 41 | 21187 ⊰ @FrameOfAnAngel ⊱ \n\n+ Of them. I'm here for answers, and if I scare her to death, there won't be answers for me. \n\nSo instead, I just + fear 0.583 42 | 21188 But I was so intrigued by your style, boy.Always been a sucker for a wild boy #alarm -@AnneMarieIAm fear 0.292 43 | 21189 @SAHARTHERAPPER I unfollowed without hesitation <3 fear 0.229 44 | 21190 Watching It Follows. This is a super freaky movie. #scary fear 0.708 45 | 21191 They'll be yo friend, shake your hand, then kick in yo door thas the way the game go🤖🤐. fear 0.417 46 | 21192 And I cried in front of my guy last night. And it's just been a horrible week but it's only for a week fear 0.680 47 | 21193 Came in to work today 1.5 hours late.1st thing I hear: 'Ma'am,the big boss has been waiting for you in his office.' #panic #hateBeingLate 😩😪 fear 0.896 48 | 21194 also i had an awful nightmare involving being sick where worms were involved i was so disgusted when i woke up fear 0.896 49 | 21195 At school, my classmate is with me at music class and he sang Hallelujah like, god, with my friend we were breathless. fear 0.220 50 | 21196 @CNNPolitics I can't wait to hear what he had to say about the brilliant Dr. Hawking... it should be rich... In the poorest of taste! #bully fear 0.354 51 | 21197 @CNNPolitics I can't wait to hear what he had to say about the brilliant Dr. Hawking... it should be rich... In the poorest of taste! fear 0.246 52 | 21198 #Awareness seek #shelter .#Letgo Old #habit of chasing #desires resultin in #anger #fear #worry .#Choose #Satisfaction within #Peace #Relax fear 0.438 53 | 21199 Ever been really lonely and your phone keeps blowing up, but you just can’t pick it up and respond to people? #recluse #issues fear 0.740 54 | 21200 My Modern Proverb: 'Don't let anyone intimidate you about being single; most marriages end in divorce.' fear 0.312 55 | 21201 He called me fat, so I pushed him into the lockers then he threaten to sue me' 😂 fear 0.479 56 | 21202 Whatt a trailerrrr !!! @karanjohar @AnushkaSharma #RanbirKapoor #AishwaryaRaiBachchan i am COMPLETELY BLOWN !! #awestruck #longingformore fear 0.417 57 | 21203 Whatt a trailerrrr !!! @karanjohar @AnushkaSharma #RanbirKapoor #AishwaryaRaiBachchan i am COMPLETELY BLOWN !! #longingformore fear 0.354 58 | 21204 I have been seeing terrible terrible prescriptions this week. What's going on? fear 0.438 59 | 21205 @stephenfhayes Mustard gas = hostile work environment, not #terrorism; call #OSHA not #military fear 0.708 60 | 21206 Dunno y am going to the Yorkshire scare grounds when I only lasted a minute in the Alton towers one before running out a fire exit crying fear 0.812 61 | 21207 @LethalWeaponFOX This show SUCKS! #lame #awful you even used the same names?? lol SO SO bad! #Failed #notworth2minutes. Off air SOON fear 0.396 62 | 21208 Rooney shocking attempted cross fear 0.375 63 | 21209 That's an awful miss from Rooney. fear 0.360 64 | 21210 Another fun fact: i am afraid fear 0.667 65 | 21211 Why upping rooms makes a few apprehend leaving out charcoal ownership: UnZU fear 0.396 66 | 21212 I don't want speak front to him #afraid #intimidate #nopanicattack fear 0.875 67 | 21213 I don't want speak front to him #nopanicattack fear 0.720 68 | 21214 I want to be a woman who #overcomes obstacles by tackling them in #faith instead of tiptoeing around them in #fear. Renee Swope fear 0.312 69 | 21215 When you're scared to press send #bgoodthepoet #PrayForMe #ThisIsAGodDream #career #help #fear #heart #HeartRacing fear 0.842 70 | 21216 When you're scared to press send #bgoodthepoet #PrayForMe #ThisIsAGodDream #career #help #heart #HeartRacing fear 0.730 71 | 21217 @RyanAbe awe yay thank god I was so worried. fear 0.500 72 | 21218 About 7 weeks till I can pick up my camera again. Though I think there is a group cemetery shoot in october I can make! #photography #horror fear 0.396 73 | 21219 About 7 weeks till I can pick up my camera again. Though I think there is a group cemetery shoot in october I can make! #photography fear 0.312 74 | 21220 @hollywooddivas @TMZ_Sports Idiots like Larry Sanders scare us All!How can Morons these days Rush 2 Judge #Police w/o all facts yet?FU thugs fear 0.604 75 | 21221 Thanks for ripping me off again #Luthansa €400 not enough for a one way flight to man from Frk then €30 for a bag then free at gate #awful fear 0.521 76 | 21222 Thanks for ripping me off again #Luthansa €400 not enough for a one way flight to man from Frk then €30 for a bag then free at gate fear 0.375 77 | 21223 T5ylw ansh a79l shy 7lw mn wayed nas fe whatsapp fear 0.271 78 | 21224 The moment you bring her to meet your best friend and you're nervous af! 😬😆 #thefriendtest fear 0.875 79 | 21225 The moment you bring her to meet your best friend and you're nervous af! 😬😆 #nervous #thefriendtest fear 0.771 80 | 21226 @ChrissyCostanza and have social anxiety. There is many awkward things wrong with me. 😄 fear 0.771 81 | 21227 @chutneysupercat hi lovely brownie, MM is calling me tuppytupperware.. its awful fear 0.440 82 | 21228 Northampton are awful 🙈 fear 0.500 83 | 21229 It really is amazing the money they give to some of these QB's #nfl #texans #brock fear 0.300 84 | 21230 It really is amazing the money they give to some of these QB's #nfl #texans #brock #terrible fear 0.246 85 | 21231 @lukeshawtime terrible fear 0.521 86 | 21232 @mikefreemanNFL \nIsn't OBrien supposed to be some sort of offensive genius #awful fear 0.479 87 | 21233 @mikefreemanNFL \nIsn't OBrien supposed to be some sort of offensive genius fear 0.167 88 | 21234 Trying to book holiday flights on @britishairways website is becoming a #nightmare fear 0.458 89 | 21235 Trying to book holiday flights on @britishairways website is becoming a fear 0.312 90 | 21236 Bout ta get my @dontbreathe on up in here! @WarrenTheaters #nervous #icantholdmybreaththatlong fear 0.688 91 | 21237 Bout ta get my @dontbreathe on up in here! @WarrenTheaters #icantholdmybreaththatlong fear 0.438 92 | 21238 #twitter #users Tweeting on twitter is like playing a game against the computer. Where's the life, Everyone too #afraid to say something? fear 0.521 93 | 21239 @ReaganBattalion That's a terrible thing to accuse Scott Baio of. fear 0.438 94 | 21240 Tweeting from the sporadic wifi on the tube #perilous fear 0.434 95 | 21241 Tweeting from the sporadic wifi on the tube fear 0.292 96 | 21242 Southend players always haunt Man U fear 0.417 97 | 21243 If i start growing out my mustache now, I can be Pablo Escobar for Halloween!!! fear 0.250 98 | 21244 Not the best horror ever but I like that the uncertainty fear 0.333 99 | 21245 Hillary Clinton looked the other way to the Saudi war on women and their terror financing because they bought her off. fear 0.479 100 | 21246 @AaliyahLove69 I would be intimidated but I would like to think I would have manned up and helped. fear 0.417 101 | 21247 it's horrible cos no one can relate, everyone is happy and dandy in one way or another fear 0.542 102 | 21248 @CesarSampao @thisisbolton don't get me started on town centre. Used to go every week.... not been for 18 months #horrible fear 0.479 103 | 21249 @CesarSampao @thisisbolton don't get me started on town centre. Used to go every week.... not been for 18 months fear 0.458 104 | 21250 Gahh...BT, in queue for 30 minutes.. Now put through to BT Sport dept to cancel... back in a queue again... #shocking fear 0.500 105 | 21251 Gahh...BT, in queue for 30 minutes.. Now put through to BT Sport dept to cancel... back in a queue again... fear 0.336 106 | 21252 Staff on @ryainair FR1005. Asked for info and told to look online. You get what you pay for. #Ryanair @STN_Airport #Compensation fear 0.312 107 | 21253 Staff on @ryainair FR1005. Asked for info and told to look online. You get what you pay for. #Ryanair @STN_Airport #Compensation #awful fear 0.271 108 | 21254 An adviser to the #European #Union’s top #court said #Hamas and the #Tamil #Tigers should be taken off the EU’s #terror list.#lka fear 0.500 109 | 21255 So about 18mths ago i signed up to @Lumo_Energy for their @VirginAustralia / Velocity FF deal. 18 months in still no FF points #shocking fear 0.479 110 | 21256 So about 18mths ago i signed up to @Lumo_Energy for their @VirginAustralia / Velocity FF deal. 18 months in still no FF points fear 0.271 111 | -------------------------------------------------------------------------------- /emoint/resources/emoint/fear-ratings-0to1.dev.target.txt: -------------------------------------------------------------------------------- 1 | 21147 I know this is going to be one of those nights where it takes an Act of God to fall asleep. fear NONE 2 | 21148 This is #horrible: Lewis Dunk has begun networking #a Neo-Geo with a his holiday home in Mexico. fear NONE 3 | 21149 @JeffersonLake speaking of ex cobblers, saw Ricky Holmes at Charlton last week.. tracking back & defending... I dread seeing Gorre on ball.. fear NONE 4 | 21150 @1johndes ball watching & Rojo'd header was equally dreadful!! fear NONE 5 | 21151 Really.....#Jumanji 2....w/ The Rock, Jack Black, and Kevin Hart...are you kidding me! WTF! #ThisIsATerribleIdea fear NONE 6 | 21152 Really.....#Jumanji 2....w/ The Rock, Jack Black, and Kevin Hart...are you kidding me! WTF! #ThisIsATerribleIdea #horrible fear NONE 7 | 21153 Losing to Villa...'@M0tivati0nQuote: Most of the things people worry about are things that won't even matter to them a few months from now.' fear NONE 8 | 21154 Are you worrying/worried?\n1Peter 5:7\nThrow all your worry on him, because he cares for you.#faith #leadership #worry #mindfulness #success fear NONE 9 | 21155 If my concerns & anxiety don't matter to you then I shall return the favor. #EyeMatter fear NONE 10 | 21156 There goes the butterflies in my stomach. #nervous #anxietyproblems fear NONE 11 | 21157 There goes the butterflies in my stomach. #anxietyproblems fear NONE 12 | 21158 @Evan_McMullin @TheBlazeRadio Classic SHITLIB bullshit. Create a horrible problem and then 'discuss' how to solve it. What a PIMP. fear NONE 13 | 21159 @fatgirlhealthy @MBSCBILL ....so that what do to use violence and intimidation for a polictical agenda.; aka terrorism? fear NONE 14 | 21160 Honestly, there are some awful people on the internet... smh... fear NONE 15 | 21161 @ccrago It was dreadful, even after he met the Catfish he still thought it was her! fear NONE 16 | 21162 @madhav_pastey moral of the story, never check mails in the night. PS. Most notices have nothing much to worry about. @ashwinikn fear NONE 17 | 21163 “We can easily #forgive a #child who is #afraid of the #dark; the real #tragedy of #life is when #men are #afraid of the #light.”–Plato fear NONE 18 | 21164 @All4 is the android app it designed to be buggy and work sporadically on a fire TV box? #shocking fear NONE 19 | 21165 @All4 is the android app it designed to be buggy and work sporadically on a fire TV box? fear NONE 20 | 21166 Having a terrific Tuesday? Crush it today with the Power of 4. Treat your internet like Pizza =D \n#PowerOf4 fear NONE 21 | 21167 @joey_coops yes Hun! Avoid at all costs!! #nightmare fear NONE 22 | 21168 @joey_coops yes Hun! Avoid at all costs!! fear NONE 23 | 21169 The Apocalypse has hit our gym and it's nothing what I thought it would be...\n\nEveryone is wearing vests! What if it's contagious? #afraid fear NONE 24 | 21170 The Apocalypse has hit our gym and it's nothing what I thought it would be...\n\nEveryone is wearing vests! What if it's contagious? fear NONE 25 | 21171 You want bad service use #frontier they have #terrible service. Go to #AT&T anybody is better. I am going to complain to better business fear NONE 26 | 21172 @TheDappaMc also £2.50 for a chocolate Feast ice lolly.. proper shocking 😩 fear NONE 27 | 21173 @AttentiAlGatto LOL! Why would it scare me? It doesn't make any sense at all but it doesn't scare me! {chuckles} fear NONE 28 | 21174 By officialy adopting #BurhanWani, a #Hizbul terrorist, #Pakistan n #NawazSharif hv md a cardinal mistake 2day tht'll haunt fr years. #UNGA fear NONE 29 | 21175 @soozclifford Sure have... Sydney are too tough, too quick and their 'team' pressure is too much for the Cats to handle. Motlop/Cowan fear NONE 30 | 21176 @soozclifford Sure have... Sydney are too tough, too quick and their 'team' pressure is too much for the Cats to handle. Motlop/Cowan #timid fear NONE 31 | 21177 Okay. Brace yourself. I will attempt my first loaf of bread in the morning. I will use a dutch oven. I will make the dough now. #nervous fear NONE 32 | 21178 Okay. Brace yourself. I will attempt my first loaf of bread in the morning. I will use a dutch oven. I will make the dough now. fear NONE 33 | 21179 @spencer0415 awe, I love you kid!! fear NONE 34 | 21180 The 2nd step to beating #anxiety or #depression is realising that it's not about waiting for ...., Take action yourself now. fear NONE 35 | 21181 @AlaskaGurus @adventuretweets agreed! 😍 an awe to meet such beautiful, powerful animals. fear NONE 36 | 21182 @BuzzFeed so this houses will get into my instestines and scare my poop and I'll shit my pants? fear NONE 37 | 21183 Nothing worse than an uber driver that can't drive. #awful fear NONE 38 | 21184 Nothing worse than an uber driver that can't drive. fear NONE 39 | 21185 On @Varneyco/@FoxBusiness to talk latest on #Chelsea Bombing + #Ahmad_Khan_Rahami's trips to #Afghanistan/#Pakistan #tcot #terror fear NONE 40 | 21186 On @Varneyco/@FoxBusiness to talk latest on #Chelsea Bombing + #Ahmad_Khan_Rahami's trips to #Afghanistan/#Pakistan #tcot fear NONE 41 | 21187 ⊰ @FrameOfAnAngel ⊱ \n\n+ Of them. I'm here for answers, and if I scare her to death, there won't be answers for me. \n\nSo instead, I just + fear NONE 42 | 21188 But I was so intrigued by your style, boy.Always been a sucker for a wild boy #alarm -@AnneMarieIAm fear NONE 43 | 21189 @SAHARTHERAPPER I unfollowed without hesitation <3 fear NONE 44 | 21190 Watching It Follows. This is a super freaky movie. #scary fear NONE 45 | 21191 They'll be yo friend, shake your hand, then kick in yo door thas the way the game go🤖🤐. fear NONE 46 | 21192 And I cried in front of my guy last night. And it's just been a horrible week but it's only for a week fear NONE 47 | 21193 Came in to work today 1.5 hours late.1st thing I hear: 'Ma'am,the big boss has been waiting for you in his office.' #panic #hateBeingLate 😩😪 fear NONE 48 | 21194 also i had an awful nightmare involving being sick where worms were involved i was so disgusted when i woke up fear NONE 49 | 21195 At school, my classmate is with me at music class and he sang Hallelujah like, god, with my friend we were breathless. fear NONE 50 | 21196 @CNNPolitics I can't wait to hear what he had to say about the brilliant Dr. Hawking... it should be rich... In the poorest of taste! #bully fear NONE 51 | 21197 @CNNPolitics I can't wait to hear what he had to say about the brilliant Dr. Hawking... it should be rich... In the poorest of taste! fear NONE 52 | 21198 #Awareness seek #shelter .#Letgo Old #habit of chasing #desires resultin in #anger #fear #worry .#Choose #Satisfaction within #Peace #Relax fear NONE 53 | 21199 Ever been really lonely and your phone keeps blowing up, but you just can’t pick it up and respond to people? #recluse #issues fear NONE 54 | 21200 My Modern Proverb: 'Don't let anyone intimidate you about being single; most marriages end in divorce.' fear NONE 55 | 21201 He called me fat, so I pushed him into the lockers then he threaten to sue me' 😂 fear NONE 56 | 21202 Whatt a trailerrrr !!! @karanjohar @AnushkaSharma #RanbirKapoor #AishwaryaRaiBachchan i am COMPLETELY BLOWN !! #awestruck #longingformore fear NONE 57 | 21203 Whatt a trailerrrr !!! @karanjohar @AnushkaSharma #RanbirKapoor #AishwaryaRaiBachchan i am COMPLETELY BLOWN !! #longingformore fear NONE 58 | 21204 I have been seeing terrible terrible prescriptions this week. What's going on? fear NONE 59 | 21205 @stephenfhayes Mustard gas = hostile work environment, not #terrorism; call #OSHA not #military fear NONE 60 | 21206 Dunno y am going to the Yorkshire scare grounds when I only lasted a minute in the Alton towers one before running out a fire exit crying fear NONE 61 | 21207 @LethalWeaponFOX This show SUCKS! #lame #awful you even used the same names?? lol SO SO bad! #Failed #notworth2minutes. Off air SOON fear NONE 62 | 21208 Rooney shocking attempted cross fear NONE 63 | 21209 That's an awful miss from Rooney. fear NONE 64 | 21210 Another fun fact: i am afraid fear NONE 65 | 21211 Why upping rooms makes a few apprehend leaving out charcoal ownership: UnZU fear NONE 66 | 21212 I don't want speak front to him #afraid #intimidate #nopanicattack fear NONE 67 | 21213 I don't want speak front to him #nopanicattack fear NONE 68 | 21214 I want to be a woman who #overcomes obstacles by tackling them in #faith instead of tiptoeing around them in #fear. Renee Swope fear NONE 69 | 21215 When you're scared to press send #bgoodthepoet #PrayForMe #ThisIsAGodDream #career #help #fear #heart #HeartRacing fear NONE 70 | 21216 When you're scared to press send #bgoodthepoet #PrayForMe #ThisIsAGodDream #career #help #heart #HeartRacing fear NONE 71 | 21217 @RyanAbe awe yay thank god I was so worried. fear NONE 72 | 21218 About 7 weeks till I can pick up my camera again. Though I think there is a group cemetery shoot in october I can make! #photography #horror fear NONE 73 | 21219 About 7 weeks till I can pick up my camera again. Though I think there is a group cemetery shoot in october I can make! #photography fear NONE 74 | 21220 @hollywooddivas @TMZ_Sports Idiots like Larry Sanders scare us All!How can Morons these days Rush 2 Judge #Police w/o all facts yet?FU thugs fear NONE 75 | 21221 Thanks for ripping me off again #Luthansa €400 not enough for a one way flight to man from Frk then €30 for a bag then free at gate #awful fear NONE 76 | 21222 Thanks for ripping me off again #Luthansa €400 not enough for a one way flight to man from Frk then €30 for a bag then free at gate fear NONE 77 | 21223 T5ylw ansh a79l shy 7lw mn wayed nas fe whatsapp fear NONE 78 | 21224 The moment you bring her to meet your best friend and you're nervous af! 😬😆 #thefriendtest fear NONE 79 | 21225 The moment you bring her to meet your best friend and you're nervous af! 😬😆 #nervous #thefriendtest fear NONE 80 | 21226 @ChrissyCostanza and have social anxiety. There is many awkward things wrong with me. 😄 fear NONE 81 | 21227 @chutneysupercat hi lovely brownie, MM is calling me tuppytupperware.. its awful fear NONE 82 | 21228 Northampton are awful 🙈 fear NONE 83 | 21229 It really is amazing the money they give to some of these QB's #nfl #texans #brock fear NONE 84 | 21230 It really is amazing the money they give to some of these QB's #nfl #texans #brock #terrible fear NONE 85 | 21231 @lukeshawtime terrible fear NONE 86 | 21232 @mikefreemanNFL \nIsn't OBrien supposed to be some sort of offensive genius #awful fear NONE 87 | 21233 @mikefreemanNFL \nIsn't OBrien supposed to be some sort of offensive genius fear NONE 88 | 21234 Trying to book holiday flights on @britishairways website is becoming a #nightmare fear NONE 89 | 21235 Trying to book holiday flights on @britishairways website is becoming a fear NONE 90 | 21236 Bout ta get my @dontbreathe on up in here! @WarrenTheaters #nervous #icantholdmybreaththatlong fear NONE 91 | 21237 Bout ta get my @dontbreathe on up in here! @WarrenTheaters #icantholdmybreaththatlong fear NONE 92 | 21238 #twitter #users Tweeting on twitter is like playing a game against the computer. Where's the life, Everyone too #afraid to say something? fear NONE 93 | 21239 @ReaganBattalion That's a terrible thing to accuse Scott Baio of. fear NONE 94 | 21240 Tweeting from the sporadic wifi on the tube #perilous fear NONE 95 | 21241 Tweeting from the sporadic wifi on the tube fear NONE 96 | 21242 Southend players always haunt Man U fear NONE 97 | 21243 If i start growing out my mustache now, I can be Pablo Escobar for Halloween!!! fear NONE 98 | 21244 Not the best horror ever but I like that the uncertainty fear NONE 99 | 21245 Hillary Clinton looked the other way to the Saudi war on women and their terror financing because they bought her off. fear NONE 100 | 21246 @AaliyahLove69 I would be intimidated but I would like to think I would have manned up and helped. fear NONE 101 | 21247 it's horrible cos no one can relate, everyone is happy and dandy in one way or another fear NONE 102 | 21248 @CesarSampao @thisisbolton don't get me started on town centre. Used to go every week.... not been for 18 months #horrible fear NONE 103 | 21249 @CesarSampao @thisisbolton don't get me started on town centre. Used to go every week.... not been for 18 months fear NONE 104 | 21250 Gahh...BT, in queue for 30 minutes.. Now put through to BT Sport dept to cancel... back in a queue again... #shocking fear NONE 105 | 21251 Gahh...BT, in queue for 30 minutes.. Now put through to BT Sport dept to cancel... back in a queue again... fear NONE 106 | 21252 Staff on @ryainair FR1005. Asked for info and told to look online. You get what you pay for. #Ryanair @STN_Airport #Compensation fear NONE 107 | 21253 Staff on @ryainair FR1005. Asked for info and told to look online. You get what you pay for. #Ryanair @STN_Airport #Compensation #awful fear NONE 108 | 21254 An adviser to the #European #Union’s top #court said #Hamas and the #Tamil #Tigers should be taken off the EU’s #terror list.#lka fear NONE 109 | 21255 So about 18mths ago i signed up to @Lumo_Energy for their @VirginAustralia / Velocity FF deal. 18 months in still no FF points #shocking fear NONE 110 | 21256 So about 18mths ago i signed up to @Lumo_Energy for their @VirginAustralia / Velocity FF deal. 18 months in still no FF points fear NONE 111 | -------------------------------------------------------------------------------- /emoint/resources/emoint/joy-ratings-0to1.dev.gold.txt: -------------------------------------------------------------------------------- 1 | 30823 @theclobra lol I thought maybe, couldn't decide if there was levity or not joy 0.312 2 | 30824 Nawaz Sharif is getting more funnier than @kapilsharmak9 day by day. #laughter #challenge #kashmir #baloch joy 0.700 3 | 30825 Nawaz Sharif is getting more funnier than @kapilsharmak9 day by day. #challenge #kashmir #baloch joy 0.580 4 | 30826 @tomderivan73 😁...I'll just people watch and enjoy a rare show of optimism joy 0.438 5 | 30827 I love my family so much #lucky #grateful #smartassfamily #love joy 0.936 6 | 30828 I love my family so much #lucky #grateful #smartassfamily #hilarious #love joy 0.792 7 | 30829 @Casper10666 I assure you there is no laughter, but increasing anger at the costs, and arrogance of Westminster. joy 0.167 8 | 30830 If any trump supporters and Hillary haters wanna chirp some weak minded, pandering liberals just tweet at @EmmyA2 @snickerfritz04 joy 0.100 9 | 30831 Google caffeine-an sprightly lengthening into the corridor re seo: WgJ joy 0.200 10 | 30832 This tweet is dedicated to my back pain, which I do not understand because I am youthful and spry. Full of life. Vivacious. joy 0.229 11 | 30833 @Bluebelle89 @lsmith855 liking the optimism joy 0.540 12 | 30834 Be it a rainy day, be it cheerful sunshine, I am a Prussian, want nothing to be but a Prussian.:| joy 0.245 13 | 30835 @Gronnhair @buryprofs @DittoBistro it was indeed lovely and the team were incredibly attentive and on the ball. Cheese was a lively gesture! joy 0.646 14 | 30836 @Geminiak @LondonNPC you're welcome! #wordgeek \nAlso, good to put a face to the twitter feed, even if it was only a cheery hello! 😀 joy 0.646 15 | 30837 ...at your age, the heyday in the blood is tame...' @TheArtofCharm #shakespeareaninsults #hamlet #elizabethan #williamshakespeare joy 0.260 16 | 30838 i was so embarrassed when she saw us i was like knvfkkjg she thinks we're stalkers n then she starts waving all cheerfully inviting us in 😩 joy 0.250 17 | 30839 Good #CX most often doesn't require all that much. #smile, #care, #relate and be #helpful. Thanks, Lakis Court Hotel in #cyprus joy 0.583 18 | 30840 4-2 Canada final tomorrow #WCH #Predictions #optimism #Canadian 🇨🇦 joy 0.420 19 | 30841 I turn 25 in two weeks. I am so happy. 24 was my darkest year yet. I am elated that I survived joy 0.708 20 | 30842 TheNiceBot: IndyMN I thought the holidays could not get any more cheerful, and then I met you. #TheNiceBot #الخفجي joy 0.769 21 | 30843 The smell of freshly cut grass didn't even cheer me up...boy oh boy joy 0.229 22 | 30844 @NateBLoL no it was that clear American naturally flavored sparkling water joy 0.312 23 | 30845 A cheerful heart is good medicine, but a broken spirit saps a person's strength.' {Proverbs 17:22} #WednesdayWisdom joy 0.292 24 | 30846 Somebody who has braved the storm is brewing. #cheerful joy 0.460 25 | 30847 Somebody who has braved the storm is brewing. joy 0.292 26 | 30848 Ready for that nice, breezy, calm, sunshine weather.🍂🍁 #Autumn joy 0.583 27 | 30849 it gets better. without explanation; you just wake up one morning and you’re just happy, totally and utterly elated. joy 0.896 28 | 30850 Imagine how sad LA fans are gona be when they get eliminated...Man that's gonna be Nirvana, a religious experience rejoicing in their misery joy 0.333 29 | 30851 Heather that was #hilarious! @MsHeatherBates @pattonoswalt @chrishansen #AnthonyWeiner #15gets20 #NYC joy 0.812 30 | 30852 Val reminds me of one of the cheerful witches that looks after Aurora in Disney’s Sleeping Beauty. #GBBO joy 0.521 31 | 30853 @GameGrumps THANK YOU SO MUCH FOR COMING TO DETROIT I'm going to sob joyful rainbows now brb joy 0.804 32 | 30854 So far ours greet have raised £250 for @HGatChristmas with more to come in #sparkling @CllrJohnFox @simoncotton69 joy 0.625 33 | 30855 Each day is what you make of it! #goals #challenges #business #goals #success #photographer #photography #ThursdayThoughts joy 0.604 34 | 30856 Each day is what you make of it! #goals #challenges #business #goals #optimism #happy #success #photographer #photography #ThursdayThoughts joy 0.423 35 | 30857 If you don't respond to an email within 7 fays, you wifl be killed by an animated gif of the girl from The Ring. joy 0.180 36 | 30858 It's #HobbitDay! \nHobbit's give gifts on their birthdays, so I'm sharing the gift of #glee today! Find something that makes you happy! joy 0.708 37 | 30859 incredible that anthony weiner has been caught chasing a busty milkmaid across a park at double speed while jaunty music plays joy 0.380 38 | 30860 @len_snart Mick nods. 'I would like that.' He went back to his food, smiling as he finished it. joy 0.620 39 | 30861 @yungdoujin wouldn't that basically be sparkling water joy 0.320 40 | 30862 I'm absolutely in love with Laurie Hernandez, she's so adorable and is always so cheerful! joy 0.788 41 | 30863 @HunterDean_ [he gives a gleeful squeak and wraps around you] All mine! joy 0.729 42 | 30864 @diehimbeertonis She developed her 'forced smile'. I can force myself to describe it 'a little hearty maybe, sanki biraz':) joy 0.208 43 | 30865 When we give cheerfully and accept gratefully, everyone is blessed. »Maya Angelou joy 0.712 44 | 30866 A #new day to #live and #smile. Hope all the #followers a nice #night or #day. :D joy 0.688 45 | 30867 @DocBellsSwan *peers down at you, eyes crinkling with mirth and affection* I do love ye so, my bonnie Belle. joy 0.660 46 | 30868 @bruins_514 @gorddownie @thehipdotcom It would be #TragicallyHip if they can #help @TOYSFORASMILE make #hospitalized #sick #kids #smile 😊✌❤ joy 0.519 47 | 30869 Chris would take full responsibility and would want us all to rejoice in the memories we all had with him. joy 0.280 48 | 30870 @Communism_Kills i get the subway melt and make sure it's only hearty italian bread... black olives are a must though joy 0.380 49 | 30871 @hesham786 that's the spirit #optimism joy 0.396 50 | 30872 @hesham786 that's the spirit joy 0.354 51 | 30873 If yiu don't respond .o an email within 7 days, you willxbe killed by an animated gif of the girl froa The Ri.g. joy 0.220 52 | 30874 @harrietemmett great minds think alike. #rejoice joy 0.519 53 | 30875 @harrietemmett great minds think alike. joy 0.479 54 | 30876 Dolores.' A thin lipped smile graced glossed lips as she let blues peer over at the woman. ' A constant delight.. As always.' joy 0.625 55 | 30877 @airtelindia have some issues with my broadband bill ,I am charged for the month before I signed up with airtel.. #hilarious joy 0.340 56 | 30878 @airtelindia have some issues with my broadband bill ,I am charged for the month before I signed up with airtel.. joy 0.038 57 | 30879 @Bridget_Jones was joyous. Worried I would be disappointed. Most definitely was not. #chickflick #giggles #comethefuckonbridget joy 0.680 58 | 30880 Metal keeps you young and spry and keeps your hair luxurious.\n\nYES\n\nSHUT UP AND LISTEN TO ME joy 0.460 59 | 30881 I hate it when im singing and some idiot thinks they can just join in with me like...this is not fcking glee #MeanRikonaBot joy 0.080 60 | 30882 @chencouture LMAO Is it that 'so slutty' hater girl? That video was hilarious. 😂 joy 0.700 61 | 30883 @MichiganBromo Good optimism sir :) joy 0.538 62 | 30884 @billie21806 @cnnbrk tell that to your bodies cheering on the deaths of black people by cops. their fear is killing us. joy 0.100 63 | 30885 @MacDsmash you should get some @SSB_Swedish delight joy 0.404 64 | 30886 @kwelbyroberts they will come and you will rejoice at their arrival. joy 0.458 65 | 30887 [Moment of levity on the B41] Baby: I want ISIS! Give me ISIS!\nMom: Shh!\nBaby: I want ISIS!\nWest Indian woman: She wants what?\nMom: *Ices*. joy 0.521 66 | 30888 @tomlinmayniac starting my new challenge ! A glee poll every day ! joy 0.625 67 | 30889 How can l rule my mind !!!!!! \nIt's hilarious that you can't 😭😑😮 joy 0.396 68 | 30890 A lifetime of laughter at the expense of the death of a bachelor joy 0.354 69 | 30891 Our tone of voice: we're like One Direction, we're thoughtful and timid, yet playful joy 0.423 70 | 30892 Sioux Valley wins home competitive #cheer invite with a score of 158. ...Dell Rapids second at 138 joy 0.583 71 | 30893 Tutoring gives me such an exhilarating feeling. I love helping people 😌 joy 0.896 72 | 30894 @PhilGlutting Hey There Phil Glutting thank you for following us, it's appreciated :) #smile joy 0.760 73 | 30895 @PhilGlutting Hey There Phil Glutting thank you for following us, it's appreciated :) joy 0.646 74 | 30896 It feels good to get outside for a minute and get some fresh air. It's hard to stay cooped up inside all day #breezy joy 0.708 75 | 30897 It feels good to get outside for a minute and get some fresh air. It's hard to stay cooped up inside all day joy 0.580 76 | 30898 @r0Ils ppl get triggered over u smiling they're irrelevant joy 0.170 77 | 30899 @GigaFag @pipertownsend_ snapchat new would beg to differ #optimism joy 0.396 78 | 30900 @GigaFag @pipertownsend_ snapchat new would beg to differ joy 0.156 79 | 30901 A hearty Jonza! to all my friends and follower. joy 0.704 80 | -------------------------------------------------------------------------------- /emoint/resources/emoint/joy-ratings-0to1.dev.target.txt: -------------------------------------------------------------------------------- 1 | 30823 @theclobra lol I thought maybe, couldn't decide if there was levity or not joy NONE 2 | 30824 Nawaz Sharif is getting more funnier than @kapilsharmak9 day by day. #laughter #challenge #kashmir #baloch joy NONE 3 | 30825 Nawaz Sharif is getting more funnier than @kapilsharmak9 day by day. #challenge #kashmir #baloch joy NONE 4 | 30826 @tomderivan73 😁...I'll just people watch and enjoy a rare show of optimism joy NONE 5 | 30827 I love my family so much #lucky #grateful #smartassfamily #love joy NONE 6 | 30828 I love my family so much #lucky #grateful #smartassfamily #hilarious #love joy NONE 7 | 30829 @Casper10666 I assure you there is no laughter, but increasing anger at the costs, and arrogance of Westminster. joy NONE 8 | 30830 If any trump supporters and Hillary haters wanna chirp some weak minded, pandering liberals just tweet at @EmmyA2 @snickerfritz04 joy NONE 9 | 30831 Google caffeine-an sprightly lengthening into the corridor re seo: WgJ joy NONE 10 | 30832 This tweet is dedicated to my back pain, which I do not understand because I am youthful and spry. Full of life. Vivacious. joy NONE 11 | 30833 @Bluebelle89 @lsmith855 liking the optimism joy NONE 12 | 30834 Be it a rainy day, be it cheerful sunshine, I am a Prussian, want nothing to be but a Prussian.:| joy NONE 13 | 30835 @Gronnhair @buryprofs @DittoBistro it was indeed lovely and the team were incredibly attentive and on the ball. Cheese was a lively gesture! joy NONE 14 | 30836 @Geminiak @LondonNPC you're welcome! #wordgeek \nAlso, good to put a face to the twitter feed, even if it was only a cheery hello! 😀 joy NONE 15 | 30837 ...at your age, the heyday in the blood is tame...' @TheArtofCharm #shakespeareaninsults #hamlet #elizabethan #williamshakespeare joy NONE 16 | 30838 i was so embarrassed when she saw us i was like knvfkkjg she thinks we're stalkers n then she starts waving all cheerfully inviting us in 😩 joy NONE 17 | 30839 Good #CX most often doesn't require all that much. #smile, #care, #relate and be #helpful. Thanks, Lakis Court Hotel in #cyprus joy NONE 18 | 30840 4-2 Canada final tomorrow #WCH #Predictions #optimism #Canadian 🇨🇦 joy NONE 19 | 30841 I turn 25 in two weeks. I am so happy. 24 was my darkest year yet. I am elated that I survived joy NONE 20 | 30842 TheNiceBot: IndyMN I thought the holidays could not get any more cheerful, and then I met you. #TheNiceBot #الخفجي joy NONE 21 | 30843 The smell of freshly cut grass didn't even cheer me up...boy oh boy joy NONE 22 | 30844 @NateBLoL no it was that clear American naturally flavored sparkling water joy NONE 23 | 30845 A cheerful heart is good medicine, but a broken spirit saps a person's strength.' {Proverbs 17:22} #WednesdayWisdom joy NONE 24 | 30846 Somebody who has braved the storm is brewing. #cheerful joy NONE 25 | 30847 Somebody who has braved the storm is brewing. joy NONE 26 | 30848 Ready for that nice, breezy, calm, sunshine weather.🍂🍁 #Autumn joy NONE 27 | 30849 it gets better. without explanation; you just wake up one morning and you’re just happy, totally and utterly elated. joy NONE 28 | 30850 Imagine how sad LA fans are gona be when they get eliminated...Man that's gonna be Nirvana, a religious experience rejoicing in their misery joy NONE 29 | 30851 Heather that was #hilarious! @MsHeatherBates @pattonoswalt @chrishansen #AnthonyWeiner #15gets20 #NYC joy NONE 30 | 30852 Val reminds me of one of the cheerful witches that looks after Aurora in Disney’s Sleeping Beauty. #GBBO joy NONE 31 | 30853 @GameGrumps THANK YOU SO MUCH FOR COMING TO DETROIT I'm going to sob joyful rainbows now brb joy NONE 32 | 30854 So far ours greet have raised £250 for @HGatChristmas with more to come in #sparkling @CllrJohnFox @simoncotton69 joy NONE 33 | 30855 Each day is what you make of it! #goals #challenges #business #goals #success #photographer #photography #ThursdayThoughts joy NONE 34 | 30856 Each day is what you make of it! #goals #challenges #business #goals #optimism #happy #success #photographer #photography #ThursdayThoughts joy NONE 35 | 30857 If you don't respond to an email within 7 fays, you wifl be killed by an animated gif of the girl from The Ring. joy NONE 36 | 30858 It's #HobbitDay! \nHobbit's give gifts on their birthdays, so I'm sharing the gift of #glee today! Find something that makes you happy! joy NONE 37 | 30859 incredible that anthony weiner has been caught chasing a busty milkmaid across a park at double speed while jaunty music plays joy NONE 38 | 30860 @len_snart Mick nods. 'I would like that.' He went back to his food, smiling as he finished it. joy NONE 39 | 30861 @yungdoujin wouldn't that basically be sparkling water joy NONE 40 | 30862 I'm absolutely in love with Laurie Hernandez, she's so adorable and is always so cheerful! joy NONE 41 | 30863 @HunterDean_ [he gives a gleeful squeak and wraps around you] All mine! joy NONE 42 | 30864 @diehimbeertonis She developed her 'forced smile'. I can force myself to describe it 'a little hearty maybe, sanki biraz':) joy NONE 43 | 30865 When we give cheerfully and accept gratefully, everyone is blessed. »Maya Angelou joy NONE 44 | 30866 A #new day to #live and #smile. Hope all the #followers a nice #night or #day. :D joy NONE 45 | 30867 @DocBellsSwan *peers down at you, eyes crinkling with mirth and affection* I do love ye so, my bonnie Belle. joy NONE 46 | 30868 @bruins_514 @gorddownie @thehipdotcom It would be #TragicallyHip if they can #help @TOYSFORASMILE make #hospitalized #sick #kids #smile 😊✌❤ joy NONE 47 | 30869 Chris would take full responsibility and would want us all to rejoice in the memories we all had with him. joy NONE 48 | 30870 @Communism_Kills i get the subway melt and make sure it's only hearty italian bread... black olives are a must though joy NONE 49 | 30871 @hesham786 that's the spirit #optimism joy NONE 50 | 30872 @hesham786 that's the spirit joy NONE 51 | 30873 If yiu don't respond .o an email within 7 days, you willxbe killed by an animated gif of the girl froa The Ri.g. joy NONE 52 | 30874 @harrietemmett great minds think alike. #rejoice joy NONE 53 | 30875 @harrietemmett great minds think alike. joy NONE 54 | 30876 Dolores.' A thin lipped smile graced glossed lips as she let blues peer over at the woman. ' A constant delight.. As always.' joy NONE 55 | 30877 @airtelindia have some issues with my broadband bill ,I am charged for the month before I signed up with airtel.. #hilarious joy NONE 56 | 30878 @airtelindia have some issues with my broadband bill ,I am charged for the month before I signed up with airtel.. joy NONE 57 | 30879 @Bridget_Jones was joyous. Worried I would be disappointed. Most definitely was not. #chickflick #giggles #comethefuckonbridget joy NONE 58 | 30880 Metal keeps you young and spry and keeps your hair luxurious.\n\nYES\n\nSHUT UP AND LISTEN TO ME joy NONE 59 | 30881 I hate it when im singing and some idiot thinks they can just join in with me like...this is not fcking glee #MeanRikonaBot joy NONE 60 | 30882 @chencouture LMAO Is it that 'so slutty' hater girl? That video was hilarious. 😂 joy NONE 61 | 30883 @MichiganBromo Good optimism sir :) joy NONE 62 | 30884 @billie21806 @cnnbrk tell that to your bodies cheering on the deaths of black people by cops. their fear is killing us. joy NONE 63 | 30885 @MacDsmash you should get some @SSB_Swedish delight joy NONE 64 | 30886 @kwelbyroberts they will come and you will rejoice at their arrival. joy NONE 65 | 30887 [Moment of levity on the B41] Baby: I want ISIS! Give me ISIS!\nMom: Shh!\nBaby: I want ISIS!\nWest Indian woman: She wants what?\nMom: *Ices*. joy NONE 66 | 30888 @tomlinmayniac starting my new challenge ! A glee poll every day ! joy NONE 67 | 30889 How can l rule my mind !!!!!! \nIt's hilarious that you can't 😭😑😮 joy NONE 68 | 30890 A lifetime of laughter at the expense of the death of a bachelor joy NONE 69 | 30891 Our tone of voice: we're like One Direction, we're thoughtful and timid, yet playful joy NONE 70 | 30892 Sioux Valley wins home competitive #cheer invite with a score of 158. ...Dell Rapids second at 138 joy NONE 71 | 30893 Tutoring gives me such an exhilarating feeling. I love helping people 😌 joy NONE 72 | 30894 @PhilGlutting Hey There Phil Glutting thank you for following us, it's appreciated :) #smile joy NONE 73 | 30895 @PhilGlutting Hey There Phil Glutting thank you for following us, it's appreciated :) joy NONE 74 | 30896 It feels good to get outside for a minute and get some fresh air. It's hard to stay cooped up inside all day #breezy joy NONE 75 | 30897 It feels good to get outside for a minute and get some fresh air. It's hard to stay cooped up inside all day joy NONE 76 | 30898 @r0Ils ppl get triggered over u smiling they're irrelevant joy NONE 77 | 30899 @GigaFag @pipertownsend_ snapchat new would beg to differ #optimism joy NONE 78 | 30900 @GigaFag @pipertownsend_ snapchat new would beg to differ joy NONE 79 | 30901 A hearty Jonza! to all my friends and follower. joy NONE 80 | -------------------------------------------------------------------------------- /emoint/resources/emoint/sadness-ratings-0to1.dev.gold.txt: -------------------------------------------------------------------------------- 1 | 40786 @1johndes ball watching & Rojo'd header was equally dreadful!! sadness 0.583 2 | 40787 A pessimist is someone who, when opportunity knocks, complains about the noise #mikeshumor sadness 0.188 3 | 40788 A .500 season is all I'm looking for at this point. #depressing #royals sadness 0.688 4 | 40789 Stars, when you shine,\nYou know how I feel.\nScent of the pine, \nYou know how I feel.\nFreedom is mine,\nI know how I feel.\nI'm feelin' good. sadness 0.292 5 | 40790 All I want to do is watch some netflix but I am stuck here in class. #depressing sadness 0.667 6 | 40791 Buddha doesn't possess enough power to deliver you from your affliction! sadness 0.542 7 | 40792 Donating to Trump puts a damper on a very exciting @Cubs season. Really bad look, Ricketts family. sadness 0.438 8 | 40793 Hello my dear friends, I will be back online this Friday night. I miss you! #sober #sobriety #recovery sadness 0.417 9 | 40794 @ccrago It was dreadful, even after he met the Catfish he still thought it was her! sadness 0.542 10 | 40795 watching this uni reveal is so depressing i miss stingrays :( sadness 0.667 11 | 40796 Public products: high downhearted price tag consumer survey sum and substance: OVth sadness 0.354 12 | 40797 Wow just watched Me Before You and it was seriously one of the most depressing movies of my life sadness 0.667 13 | 40798 @kayleighmcenany @DonaldJTrumpJr Is that really all you can offer for those who sacrifice daily to keep you safe...? @kayleighmcenany #sad sadness 0.625 14 | 40799 @kayleighmcenany @DonaldJTrumpJr Is that really all you can offer for those who sacrifice daily to keep you safe...? @kayleighmcenany sadness 0.375 15 | 40800 “Dyslexia is the affliction of a frozen genius.”― Stephen Richards sadness 0.333 16 | 40801 @OHSOVICTORIOUS_ @FaZeAdapt We all seen it coming.. it's sad. But her Instagram comments on her pics are funny. Adapts fans blew it up 😂😂😂 sadness 0.354 17 | 40802 [ @HedgehogDylan ] *she would frown a bit, folding her arms* 'why is it that every time I'm in need of assistance someone expects a lil ** sadness 0.562 18 | 40803 @abra @abra @abra what're you doing to my ears? To my soul?! #GoodMusic #melancholy sadness 0.236 19 | 40804 I feel like an appendix. I don't have a purpose. #depressed #alone #lonely #broken #cry #hurt #crying #life sadness 0.833 20 | 40805 Might go on @RadioX tomorrow to hopefully win a new car. My current one stinks of gone off milk. #grim sadness 0.458 21 | 40806 Season 3 and Charlie is still a prick! #lost sadness 0.375 22 | 40807 @pmo100 @5liveSport .....I heard talk something is a miss. He looks weary. sadness 0.458 23 | 40808 If Angelina Jolie can't keep a man no one can. Today we mourn because Love is dead sadness 0.646 24 | 40809 @DxfyingGrxvity - frustration, looking up at Elphaba in a frown of aggravation. Her high pitched voice was growing more and more -- sadness 0.479 25 | 40810 @CovinoandRich just heard back2back, guess that's why they call it the blues & she's got the look, but I can only sing tickle sacks version sadness 0.375 26 | 40811 SOBRIETY® trying to make being sober fashionable….can it be done ? #zeroalcohol #soberoctober #clubsoda #nomorehangovers #sober sadness 0.333 27 | 40812 @StaceyDavidson_ You're a thief and a liberal mope, investigated by the financial services board for theft of govt retirement funds. THIEF sadness 0.667 28 | 40813 This shit hurting my heart 😪 that's how serious it is . sadness 0.875 29 | 40814 Before the year ends I'll probably get master 12s or flu games, true blues, and space jams. sadness 0.208 30 | 40815 @AnjiDunlap droop in leggings? Are they wearing XXXL? sadness 0.292 31 | 40816 @trashcami this cured my depression sadness 0.340 32 | 40817 This world has some serious issues we should all go to therapy sadness 0.750 33 | 40818 If I had a little bit of extra money I would blow the whole paycheck and go to one of the two of @KygoMusic's concerts in LA. #serious sadness 0.167 34 | 40819 @kempicepoland don't think he did, and he didn't have the rucksack or laptop in his possession, murky business, on that note I'm away to bed sadness 0.500 35 | 40820 MC: what are you listen to these days?\nBogum: these days I feel gloomy, I listen to ccm (spiritual song) often.\n\nChurch oppa mode. :) sadness 0.583 36 | 40821 It feel like we lost a family member🙄😂 sadness 0.708 37 | 40822 My life went from happy to unhappy.. sadness 0.812 38 | 40823 you are on an endless journey of figuring yourself out; don't be discouraged when you don't know who you are yet. sadness 0.375 39 | 40824 On bedrest since I got out of the hospital. U find in unopened beer.. what do I do. Pour that shit out! No alcohol at all for me #sober sadness 0.440 40 | 40825 @LeePorter94 @DomMcGovern_ hi Dom I saw u at Notts county away, looking for 1 mufc away ticket will pay #blues sadness 0.438 41 | 40826 @LeePorter94 @DomMcGovern_ hi Dom I saw u at Notts county away, looking for 1 mufc away ticket will pay sadness 0.312 42 | 40827 A3: But chronic sadness may mean there are underlying issues than getting sad occassionally over a particular issue (2/2) #mhchat sadness 0.562 43 | 40828 Don't depress yourself by comparing yourself. No comparisons. sadness 0.438 44 | 40829 Folk Band 'Thistle Down' will be replaced by 'The Paul Edwards Quartet' at Laurel Bank Park Sat 24 11am - 3pm due to ill health #jazz #blues sadness 0.417 45 | 40830 Folk Band 'Thistle Down' will be replaced by 'The Paul Edwards Quartet' at Laurel Bank Park Sat 24 11am - 3pm due to ill health #jazz sadness 0.271 46 | 40831 @GRIPLIKEAVICE_ I wouldn't mind if it didn't you know, threaten my job when I disagree. Puts a damper on things. sadness 0.625 47 | 40832 @FFBren @CDCarter13 included for maximum #sadness sadness 0.625 48 | 40833 @Barcabhoy1 Of course not. Didn't sink his studs into a knee like Forrester sadness 0.396 49 | 40834 Soooo badly want to dye my hair dark but have never been dark before soooo torn 😭😭😭 sadness 0.500 50 | 40835 @Eeevah14 don't I know it, try not to fret my sweet little pupper sadness 0.333 51 | 40836 im thoroughly in love w zen and jumin and i dont think id even have the patience for either of them irl im old and weary sadness 0.458 52 | 40837 @Virgin_TrainsEC I feel for the conductor tonight, he's obviously taken grief over the last few weeks, he sounds weary of apologising! sadness 0.667 53 | 40838 @GolfStrat out of Rory starts. What would your B group look like w/o him? Hideki and Walker, and throw Reed or Knox on the pine? sadness 0.343 54 | 40839 HATE that there's ads for #depression & #mentalhealth #meds. That's ONLY something your doctor can determine. Everyone is different. #ssri sadness 0.460 55 | 40840 Rooney is 5 yards off the pace in a League Cup game against Northampton Town. Let that sink in for a moment. #MUFC sadness 0.292 56 | 40841 I can't WAIT to go to work tomorrow with a high as fuck fever. [sarcasm]\nHopefully I'll feel better tomorrow.\nBut I doubt it. #pessimism sadness 0.646 57 | 40842 Don't be disheartened if you didn't get the cards you wanted, it's not the end of the world......E-Eh...? Y-You want me to cheer you up? sadness 0.438 58 | 40843 amateur author Twitter might be the most depressing thing I've ever seen sadness 0.688 59 | 40844 yesterday i finished watching penny dreadful and from all the beautiful things i saw one question remains: were the writers HIM's fans? sadness 0.312 60 | 40845 We are about a little over an hour away! We will arrive soon, do not fret! sadness 0.125 61 | 40846 Should of stayed in Dubai 😞 sadness 0.708 62 | 40847 Chalk dance notation entree manchester inasmuch as corinthian products that discourage drag branding: ARwuEVfqv sadness 0.188 63 | 40848 It's basically a dead skin peel which sounds grim. But it literally gets rid of so much dead skin from your pores. sadness 0.354 64 | 40849 aaahhhh! a little @OtisRedding to soothe the soul. #music sadness 0.250 65 | 40850 aaahhhh! a little @OtisRedding to soothe the soul. #music #blues sadness 0.197 66 | 40851 Remembering those day when u still did'nt know kpop n thinking about how sad your life was without it - Kpop fan sadness 0.521 67 | 40852 and for inconsolable Oxford academics - 'Brussels should just ignore the #Brexit vote and tell the UK it can't leave the EU....ever....wah' sadness 0.521 68 | 40853 @xOffWithMyHeadx They've officially said all the episodes left (so future 12 and despair 11 and 12) will be delayed. sadness 0.438 69 | 40854 340:892 All with weary task fordone.\nNow the wasted brands do glow,\nWhilst the scritch-owl, scritching loud,\n#AMNDBots sadness 0.458 70 | 40855 Common app just randomly logged me out as I was writing the last part of my college essay and lost all of it 😭😭😭 sadness 0.833 71 | 40856 I'd rather laugh with the rarest genius, in beautiful alliance with his own being, where he kept his sadness. #melancholy sadness 0.688 72 | 40857 If you #invest in my new #film I will stop asking you to invest in my new film. #concessions #crime #despair #shortsightedness #celebrities sadness 0.458 73 | 40858 Just watched Django Unchained, Other people may frown, but I titter in delight! 2/5 sadness 0.333 74 | 40859 @KeithOlbermann depressing how despicable Trump, with no policies, campaigning on bigotry & rancour can be so close, evil immoral disaster sadness 0.708 75 | -------------------------------------------------------------------------------- /emoint/resources/emoint/sadness-ratings-0to1.dev.target.txt: -------------------------------------------------------------------------------- 1 | 40786 @1johndes ball watching & Rojo'd header was equally dreadful!! sadness NONE 2 | 40787 A pessimist is someone who, when opportunity knocks, complains about the noise #mikeshumor sadness NONE 3 | 40788 A .500 season is all I'm looking for at this point. #depressing #royals sadness NONE 4 | 40789 Stars, when you shine,\nYou know how I feel.\nScent of the pine, \nYou know how I feel.\nFreedom is mine,\nI know how I feel.\nI'm feelin' good. sadness NONE 5 | 40790 All I want to do is watch some netflix but I am stuck here in class. #depressing sadness NONE 6 | 40791 Buddha doesn't possess enough power to deliver you from your affliction! sadness NONE 7 | 40792 Donating to Trump puts a damper on a very exciting @Cubs season. Really bad look, Ricketts family. sadness NONE 8 | 40793 Hello my dear friends, I will be back online this Friday night. I miss you! #sober #sobriety #recovery sadness NONE 9 | 40794 @ccrago It was dreadful, even after he met the Catfish he still thought it was her! sadness NONE 10 | 40795 watching this uni reveal is so depressing i miss stingrays :( sadness NONE 11 | 40796 Public products: high downhearted price tag consumer survey sum and substance: OVth sadness NONE 12 | 40797 Wow just watched Me Before You and it was seriously one of the most depressing movies of my life sadness NONE 13 | 40798 @kayleighmcenany @DonaldJTrumpJr Is that really all you can offer for those who sacrifice daily to keep you safe...? @kayleighmcenany #sad sadness NONE 14 | 40799 @kayleighmcenany @DonaldJTrumpJr Is that really all you can offer for those who sacrifice daily to keep you safe...? @kayleighmcenany sadness NONE 15 | 40800 “Dyslexia is the affliction of a frozen genius.”― Stephen Richards sadness NONE 16 | 40801 @OHSOVICTORIOUS_ @FaZeAdapt We all seen it coming.. it's sad. But her Instagram comments on her pics are funny. Adapts fans blew it up 😂😂😂 sadness NONE 17 | 40802 [ @HedgehogDylan ] *she would frown a bit, folding her arms* 'why is it that every time I'm in need of assistance someone expects a lil ** sadness NONE 18 | 40803 @abra @abra @abra what're you doing to my ears? To my soul?! #GoodMusic #melancholy sadness NONE 19 | 40804 I feel like an appendix. I don't have a purpose. #depressed #alone #lonely #broken #cry #hurt #crying #life sadness NONE 20 | 40805 Might go on @RadioX tomorrow to hopefully win a new car. My current one stinks of gone off milk. #grim sadness NONE 21 | 40806 Season 3 and Charlie is still a prick! #lost sadness NONE 22 | 40807 @pmo100 @5liveSport .....I heard talk something is a miss. He looks weary. sadness NONE 23 | 40808 If Angelina Jolie can't keep a man no one can. Today we mourn because Love is dead sadness NONE 24 | 40809 @DxfyingGrxvity - frustration, looking up at Elphaba in a frown of aggravation. Her high pitched voice was growing more and more -- sadness NONE 25 | 40810 @CovinoandRich just heard back2back, guess that's why they call it the blues & she's got the look, but I can only sing tickle sacks version sadness NONE 26 | 40811 SOBRIETY® trying to make being sober fashionable….can it be done ? #zeroalcohol #soberoctober #clubsoda #nomorehangovers #sober sadness NONE 27 | 40812 @StaceyDavidson_ You're a thief and a liberal mope, investigated by the financial services board for theft of govt retirement funds. THIEF sadness NONE 28 | 40813 This shit hurting my heart 😪 that's how serious it is . sadness NONE 29 | 40814 Before the year ends I'll probably get master 12s or flu games, true blues, and space jams. sadness NONE 30 | 40815 @AnjiDunlap droop in leggings? Are they wearing XXXL? sadness NONE 31 | 40816 @trashcami this cured my depression sadness NONE 32 | 40817 This world has some serious issues we should all go to therapy sadness NONE 33 | 40818 If I had a little bit of extra money I would blow the whole paycheck and go to one of the two of @KygoMusic's concerts in LA. #serious sadness NONE 34 | 40819 @kempicepoland don't think he did, and he didn't have the rucksack or laptop in his possession, murky business, on that note I'm away to bed sadness NONE 35 | 40820 MC: what are you listen to these days?\nBogum: these days I feel gloomy, I listen to ccm (spiritual song) often.\n\nChurch oppa mode. :) sadness NONE 36 | 40821 It feel like we lost a family member🙄😂 sadness NONE 37 | 40822 My life went from happy to unhappy.. sadness NONE 38 | 40823 you are on an endless journey of figuring yourself out; don't be discouraged when you don't know who you are yet. sadness NONE 39 | 40824 On bedrest since I got out of the hospital. U find in unopened beer.. what do I do. Pour that shit out! No alcohol at all for me #sober sadness NONE 40 | 40825 @LeePorter94 @DomMcGovern_ hi Dom I saw u at Notts county away, looking for 1 mufc away ticket will pay #blues sadness NONE 41 | 40826 @LeePorter94 @DomMcGovern_ hi Dom I saw u at Notts county away, looking for 1 mufc away ticket will pay sadness NONE 42 | 40827 A3: But chronic sadness may mean there are underlying issues than getting sad occassionally over a particular issue (2/2) #mhchat sadness NONE 43 | 40828 Don't depress yourself by comparing yourself. No comparisons. sadness NONE 44 | 40829 Folk Band 'Thistle Down' will be replaced by 'The Paul Edwards Quartet' at Laurel Bank Park Sat 24 11am - 3pm due to ill health #jazz #blues sadness NONE 45 | 40830 Folk Band 'Thistle Down' will be replaced by 'The Paul Edwards Quartet' at Laurel Bank Park Sat 24 11am - 3pm due to ill health #jazz sadness NONE 46 | 40831 @GRIPLIKEAVICE_ I wouldn't mind if it didn't you know, threaten my job when I disagree. Puts a damper on things. sadness NONE 47 | 40832 @FFBren @CDCarter13 included for maximum #sadness sadness NONE 48 | 40833 @Barcabhoy1 Of course not. Didn't sink his studs into a knee like Forrester sadness NONE 49 | 40834 Soooo badly want to dye my hair dark but have never been dark before soooo torn 😭😭😭 sadness NONE 50 | 40835 @Eeevah14 don't I know it, try not to fret my sweet little pupper sadness NONE 51 | 40836 im thoroughly in love w zen and jumin and i dont think id even have the patience for either of them irl im old and weary sadness NONE 52 | 40837 @Virgin_TrainsEC I feel for the conductor tonight, he's obviously taken grief over the last few weeks, he sounds weary of apologising! sadness NONE 53 | 40838 @GolfStrat out of Rory starts. What would your B group look like w/o him? Hideki and Walker, and throw Reed or Knox on the pine? sadness NONE 54 | 40839 HATE that there's ads for #depression & #mentalhealth #meds. That's ONLY something your doctor can determine. Everyone is different. #ssri sadness NONE 55 | 40840 Rooney is 5 yards off the pace in a League Cup game against Northampton Town. Let that sink in for a moment. #MUFC sadness NONE 56 | 40841 I can't WAIT to go to work tomorrow with a high as fuck fever. [sarcasm]\nHopefully I'll feel better tomorrow.\nBut I doubt it. #pessimism sadness NONE 57 | 40842 Don't be disheartened if you didn't get the cards you wanted, it's not the end of the world......E-Eh...? Y-You want me to cheer you up? sadness NONE 58 | 40843 amateur author Twitter might be the most depressing thing I've ever seen sadness NONE 59 | 40844 yesterday i finished watching penny dreadful and from all the beautiful things i saw one question remains: were the writers HIM's fans? sadness NONE 60 | 40845 We are about a little over an hour away! We will arrive soon, do not fret! sadness NONE 61 | 40846 Should of stayed in Dubai 😞 sadness NONE 62 | 40847 Chalk dance notation entree manchester inasmuch as corinthian products that discourage drag branding: ARwuEVfqv sadness NONE 63 | 40848 It's basically a dead skin peel which sounds grim. But it literally gets rid of so much dead skin from your pores. sadness NONE 64 | 40849 aaahhhh! a little @OtisRedding to soothe the soul. #music sadness NONE 65 | 40850 aaahhhh! a little @OtisRedding to soothe the soul. #music #blues sadness NONE 66 | 40851 Remembering those day when u still did'nt know kpop n thinking about how sad your life was without it - Kpop fan sadness NONE 67 | 40852 and for inconsolable Oxford academics - 'Brussels should just ignore the #Brexit vote and tell the UK it can't leave the EU....ever....wah' sadness NONE 68 | 40853 @xOffWithMyHeadx They've officially said all the episodes left (so future 12 and despair 11 and 12) will be delayed. sadness NONE 69 | 40854 340:892 All with weary task fordone.\nNow the wasted brands do glow,\nWhilst the scritch-owl, scritching loud,\n#AMNDBots sadness NONE 70 | 40855 Common app just randomly logged me out as I was writing the last part of my college essay and lost all of it 😭😭😭 sadness NONE 71 | 40856 I'd rather laugh with the rarest genius, in beautiful alliance with his own being, where he kept his sadness. #melancholy sadness NONE 72 | 40857 If you #invest in my new #film I will stop asking you to invest in my new film. #concessions #crime #despair #shortsightedness #celebrities sadness NONE 73 | 40858 Just watched Django Unchained, Other people may frown, but I titter in delight! 2/5 sadness NONE 74 | 40859 @KeithOlbermann depressing how despicable Trump, with no policies, campaigning on bigotry & rancour can be so close, evil immoral disaster sadness NONE 75 | -------------------------------------------------------------------------------- /emoint/resources/emoji2vec.txt.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SEERNET/EmoInt/e73ca6ef117d9f5a7738d47d6d91de0a88e5b03e/emoint/resources/emoji2vec.txt.gz -------------------------------------------------------------------------------- /emoint/resources/mpqa.txt.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SEERNET/EmoInt/e73ca6ef117d9f5a7738d47d6d91de0a88e5b03e/emoint/resources/mpqa.txt.gz -------------------------------------------------------------------------------- /emoint/resources/nrc_affect_intensity.txt.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SEERNET/EmoInt/e73ca6ef117d9f5a7738d47d6d91de0a88e5b03e/emoint/resources/nrc_affect_intensity.txt.gz -------------------------------------------------------------------------------- /emoint/resources/w2v-dp-BCC-Lex.txt.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SEERNET/EmoInt/e73ca6ef117d9f5a7738d47d6d91de0a88e5b03e/emoint/resources/w2v-dp-BCC-Lex.txt.gz -------------------------------------------------------------------------------- /emoint/resources/w2v.twitter.edinburgh.100d.csv.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SEERNET/EmoInt/e73ca6ef117d9f5a7738d47d6d91de0a88e5b03e/emoint/resources/w2v.twitter.edinburgh.100d.csv.gz -------------------------------------------------------------------------------- /emoint/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SEERNET/EmoInt/e73ca6ef117d9f5a7738d47d6d91de0a88e5b03e/emoint/tests/__init__.py -------------------------------------------------------------------------------- /emoint/tests/test_ensembles.py: -------------------------------------------------------------------------------- 1 | import shutil 2 | import tempfile 3 | import unittest 4 | from os import path 5 | 6 | from emoint.ensembles.ensemble import Ensembler 7 | 8 | 9 | class TestEnsembles(unittest.TestCase): 10 | def setUp(self): 11 | self.test_dir = tempfile.mkdtemp() 12 | self.ensembler = Ensembler() 13 | 14 | def tearDown(self): 15 | shutil.rmtree(self.test_dir) 16 | 17 | def helper(self, func, ens_type, out_file, expected, w=None): 18 | for i in range(3): 19 | with open(path.join(self.test_dir, 'prediction_{}.txt'.format(i)), 'w') as f_obj: 20 | for j in range(5): 21 | f_obj.write("{}\n".format(func(i + j))) 22 | 23 | out_file = path.join(self.test_dir, out_file) 24 | self.ensembler.ensemble('{}/prediction*'.format(self.test_dir), out_file, ensemble_type=ens_type, weights=w) 25 | with open(out_file, 'r') as f: 26 | got = f.read().splitlines() 27 | self.assertListEqual( 28 | [round(float(x), 1) for x in got], 29 | expected, 30 | msg='Expected: {} != Got: {}'.format(expected, got) 31 | ) 32 | 33 | def test_amean_ensemble(self): 34 | self.helper(lambda x: x, "amean", "ensemble_amean.txt", [1.0, 2.0, 3.0, 4.0, 5.0]) 35 | 36 | def test_gmean_ensemble(self): 37 | self.helper(lambda x: 2 ** x, "gmean", "ensemble_amean.txt", [2.0, 4.0, 8.0, 16.0, 32.0]) 38 | 39 | def test_vote_ensemble(self): 40 | self.helper(lambda x: x, "vote", "ensemble_vote.txt", [0.0, 1.0, 2.0, 3.0, 4.0], [3, 1, 1]) 41 | -------------------------------------------------------------------------------- /emoint/tests/test_featurizers.py: -------------------------------------------------------------------------------- 1 | # coding=utf-8 2 | from unittest import TestCase 3 | 4 | from tweetokenize.tokenizer import Tokenizer 5 | 6 | from emoint.featurizers.afinn_valence_featurizer import AFINNValenceFeaturizer 7 | from emoint.featurizers.bing_liu_sentiment_featurizer import BingLiuFeaturizer 8 | from emoint.featurizers.edinburgh_embeddings_featurizer import EdinburghEmbeddingsFeaturizer 9 | from emoint.featurizers.emoji_featurizer import EmojiEmbeddingsFeaturizer 10 | from emoint.featurizers.emoji_sentiment_ranking_featurizer import EmojiSentimentRanking 11 | from emoint.featurizers.liwc_featurizer import LIWCFeaturizer 12 | from emoint.featurizers.mpqa_effect_featurizer import MPQAEffectFeaturizer 13 | from emoint.featurizers.negating_featurizer import NegationFeaturizer 14 | from emoint.featurizers.nrc_affect_intensity_featurizer import NRCAffectIntensityFeaturizer 15 | from emoint.featurizers.nrc_emotion_wordlevel_featurizer import NRCEmotionFeaturizer 16 | from emoint.featurizers.nrc_expanded_emotion_featurizer import NRCExpandedEmotionFeaturizer 17 | from emoint.featurizers.nrc_hashtag_emotion_featurizer import NRCHashtagEmotionFeaturizer 18 | from emoint.featurizers.nrc_hashtag_sentiment_featurizer import NRCHashtagSentimentFeaturizer 19 | from emoint.featurizers.senti_wordnet_featurizer import SentiWordNetFeaturizer 20 | from emoint.featurizers.sentiment140_featurizer import Sentiment140Featurizer 21 | from emoint.featurizers.sentistrength import SentiStrengthFeaturizer 22 | 23 | 24 | class TestMPQAEffectFeaturizer(TestCase): 25 | def test_featurizer(self): 26 | featurizer = MPQAEffectFeaturizer() 27 | got = featurizer.featurize('abandoned', Tokenizer(allcapskeep=False)) 28 | expected = [0, 1] 29 | 30 | self.assertListEqual( 31 | expected, 32 | got, 33 | msg='Expected: {} != Got: {}'.format(expected, got) 34 | ) 35 | 36 | 37 | class TestBingLiuFeaturizer(TestCase): 38 | def test_featurizer(self): 39 | featurizer = BingLiuFeaturizer() 40 | got = featurizer.featurize('good', Tokenizer(allcapskeep=False)) 41 | expected = [1, 0] 42 | 43 | self.assertListEqual( 44 | expected, 45 | got, 46 | msg='Expected: {} != Got: {}'.format(expected, got) 47 | ) 48 | 49 | 50 | class TestAFINNValenceFeaturizer(TestCase): 51 | def test_featurizer(self): 52 | featurizer = AFINNValenceFeaturizer() 53 | got = featurizer.featurize('can\'t stand :)', Tokenizer(allcapskeep=False)) 54 | expected = [2, -3] 55 | 56 | self.assertListEqual( 57 | expected, 58 | got, 59 | msg='Expected: {} != Got: {}'.format(expected, got) 60 | ) 61 | 62 | 63 | class TestSentiment140LexiconFeaturizer(TestCase): 64 | def test_featurizer(self): 65 | featurizer = Sentiment140Featurizer() 66 | got = featurizer.featurize('bad sunday', Tokenizer(allcapskeep=False)) 67 | expected = [0.267, -1.297 + -4.999] 68 | 69 | self.assertListEqual( 70 | expected, 71 | got, 72 | msg='Expected: {} != Got: {}'.format(expected, got) 73 | ) 74 | 75 | 76 | class TestNRCHashtagSentimentFeaturizer(TestCase): 77 | def test_featurizer(self): 78 | featurizer = NRCHashtagSentimentFeaturizer() 79 | got = featurizer.featurize('bad day', Tokenizer(allcapskeep=False)) 80 | expected = [0.831 + 0.395, -0.751] 81 | 82 | self.assertListEqual( 83 | expected, 84 | got, 85 | msg='Expected: {} != Got: {}'.format(expected, got) 86 | ) 87 | 88 | 89 | class TestNRCEmotionFeaturizer(TestCase): 90 | def test_featurizer(self): 91 | featurizer = NRCEmotionFeaturizer() 92 | got = featurizer.featurize('bad', Tokenizer(allcapskeep=False)) 93 | expected = [1, 0, 1, 1, 0, 1, 0, 1, 0, 0] 94 | 95 | self.assertListEqual( 96 | expected, 97 | got, 98 | msg='Expected: {} != Got: {}'.format(expected, got) 99 | ) 100 | 101 | 102 | class TestNRCAffectIntensityFeaturizer(TestCase): 103 | def test_featurizer(self): 104 | featurizer = NRCAffectIntensityFeaturizer() 105 | got = featurizer.featurize('bad', Tokenizer(allcapskeep=False)) 106 | expected = [0.453, 0.0, 0.0, 0.375, 0.0, 0.0, 0.0, 0.422, 0.0, 0.0] 107 | 108 | self.assertListEqual( 109 | expected, 110 | got, 111 | msg='Expected: {} != Got: {}'.format(expected, got) 112 | ) 113 | 114 | 115 | class TestNRCExpandedEmotionFeaturizer(TestCase): 116 | def test_featurizer(self): 117 | featurizer = NRCExpandedEmotionFeaturizer() 118 | got = featurizer.featurize('!', Tokenizer(allcapskeep=False)) 119 | expected = [0.0329545883908009, 0.10252551320880843, 0.0396174509579299, 0.02163596069596282, 120 | 0.18454179292881, 0.07689066037386351, 0.3002052242222958, 0.005777398957777484, 121 | 0.042446558283882, 0.03611382219459458] 122 | 123 | self.assertListEqual( 124 | expected, 125 | got, 126 | msg='Expected: {} != Got: {}'.format(expected, got) 127 | ) 128 | 129 | 130 | class TestNRCHashtagEmotionFeaturizer(TestCase): 131 | def test_featurizer(self): 132 | featurizer = NRCHashtagEmotionFeaturizer() 133 | got = featurizer.featurize('#badass', Tokenizer(allcapskeep=False)) 134 | expected = [0.00852973401896, 0.0, 0.0, 0.376417244806, 0.0, 0.0, 0.0, 0.0, 0.826006600008, 0.0] 135 | 136 | self.assertListEqual( 137 | expected, 138 | got, 139 | msg='Expected: {} != Got: {}'.format(expected, got) 140 | ) 141 | 142 | 143 | class TestSentiStrengthFeaturizer(TestCase): 144 | def test_featurizer(self): 145 | featurizer = SentiStrengthFeaturizer() 146 | got = featurizer.featurize('good day', Tokenizer(allcapskeep=False)) 147 | expected = [2, -1] 148 | 149 | self.assertListEqual( 150 | expected, 151 | got, 152 | msg='Expected: {} != Got: {}'.format(expected, got) 153 | ) 154 | 155 | 156 | class TestSentiWordNetFeaturizer(TestCase): 157 | def test_featurizer(self): 158 | featurizer = SentiWordNetFeaturizer() 159 | got = featurizer.featurize('awesome', Tokenizer(allcapskeep=False)) 160 | expected = [0.875 - 0.125, 0.0] 161 | 162 | self.assertListEqual( 163 | expected, 164 | got, 165 | msg='Expected: {} != Got: {}'.format(expected, got) 166 | ) 167 | 168 | 169 | class TestNegationFeaturizer(TestCase): 170 | def test_featurizer(self): 171 | featurizer = NegationFeaturizer() 172 | got = featurizer.featurize('i don\'t like it', Tokenizer(allcapskeep=False)) 173 | expected = [1] 174 | 175 | self.assertListEqual( 176 | expected, 177 | got, 178 | msg='Expected: {} != Got: {}'.format(expected, got) 179 | ) 180 | 181 | 182 | class TestEdinburghEmbeddingFeaturizer(TestCase): 183 | def test_featurizer(self): 184 | featurizer = EdinburghEmbeddingsFeaturizer() 185 | got = featurizer.featurize('i don\'t like it', Tokenizer(allcapskeep=False)) 186 | self.assertTrue(len(got) == 100) 187 | 188 | 189 | class TestEmojiEmbeddingFeaturizer(TestCase): 190 | def test_featurizer(self): 191 | featurizer = EmojiEmbeddingsFeaturizer() 192 | got = featurizer.featurize('😂', Tokenizer(allcapskeep=False)) 193 | self.assertTrue(len(got) == 300) 194 | 195 | 196 | from emoint.utils.utils import LIWCTrie 197 | 198 | 199 | class TestTrie(TestCase): 200 | def test_trie(self): 201 | trie = LIWCTrie() 202 | trie.insert('abuse*', [4, 5, 6]) 203 | trie.insert('abilit*', [1, 2, 3]) 204 | trie.insert('band', [7, 8, 9]) 205 | 206 | self.assertTrue(trie.in_trie('abuse'), "abuse should be in trie") 207 | self.assertTrue(trie.in_trie('ability'), "ability should be in trie") 208 | self.assertTrue(trie.in_trie('band'), "band should be in trie") 209 | self.assertFalse(trie.in_trie('ban'), "ban shouldn't be in trie") 210 | self.assertFalse(trie.in_trie('abus'), "abus shouldn't be in trie") 211 | 212 | self.assertListEqual(trie.get('abuse'), [4, 5, 6]) 213 | self.assertListEqual(trie.get('ability'), [1, 2, 3]) 214 | self.assertListEqual(trie.get('band'), [7, 8, 9]) 215 | self.assertIsNone(trie.get('ban')) 216 | self.assertIsNone(trie.get('abus')) 217 | 218 | 219 | class TestLIWCFeaturizer(TestCase): 220 | def test_featurizer(self): 221 | featurizer = LIWCFeaturizer() 222 | got = featurizer.featurize('', Tokenizer(allcapskeep=False)) 223 | self.assertEqual(len(got), 80) 224 | 225 | 226 | class TestEmojiSentimentRanking(TestCase): 227 | def test_featurizer(self): 228 | featurizer = EmojiSentimentRanking() 229 | got = featurizer.featurize('😂', Tokenizer(allcapskeep=False)) 230 | expected = [0.24716181096977158, 0.46813021474490496, 0.28470797428532346] 231 | self.assertListEqual( 232 | expected, 233 | got, 234 | msg='Expected: {} != Got: {}'.format(expected, got) 235 | ) 236 | -------------------------------------------------------------------------------- /emoint/utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SEERNET/EmoInt/e73ca6ef117d9f5a7738d47d6d91de0a88e5b03e/emoint/utils/__init__.py -------------------------------------------------------------------------------- /emoint/utils/reformat.py: -------------------------------------------------------------------------------- 1 | import gzip 2 | import sys 3 | from collections import defaultdict 4 | 5 | """ 6 | Utility functions to reformat downloaded resources 7 | """ 8 | 9 | 10 | def reformat(inp_path='emoint/resources/NRC-emotion-lexicon-wordlevel-v0.92.txt.gz', 11 | out_path='emoint/resources/NRC-emotion-lexicon-wordlevel-v0.92.txt.gz'): 12 | """ 13 | Function to reformat data downloaded from http://saifmohammad.com/WebPages/lexicons.html 14 | :param inp_path: The input path where the data is present 15 | :param out_path: Optional. 16 | :return: 17 | """ 18 | dd = defaultdict(lambda: defaultdict(float)) 19 | data = gzip.open(inp_path).read().splitlines() 20 | 21 | for x in data: 22 | x = x.split('\t') 23 | dd[x[0]][x[1]] = float(x[2]) 24 | 25 | with gzip.open(out_path, 'wb') as f: 26 | headers = dd.items()[0][1].keys() 27 | headers.sort() 28 | headers = ['word'] + headers 29 | f.write('\t'.join(headers) + '\n') 30 | 31 | for x in dd.keys(): 32 | sorted_vals = dd[x].items() 33 | sorted_vals.sort() 34 | vals = [str(y[1]) for y in sorted_vals] 35 | vals = [x] + vals 36 | f.write('\t'.join(vals) + '\n') 37 | 38 | 39 | if __name__ == '__main__': 40 | if len(sys.argv) == 2: 41 | reformat(sys.argv[1]) 42 | elif len(sys.argv) == 3: 43 | reformat(sys.argv[1], sys.argv[2]) 44 | else: 45 | print("USAGE: python reformat.py /input/path/ /output/path/") 46 | -------------------------------------------------------------------------------- /emoint/utils/utils.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | 4 | def list_files(base_path, predicate): 5 | for folder, subs, files in os.walk(base_path): 6 | for filename in files: 7 | if predicate(os.path.join(folder, filename)): 8 | yield (os.path.join(folder, filename)) 9 | 10 | 11 | class LIWCTrie: 12 | def __init__(self): 13 | self.root = dict() 14 | self.end = '$' 15 | self.cont = '*' 16 | 17 | def insert(self, word, categories): 18 | """ 19 | Insert liwc word and categories in trie 20 | :param word: word to insert 21 | :param categories: liwc categories 22 | :return: None 23 | """ 24 | if len(word) == 0: 25 | return 26 | curr_dict = self.root 27 | for letter in word[:-1]: 28 | curr_dict = curr_dict.setdefault(letter, {}) 29 | if word[-1] != self.cont: 30 | curr_dict = curr_dict.setdefault(word[-1], {}) 31 | curr_dict[self.end] = categories 32 | else: 33 | curr_dict[self.cont] = categories 34 | 35 | def in_trie(self, word): 36 | """ 37 | Query if a word is in trie or not 38 | :param word: query word 39 | :return: True if word is present otherwise False 40 | """ 41 | curr_dict = self.root 42 | for letter in word: 43 | if letter in curr_dict: 44 | curr_dict = curr_dict[letter] 45 | elif self.cont in curr_dict: 46 | return True 47 | else: 48 | return False 49 | if self.cont in curr_dict or self.end in curr_dict: 50 | return True 51 | else: 52 | return False 53 | 54 | def get(self, word): 55 | """ 56 | get value stored against word 57 | :param word: word to search 58 | :return: list of categories if word is in query otherwise None 59 | """ 60 | curr_dict = self.root 61 | for letter in word: 62 | if letter in curr_dict: 63 | curr_dict = curr_dict[letter] 64 | elif self.cont in curr_dict: 65 | return curr_dict[self.cont] 66 | else: 67 | return None 68 | if self.cont in curr_dict or self.end in curr_dict: 69 | if self.cont in curr_dict: 70 | return curr_dict[self.cont] 71 | else: 72 | return curr_dict[self.end] 73 | else: 74 | return None 75 | 76 | def __getitem__(self, item): 77 | return self.get(item) 78 | 79 | def __contains__(self, item): 80 | return self.in_trie(item) 81 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | --trusted-host pypi.deepaffects.com 2 | Cython 3 | xgboost 4 | sklearn 5 | pandas 6 | scipy 7 | numpy 8 | pyjnius 9 | nltk 10 | tweetokenize==1.0.1 11 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | from setuptools import setup, find_packages 2 | from codecs import open 3 | from os import path 4 | 5 | try: # for pip >= 10 6 | from pip._internal.req import parse_requirements 7 | except ImportError: # for pip <= 9.0.3 8 | from pip.req import parse_requirements 9 | 10 | here = path.abspath(path.dirname(__file__)) 11 | 12 | with open(path.join(here, 'README.md'), encoding='utf-8') as f: 13 | long_description = f.read() 14 | 15 | install_reqs = parse_requirements('requirements.txt', session='session') 16 | reqs = [str(ir.req) for ir in install_reqs] 17 | 18 | setup( 19 | name='EmoInt', 20 | version='0.1.3', 21 | description='Affective Computing', 22 | long_description=long_description, 23 | url='https://github.com/seernet/EmoInt', 24 | author='Venkatesh Duppada', 25 | author_email='venkatesh.duppada@seernet.io', 26 | license='GPLv3', 27 | classifiers=[ 28 | 'Development Status :: 3 - Alpha', 29 | 'Intended Audience :: Developers', 30 | 'Topic :: Software Development :: Build Tools', 31 | 'License :: OSI Approved :: GNU General Public License v3 (GPLv3)', 32 | 'Programming Language :: Python :: 2', 33 | 'Programming Language :: Python :: 2.7', 34 | ], 35 | keywords='sentiment emotion affective computing machine learning', 36 | packages=find_packages(), 37 | setup_requires=[ 38 | ], 39 | install_requires=reqs, 40 | extras_require={}, 41 | package_data={ 42 | 'emoint': ['resources/*gz', 'resources/*csv', 'resources/*dic', 'resources/*jar', 'resources/NRC-Hashtag-Sentiment-Lexicon-v0.1/*', 'resources/SentiStrength/*', 43 | 'resources/Sentiment140-Lexicon-v0.1/*', 'resources/emoint/*'] 44 | }, 45 | data_files=[], 46 | entry_points={}, 47 | ) 48 | --------------------------------------------------------------------------------