2017-06-14 2 views
0

Ich bin neu in Python und NLP, ich arbeite auf Twitter Sentiment analysis.i der Lage ist, die Daten zusammen mit der Polarität und Subjektivität auch zu drucken, aber mein Ziel ist es, schreibe die Daten in eine CSV-Datei, die ich nicht tun kann, bekomme ich IO-Ausnahme während dies tun. Hier ist mein CodeWie Sentiment-Analyse ergibt mich aus Twitter in eine CSV-Datei schreiben

import tweepy 
from textblob import TextBlob 
import csv 

consumer_key = 'xxxxxxxxxxxxxxxxxxxxxx' 
consumer_secret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' 

access_token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' 
access_token_secret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx' 

auth = tweepy.OAuthHandler(consumer_key,consumer_secret) 
auth.set_access_token(access_token,access_token_secret) 

api = tweepy.API(auth) 

public_tweets = api.search('Uk election') 
with open("sentiment.txt",'w') as scorefile: 
scoreFileWriter = csv.writer(scorefile) 
for tweet in public_tweets: 
print(tweet.text) 
analysis = TextBlob(tweet.text) 
print(analysis.sentiment) 
scoreFileWriter.writerow([tweet.text,analysis.sentiment]) 

Ich erhalte Ausnahme wie

Traceback (most recent call last): 
    File "C:/Users/Jeet Chatterjee/NLP/sentiment_analysis_twitter.py", line 25, in <module> 
    scoreFileWriter.writerow([tweet.text,analysis.sentiment]) 
ValueError: I/O operation on closed file. 

ich nur haben wollen 3 Spalten wie Polarität, Subjektivität und den Inhalt in der CSV-Datei. Bitte helfen Sie

+1

Sie müssen richtig Code einrücken. Alle Dateioperationen sollten in die Anweisung 'with open (....) as ...' kommen. – akhilsp

Antwort

1

Einrückungen ist wirklich wichtig in Python sonst Ihre Bausteine ​​sind considerered leer. In Ihrem Fall endet der with Block sofort und somit ist die Datei geschlossen, weshalb Sie diese Ausnahme bekommen.

Der Code sollte wahrscheinlich so aussehen:

public_tweets = api.search('Uk election') 
with open("sentiment.txt",'w') as scorefile: 
    scoreFileWriter = csv.writer(scorefile) 
    for tweet in public_tweets: 
     print(tweet.text) 
     analysis = TextBlob(tweet.text) 
     print(analysis.sentiment) 
     scoreFileWriter.writerow([tweet.text,analysis.sentiment]) 
+0

danke ich habe das Ergebnis – Mandrek

0

Sie müssen Ihren Code richtig einrücken. Alle Dateioperationen sollten in den with open(....) as ... Block kommen.

Verwandte Themen