[GO] [Python] Eine Dateninfrastruktur zum Erfassen und Veröffentlichen von Tweets von der Twitter-API in BigQuery wurde auf GCP aufgebaut (mit negativer / positiver Bewertung).

Einführung

Dies ist der erste Beitrag. Da wir auf GCP eine Dateninfrastruktur aufgebaut haben, um Tweets von der Twitter-API für den internen Gebrauch abzurufen und in BigQuery zu veröffentlichen, werden wir sie als Memorandum und zukünftige Aufgabenliste veröffentlichen.

Dies ist mein erstes Mal, dass ich eine Dateninfrastruktur aufbaue und GCP verwende. Wenn Sie also etwas bemerken, würde ich es begrüßen, wenn Sie einen Kommentar abgeben könnten. datapotal.JPG

Entwicklungsumgebung

Google Cloud Platform Python3-Serie

Überblick

Rufen Sie anhand der in der Tabelle beschriebenen Schlüsselwörter den Tweet-Inhalt von der Twitter-API ab, berechnen Sie die negative / positive Bewertung, speichern Sie ihn in BigQuery und zeigen Sie ihn in Data Potal an und laden Sie ihn herunter.

Die in GCS und BigQuery gespeicherte Logik basiert auf Python on Cloud Functions.

Da es in Cloud Scheduler einmal täglich ausgeführt werden soll, wird es jeden Tag nach der ersten Einstellung automatisch erfasst. gcp-twitter.JPG

Kommentar

① Holen Sie sich Tweets mit Twitter API

Um die Standardsuch-API verwenden zu können, müssen Sie sich auf Englisch bewerben. Ich habe hier für die Bewerbung verwiesen. Zusammenfassung der Schritte von der Registrierung der Twitter-API (Kontoanwendungsmethode) bis zur Genehmigung

Darüber hinaus gelten für die Erfassung durch die Standardsuch-API die folgenden Einschränkungen. ・ Bis zu 100 Tweets gleichzeitig ・ 180 Anfragen in 15 Minuten ・ Sie können Tweets bis zu den letzten 7 Tagen erhalten </ b>

Sie können in 15 Minuten nur bis zu 18000 Tweets erhalten. Nach 15 Minuten kehrt die Anzahl der Anfragen auf 180 zurück. Es ist ziemlich gut hier, wenn Sie Logik erstellen, aber Sie können keine Tweets erhalten, die älter als 7 Tage sind. Wenn Sie es ernsthaft erhalten möchten, können Sie es mithilfe der kostenpflichtigen API nahezu unbegrenzt erhalten. (Ich brauche Geld für immer)

Ich habe diese Seite mehr als 30 Mal in Bezug auf die Twitter-API gesehen. So erhalten und analysieren Sie über 5 Millionen Twitter-Retweet-Daten

Sie könnten denken, dass das Scraping in Ordnung ist, wenn es Einschränkungen gibt, aber das Scraping von Twitter ist nach den Regeln verboten. Lassen Sie es uns also gewichten.

② Speichern Sie Tweets im Cloud-Speicher mit Cloud-Funktionen

Cloud Functions ist ein Dienst, der JavaScript und Python in der Cloud ausführen kann. Ab 2019 kann auch die Python 3-Serie verwendet werden.

Holen Sie sich die vorab ausgefüllten Keywords aus der Tabelle in Google Drive und werfen Sie sie in die Twitter-API. Konvertieren Sie den zurückgegebenen JSON in CSV und speichern Sie Tweets im Wert von einem Tag im Cloud-Speicher. gcs.JPG

Es war in Ordnung, den erworbenen Tweet-Inhalt direkt in BigQuery zu speichern, aber als ich die Dateninfrastruktur studierte, lernte ich die Konzepte "Data Lake", "Data Warehouse" und "Data Mart" und speicherte sie einmal in Cloud Storage. Ich behalte es. Wenn Sie die Daten nur begrenzt speichern, sagen Sie möglicherweise: "Oh, ich wollte diesen Artikel auch!"

Ich habe hier auf das Konzept der Dateninfrastruktur verwiesen. Drei Kategorien von Dateninfrastruktur und evolutionärer Datenmodellierung

Da Data Lake als "Kopie der Originaldaten" </ b> positioniert ist, wollte ich es ursprünglich im JSON-Format anstelle von CSV speichern, aber Fehler treten auf und ich mache es. Ich habe es nicht verstanden, also habe ich aufgegeben. </ S>

③ Führen Sie die Tweet-Erfassung regelmäßig mit Cloud Scheduler aus

Cloud Scheduler ist ein kostengünstiger und benutzerfreundlicher Cron-Dienst, mit dem Sie Nachrichten an Google Pub / Sub-Themen senden können. Kurz gesagt, Sie können Cloud-Funktionen ausführen, indem Sie Datum und Uhrzeit angeben. </ b>

