LoginSignup
0
0

Arxiv論文の自動収集ツール作ってみた

Last updated at Posted at 2023-06-04

はじめに

以前論文検索アプリケーションの開発と解説記事を作成したのですが、そこでArxiv APIそのものがとても有用であることに気付きました。そこでArxiv APIを用いた、論文自動収集アプリケーション(CUI)の開発について簡単にまとめます。

github:https://github.com/nomnomnonono/Arxiv-Downloader

方針

  • Arxiv APIを用いることで論文情報を簡単に取得できるが、Arxivには数え切れない量の論文が投稿されているため、その全てを取得しようとするのは非効率
    • そこで検索クエリを工夫して、論文タイトルに含まれるキーワードやカテゴリを指定することで、自身が欲しい論文に絞って収集することを考える
  • 前回収集時の時刻を保存しておくことで、次回実行時に前回実行時からの差分のみを取得する
  • configファイルで検索クエリ等の各種設定を用意することで、論文カテゴリ(Segmentation, GAN, etc.)ごとの収集を別で実行できる

実装

後で書きます。

使い方

まずconfigファイルの例を以下に記載します。

base_dir: data  # データ保存先のベースとなるディレクトリ名
before: '20230525215921'  # 前回収集時刻
download_pdf: false  # pdfの保存をするか否か(とても時間がかかる)
max_results: 1000  # 最大取得件数(基本的にはかなり大きくする)
query: 'ti: fairness AND (cat:cs.LG OR cat:cs.AI OR cat:cs.CV)'  # 検索クエリ
tag: fairness  # configファイルを識別する一意なタグ

実行結果は以下のようなディレクトリ構造で保存されます。

base_dir
  ├ {tag}.csv
  └ tag
     ├ a.pdf
     ├ b.pdf
     ...

プログラム実行後にはconfigファイルのbefore (前回収集時刻) が自動で更新されるようになっています。

ユーザが実際に任意に変更するquery (検索クエリ) について簡単に説明します。(詳細な情報はこちらをご覧ください)
例のconfigファイルでは、タイトルにfairnesssが含まれている

ti: fairness

かつ
Arxivで定義されているカテゴリがcs.LG, cs.AI, cd.CVのいずれか

cat:cs.LG OR cat:cs.AI OR cat:cs.CV

であるような論文を取得するように設定しています。

他にも著者や投稿日時等を用いて検索を行えるので、自身にあった使い方をしていただければと思います。

おわりに

ここまで読んでいただきありがとうございます!
簡単なアプリケーションのため解説も丁寧ではないのですが、是非ご活用していただければと思います:bow:

0
0
0

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
0
0