dart_sentiment 0.0.5 copy "dart_sentiment: ^0.0.5" to clipboard
dart_sentiment: ^0.0.5 copied to clipboard

outdated

Dart Sentiment is a dart module that uses the AFINN-165 wordlist and Emoji Sentiment Ranking to perform sentiment analysis on arbitrary blocks of input text.

Dart Sentiment #

Flutter Community: dart_sentiment

pub package

AFINN-based sentiment analysis for dart

Dart Sentiment is a dart package that uses the AFINN-165 wordlist and Emoji Sentiment Ranking to perform sentiment analysis on arbitrary blocks of input text. Dart Sentiment provides several things:

  • Provide Language support for English, Italian, French and German.
  • Provide support for various emojis.
  • Based on analysis of text, provide an integer value in the range -n to +n (see details below)

Installation #

add following dependency to your pubspec.yaml


dependencies:  
	dart_sentiment: <latest-version>
	

Example #

import 'package:dart_sentiment/dart_sentiment.dart';  
  
void main() {  
  final sentiment = Sentiment();  
  
  print(sentiment.analysis("The cake she made was terrible 😐"));  
  
  print(sentiment.analysis("The cake she made was terrible 😐", emoji: true));  
  
  print(sentiment.analysis("I love cats, but I am allergic to them.",));  
  
  print(sentiment.analysis("J'adore les chats, mais j'y suis allergique.",  
  languageCode: LanguageCode.french));  
  
  print(sentiment.analysis("Le gâteau qu'elle a fait était horrible 😐",  
  emoji: true, languageCode: LanguageCode.french));  
}

Function defination #

Param Description
String text Input phrase to analyze
bool emoji = false Input emoji is present in the phrase to analyze
LanguageCode languageCode = LanguageCode.english Language to use for sentiment analysis. LanguageCode { english, italian, french, german }

How it works #

AFINN #

AFINN is a list of words rated for valence with an integer between minus five (negative) and plus five (positive). Sentiment analysis is performed by cross-checking the string tokens (words, emojis) with the AFINN list and getting their respective scores. The comparative score is simply: sum of each token / number of tokens. So for example let's take the following:

I love cats, but I am allergic to them.

That string results in the following:

{
	score: 1,  
	comparative: 0.1111111111111111,  
	tokens: [  
		"i",  
		"love",  
		"cats",  
		"but",  
		"i",  
		"am",  
		"allergic",  
		"to",  
		"them"  
	],  
	positive: [[love, 3]],  
	negative: [[allergic, 2]]  
}  
  • Returned Objects
    • Score: Score calculated by adding the sentiment values of recognized words.
    • Comparative: Comparative score of the input string.
    • Token: All the tokens like words or emojis found in the input string.
    • Words: List of words from input string that were found in AFINN list.
    • Positive: List of positive words in input string that were found in AFINN list.
    • Negative: List of negative words in input string that were found in AFINN list.

In this case, love has a value of 3, allergic has a value of -2, and the remaining tokens are neutral with a value of 0. Because the string has 9 tokens the resulting comparative score looks like: (3 + -2) / 9 = 0.111111111

This approach leaves you with a mid-point of 0 and the upper and lower bounds are constrained to positive and negative 5 respectively. For example, let's imagine an incredibly "positive" string with 200 tokens and where each token has an AFINN score of 5. Our resulting comparative score would look like this:

(max positive score * number of tokens) / number of tokens  
(5 * 200) / 200 = 5  

Contribute #

If you have any suggestions, improvements or issues, feel free to contribute to this project. You can either submit a new issue or propose a pull request. Direct your pull requests into the dev branch.

License #

Dart Sentiment is released under the MIT License

Credit #

Dart Sentiment inspired by the Javascript package sentiment

About me #

I am India based flutter developer

pub package twitter website

35
likes
0
points
128
downloads

Publisher

unverified uploader

Weekly Downloads

Dart Sentiment is a dart module that uses the AFINN-165 wordlist and Emoji Sentiment Ranking to perform sentiment analysis on arbitrary blocks of input text.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, remove_emoji

More

Packages that depend on dart_sentiment