開発軌跡を全部書いてるので冗長、流れをゆっくり追いたい人向け 途中で2022年DLデータ→2023年DLデータに読み込みデータを変えたけどあんまクリティカルでもないから気にせんでよろし
0
日傘 @pallasoul

メモ:単純にloadが使えないのでどうするか oku.edu.mie-u.ac.jp/~okumura/pytho…

2024-01-22 22:45:19
日傘 @pallasoul

python環境でteet.jsを特定条件で抜き出したい

2024-01-22 22:45:39
日傘 @pallasoul

json処理するのが初めてなので、とりあえずchatGTPに目標ソースを書かせて、分からんところをディグる感じでやってる 基本はCSVやテキストの読み込みと変わらない感じなんだけど、前処理をして辞書型のリストで読み込みforでぶん回して必要な部分を引くという感じらしい 辞書型ちゃんと使うの初めて

2024-01-22 23:12:23
日傘 @pallasoul

型がどうなってんのかよく分かんなかったので、今日は読み込みと型の分解まで 2010年から2020年くらいまでのデータ読んでるはずなんだけど読み込みだけなら爆速で終わってるので、データ抜き出しもそんな時間かかんなそうだな~という印象です

2024-01-22 23:14:36
日傘 @pallasoul

ちょっとあとで検証するメモ loadするとjsonの順番を保持せず読み込んでしまうのでつけるオプションがあるらしいんだけど、コードのどこがそれに該当するか分からん qiita.com/Morio/items/51…

2024-01-22 23:17:26
日傘 @pallasoul

こちらの記事によると、python3.7(ファイナルリリース2018年)までは順番保持してくれなかったんだが、3.8からは保持してくれるようになったらしい 道理で順番処理の記事に2016年周辺が多いわけだ helve-blog.com/posts/python/p…

2024-01-22 23:27:08
日傘 @pallasoul

メモ:GPTくんが整理しれくれたkey pic.twitter.com/d7UrKdiWWV

2024-01-22 23:27:51
拡大
日傘 @pallasoul

お風呂入りたいから今日ここまで openオプションにencodingつけないとUnicodeDecodeError: 'cp932' codec can't decode byte 0x81 in position 767: illegal multibyte sequenceエラーが出ます pic.twitter.com/QIKnMMeA7v

2024-01-22 23:29:12
拡大
日傘 @pallasoul

最終目標形 多分今回くらいしか使わないけど、1つの関数にダラダラ書くとテストがダルいので、この程度に分けたい 書きながら変えてく 今回の裏目標は「データ型を意識しよう」 pic.twitter.com/iOt450unIM

2024-01-25 19:01:01
拡大
日傘 @pallasoul

docstringを書いてみようかな、と思ったんですが、確かに有用だけどとりあえず実現したいモチベが持つ気がしないので今回スルーで ただ今回わりと小規模なので、原稿に余裕あったら書きたいなと思います docはマジで書いてあれば書いてあるほどいいので

2024-01-25 19:08:37
日傘 @pallasoul

ペーパー(テキスト)プロトタイプ 実装するよ~ pic.twitter.com/7yCVgd8GS9

2024-01-25 19:25:03
拡大
日傘 @pallasoul

あ、これだと返信先に複数指定できないな keyごとに抜き出し方を分けて実装するのがいいのかな、と思ったけどこれだと毎回list読み込むことになってクソ重そう んーケース文使う? 抜き出したい要素と条件が入り乱れてるのか、じゃあparamを変えたほうよさそう もっかいkeyリスト見て見よう

2024-01-25 19:28:12
日傘 @pallasoul

in_reply_to_screen_nameがユーザーIDなので、返信先ユーザーを限定したかったらこっちを指定しないとなのね あとこれは公式のパラメータドキュメント developer.twitter.com/en/docs/twitte…

2024-01-25 19:40:28
日傘 @pallasoul

出てきたデータざっと見るだけでかなりキツいので、一度欲しい年代のデータだけ引っ張ってくることにする…

2024-01-25 19:41:19
日傘 @pallasoul

あー 一個の関数で条件分けダラダラ書くより、縛りのある/なしで関数を割ったほうが楽だな 使用パターン的にも、全部抜き出すより年代・返信先・いいね数RT数とかで分けたいし これdictリストの形式のまま何回かに分けてリストを選別して、最後にcsvに出すのがいいかも

2024-01-25 19:46:19
日傘 @pallasoul

