Dart Sentiment

Flutter Community: dart_sentiment

pub package

基于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 开发者

pub package twitter website

GitHub

查看 Github