Как я могу выполнить анализ настроений, обратившись к кадру данных вместо CSV в python? - PullRequest
3 голосов
/ 10 апреля 2020

Я пытаюсь понять, как применить csv logi c к выводу кадра данных, который уже существует в моем сценарии.

анализ настроений на csv

import pandas as pd
import csv
from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer

with open('After.csv', "r", errors='ignore') as f:
    reader = csv.reader(f)
    your_list = list(reader)

analyser = SentimentIntensityAnalyzer()

def print_sentiment_scores(alist):
    for aSentence in alist: 
      aSnt = analyser.polarity_scores(aSentence[0])
      print(str(aSnt))

df_before = print_sentiment_scores(your_list)

print_sentiment_scores(your_list)


def print_sentiment_scores(alist):
    polarity_scores = []
    for aSentence in alist: 
        aSnt = analyser.polarity_scores(aSentence[0])
        print(str(aSnt))
        polarity_scores += [aSnt]

    return polarity_scores

output_df = pd.DataFrame(print_sentiment_scores(your_list))
output_df.to_csv('some_name.csv')

У меня есть кадр данных который имеет 4 столбца, один из которых имеет расшифровку

test3
Out[52]: 
     confidence  ... speaker
0          0.86  ...       0
1          0.91  ...       0
2          0.94  ...       0
3          0.86  ...       0
4          0.99  ...       0

[353 строки x 5 столбцов]

test3['transcript']
Out[51]: 
0      thank you for calling my name is Britney and h...
1      thank you %HESITATION and then %HESITATION you...
2                                what is last week this 
3      so did you want to cancel it effective the ten...
4                                           %HESITATION 

Name: transcript, Length: 353, dtype: object

Как применить вышеописанный сценарий анализа настроений к этим конкретным столбцам ( расшифровка) в фрейме данных test3?

1 Ответ

0 голосов
/ 11 апреля 2020

Используйте to_list () , чтобы преобразовать столбец и применить вашу функцию, в этом примере я использовал функцию 'f', поскольку вы не предоставляете пример данных.

import pandas as pd

df = pd.DataFrame({'A': ['aba', 'flower'], 'B': ['we search stackoverflow', 'good question']})
print('Print dataframe content:', df)


def print_sentiment_scores(x):
    return x +' '+ x

print()
for word in (df['B'].to_list()):
    print("Print output of the function applied to series:",print_sentiment_scores(word))

Out:

Print dataframe content:         A                        B
0     aba  we search stackoverflow
1  flower            good question

Print output of the function applied to series: we search stackoverflow we search stackoverflow
Print output of the function applied to series: good question good question

вот простой интерактивный пример

...