経緯

最近はCVPR2020の論文の要約を読んで、面白そうな論文はmendeleyにストックするという作業をやっています。その作業が結構大変です。理由は以下の通りです。

  • 採択されている論文が多い (1,500ぐらいだったような)
  • あんまり興味がない論文が結構ある。Adversarial attacks の防御論文多すぎ(笑)。
  • わからない英単語が結構あるので、google 翻訳でその都度調べる

このような理由でどうにか作業をもっと簡単にしたいと思い、以下のようなシステムを作ることにしました。

プログラムの手順

  • スクレイピングで CVPR2020 の公式サイトから論文のタイトル要約pdf のリンクを取ってくる。
  • 要約を和訳する。
  • 要約の中で、あまり興味がない内容の単語が入っている場合は別にする。今回は Adversarial attacks 系の論文。
  • 論文のタイトル、要約、要約を和訳したもの、pdf のリンクを1時間おきに slack のチャンネルに自動で配信する

手順ごとに自分の実装を説明していきます。

スクレイピング

beautfulsoup を使っています。CVPR の論文はサイト上で以下のような感じで並んでいます。

それぞれのタイトルをクリックするとその論文の詳細ページに飛びます。

このページから論文のタイトル、要約、pdf のリンク(下のリンク)をスクレイピングします。

要約の和訳

googletrans を使いました。こちらを参考にしました。

Adversarial attacks の排除

ちゃんと正規表現をやればもっと簡単にできると思います。今回は馬鹿正直に候補を全て書きました。adversarial attacks の論文は別のチャンネルに上げるようにします。

slack に自動配信

slackweb を使いました。使い方をこちらを参考にしました。コード全体を下にまとめます。

完成した slack bot

論文のタイトル、pdf のリンク先、要約、要約を和訳したものの順で並んでいます。これが1時間ごとに自動で配信されます。heroku にデプロイしました。

感想

スクレイピングめっちゃ楽しかったです。ちょっとハマりそうです(笑)。

本記事は qiita にも投稿されております。
元記事:https://qiita.com/Hiroaki-K4/items/31557f87b014bfdfd5c9