private void SetParameterForNextNode() { var spamMessageTrue = new List <string>(); var spamMessageFalse = new List <string>(); var hamMessageTrue = new List <string>(); var hamMessageFalse = new List <string>(); foreach (var list in ActualMessages) { foreach (var message in list) { var isSpam = IsSpam(message); switch (ActualProp) { case Properties.Xxx: if (message.XXX && isSpam) { spamMessageTrue.Add(message.Text); } if (message.XXX && !isSpam) { hamMessageTrue.Add(message.Text); } if (!message.XXX && isSpam) { spamMessageFalse.Add(message.Text); } if (!message.XXX && !isSpam) { hamMessageFalse.Add(message.Text); } break; case Properties.Free: if (message.Free && isSpam) { spamMessageTrue.Add(message.Text); } if (message.Free && !isSpam) { hamMessageTrue.Add(message.Text); } if (!message.Free && isSpam) { spamMessageFalse.Add(message.Text); } if (!message.Free && !isSpam) { hamMessageFalse.Add(message.Text); } break; case Properties.Money: if (message.Money && isSpam) { spamMessageTrue.Add(message.Text); } if (message.Money && !isSpam) { hamMessageTrue.Add(message.Text); } if (!message.Money && isSpam) { spamMessageFalse.Add(message.Text); } if (!message.Money && !isSpam) { hamMessageFalse.Add(message.Text); } break; case Properties.UpperCase: if (message.UpperCase && isSpam) { spamMessageTrue.Add(message.Text); } if (message.UpperCase && !isSpam) { hamMessageTrue.Add(message.Text); } if (!message.UpperCase && isSpam) { spamMessageFalse.Add(message.Text); } if (!message.UpperCase && !isSpam) { hamMessageFalse.Add(message.Text); } break; case Properties.TelephoneNumber: if (message.FollowingNumbers && isSpam) { spamMessageTrue.Add(message.Text); } if (message.FollowingNumbers && !isSpam) { hamMessageTrue.Add(message.Text); } if (!message.FollowingNumbers && isSpam) { spamMessageFalse.Add(message.Text); } if (!message.FollowingNumbers && !isSpam) { hamMessageFalse.Add(message.Text); } break; case Properties.Url: if (message.HyperLink && isSpam) { spamMessageTrue.Add(message.Text); } if (message.HyperLink && !isSpam) { hamMessageTrue.Add(message.Text); } if (!message.HyperLink && isSpam) { spamMessageFalse.Add(message.Text); } if (!message.HyperLink && !isSpam) { hamMessageFalse.Add(message.Text); } break; case Properties.Apostroph: if (message.Apostroph && isSpam) { spamMessageTrue.Add(message.Text); } if (message.Apostroph && !isSpam) { hamMessageTrue.Add(message.Text); } if (!message.Apostroph && isSpam) { spamMessageFalse.Add(message.Text); } if (!message.Apostroph && !isSpam) { hamMessageFalse.Add(message.Text); } break; case Properties.NotDefined: break; default: throw new ArgumentOutOfRangeException(); } } } var foldCrossValidation = new FoldCrossValidation(); foldCrossValidation.CreateDataPackage(spamMessageFalse, hamMessageFalse); NewMessagesFalse = foldCrossValidation.DataSetPackages; foldCrossValidation = new FoldCrossValidation(); foldCrossValidation.CreateDataPackage(spamMessageTrue, hamMessageTrue); NewMessagesTrue = foldCrossValidation.DataSetPackages; NewHamCountFalse = hamMessageFalse.Count; NewHamCountTrue = hamMessageTrue.Count; NewSpamCountFalse = spamMessageFalse.Count; NewSpamCountTrue = spamMessageTrue.Count; }
public MessageClassifier(FoldCrossValidation messages) { this.Messages = messages.DataSetPackages; }