Я новичок в программировании и НЛП в целом. Я нашел код на этом сайте: (https://towardsdatascience.com/creating-the-twitter-sentiment-analysis-program-in-python-with-naive-bayes-classification-672e5589a7ed) для использования в анализе настроений в твиттере. У меня есть нужные мне csv-файлы, и поэтому вместо их создания я просто определил переменные по файлам.
Когда я пытаюсь запустить код, при запуске этой строки выдается ошибка типа:
preprocessedTrainingSet = tweetProcessor.processTweets (trainingData)
И прослеживает до линии:
processedTweets.append ((self._processTweet (твит [ "текст"]), чирикать [ "метка"])).
Я не знаю, как обойти эту проблему и при этом сохранить основные функциональные возможности кода без изменений.
import pandas as pd
import re
from nltk.tokenize import word_tokenize
from string import punctuation
from nltk.corpus import stopwords
import twitter
import csv
import time
import nltk
nltk.download('stopwords')
testDataSet = pd.read_csv("Twitter data.csv")
print(testDataSet[0:4])
trainingData = pd.read_csv("full-corpus.csv")
print(trainingData[0:4])
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["text"]),tweet["label"]))
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)
Я ожидаю, что он начнет очищать найденные данные, прежде чем я смогу начать использовать Наивный Байес