Summary
- 応用編ではarXivから日次で新しい論文をスクレイピングして生成AIで要約→Notionに保存するライブラリを開発する
GiHub -> https://github.com/akitenkrad/rsrpp
crates.io -> https://crates.io/crates/rsrpp-cli
前回までのあらすじ
前回まででrsrpp
が完成したので,今回からはrsrpp
の応用編です.
応用編のゴール: rsrpp
を用いたarXiv論文収集システム
応用編では,rsrpp
を使ってarXivの論文を効率的に収集するシステムを構築します.
arXivではcsカテゴリに絞っても100本以上の論文が毎日新しく公開されています.
最近では,査読付き論文もarXivで公開されるようになってきているので,arXivから面白い論文を効率的に収集できるようになると便利です.
とはいえ,arXivで公開される論文は文字通り玉石混交なので,できれば石ではなく宝石の方に時間を割きたいです.
arXivの論文収集の仕組みは調べるといろいろ提案されており,実は個人的にもこれまで論文のAbstractをSlackに通知したりしてチェックしようとしていました.
が,Abstractだけとはいえ,毎日100本以上の論文を継続してチェックし続けるのはムリでした...
そこで,今回実装したrsrpp
を使って,公開された論文を毎日スクレイピングしrsrpp
を使ってテキストを抽出したのち自分が使いやすいように要約し,Notionなどを使ってMy論文データベースを構築するシステムを考えます.
理想的には,論文のリサーチクエスチョンなど確認したい観点が箇条書きレベルになっていて,論文1本あたり数秒で内容の当たりがつくようにしたいです.
実装の方針と必要なライブラリの確認
arXiv論文収集システムに必要な機能をざっと確認します.
① arXivからの論文のスクレイピング | → 本家のAPI を使用 |
② 論文のメタ情報取得 | → arXiv API および Semantic Scholar APIを使用 |
┗ 論文のタイトルからidを取得する機能 | → 実装します |
┗ 論文のidからメタ情報を取得する機能 | → 実装します |
┗ 論文の著者情報を取得する機能 | → 実装します |
③ 論文からのキーワード抽出 | → 実装します |
④ 論文からのテキスト抽出 | → rsrpp
|
⑤ 論文の要約 | → gpt-4o-mini |
⑥ Notionへのデータ格納 | → Notion API を使用して実装します |
基本的には色々なAPIを駆使すれば実装できそうです.
ただし,②のメタ情報抽出および③のキーワード抽出ではちょっとした自然言語処理が必要になります.
②では,論文のタイトルからidを引く必要があるのですが,APIの仕様上似たタイトルの論文がいくつかピックアップされて返ってくるようになっています.そのため,探している論文のidを引き当てるためには,論文のタイトル同士の類似度計算が必要になります.
③では,論文のテキストから目的に沿ったキーワードを抽出するために品詞タグ付け等ができると便利です.
Rustにおける自然言語処理エコシステム
Rustでは,まだそれほど自然言語処理のクレートが充実していない印象です.
特に,今回必要になるテキスト同士の類似度計算にはレーベンシュタイン距離かRougeを使用する予定ですが,どちらも主だったクレートが存在しません.
そのため,主だったクレートが存在しない機能に関しては一から実装することにしました.
たまには車輪の再発明も楽しいのでヨシ.
次回
次回から早速①〜⑥のパーツを実装していきます.2025年からは,超効率的なarXiv論文ライフが待っています.