Erstellen Sie mit python3 eine Wortwolke aus Ihrem Tweet

Schlagen Sie die Twitter-API mit Python3, Morphologische Analyse mit MeCab Erstellen Sie eine Wortwolke

Voraussetzung ist, dass die Bibliothek enthalten ist

Holen Sie sich einen Tweet mit der Twitter-API und geben Sie ihn an csv aus

get_tweets.py


# coding: utf-8

import requests
from requests_oauthlib import OAuth1Session
import json
import csv

CK = "hhhhhhhhhhhhhhhhhhhhhh"
CS = "oooooooooooooooooooooooooooooooooooooooooo"
AT = "gggggggggggggggggggggggggggggggggggggggggggggggggg"
AS = "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
oauth = OAuth1Session(CK, CS, AT, AS)

# url = "https://stream.twitter.com/1.1/statuses/filter.json" # get stream tweets #Dies hat möglicherweise nicht funktioniert
# url = "https://stream.twitter.com/1.1/statuses/sample.json" # get sample tweets #Dies hat möglicherweise nicht funktioniert
# url = "https://api.twitter.com/1.1/statuses/update.json" # post a tweet
# url = "https://api.twitter.com/1.1/search/tweets.json?" # search tweets
#Sie sollten in der Lage sein, den Tweet eines bestimmten öffentlichen Benutzers zu erhalten, indem Sie den folgenden Benutzernamen ändern(Ich frage mich, ob ich folgen muss?)
url = "https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=username" # @Ist unnötig

params = {
	# "track": "a"
	# "lang": "ja"
	"count": "200"
	# "status": "Hello, world!"
}
req = oauth.get(
	url,
	# stream = True,
	params = params
	)
twitter = json.loads(req.text)
maxid = twitter[0]["id"] + 1

c = 0
tweets_list = []
for i in range(3):
	print(i)
	params = {
		"count": "200",
		"max_id": maxid
	}
	req = oauth.get(
		url,
		# max_id = maxid,
		params = params
		)
	twitter = json.loads(req.text)
	for tweet in twitter:
		tweets_list.append([
			c,
			tweet["id"],
			tweet["created_at"],
			tweet["text"]
			])
		maxid = tweet["id"] - 1
		c += 1

with open("tweets.csv", "w") as f:
	writer = csv.writer(f, lineterminator="\n")
	writer.writerow(tweets_list)

Erstellen Sie eine Wortwolke, indem Sie Antworten und Retweets von den erfassten Tweets ausschließen

Es wird davon ausgegangen, dass "@" und "RT" in der Beurteilung von Antwort und Retweet enthalten sind. Wenn dieser Vorgang nicht erforderlich ist, können Sie in Listeneinschlussnotation schreiben

wordcloud_tweets.py


import MeCab
from os import path
from wordcloud import WordCloud
import matplotlib.pyplot as plt
import csv

stop_words = ["Machen", "Abwesend", "Werden", "Bereits", "Shiyo", "Können", "Wurde", "Ku", "Schließlich", "Gibt es", "Kann", "Überlegen", "heute"]
pos_list = [10, 11, 31, 32, 34]
pos_list.extend(list(range(36,50)))
pos_list.extend([59, 60, 62, 67])
def create_mecab_list(text):
	mecab_list = []
	mecab = MeCab.Tagger("-Ochasen -d /usr/local/lib/mecab/dic/mecab-ipadic-neologd")
	mecab.parse("")
	# encoding = text.encode('utf-8')
	node = mecab.parseToNode(text)
	while node:
		# for sw in stop_words:
		# 	if node.surface == sw:
		# 		node = node.next
		if len(node.surface) > 1:
			if node.posid in pos_list:
				morpheme = node.surface
				mecab_list.append(morpheme)
		node = node.next
	return mecab_list

text_tweet = []
with open("./tweets.csv", "r") as file:
	reader = csv.reader(file)
	for tweets_text in reader:
		tweets_list = csv.reader(tweets_text)
		for ele in tweets_list:
			if "@" in ele[3]:
				continue
			if "RT" in ele[3]:
				continue
			text_tweet.append(ele[3])
text = "".join(text_tweet)
string = " ".join(create_mecab_list(text))#.decode("utf-8")

