Skip to content

Commit c9b9ba9

Browse files
committed
commiting sentiment analysis using IBM waston NLU
1 parent 31ab632 commit c9b9ba9

File tree

1 file changed

+89
-0
lines changed

1 file changed

+89
-0
lines changed

sentiment_analysis.py

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
#By Haoran Zhang
2+
from watson_developer_cloud import NaturalLanguageUnderstandingV1
3+
from watson_developer_cloud.natural_language_understanding_v1 \
4+
import Features, EntitiesOptions, KeywordsOptions, EmotionOptions, SentimentOptions
5+
import pandas as pd
6+
7+
natural_language_understanding = NaturalLanguageUnderstandingV1(
8+
username='{username}',
9+
password='{password}',
10+
version='2018-03-16')
11+
12+
data = pd.read_csv("all_result.csv")
13+
sadness=[]
14+
joy=[]
15+
fear=[]
16+
disgust=[]
17+
anger=[]
18+
sentiment_score=[]
19+
p_sadness=[]
20+
p_joy=[]
21+
p_fear=[]
22+
p_disgust=[]
23+
p_anger=[]
24+
p_sentiment_score=[]
25+
j = 0
26+
for i in data['body']:
27+
print("Analyzing original post:",j)
28+
j=j + 1
29+
try:
30+
response = natural_language_understanding.analyze(
31+
text=i,
32+
features=Features(
33+
emotion=EmotionOptions(
34+
document=True),
35+
sentiment=SentimentOptions(
36+
document=True)))
37+
sadness.append(response['emotion']['document']['emotion']['sadness'])
38+
joy.append(response['emotion']['document']['emotion']['joy'])
39+
fear.append(response['emotion']['document']['emotion']['fear'])
40+
disgust.append(response['emotion']['document']['emotion']['disgust'])
41+
anger.append(response['emotion']['document']['emotion']['anger'])
42+
sentiment_score.append(response['sentiment']['document']['score'])
43+
except:
44+
sadness.append('NA')
45+
joy.append('NA')
46+
fear.append('NA')
47+
disgust.append('NA')
48+
anger.append('NA')
49+
sentiment_score.append('NA')
50+
data['sadness']=sadness
51+
data['joy']=joy
52+
data['fear']=fear
53+
data['disgust']=disgust
54+
data['anger']=anger
55+
data['sentiment_score']=sentiment_score
56+
57+
j = 0
58+
for i in data['p_body']:
59+
print("Analyzing parent posts:",j)
60+
j=j + 1
61+
try:
62+
response = natural_language_understanding.analyze(
63+
text=i,
64+
features=Features(
65+
emotion=EmotionOptions(
66+
document=True),
67+
sentiment=SentimentOptions(
68+
document=True)))
69+
p_sadness.append(response['emotion']['document']['emotion']['sadness'])
70+
p_joy.append(response['emotion']['document']['emotion']['joy'])
71+
p_fear.append(response['emotion']['document']['emotion']['fear'])
72+
p_disgust.append(response['emotion']['document']['emotion']['disgust'])
73+
p_anger.append(response['emotion']['document']['emotion']['anger'])
74+
p_sentiment_score.append(response['sentiment']['document']['score'])
75+
except:
76+
p_sadness.append('NA')
77+
p_joy.append('NA')
78+
p_fear.append('NA')
79+
p_disgust.append('NA')
80+
p_anger.append('NA')
81+
p_sentiment_score.append('NA')
82+
data['p_sadness']=p_sadness
83+
data['p_joy']=p_joy
84+
data['p_fear']=p_fear
85+
data['p_disgust']=p_disgust
86+
data['p_anger']=p_anger
87+
data['p_sentiment_score']=p_sentiment_score
88+
89+
data.to_csv('all_result1.csv')

0 commit comments

Comments
 (0)