Example #1
0
    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],