我正在用 c# 做项目,我正在寻找可以帮助我根据表情符号检查句子是积极的、消极的还是模糊的代码。
例如:
- 我爱我的国家 :) - (正面)因为它包含快乐的笑脸
- 我爱我的国家 :( - (负面) 因为它包含悲伤的笑脸
- 天气很好:( :) -(模糊)因为它包含两个笑脸,所以很难判断它是积极的还是消极的。
- 我不想上大学 :( :) :) -(积极)因为它包含两个快乐的笑脸和一个悲伤的笑脸。
我的项目领域是情绪分析。
我正在用 c# 做项目,我正在寻找可以帮助我根据表情符号检查句子是积极的、消极的还是模糊的代码。
例如:
我的项目领域是情绪分析。
另一个正则表达式;)
string input = "I don't want to go to College :( :) :) ";
var score = Regex.Matches(input, @"(?<a>:\))|(?<b>:\()")
.Cast<Match>()
.Select(m => m.Groups["a"].Success ? 1 : -1)
.Sum();
var upScore = Regex.Matches(input, @":\)").Count;
var downScore = Regex.Matches(input, @":\(").Count;
var totalScore = upScore - downScore;
尽管在 a 中使用副作用是一种不好的做法MatchEvaluator
,但您也可以使用Regex.Replace
来对字符串进行单次传递:
var score = 0;
MatchEvaluator match = m =>
{
score += m.Value[1] == ')' ? 1 : -1;
return m.Value;
};
Regex.Replace(input, ":[()]", match);