数据帧的情感分析



我有一个项目,涉及根据形容词确定文本的情感。要使用的数据帧是我派生的形容词列,如下所示:

def getAdjectives(text):
blob=TextBlob(text)
return [ word for (word,tag) in blob.tags if tag == "JJ"]
dataset['adjectives'] = dataset['text'].apply(getAdjectives)`

我使用以下代码从json文件中获得了数据帧:

with open('reviews.json') as project_file:    
data = json.load(project_file)
dataset=pd.json_normalize(data) 
print(dataset.head()) 

我已经使用以下代码对数据帧进行了情绪分析:

dataset[['polarity', 'subjectivity']] = dataset['text'].apply(lambda text: pd.Series(TextBlob(text).sentiment))
print(dataset[['adjectives', 'polarity']])

这是输出:

adjectives  polarity
0                                                 []  0.333333
1  [right, mad, full, full, iPad, iPad, bad, diff...  0.209881
2                             [stop, great, awesome]  0.633333
3                                          [awesome]  0.437143
4                        [max, high, high, Gorgeous]  0.398333
5                                     [decent, easy]  0.466667
6  [it’s, bright, wonderful, amazing, full, few...  0.265146
7                                       [same, same]  0.000000
8         [old, little, Easy, daily, that’s, late]  0.161979
9                       [few, huge, storage.If, few]  0.084762

代码没有问题,只是我希望它输出每个形容词的极性和形容词,比如right、0.00127、mad、-0.9888,即使它们在数据帧的同一行。

试试这个:

dataset = dataset.explode("adjectives")

请注意,[]将产生一个np.NaN行,您可能希望在此之前/之后删除该行。

最新更新