というわけでペーパープロトを書き直し、1個だけ実装 時間比較のところは参考元のqiita記事と🐍公式doc(docs.python.org/ja/3/library/d…)を参照して加減算の条件を納得 計算に不必要なタイムゾーン要素を削除(replace)し、datetime要素を正規化して計算 1枚目は時間のtype確認メモ pic.twitter.com/eeToPeSudp

2024-01-25 21:40:44
拡大
拡大
拡大
拡大
日傘 @pallasoul

あ?なんか3枚も同じ写真添付してたな まあいいや あんま元要素削除するのもアレかなーと思ったけど、そんな強いマシンじゃないのでメモリ優先で これは混乱したのでメモ pic.twitter.com/wlQ57o6acR

2024-01-25 21:42:51
拡大
日傘 @pallasoul

ダーハッハッハ 大間違いです 論理式書かないと分からんかった 横着したらダメですね

2024-01-25 22:14:41
日傘 @pallasoul

逆だ逆 ↑の画像だと欲しいデータが削除対象になっちゃってますね

2024-01-25 22:15:45
日傘 @pallasoul

csv書きだしまでできた めちゃくちゃ重複している 死

2024-01-25 22:52:23
日傘 @pallasoul

じゃあ抜き出したデータの冒頭100行くらいだけ見て見るか…

2024-01-25 22:52:44
日傘 @pallasoul

とりあえず納得いく動きはしてるけど、書きだし数が1000個越えたあたりから要領足りないって怒られる のでミニバッチ式に書き換える必要があるんだけどめんどくせ~~~~ てかSurfaceそこまでよわよわだっけ? pic.twitter.com/4IVG2L91ST

2024-01-25 23:11:16
拡大
日傘 @pallasoul

元jsonの順番保持してないっぽいんだけど

2024-01-25 23:42:22
日傘 @pallasoul

多分元jsonの仕様っぽいんだけど、@ツイート>自分のツイートの順位で時系列が並んでるっぽいので、特定時期のド頭から吸おうとすると@ツイートしか取得できないのと、pythonで読み込む時にjsonの順番が保持されてないっぽい 2015年の1月1日にリプライ以外のツイートがあるはずなんだけど、それがない

2024-01-25 23:45:01
日傘 @pallasoul

同梱されてたhtmlで見て見るとほんとに2015年のツイートにリプライしかない 抜き出した時の時系列はやっぱぐちゃぐちゃっぽい とりあえず最新データをDLするのと、その間にリプライ先でのフィルター関数とcsv出力のミニバッチ化を実装します

2024-01-26 00:12:25
日傘 @pallasoul

メモ json頭から読み込んだデータと抜き出しデータ(2015年モノ)の順番を比較して見てみること

2024-01-26 00:15:14
日傘 @pallasoul

とにかく見れる形で実装してえ!という人向けに置いときます。このページはログイン要らずで見れるようにしました pyhtonでtwitterからダウンロードしたjsonデータをいいカンジにcsvに出力する flatrot.starfree.jp/Friday/dokuwik…

2024-01-26 00:29:00
日傘 @pallasoul

メモ フルテキストの改行をリプレイスで適当な記号に置き換えること

2024-01-26 01:48:26
日傘 @pallasoul

ッシャ今日の分頑張りますよ 今日までの全件データ落としたし、足りない分はついろぐ目チェック+人力コピペは後から🐍成形の腹を決めたので 今日やることリスト ・フルテキスト取得時に改行を“\n”記号に置き換える ・年単位での抜き出しが可能かチェック、できるならミニバッチやめる ・抽出完遂

2024-01-27 21:09:19
日傘 @pallasoul

やることプラス ・返信先フィルターの実装

2024-01-27 21:09:41
日傘 @pallasoul

tweets.jsからjsonをloadする際に消す冒頭のwindow.YTD~の文字列が2020年に落としたデータと今日落としたのと違ってたのでエラー吐いた 冒頭100行だけ引っ張ってくるやつ残しといて良かった

2024-01-27 21:33:40
日傘 @pallasoul

1年分くらいならCSV保存大丈夫そう~あとできなかった理由に作業領域にめっちゃ動画データ置いてたからの可能性ある

2024-01-27 21:33:48
日傘 @pallasoul

リスト現状 ☑フルテキスト取得時に改行を“\n”記号に置き換える ☑年単位での抜き出しが可能かチェック、できるならミニバッチやめる ・返信先フィルターの実装 ・抽出完遂

2024-01-27 21:59:21
日傘 @pallasoul

返信先フィルターにすり抜けがある 1日だけ抜き出してdictの中身を見てみる

