質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

受付中

猫を含むツイート(テキスト)を抽出したい

LiLL
LiLL

総合スコア5

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

1回答

0リアクション

0クリップ

248閲覧

投稿2022/09/15 06:13

前提

twitterapiを利用してtweetデータを取得することはできています。
また、取得したデータから特定のキーワードを入力してキーワードを含むツイート数は出力できています

実現したいこと

取得したtweetデータ(jsonファイル)から特定のキーワードを含むツイートを取得したい。

tweetデータの取得プログラム

python

import json import sys import datetime from time import sleep #Variables that contains the user credentials to access Twitter API access_token = '***********' access_token_secret = '*********' consumer_key = "************" consumer_secret = "*************" #This is a basic listener that just prints received tweets to stdout. import tweepy class IDPrinter(tweepy.Stream): def on_status(self, status): print(status.id) class CustomStreamListener(tweepy.Stream): def on_data(self,data): #print("=>",data) tweet=json.loads(data) #tweetにtextキーがあるかないか if("text" in tweet): try: if tweet['lang']=='ja' or tweet["user"]["lang"]=="ja": #if(re.search(u'[一-龠]+|[ぁ-ん]+|[ァ-ヴー]+', tweet["text"])) and tweet['lang']=='ja': #tweetを取得する f_tweet = open("/home/LiLL/api_pack/tweet/"+str(datetime.datetime.now().strftime("%Y%m%d-%H"))+".json",'a') #f_tweet = open(str(datetime.datetime.now().strftime("%Y%m%d-%H"))+".json", 'a') str_tweet=data.decode("utf-8") str_tweet = str_tweet + "\n" f_tweet.write(str_tweet) f_tweet.close() except Exception as e: print("error") sys.stderr = open("errlog.log","a") print(datetime.datetime.now(),'Encounted Exception:',e,file=sys.stderr) sys.strerr=sys.__stderr__ print(datetime.datetime.now(),'Encounted Exception:',e,file=sys.stderr) pass def on_error(self,status_code): print(status_code) sys.stderr = open("errlog.log","a") print(datetime.datetime.now(),'Encounted Exception with status code:',status_code, file=sys.stderr) sys.strerr=sys.__stderr__ print(datetime.datetime.now(),'Encounted Exception with status code:',status_code, file=sys.stderr) print("Unexpected error:", sys.exc_info()[0]) return True printer = CustomStreamListener( consumer_key, consumer_secret, access_token, access_token_secret ) printer.sample()

猫を含むツイート数の出力

python

import json nyankoTextList = [json.loads(tweet)["text"] for tweet in open("20220728-00.json", "r")] kensaku_go = "猫" print(sum([1 if kensaku_go in i else 0 for i in nyankoTextList]))

試したこと

猫を含むツイートの数ではなく、テキストを抽出したいです。
試したことは上記のプログラムを記述してみました。これを実行した結果132と出力されました。

補足情報(FW/ツールのバージョンなど)

仮想マシンVMWAREを使用してます
OSはubuntuです
ここにより詳細な情報を記載してください。

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

2022/09/15 06:18

こちらの質問が複数のユーザーから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。