-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathsentClassifier.py
76 lines (44 loc) · 1.2 KB
/
sentClassifier.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#! /usr/bin/env python
# -*- coding: UTF-8 -*-
"""
Given a sentence, classify that sentence into
+1 : positive
0 : neutral
-1 : negative
"""
from __future__ import division
import nltk
from cPickle import load
import extractor
def tokenizeReviewsBySentence(revStr):
return nltk.tokenize.sent_tokenize(revStr)
def getReviewSentiment(tknRevs, classifier):
revAggSentiment = 0
for sent in tknRevs:
sent = unicode(sent.strip())
featdata = extractor.featureExtractor(sent)
cl= classifier.classify(featdata)
if cl == 'pos':
label = 1
elif cl == 'neutral':
label = 0
else:
label = -1
revAggSentiment += label
return revAggSentiment
def sentClassify(sentStr):
"""
Given a sentence string, classify the sentence
"""
tokenizedReviews = tokenizeReviewsBySentence(sentStr)
## load the classifier pickle
fObj = open('mySentClassifier.pickle')
cl = load(fObj)
fObj.close()
revSent = getReviewSentiment(tokenizedReviews, cl)
return revSent
def main():
sent = sentClassify("This is a great app. I love it. ")
print sent
if __name__ == '__main__':
main()