Пример #1
0
    def run(self):

        #Calling the ReviewsExtractor class to read the csv file
        #and extract,concatenate the reviews
        rev = ReviewsExtractor()
        rev.extract_review_content()
        total_content = rev.get_concatenated_reviews()

        f = FeatureExtractor(total_content)

        self.features = f.get_frequent_features_list(self.min_support)

        o = OpinionSentenceCollector(self.features, f.feature_sentences)

        for feature in o.opinion_features:
            self.ratings[feature] = {'positive': 0, 'negative': 0, 'neutral': 0, 'total_reviews': 0, 'negative_review': '', 'positive_review': ''}

        for feature, sentiment_score, sentence in o.opinion_sentences:
            self.ratings[feature]['total_reviews'] += 1
            if sentiment_score > 0:
                self.ratings[feature]['positive'] += 1
                self.ratings[feature]['positive_review'] = sentence
            elif sentiment_score < 0:
                self.ratings[feature]['negative'] += 1
                self.ratings[feature]['negative_review'] = sentence
            else:
                self.ratings[feature]['neutral'] += 1

        for feature in o.opinion_features:
            self.final_features.append((feature,self.ratings[feature]['total_reviews']))

        self.sorted_features = sorted(set(self.final_features), key=lambda x: x[1], reverse=True)

        pp = pprint.PrettyPrinter(indent=4)

        print self.sorted_features
        print len(self.sorted_features)

        for index in range(0, 10):
            iter_feature = self.sorted_features[index][0]
            print "Feature: ", iter_feature
            pp.pprint(self.ratings[iter_feature])