def classify(self, data): post_probability = {} for label, probability in self.label_probabilities.iteritems(): words = re.compile('\w+').findall(data.text) post_probability[label] = reduce( lambda acc, word: acc + math.log( self.parameters.probability(word, label), 10), words, math.log(probability)) return data, max(post_probability.iteritems(), key=operator.itemgetter(1))[0] test_dir = sys.argv[1] loader = ReviewLoader() # truthful = loader.load(test_dir + "/negative/truthful", 'truthful') \ # + loader.load(test_dir + "/positive/truthful", 'truthful') # deceptive = loader.load(test_dir + "/negative/deceptive", 'deceptive') \ # + loader.load(test_dir + "/positive/deceptive", 'deceptive') # positive = loader.load(test_dir + '/positive', 'positive') # negative = loader.load(test_dir + '/negative', 'negative') # # test_data1 = truthful + deceptive # test_data2 = positive + negative test_data = loader.load_without_label(test_dir) model_params = ParameterReader('nbmodel.txt').read(2) deceptive_model_params = model_params[0] negative_model_params = model_params[1] deception_classifier = NaiveClassifier(deceptive_model_params[0],