[英]How do I solve this Python KeyError?
因此,我正在尝试使用朴素贝叶斯构建 twitter 情感分析 model。 我在尝试预处理数据时遇到问题。 这是我的代码:
这是我的数据加载代码
df = pd.read_csv('full-corpus.csv',
encoding='latin1',
names=['topic', 'sentiment', 'TweetId', 'TweetDate','TweetText'])
trainingData = df.to_dict(orient='records')
这是我的数据预处理代码:
import re
import nltk
nltk.download('stopwords')
nltk.download('punkt')
from nltk.tokenize import word_tokenize
from string import punctuation
from nltk.corpus import stopwords
class PreProcessTweets:
def __init__(self):
self._stopwords = set(stopwords.words('english') + list(punctuation) + ['AT_USER','URL'])
def processTweets(self, list_of_tweets):
processedTweets=[]
for tweet in list_of_tweets:
processedTweets.append((self._processTweet(tweet['TweetText']),tweet['sentiment']))
return processedTweets
def _processTweet(self, tweet):
tweet = tweet.lower() # convert text to lower-case
tweet = re.sub('((www\.[^\s]+)|(https?://[^\s]+))', 'URL', tweet) # remove URLs
tweet = re.sub('@[^\s]+', 'AT_USER', tweet) # remove usernames
tweet = re.sub(r'#([^\s]+)', r'\1', tweet) # remove the # in #hashtag
tweet = word_tokenize(tweet) # remove repeated characters (helloooooooo into hello)
return [word for word in tweet if word not in self._stopwords]
tweetProcessor = PreProcessTweets()
preprocessedTrainingSet = tweetProcessor.processTweets(trainingData)
preprocessedTestSet = tweetProcessor.processTweets(testDataSet)
我收到这个键错误
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-96-acc96635cf33> in <module>()
1 tweetProcessor = PreProcessTweets()
2 preprocessedTrainingSet = tweetProcessor.processTweets(trainingData)
----> 3 preprocessedTestSet = tweetProcessor.processTweets(testDataSet)
<ipython-input-95-05e6d1942355> in processTweets(self, list_of_tweets)
15 for tweet in list_of_tweets:
16
---> 17 processedTweets.append((self._processTweet(tweet['TweetText']),tweet['sentiment']))
18 return processedTweets
19
KeyError: 'TweetText'
请帮助解决这个问题。 谢谢
似乎您通过了一个列表,但您想使用一个字典。 为了让它工作,你必须使用:
for key, value in dict_foo.items()
如果您通过列表 go 而它是一个字典,您将只能访问密钥。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.