-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathsentiments.py
126 lines (95 loc) · 2.42 KB
/
sentiments.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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
from nltk.corpus import sentiwordnet as swn
import nltk
import os
from nltk.stem import WordNetLemmatizer
lemma = WordNetLemmatizer()
directory = "./aclImdb/train/pos"
dir = os.fsencode(directory)
scores = {}
count = {}
for file in os.listdir(dir):
filename = os.fsdecode(file)
f = open(directory+'/' + filename,'r')
text = f.read()
tagged = nltk.pos_tag(text.split())
for i in tagged:
x,y = i
if 'JJ' in y or 'RB' in y:
r = x.lower()
r = lemma.lemmatize(r)
if r not in scores.keys():
scores[r] = 1
count[r] = 1
else:
scores[r] += 1
count[r] += 1
directory = "./aclImdb/train/neg"
dir = os.fsencode(directory)
for file in os.listdir(dir):
filename = os.fsdecode(file)
f = open(directory+'/' + filename,'r')
text = f.read()
tagged = nltk.pos_tag(text.split())
for i in tagged:
x,y = i
if 'JJ' in y or 'RB' in y:
r = x.lower()
r = lemma.lemmatize(r)
if r not in scores.keys():
scores[r] = -1
count[r] = 1
else:
scores[r] += -1
count[r] += 1
countNeg = 0
countPos = 0
for x,y in scores.items():
if y < 0:
countNeg += y
else:
countPos +=y
for x, y in scores.items():
if y < 0:
scores[x] = -1 * (y / countNeg)
else:
scores[x] = y / countPos
directory = "./aclImdb/test/neg"
dir = os.fsencode(directory)
total = 0
right= 0
for file in os.listdir(dir):
localscore = 0
total +=1
filename = os.fsdecode(file)
f = open(directory+'/' + filename,'r')
text = f.read()
text = text.split()
for i in text:
r = i.lower()
r = lemma.lemmatize(r)
if r in scores.keys():
localscore += scores[r]
if localscore < 0:
right +=1
print("Negative:")
print(right/total)
directory = "./aclImdb/test/pos"
dir = os.fsencode(directory)
total = 0
right= 0
for file in os.listdir(dir):
localscore = 0
total +=1
filename = os.fsdecode(file)
f = open(directory+'/' + filename,'r')
text = f.read()
text = text.split()
for i in text:
r = i.lower()
r = lemma.lemmatize(r)
if r in scores.keys():
localscore += scores[r]
if localscore > 0:
right +=1
print("Positive:")
print(right/total)