#ifndef FILTER_HPP #define FILTER_HPP #include #include #include enum MessageType { kSpam = 0, kHam = 1, kUnknown = 2, }; struct SMSMessage { SMSMessage(MessageType given_type, std::string given_message); MessageType actual_type; std::string message; MessageType filter_type; }; class SMSMessageFilter { public: SMSMessageFilter(void) = default; ~SMSMessageFilter(void) = default; void GenerateProbability(std::string file_name); void Filter(std::string file_name); void PrintReport(void); private: double sentence_probability_ham = 0.5; // Spam is 1 - sentence_probability_ham std::map probability_dictionary; std::vector filtered_messages; }; #endif // !FILTER_HPP