-6

我正在用 c# 做项目,我正在寻找可以帮助我根据表情符号检查句子是积极的、消极的还是模糊的代码。

例如:

  1. 我爱我的国家 :) - (正面)因为它包含快乐的笑脸
  2. 我爱我的国家 :( - (负面) 因为它包含悲伤的笑脸
  3. 天气很好:( :) -(模糊)因为它包含两个笑脸,所以很难判断它是积极的还是消极的。
  4. 我不想上大学 :( :) :) -(积极)因为它包含两个快乐的笑脸和一个悲伤的笑脸。

我的项目领域是情绪分析。

4

2 回答 2

2

另一个正则表达式;)

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();
于 2013-04-07T15:46:11.767 回答
1

利用Regex.Matches

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);
于 2013-04-07T15:05:09.520 回答