在表情符号c#的基础上查找句子是正面的还是负面的

时间:2013-04-07 14:29:34

标签: c# sentiment-analysis emoticons

我正在用c#做项目,我正在寻找可以帮助我检查句子是正面还是负面的代码,或者基于表情符号来检查。

例如:

  1. 我爱我的国家:) - (正面),因为它包含快乐的笑脸
  2. 我爱我的国家:( - (负面)因为它含有悲伤的笑脸
  3. 天气很好:( :) - (模糊),因为它包含两个表情符号,因此无论是正面还是负面都很模糊。
  4. 我不想去大学:( :) :) - (正面),因为它包含两个快乐的表情和一个悲伤。
  5. 我的项目领域是情绪分析。

2 个答案:

答案 0 :(得分: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();

答案 1 :(得分:1)

使用Regex.Matches

var upScore = Regex.Matches(input, @":\)").Count;
var downScore = Regex.Matches(input, @":\(").Count;
var totalScore = upScore - downScore;

虽然在MatchEvaluator中使用副作用是不良做法,但您也可以使用Regex.Replace对字符串进行单次传递:

var score = 0;
MatchEvaluator match = m =>
{
    score += m.Value[1] == ')' ? 1 : -1;
    return m.Value;
};
Regex.Replace(input, ":[()]", match);