列表索引超出范围错误,TextBlob到cs

2024-04-26 06:42:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个巨大的csv,上面有来自我博客的数千条评论,我想用textblob和nltk进行情绪分析。你知道吗

我使用的是来自https://wafawaheedas.gitbooks.io/twitter-sentiment-analysis-visualization-tutorial/sentiment-analysis-using-textblob.html的python脚本,但是针对Python3进行了修改。你知道吗

'''
uses TextBlob to obtain sentiment for unique tweets
'''

from importlib import reload
import csv
from textblob import TextBlob
import sys

# to force utf-8 encoding on entire program
#sys.setdefaultencoding('utf8')

alltweets = csv.reader(open("/path/to/file.csv", 'r', encoding="utf8", newline=''))
sntTweets = csv.writer(open("/path/to/outputfile.csv", "w", newline=''))

for row in alltweets:
    blob = TextBlob(row[2])
    print (blob.sentiment.polarity)
    if blob.sentiment.polarity > 0:
        sntTweets.writerow([row[0], row[1], row[2], row[3], blob.sentiment.polarity, "positive"])
    elif blob.sentiment.polarity < 0:
        sntTweets.writerow([row[0], row[1], row[2], row[3], blob.sentiment.polarity, "negative"])
    elif blob.sentment.polarity == 0.0:
        sntTweets.writerow([row[0], row[1], row[2], row[3], blob.sentiment.polarity, "neutral"])

然而,当我运行这个,我不断得到

    $ python3 sentiment.py
Traceback (most recent call last):
  File "sentiment.py", line 17, in <module>
    blob = TextBlob(row[2])
IndexError: list index out of range

我知道这个错误意味着什么,但我不知道我需要做什么来修复。你知道吗

有没有想过我错过了什么?谢谢!你知道吗


Tags: csvtofromimportforsysanalysisblob
1条回答
网友
1楼 · 发布于 2024-04-26 06:42:52

在玩了一会儿之后,我用熊猫想出了一个更优雅的解决方案

from textblob import TextBlob
import pandas as pd

df = pd.read_csv("pathtoinput.csv", na_values='', 
encoding='utf8',keep_default_na=False, low_memory=False)

columns = ['text']

df = df[columns]

df['tweet'] = df['text'].astype('str')

df['polarity'] = df['tweet'].apply(lambda tweet: 
TextBlob(tweet).sentiment.polarity)

df.loc[df.polarity > 0, 'sentiment'] ='positive'
df.loc[df.polarity == 0, 'sentiment'] ='neutral'
df.loc[df.polarity < 0, 'sentiment'] ='negative'

df.to_csv("pathtooutput.csv", encoding='utf-8', index=False)

相关问题 更多 >

    热门问题