Dart Sentiment
基于AFINN的Dart情感分析
Dart Sentiment 是一个 Dart 包,它使用
一个 AFINN-165
词汇表
和 表情符号情感排名
来对任意
文本块执行情感分析。Dart Sentiment 提供了多种功能
- 支持英语、意大利语、法语和德语。
- 支持各种表情符号。
- 基于文本分析,提供一个介于 -n 和 +n 之间的整数值(详情见下文)
安装
将以下依赖项添加到您的 pubspec.yaml 文件中
dependencies:
dart_sentiment: <latest-version>
示例
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));
}
函数定义
| 参数 | 描述 |
|---|---|
String text |
要分析的输入短语 |
bool emoji = false |
输入短语中是否存在表情符号用于分析 |
LanguageCode languageCode = LanguageCode.english |
用于情感分析的语言。 LanguageCode { english, italian, french, german } |
工作原理
AFINN
AFINN 是一个词汇列表,其正面值为介于负五(负面)和正
五(正面)之间的整数。情感分析通过将字符串标记(单词、表情符号)
与 AFINN 列表进行交叉检查并获取其相应分数来执行。相对分数的计算
方式为:每个标记的总和 / 标记数。例如,让我们看以下
我爱猫,但我对它们过敏。
该字符串得到以下结果
{
score: 1,
comparative: 0.1111111111111111,
tokens: [
"i",
"love",
"cats",
"but",
"i",
"am",
"allergic",
"to",
"them"
],
positive: [[love, 3]],
negative: [[allergic, 2]]
}
- 返回对象
- Score: 通过加总识别出的词语的情感值来计算的分数。
- Comparative: 输入字符串的相对分数。
- Token: 在输入字符串中找到的所有标记,如单词或表情符号。
- Words: 在 AFINN 列表中找到的输入字符串中的单词列表。
- Positive: 在 AFINN 列表中找到的输入字符串中的正面词语列表。
- Negative: 在 AFINN 列表中找到的输入字符串中的负面词语列表。
在这种情况下,“love”的值为 3,“allergic”的值为 -2,其余标记
为中性,值为 0。因为字符串有 9 个标记,所以相对分数的计算
如下:(3 + -2) / 9 = 0.111111111
这种方法使您的中点为 0,而上限和下限分别约束为
正五和负五。例如,假设有一个极其“正面”的字符串
包含 200 个标记,每个标记的 AFINN 分数为 5。我们的相对分数将
如下计算:
(max positive score * number of tokens) / number of tokens
(5 * 200) / 200 = 5
贡献
如果您有任何建议、改进或遇到的问题,请随时为本项目做出贡献。您可以
提交新的 issue 或提议一个 pull request。请将您的 pull request 指向 dev
分支。
许可证
Dart Sentiment 在
此 MIT 许可下发布
致谢
Dart Sentiment 的灵感来自 JavaScript
包 sentiment
关于我
我是一名印度 Flutter 开发者