Не уверен, как это исправить: TypeError: строковые индексы должны быть целыми числами, а не юникодом - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь собрать некоторые данные о настроениях в некоторых твитах, которые я проанализировал в электронной таблице. Я не лучший кодер и давно не кодировал, поэтому я супер ржавый. Я использую старый скрипт, который у меня был для проекта несколько лет назад, и делал то же самое, и мне трудно понять его, чтобы выяснить мою ошибку. Любая помощь будет оценена! :)

import pandas as pd

import numpy as np

import nltk

nltk.download("vader_lexicon")

def get_sentiment(rating_data):

    """
    https: // github.com / cjhutto / vaderSentiment
    :return:
    """
    from nltk.sentiment.vader import SentimentIntensityAnalyzer
    sid = SentimentIntensityAnalyzer()
    rating_data['sent_neg'] = -10
    rating_data['sent_neu'] = -10
    rating_data['sent_pos'] = -10
    rating_data['sent_compound'] = -10
    for i in range(len(rating_data)):
        sentence = rating_data['Sentences'][i]

        ss = str(sid.polarity_scores(sentence.encode('ascii', 'ignore')))
        print ss['neg']
        rating_data.iloc[i, 1] = float(ss['neg'])
        print rating_data.iloc[i, 1]
        rating_data.iloc[i, 2] = ss['neu']
        rating_data.iloc[i, 3] = ss['pos']
        rating_data.iloc[i, 4] = ss['compound']
    return rating_data

rating_data = pd.read_csv("for-sent.csv", 'r', encoding='ascii', error_bad_lines=False)
rating_data = rating_data.rename(columns={ rating_data.columns[0]: "Sentences" })

sentiment_data = get_sentiment(rating_data)
sentiment_data.to_excel("sentiment.xlsx", index = False)
print " Written to sentiment.xlsx"

Трассировка (последний последний вызов):

строка 40, в sentiment_data = get_sentiment (rating_data)

строка 25, в get_sentiment print ss [' neg ']

TypeError: строковые индексы должны быть целыми числами, а не юникодом

...