using System.Collections.Generic;
public class SentimentAnalyzer
public static string ClassifyText(string text, Dictionary<string, Dictionary<string, int>> trainingData)
string[] words = text.Split(' ');
double positiveProbability = CalculateSentimentProbability(words, "positive", trainingData);
double negativeProbability = CalculateSentimentProbability(words, "negative", trainingData);
return positiveProbability >= negativeProbability ? "positive" : "negative";
private static double CalculateSentimentProbability(string[] words, string sentiment, Dictionary<string, Dictionary<string, int>> trainingData)
double probability = 1.0;
int totalWordsInSentiment = trainingData[sentiment].Values.Sum();
foreach (string word in words)
if (trainingData[sentiment].ContainsKey(word))
probability *= (double)trainingData[sentiment][word] / totalWordsInSentiment;
public static void Main(string[] args)
var trainingData = new Dictionary<string, Dictionary<string, int>>
"positive", new Dictionary<string, int>
"negative", new Dictionary<string, int>
string text1 = "good great awesome";
string prediction1 = ClassifyText(text1, trainingData);
Console.WriteLine($"Text: {text1}, Prediction: {prediction1}");
string text2 = "bad terrible awful";
string prediction2 = ClassifyText(text2, trainingData);
Console.WriteLine($"Text: {text2}, Prediction: {prediction2}");
string text3 = "good bad";
string prediction3 = ClassifyText(text3, trainingData);
Console.WriteLine($"Text: {text3}, Prediction: {prediction3}");
string text4 = "unknownword";
string prediction4 = ClassifyText(text4, trainingData);
Console.WriteLine($"Text: {text4}, Prediction: {prediction4}");
string prediction5 = ClassifyText(text5, trainingData);
Console.WriteLine($"Text: {text5}, Prediction: {prediction5}");