LoginSignup
19
10

More than 3 years have passed since last update.

arXivのabstractを日本語訳してslackに流すbot作ってみた

Last updated at Posted at 2019-04-12

画像系の研究室にいるので、arxivの新規論文はチェックしたいものです
Twitterではこのような新規論文の情報を教えてくれるbotもあるのですが、できればabstractも一緒にみたいなぁ、さらに言えば日本語訳してくれたら便利だなぁ、と
となるとTwitterでは字数が足らないから、slackに垂れ流すbotを作ろうと思って作ってみました

作ったもの

GitHub: https://github.com/kamata1729/arxiv-crawler
以下はこれのreadmeの日本語訳になります

botの動作

  1. 前日にarXivに投稿されたcs.CVの論文をとってくる (カテゴリを変えることも可能です)
  2. それのabstractを日本語に翻訳する
  3. 下のような感じでslackに投下する

使い方

1. slack botを作る

1.1 slack Appとそのbot userを作る

このページを開いてslack Appを作成したください
そのあと、 Bot users もしくはボットユーザーのタブに行って、先ほど作ったAppのbot userを作ります

1.2 権限を付与する

bot userには、メッセージを投稿できるようにpermissionをつける必要があります。
OAuth & Permissions もしくは認証&権限(かな?日本語版ページみてない)のタブを開いて、chat:write:botの権限を付与します。

1.3 slack botをワークスペースにインストール

同じタブからslack botをインストールします
インストールした後、下の画像のように出てくるアクセストークンをメモしておいてください

2. Google Translation APIの設定

さて、今度はGoogle翻訳APIを使えるようにします
このページに行って、コンソールからGoogle Translation APIを使えるようにします
そのあとコンソールの認証情報のタブから、APIキーを取得できるので、そのAPIキーもメモしておいてください。
APIキーの取得方法は、このページがわかりやすいと思います

注意点ですが、このAPIは地味にお金がかかるので、無料トライアルに申し込むことをお勧めします。申し込むと33350円のクレジットが使えるようになります。

3. AWS Lambda にコードをアップロード

3.1 zip ファイルに固める

以下を実行して、arxiv_crawler.zipを作成します

bash make_zip.sh

3.2 zipをAWS Lambdaにアップロード

AWSのコンソールで、アカウントを作ってない場合は作成し、そのあとLambdaのサービスのページに行き、新しいlambda関数を作成します。
↓作成するときはこんな感じです
image.png

そのあと、先ほど作成したarxiv_crawler.zipをlambda関数にアップロードします
ハンドラには、 arxiv_crawl.lambda_handlerを書き込んでください

3.3 環境変数を付与

下の画像のように環境変数を設定します。これまでで取得したAPIキーなどです。
CHANNEL_ID はボットは投稿するチャンネルのIDです。
チャンネルidの確認方法は以下のページを参考にしてください
https://qiita.com/YumaInaura/items/0c4f4adb33eb21032c08

3.4 CloudWatch Eventsのトリガーを設定する

CloudWatch Eventsを左側のリストから選ぶと下のようになります

このCloudWatch Eventsのトリガーを、下のように設定します。
cron(0 6 * * ? *)のように書くと、毎日15:00に実行されることになります。

これで完成です!!

新規論文の山に圧倒される快適な生活を!!

19
10
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
10