論文の日本語要約ツイートをslack / LINEに通知するアプリを作った
はじめに
定期的に論文の日本語要約ツイートを収集し,slackやLINEに通知するアプリを作成しました.
実装はこちらに公開しております.
こちらのアプリは,GitHubアカウントとtwitter API key / tokenがあれば誰でも利用可能です.
最新の論文のキャッチアップする手助けとなれば幸いです.
背景
論文の情報収集の手段の一つとしてTwitterが非常に有効で,論文の要約をまとめたツイートがよくタイムラインに流れてきます.
これらは論文の情報が端的にまとまっており,論文を発見するのに有益な一方で,他の雑多な投稿に埋もれてしまい,見逃してしまいやすいです.
また僕自身あまりSNSが得意ではなく,見る頻度も多くはないため,論文に関する有益な情報を逃してしまうことが多いです.
Twitterの検索で,「arxiv.org lang:ja」のようなクエリで検索を行うと,arXiv論文に言及している日本語ツイートを取得することが可能なのですが,
最近はそれすら面倒だと感じておりました.
これらの問題を解決するために,定期的に論文の日本語要約ツイートを収集し,slackやLINEに通知するアプリを作成しました.
アプリの概要
今回作成したアプリは,GitHub Actions, Twitter API, LINE / slack botを使用しております.
Twitter APIを使用して論文に関連するツイートを取得し,LINEやslackに通知する処理を,GitHub Actionsを使用して定期実行するものになっております.
GitHub Actionsによるjob scheduling
GitHub Actionsを使用して,1日に1回スクリプトを実行しています.
デフォルトでは日本時間の朝9時に実行されるようになっております.
ツイートの取得
Twitter APIを利用して,スクリプトが実行された時間から1日前の前までのツイートを取得しています.
Twitter APIを使用して取得するツイートは,以下の二つとなります.
特定の学会や論文公開サイトのURL + lang:ja
の検索結果で取得される,論文に言及している日本語ツイート- その他特定のユーザーからのツイート (英語で論文の情報を発信しているユーザーのツイートを取得するため)
この際,翻訳botなどのツイートは除外するような設定が可能です.
LINE / slackへの通知
上記で取得した結果を,LINEやslackに通知にします.
LINEに通知する際は,LINE Notifyを使用しています.
slackに通知する際は,slack-python-webhookを使用しています.
アプリの使い方
基本的にはこちらのレポジトリのREADMEの手順に沿って,
レポジトリのクローンを行い,Twitter API key / tokenとLINE / slackのtokenを登録することで,簡単に設定できるかと思います.
各種設定の方法
twitterの検索キーワードの設定
src/setting.py
の中に検索したいキーワード(KEYWORDS
)を設定できます.- デフォルトではいくつかの学会,及びarXivのURLが記載されています.
github.com セグメンテーション
といったようなキーワードを追加することで,セグメンテーションと記述されているgithubのレポジトリを引用したツイートを取得することができます.
KEYWORDS = [ "openaccess.thecvf.com", "arxiv.org", "ojs.aaai.org", "iclr.cc", "nips.cc", "icml.cc", "aclweb.org", ]
ツイートを通知しないユーザーの設定
src/setting.py
の中で,ツイートを通知したくないアカウント(BLOCK_LIST
)を設定することができます.- デフォルトではいくつかの翻訳botを追加しております.
BLOCK_LIST = set( [ "arXiv_cs_CV_ja", "arXiv_cs_CL_ja", "hackernewsj", ] )
キーワード検索の結果に関わらず,ツイートを通知したいユーザーの設定
src/setting.py
の中にツイートを取得したいユーザー(USERS
)を設定できます.- デフォルトでは論文に関するツイートを多くしてくれるAKさん(@ak92501)からのツイートを取得するようになってます.
USERS = [
"ak92501",
]
実行時間の設定
.github/workflows/notify.yml
の中のcron
の値を変更することで,通知の日時を変更できます.- デフォルトでは日本時間の朝9時に通知されるようになっています.
name: paper-summary-tweet-notification on: schedule: # 通知時間を変更したい場合は,以下を変更する # UTC 0時 -> 日本時間朝9時 - cron: '0 0 * * *' workflow_dispatch: ...
通知の結果
毎日9時に上記のような通知が送られてきます!
通知はだいたい30~50件程度くる感じです.
まとめ
twitter上の論文に関する有益な情報を見逃さないために,定期的に論文の日本語要約ツイートを収集し,slackやLINEに通知するアプリを作成しました.
よければこちらのアプリを使用して,日頃の情報収集の手助けになれば幸いです.
何かバグやご不明な点などございましたら,気軽にご連絡いただけたらと思います.