fpath = "/Library/Fonts/Hiragino Marugo ProN W4.ttc"
wordcloud = WordCloud(
	background_color="black",
	stopwords=set(stop_words),
	max_font_size=56,
	relative_scaling=.4,
	width=500,
	height=300,
	font_path=fpath
	).generate(string)
plt.figure()
plt.imshow(wordcloud)
plt.axis("off")
plt.show()
wordcloud.to_file("./wordcloud.png ")

Recommended Posts

Erstellen Sie mit python3 eine Wortwolke aus Ihrem Tweet
Tweet von Python mit Twitter Developer + Tweepy
Erstellen Sie mit Python einen Entscheidungsbaum von 0 (1. Übersicht)
Memo zum Erstellen einer eigenen Box mit Peppers Python
Erstellen Sie ein 3D-GIF mit Python3
Generieren Sie zufällige Sätze aus Ihren Tweets mit Trigramm
Tweet mit Bild in Python
Erstellen Sie ein Verzeichnis mit Python
Mit Skype benachrichtigen Sie mit Skype von Python!
Ich habe Wordcloud mit Python gemacht.
Erstellen Sie eine Plotanimation mit Python + Matplotlib
Rufen Sie C von Python mit DragonFFI auf
Erstellen Sie Awaitable mit der Python / C-API
Verwenden von Rstan aus Python mit PypeR
Installieren Sie Python von der Quelle mit Ansible
Erstellen Sie eine virtuelle Umgebung mit Python!
Führen Sie Aprili von Python auf Orange aus
Ich mochte den Tweet mit Python. ..
Rufen Sie Python von Nim mit Nimpy auf
Laden Sie fbx aus Python mitinema4d
[Memo] Tweet auf Twitter mit Python
Sammeln von Informationen von Twitter mit Python (Twitter API)
Empfangen Sie Textdaten von MySQL mit Python
Erstellen Sie mit Class einen Python-Funktionsdekorator
Holen Sie sich HTML von Element mit Python-Selen
Erstellen Sie Ihre eigenen Linux-Befehle in Python
Erstellen Sie automatisch eine Python-API-Dokumentation mit Sphinx
[Hinweis] Mit Python Daten von PostgreSQL abrufen
Spielen Sie eine Audiodatei von Python mit Interrupt ab
[LLDB] Erstellen Sie Ihren eigenen Befehl mit Python
Erstellen Sie mit Python + PIL ein Dummy-Image.
Erstellen Sie mit Twisted Ihren eigenen DNS-Server
Erstellen Sie eine Python-Umgebung auf Ihrem Mac
[Python] Erstellen Sie mit Anaconda eine virtuelle Umgebung
Erstellen wir mit Python eine kostenlose Gruppe
Erstellen Sie schnell eine Excel-Datei mit Python #python
Erstellen Sie mit SQLAlchemy Ihren eigenen zusammengesetzten Wert
Geschäftseffizienz von Grund auf mit Python
Mit openssl verschlüsselte Dateien werden mit openssl aus Python entschlüsselt
HTML-Dokument Python-Programme mit Sphinx
Erstellen Sie mit Docker eine Python + uWSGI + Nginx-Umgebung
Erstellen und entschlüsseln Sie Caesar-Code mit Python
Bearbeiten von Azure CosmosDB aus Python Part.2
Bildaufnahme von der Kamera mit Python + OpenCV
Erstellen verschiedener Photoshop-Videos mit Python + OpenCV ③ Erstellen Sie verschiedene Photoshop-Videos
Erste Schritte mit Dynamo von Python Boto
Tweet-Analyse mit Python, Mecab und CaboCha
Erstellen Sie eine Excel-Datei mit Python + Ähnlichkeitsmatrix
Erstellen Sie mit Python 3.4 einen Worthäufigkeitszähler
Erstellen der ersten App mit Django Startprojekt
Erstellen Sie eine Deb-Datei aus einem Python-Paket
Versuchen Sie, Python von Ruby aus mit Sparsamkeit aufzurufen
[Python] Erstellen Sie schnell eine API mit Flask
Scraping von einer authentifizierten Site mit Python
Veröffentlichen Sie Ihre eigene Python-Bibliothek auf Homebrew
Erstellen Sie eine englische Wort-App mit Python
Verwenden von C ++ - Funktionen aus Python mit pybind11
Erstellen Sie mit Mecab aus Python3 ein Tool, das Furigana automatisch mit HTML schüttelt