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