Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- smoothing_parameter = 0.369
- no_words_pos_rev = 0
- word_in_pos_rev ={}
- no_words_neg_rev = 0
- word_in_neg_rev ={}
- unique_words = set()
- label = 0
- for review in train_set:
- # review is positive
- if train_labels[label] == 1:
- for word in review:
- unique_words.add(word)
- no_words_pos_rev += 1
- if word in word_in_pos_rev:
- word_in_pos_rev[word] += 1
- else:
- word_in_pos_rev[word] = 1
- # review is negative
- else:
- for word in review:
- unique_words.add(word)
- no_words_neg_rev += 1
- if word in word_in_neg_rev:
- word_in_neg_rev[word] += 1
- else:
- word_in_neg_rev[word] = 1
- sentiment_of_reviews = []
- for review in dev_set:
- positive_sentiment = np.log(pos_prior)
- negative_sentiment = np.log(1-pos_prior)
- for word in review:
- denomenator_pos = no_words_pos_rev + smoothing_parameter*(len(unique_words)+1)
- denomenator_neg = no_words_neg_rev + smoothing_parameter*(len(unique_words)+1)
- if word in word_in_pos_rev:
- # P(word_i|Positive) = (number of times word occured in a positive review) / (number of words in positive reviews)
- positive_sentiment += np.log( (word_in_pos_rev[word] + np.log(smoothing_parameter) ) / denomenator_pos )
- else:
- positive_sentiment += np.log(smoothing_parameter/denomenator_pos)
- if word in word_in_neg_rev:
- negative_sentiment += np.log( (word_in_neg_rev[word] + np.log(smoothing_parameter) ) / denomenator_neg )
- else:
- negative_sentiment += np.log(smoothing_parameter/denomenator_neg)
- if positive_sentiment > negative_sentiment:
- sentiment_of_reviews.append(1)
- else:
- sentiment_of_reviews.append(0)
- print(sentiment_of_reviews)
- return sentiment_of_reviews
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement