2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Rustで学術論文からテキストを抽出する #13 応用編 - arXiv論文収集システム構築①

Last updated at Posted at 2024-12-12

Summary

  • 応用編ではarXivから日次で新しい論文をスクレイピングして生成AIで要約→Notionに保存するライブラリを開発する

GiHub -> https://github.com/akitenkrad/rsrpp
crates.io -> https://crates.io/crates/rsrpp-cli

前回までのあらすじ

前回:Rustで学術論文からテキストを抽出する #12

前回まででrsrppが完成したので,今回からはrsrppの応用編です.

応用編のゴール: rsrppを用いたarXiv論文収集システム

応用編では,rsrppを使ってarXivの論文を効率的に収集するシステムを構築します.

image.png

arXivではcsカテゴリに絞っても100本以上の論文が毎日新しく公開されています.
最近では,査読付き論文もarXivで公開されるようになってきているので,arXivから面白い論文を効率的に収集できるようになると便利です.
とはいえ,arXivで公開される論文は文字通り玉石混交なので,できれば石ではなく宝石の方に時間を割きたいです.

arXivの論文収集の仕組みは調べるといろいろ提案されており,実は個人的にもこれまで論文のAbstractをSlackに通知したりしてチェックしようとしていました.
が,Abstractだけとはいえ,毎日100本以上の論文を継続してチェックし続けるのはムリでした...

image.png

そこで,今回実装したrsrppを使って,公開された論文を毎日スクレイピングしrsrppを使ってテキストを抽出したのち自分が使いやすいように要約し,Notionなどを使ってMy論文データベースを構築するシステムを考えます.

理想的には,論文のリサーチクエスチョンなど確認したい観点が箇条書きレベルになっていて,論文1本あたり数秒で内容の当たりがつくようにしたいです.

image.png

実装の方針と必要なライブラリの確認

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論文ライフが待っています.

次回:Rustで学術論文からテキストを抽出する #14

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?