Python-機械学習こんにちは。takapy(@takapy0210)です。最近下記のような勉強会が賑わっており、論文を読む機運が高まってきているのでは?と思い始めています。lpixel.connpass.comしかし、そもそも自分の読みたい内容の論文を探すのが難しかったり、時間がかかったりして、どうしてもはじめの一歩の障壁が高いよな〜などと感じていました。Lambdaを使用してarXivから論文を取得して(必要であれば日本語翻訳して)slackに通知するようなコトをやってみました。ファイナンス、統計学の、プレプリントを含む様々な論文が保存・公開されているウェブサイトである。論文のアップロード、ダウンロードともに無料で、論文はPDF形式である。1991年にスタートして、プレプリント・サーバーの先駆けとなったウェブサイトである。世界中の強い人たちが書いた論文が載っているサイトです。結果こんな感じで、毎朝10時に前日更新された論文が少しリッチに(日本語翻訳され)slack通知されます。Webhooksアプリケーションを追加し、そこからWEBHOOK_URLを取得します。(このURLは後半で使用します)詳しくは下記を参照してみてください。qiita.comAWSの設定AWSのアカウントを所持している前提で進めます。アカウント登録や初期設定については下記を参照してみてください。Lambdaのコンソールにアクセスし、関数の作成をクリックします。Lambdaのコンソール基本的な情報を入力し、関数を作成します。3.7を選択してください。Lambda関数の作成すると、下記のように初期関数が生成されます。この関数は後述の作業で上書きしますので、ここでコンソールからは一旦離れます。今回のLambda関数では、googletransを利用します。'googletrans'というエラーが発生してしまいます。このエラーを解決するために、今回はpipを使用してgoogletransをローカルディレクトリにインストール→デプロイパッケージの作成、そしてそれをLambdaへ追加していきます。このときにLambda関数の実行スクリプトであるlambda_function.pyも一緒に作成して追加していきます。lambda_function.pyの作成package配下に、下記のようなpythonスクリプトファイルを作成します。ファイル名は「lambda_function.py」としてください。True)補足get_thesis関数の引数のtranslateをFalseに設定すると、翻訳せずにslack通知させることができます。=の部分で検索する論文の種類を指定しています。APIの詳細は下記に載っていますので、自分の目的に合わせて修正してみてください。zip化ここまでで作成したpackageフォルダをzipに圧縮します。.上記を実行するとpackageディレクトリと同じ階層にfunction.zipというファイルが出来ていると思います。Lambdaのコンソールに戻り、.zipファイルをアップロードを選択します。ここで、先に作成したfunction.zipを指定します。すると、下記のようなモジュール群と実行ファイルがLambda上にアップロードされます。タイムアウト時間の変更デフォルトのタイムアウト時間は3秒になっているため、取得する論文の本数が多い場合はタイムアウトエラーになってしまう可能性があります。そこで、今回は1分に変更しました。最後に、冒頭の「slackの設定」で取得したWEBHOOK_URLを環境変数に設定します。Eventsで作成します。トリガーは毎朝10時に設定しました。Eventsの設定cron式の詳細は下記を参照してください。Lambdaを利用してarXivの論文を(日本語に翻訳して)slack通知する関連記事2019-06-23GloVeを使って単語の分散表現を取得するこんにちは。takapy(@takapy0210)です。UNIXコマンドの基礎」こんにちは。takapy(@takapy0210)です。〜学習のテクニック〜本日は6章を学んでいきます。toC企業でMLエンジニアとして働いています。ブログでは主に機械学習界隈の話ができればと思っています。(1)月別アーカイブリンクプライバシーポリシ。