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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Twitter

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1876閲覧

PythonでTwitter APIを使用した絵文字カウント

suusui

総合スコア15

Twitter

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/11/13 13:23

Phython初心者です。下記のPythonのコードを参考にTwitter APIを使用して特定のハッシュタグ投稿に使われている絵文字をカウントしようと思っています。

https://github.com/osxisl/python-fun/commit/30d9425a4315da39fbecaa26392818e51e924c50

こちらのコード中でわからない箇所があるのでわかる方がいらしゃいましたら教えていただければ嬉しいです。

28行目
self.tweet_counter = 42586

こちらは、どういった意味になりますでしょうか。42586という固定数字が入っていますが、どこから来る数字になりますでしょうか。

実際にコードを実行するとこのような数字が入ります。
こちらの数字も何を意味するのでしょうか。

#:42632|time:2020-11-13 12:35:11.059492|dict:{"????": 3, "????": 7, "????‍♂️": 4, "????‍♂️": 3, "????": 1, "❤": 1, "????????": 1, "????": 1, "????": 1, "????": 1, "☝????": 1, "☹": 1, "????": 2, "????": 2, "????": 1}
#:42654|time:2020-11-13 12:36:11.290008|dict:{"????": 3, "????": 9, "????‍♂️": 4, "????‍♂️": 4, "????": 1, "❤": 1, "????????":

またこれらの行の意味は、1分間で絵文字が入ったツイートを取得した数なり、1行目と2行目は重複した同じツイートがカウントされているのでしょうか。

text = status.text emoji_array = emoji_regex.findall(text) # print(emoji_array) self.tweet_counter += 1 # print(self.tweet_counter) counter_dict.update(emoji_array) elapsed = time.time() - self.started #write counter state to file every minute if elapsed > 60 : self.started = time.time() with open(datatxt, mode='a') as fd: line = '#:'+ str(self.tweet_counter) + '|time:'+ str(self.started) + '|dict:' + json.dumps(counter_dict, ensure_ascii=False) + '\n' fd.write(line)

無知で申し訳ございませんが、
上記のコードを説明いただけたら大変うれしいです。

よろしくお願い致します。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

(前提)
まず、質問中のスクリプトは、スクリプト作者以外に対して、ある明確な目的を達成するために提供されているものではなく、単なる作者(osxisl氏)の個人的なテストやメモとしてアップロードされている蓋然性が非常に高いです。

掲題スクリプトは、コメント含むコードそれ自体として、スクリプト作者の主義主張・作成意図が、そのコードやコメントに示されている部分以上からは明確に判別できないものであり、以下の説明は、推測によるところを多分に含みます。

それを踏まえた上で下記参照願います。

(スクリプトの解読)

28行目 self.tweet_counter = 42586 こちらは、どういった意味になりますでしょうか。42586という固定数字が入っていますが、どこから来る数字になりますでしょうか。

この42586という数字ですが、スクリプトの作者が、何らかの別のスクリプトを用いて集計した数の、ある時点の途中経過の数字である可能性が非常に高いです。

おしなべて言えば、作者(osxisl氏)以外の人間および作者(osxisl氏)が利用した時点以外の時刻・状況において、意味のある数字ではない可能性が非常に高いです。

実際にコードを実行するとこのような数字が入ります。こちらの数字も何を意味するのでしょうか。

1分間に「BlackLivesMatter」および「#BlackLivesMatter」というキーワード/ハッシュタグでタイムラインを検索したときに得られる直近のツイート(リツイートを除く)の数に、42586を加算した数および、emoji:emoji数の辞書 の累積結果です。

コードの正確な意図については、
https://github.com/osxisl/python-fun/issues
で作者(osxisl氏)に聞いてみるのが一番早いと思います。

投稿2020/11/13 22:08

編集2020/11/13 23:51
sfdust

総合スコア1137

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

suusui

2020/11/14 02:32

sfdust様 ご回答誠にありがとうございます。 参考になりました。コード作成者に確認してみたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問