2016-07-11 6 views
1

Ich sammle alle Kommentare von einigen Facebook-Seiten mit Python und Facebook-SDK.Was ist der beste Weg, um die von Facebook gesammelten Kommentare mit Python zu speichern?

Da ich Sentiment Analysis auf diese Kommentare tun möchte, was ist der beste Weg, um diese Texte zu speichern, so dass es keine Änderungen in den Texten benötigt?

Ich speichere die Kommentare jetzt als Tabelle und dann als CSV-Datei.

table.to_csv('file-name.csv') 

Aber wenn ich diese gespeicherte Datei lesen möchten, erhalte ich folgende Fehlermeldung:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfc in position ... 

By the way, ich bin mit den deutschen Texten zu arbeiten.

+0

Paar Fragen. 1) Wie viele Daten möchten Sie speichern? 2) überlegst du es, irgendeine Art von DB zu implementieren, um sie zu speichern? 3) Gibt es einen Grund, warum Sie nicht einfach eine CSV-Datei verwenden sollten, trotz des Fehlers, der wie eine einfache Lösung aussieht? – SAMO

+0

Danke @NelsCarlson für die schnelle Antwort. 1) Derzeit kann ich es nicht genau sagen, weil ich mir vorstellen möchte, dass ich alle Postnachrichten von vielleicht 50 Seiten sammeln und dann die Posts filtern soll, die ich für die Postnachricht benötige, und schließlich alle Nachrichten für jeden ausgewählten Post . 2) Nein, zum Beispiel habe ich für Kommentare eine Funktion und eine leere Liste >> emptyList.append (..) definiert. 3) Nein, für mich ist es nur wichtig, dass ich nichts verliere und die Einfachheit, um den Text für die Stimmungsanalyse zu erhalten. – Vahid

+0

Okay, da die Daten, die Sie speichern, ziemlich relational sind (Sie finden einen Post und dann alle Nachrichten, die sich auf den Post beziehen), würde ich ein JSON-Objekt empfehlen. Es wird nur auf Ihrem Computer gespeichert wie die CSV, aber die Struktur wird wahrscheinlich die Dinge erleichtern. Etwas wie {'post_id': 001, 'message': 'hallo'} könnte Vorformoperationen viel einfacher machen. – SAMO

Antwort

2

Haben Sie versucht das?

Set Standard-Encoder an der Spitze des Codes

import sys 
reload(sys) 
sys.setdefaultencoding("ISO-8859-1") 

oder

pd.read_csv('file-name.csv', encoding = "ISO-8859-1") 
+1

Danke @Toussaint, ich habe es so ausprobiert: pd.read_csv ('dateiname.csv', encoding = "ISO-8859-1") und jetzt läuft alles gut! :) – Vahid

+1

@Vahid - wenn es funktioniert, können Sie die Antwort als richtig markieren? –

0

Wenn Sie Kenntnisse über die Codierung der Daten haben, dann können Sie einfach Pandas verwenden Ihre csv wie folgt zu lesen:

import pandas as pd 
pd.read_csv('filename.csv', encoding='encoding') 
+0

Danke @Sijan, ich weiß ein bisschen über Kodierung, aber bisher hatte ich immer ein Problem mit diesem Thema, könntest du mir bitte sagen, wie ich mein Problem lösen kann :) also, ich meine, stelle mir eine Quelle oder einen Blog vor, der erklärt hat es genauer! Übrigens arbeite ich mit den deutschen Texten. – Vahid

0

würde ich sagen, dass es viele verschiedene Faktoren hängt davon ab, wirklich wie:

  • Größe des Daten
  • Welche Art von Analyse, speziell, sind Sie ein nticipating dass Sie
  • Welches Format tun sind Sie am bequemsten mit den Daten zu arbeiten

Für die meisten meiner Daten munging Ich mag es in Pandas in Python, wenn möglich zu tun, aber das ist manchmal nicht machbar Option angesichts der Größe der Daten. In diesem Fall müssten Sie über etwas wie pyspark nachdenken. Aber hier ist ein Link zu den Pandas Dokumente als Referenz, sie haben eine Menge Funktionalität zum Lesen aller Arten von Daten: pandas docs

Verwandte Themen