/Carrier-Owl

arxiv--> DeepL --> Slack

Primary LanguagePythonMIT LicenseMIT

Carrier Owl

伝書フクロウという意味です。

不具合などがあればTwitterの #carrier_owl で情報共有を行っています。

About Carrier Owl

2日前のarxivから気になる論文にスコアを付けてslackに通知するシステムです。
通知の際に、abstractをDeepLで翻訳しています。
導入に必要なのはgithubアカウントだけです。10minぐらいで設定は終わります!!
スコアは、ターゲットとなるキーワードに重み付けをして決まります。(例 resnet=5, kaggle=3, audio=3)
ユーザーが好きな領域好きなキーワードを登録することで、通知される論文は変わります。

  • 登録キーワード例

    keywords:
        sound: 1
        audio: 1
        sound feature: 3
        audio feature: 3
        noise removal: 2
        spectrogram: 3
    
  • 通知例(score昇順)

Installation

step

  1. このリポジトリをフォークする

  2. GitHub Actionsを有効化する

    • Actionsタブをクリックし、有効化します。

  3. 通知先の設定 通知したいアプリケーションに応じて設定を行います。いくつでも設定可能です。

  4. webhook urlの設定

    • step3で取得した webhook url(または line token) を設定します。

    • 手順

      a. settings をクリック。

      b. Secrets をクリック。

      c. New repository secret をクリック。

      d. Nameを SLACK_ID(または LINE_TOKEN ) と入力。Valueを step2 で取得したwebhook url(また line token)を貼り付けます。

      e. 最後にAdd secretをクリックして登録完了です。

  5. 領域の設定

    • 通知させたいarxivの論文の領域を指定します。

    • (computer scienceの人はこの手順を飛ばしてstep8に進んでも構いません)

    • 手順

      1. 以下の表から通知を受け取りたいsubjectを選択して、urlをクリックしてください。
      subject category url
      Astrophysics astro-ph url
      Condensed Matter cond-mat url
      Physics physics url
      Mathematics math url
      Nonlinear Sciences nlin url
      Computer Science cs url
      Quantitative Biology q-bio url
      Quantitative Finance q-fin url
      Statistics stat url
      Electrical Engineering and Systems Science eess url
      Economics econ url
      1. さらに細かい分類を確認します

        • 以下の例は、subject = cs をクリックした場合です。cs.AIcs.CL などが細かな分類になります。
      2. config.yaml 内の、subject を2で確認した文字列に変更します。

        • デフォルトではcat:cs.*になっています。これは、cs以下の小分類すべてを通知するという設定になります。
        • 複数領域指定
          • 複数領域指定も可能です。以下のよう OR でつなぎます。
            • ex1) cat:cs.AI OR cat:cs.CV
            • ex2) cat:physics.* OR cat:cs.*
            • ex3) cat:physics.space-ph OR cat:cs.AI OR cat:q-bio.BM
  6. キーワードの設定

    • config.yaml にキーワードとそのキーワードのスコアを設定します。
    • 例(音に関する論文を通知してほしい場合)
      keywords:
          sound: 1
          audio: 1
          sound feature: 3
          audio feature: 3
          noise removal: 2
          spectrogram: 3
      
    • 仕組みとしては、以下のような感じです。
      1. abstractにキーワードが含まれているか

      2. 含まれていれば、キーワードの合計をscoreとし、昇順で通知

  7. 通知タイミングの調整

    • デフォルト設定では、日本時間の平日9時50分に通知されるようになっています。この設定で問題ない方はこれで設定完了です。
    • 通知タイミングのカスタマイズは、こちらを変更することで可能です。
  8. push

    • ここまでの変更がmasterブランチに反映されていれば、これですべての設定が完了したことになります。次の通知タイミングでslackに通知されます。
  9. test

    • github actions の workflow_dispatch を使って通知タイミングを待たずにいつでも実行することができます。

    • Actionsタブでから、Run workflow をクリックすることでいつでも実行可能です。

その他の設定

  • score threshold 通知するスコアに閾値を設定することができます。score >= scrore_threshold を満たす論文のみ通知させることができま す。 config.yaml 内の、score_threshold で設定できます(デフォルトは0になっています)。

Thanks

  • hppさんのPRにより、github actionsを使うことにより github だけで動作するようになりました。

  • wakamezakeさんのPRにより、arxiv-apiを導入しました。

  • amagaeruさんのPRにより、LINE通知機能を実装しました。