Durch Festlegen eines Werts in der Nutzlast können Sie diesen Wert in Cloud-Funktionen verwenden. Derzeit geben wir die Anzahl der Zeilen in der Tabelle an, in die die Schlüsselwörter eingegeben werden. Daher setzen wir Cloud Scheduler so viele wie die Anzahl der Schlüsselwörter, die wir erhalten möchten.

Aufgrund der in (1) beschriebenen Einschränkungen der Twitter-API wird jedes Schlüsselwort außerdem in Intervallen von 15 Minuten ausgeführt. Wenn Sie sich für eine kostenpflichtige Twitter-API anmelden können, ändert sich der Mechanismus hier.

④ Fügen Sie BigQuery eine negative / positive Bewertung aus dem Cloud-Speicher hinzu und speichern Sie sie

Auch hier verwenden wir Cloud-Funktionen. Die Emotionsanalyse wird mit Python durchgeführt und bewertet. Da es in einem Datenrahmen verarbeitet wird, wird to_gbq für die Speicherung in BigQuery verwendet. pandas.DataFrame.to_gbq

Wenn Sie das BigQuery-Schema nicht im table_schema von to_gbq angeben, werden Sie möglicherweise wütend, wenn Sie fast null Elemente (Geo usw.) speichern. Seien Sie also vorsichtig.

Ich habe für die Emotionsanalyse auf die folgenden Websites verwiesen, aber die Genauigkeit ist immer noch gering, sodass die Verbesserung der Genauigkeit eine zukünftige Aufgabe ist. Ich habe ungefähr 500.000 Tweet-Datensätze zur Hand und möchte damit ein auf Twitter spezialisiertes Tool zur Emotionsanalyse erstellen. Ich habe eine Negativ / Positiv-Analyse-App mit Deep Learning (Python) erstellt

Da diesmal die Emotionsanalyse im Mittelpunkt steht, werden BOT und Retweets ausgeschlossen. </ b> Wählen Sie für BOT nur diejenigen aus, die "twitter.com" in der Quelle enthalten. Retweets schließen diejenigen aus, deren Tweet-Body mit "@ RT" beginnt.

Wenn Sie Hash-Tags in einer Kampagne usw. zählen möchten, müssen Sie die Logik ändern.

⑤ Mit Cloud Scheduler ausführen

Was Sie mit ③ machen, ist dasselbe. Cloud Scheduler führt die Speicherung im Cloud-Speicher als Auslöser aus.

⑥ In BigQuery speichern

Für jedes Schlüsselwort gibt es eine Tabelle. Da die Zeit von Twitter auf Agreement World Time (UTC) eingestellt ist, speichern wir den Tweet-Inhalt von 9:00 Uhr am Vortag bis 9:00 Uhr am Tag. Zusätzlich zum Tweet-Inhalt werden Datum und Uhrzeit des Tweets, Kontoinformationen, negative / positive Punktzahl usw. gespeichert.

⑦ Veröffentlicht auf Data Potal

Da das Unternehmen einen Gsuite-Vertrag hat und alle Mitarbeiter das Google-Konto verwenden können, ermöglichen wir das Anzeigen und Herunterladen von Tweet-Inhalten mit Data Potal. Wenn Sie es mit csv herunterladen, können Sie es natürlich in der Reihenfolge der negativen / positiven Ergebnisse auf DataPotal sortieren. Ich habe diesen Teil noch nicht berührt und gebe derzeit nur den Zeitraum an, möchte aber in Zukunft Filter und Elemente hinzufügen.

Ich war auch an Tableau interessiert, aber als ich mich für die -Testversion bewarb, gab ich auf, weil ich keine Bestätigungs-E-Mail erhalten hatte. </ s> Ich werde eine weitere Gelegenheit herausfordern.

Zukünftige Aufgaben, was Sie tun möchten

・ Wenn die Anzahl der Schlüsselwörter zunimmt, müssen die GCP-Abrechnung und die Logik geändert werden. ・ Verwenden Sie die Genauigkeit der Emotionsanalyse UP oder NLP ・ Zeigen Sie die Wörter an, die in der Abteilung zusammen getwittert werden (Mecab + NEologd). ・ Berechnen Sie den Influencer Influence Score aus den Informationen des Tweet-Kontos und klassifizieren Sie private Diagramme, Zinsdiagramme, Tsui-Abschaffung usw.

Schließlich

Python am stärksten. Wenn Sie suchen, sind es 95%. Wenn Sie Englisch verstehen, sind es 99%. Jeder Tag wird vom Minister durchsucht, und ich bin der ganzen Menschheit zutiefst dankbar.

Sie sollten Ihren Code auf Jupyter testen, da Sie mit GCP in Jupyter Notebook arbeiten können. (Die Bereitstellung der Cloud-Funktionen ist sehr langsam.)

Ich denke, es gab andere Teile, die dazu passen, deshalb möchte ich sie in Zukunft veröffentlichen, einschließlich des Codes.

Bitte lassen Sie mich wissen, ob etwas interessant oder möglich ist.

Recommended Posts