2024-01-27 22:09:20
日傘 @pallasoul

リプライだがリプライ先要素のin_reply_to_screen_nameを持ってないツイートがある IDで指定するようにしたら確実だけどユーザーフレンドリーではない fulltextを見て判断するしかないんだけど、処理が重くなりそう うーんどうしようかな 本文文字化けしてるのはとりあえず関係ないので置いとく pic.twitter.com/9JE10UCLbj

2024-01-27 22:23:31
拡大
日傘 @pallasoul

仕方ない パッと見て抜けそうな規則が無いので、悔しいけどユーザーフィルターに条件を付け足します

2024-01-27 22:26:56
日傘 @pallasoul

フルテキストからユーザーIDに該当する部分を正規表現で抜き出し(検索なのでリザルトが一次元リストで戻ってくる)て、そのIDが排除したいユーザーIDと一致してるかをチェックするように作り直した。ただこれは複数人相手のリプライに対応していない→

2024-01-27 23:09:57
日傘 @pallasoul

たとえば複数人にリプライして、かつ一番最初のリプライ先が排除したいユーザーリストと合致しなかった場合はすり抜けてCSV保存されるようになってます ただ今回は自分宛リプライ以外は全部切ることにしたので、とりあえず放置 あーあと考えられるケースとしては知らずに巻き込みリプしちゃったとか

2024-01-27 23:11:24
日傘 @pallasoul

のとかは逆に削除されちゃうんだけど、まあ稀なケースだろう 今回は削除します

2024-01-27 23:11:49
日傘 @pallasoul

んであとRTツイートかどうかの判定ね これはうっかり全検索するとRTツイートじゃないやつまで含むので、必ず先頭だけ見るように正規表現を書く必要がある これは標準ライブラリのstartswithメソッド(str)を使えばいいらしい GPT君はなんでも知っていて偉い

2024-01-27 23:33:46
日傘 @pallasoul

できた とりあえず全部抽出して、直近の2年を使って確認してるんだけど、全部出てるしtokenblとかに充てたツイートも入ってる で、次はこの謎の改行ツイをどうにかしたい pic.twitter.com/fmV8lDyXoq

2024-01-27 23:51:47
拡大
拡大
日傘 @pallasoul

あーあとほんとに全件出てんのか?ていう確認で、ついろぐの記録と辞書データのサイズを比較 ざっくり去年の合計ツイート数を700ツイ×10か月くらいに丸めて、2023年データの処理数(リプライ、RTを削除)と比較するとまあまあそれっぽい数出てる pic.twitter.com/2zcx0Mob0O

2024-01-28 00:01:16
拡大
日傘 @pallasoul

☑返信先フィルターの実装 ☑抽出完遂 明日は謎の改行ツイートの謎を片付けるよー ちょっと組んでみて無理そうだったら投げてvivliostyleのcss作りに戻ります ページ割り作ったからその通りになるようcss書くよ~

2024-01-28 00:02:52
日傘 @pallasoul

昨日の続き 2023年データと2022年データに同じ改行バラけたデータがあるので、おそらく自家RTと検討をつける ついろぐから自家RTと思われるツイートを発掘して元ツイのfull_textがどうなっているかを確認する なお改行コード置換はちゃんと稼働しているっぽい pic.twitter.com/jw2J8Gh14h

2024-01-28 10:28:33
拡大
日傘 @pallasoul

dateフィルターを日付だけでなく時間でも見れるようにする した んでもって自家RTした日付のとこだけ探したんだけど出てこない…? そして今度は本文にRT入ってるやつが出てきてあれフィルターすり抜けたか?と思ったが、これはreply_user_IDに自分宛が入ってるな じゃあいいや うーん? pic.twitter.com/aUDDjOQuww

2024-01-28 10:30:34
拡大
拡大
日傘 @pallasoul

メモ:単純にloadが使えないのでどうするか oku.edu.mie-u.ac.jp/~okumura/pytho…

2024-01-22 22:45:19
日傘 @pallasoul

python環境でteet.jsを特定条件で抜き出したい

2024-01-22 22:45:39
日傘 @pallasoul

json処理するのが初めてなので、とりあえずchatGTPに目標ソースを書かせて、分からんところをディグる感じでやってる 基本はCSVやテキストの読み込みと変わらない感じなんだけど、前処理をして辞書型のリストで読み込みforでぶん回して必要な部分を引くという感じらしい 辞書型ちゃんと使うの初めて

2024-01-22 23:12:23