Dart Sentiment은 AFINN-165 단어 목록과 이모지 감성 순위를 사용하여 텍스트의 정서 분석을 수행하는 가벼운 Dart 패키지입니다. 입력 텍스트에 정서 점수를 할당하여 개발자가 사용자 생성 콘텐츠의 감정적 어조를 평가할 수 있도록 합니다. Android, iOS, Web, macOS, Windows, Linux 등 여러 플랫폼을 지원하며 실시간 감성 평가가 필요한 크로스플랫폼 애플리케이션에 적합합니다. 핵심 Dart 라이브러리 외에는 외부 종속성이 없으며 간단하고 효율적으로 설계되었습니다.
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';
voidmain() {
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:
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.