この記事は「ワセマ 裏企画 Advent Calendar 2025」 の2日目の記事として書いたものです。
概要
arXiv の数学論文をいい感じにまとめたい → LLM を使ったら何かできるのでは?
という考えのもと、半年以上前に練習として作ってみたものを紹介します。
動作例
- 指定したカテゴリー(e.g.
math.CO)のその日投稿された論文全てに対して実行 - 対象論文の url を指定して実行
の2通り試しているのですが、ここでは後者の方の例を書きます。
入力論文:https://arxiv.org/abs/2309.01119
これを、リポジトリの README.md に従って実行すると、 次のようなログが表示されます:
find 1 new papers! (url:https://arxiv.org/abs/2309.01119)
0%| | 0/1 [00:00<?, ?it/s][1/1]: https://arxiv.org/pdf/2309.01119v4
title: Jacobi polynomials for the first-order generalized Reed--Muller codes
summarizing...
short summary: Jacobi polynomial を用いて first-order Generalized Reed-Muller codes の shells の combinatorial t-design 性を判定した論文
create page...
100%|█████████████████████████████████████████████████████████████████████| 1/1 [02:04<00:00, 124.43s/it]
========== OPENAI USED TOKENS ============
Input Tokens : 19724
Output Tokens: 3822
その後、指定した Discord チャンネルにメッセージが送信されます:
ここにある Notion のリンクに飛ぶと、 作成した Notion ページを見ることができます:
どうやって動いているか
① MistralOCR で文字起こし
Mistral OCR とは、フランスの Mistral AI という AI スタートアップ企業から 2025 年 3 月に公開された OCR (文字認識)モデルです。
公式ページ:
かなり良い精度で様々な文書の文字起こしができます。1000ページの OCR に 1 ドルかかります。こちらの記事で詳しく書かれていたので気になる方はチェックしてみてください。
今回論文の要約にこの OCR を利用しているのは、
- Mistral OCR がすごいらしい!と聞いて試してみたかったから(2025 年 3 月のリリース時にこれ作ってました)
- arXiv の tex ダウンロードは LLM にプロンプトとして渡すには微妙だから
後者については、 tex ファイルは著者によっては独自のマクロが組まれていることも多く、直接 LLM に渡すと微妙な挙動になってしまいました。また、定理番号などもうまく拾うことができませんでした。そこで、 pdf を OCR によって markdown 化してからプロンプトに流すことで対応しました。
② GPT-5-mini で要約作成
数学論文に特化したものを作りたかったので、以下のような点がポイントになりました。
- 論文の概要
- どんな論文なのかが瞬時にわかるような要約
- 主結果
- 論文中の定理をそのまま引用
- self-contained になるように適宜補足
- 証明における本質的なポイントも簡潔にまとめる
- 今後の課題
- その論文から次に考えられる問題について
そこで、プロンプトを工夫して上記のような結果が得られるように調整しました。プロンプトは ここ から見ることができます。もともと gpt-4o-mini で開発していたのですが久しぶりに触ってみて gpt-5-mini に変更したら出力がかなり良くなっていて驚きました。工夫点としては、
- 出力形式の指定(あとで Notion ページを作る際に必須)
- 具体例の提示
- 制約追加
- 特に、「専門用語は英語のまま利用すること」が良かった
gpt-5-mini は 1 日 250 万トークンまでなら無料で使うことができます。昔の記事なので少し違いますが、以下の記事などが分かりやすいです
③ 一言の要約を作成
最後に Discord へメッセージを送信するときにどんな論文なのかがパッとわかるように、② で生成した要約をもう一度 LLM に投げることで一言にまとめています。技術的に難しいことは特にないです。
プロンプトは こちら。
④ Notion API でページ作成
② で生成した markdown 形式の文章を Notion API で使えるようにうまく構造化します。Notion API がかなり特殊で、「ブロック」と呼ばれる単位を作っていく必要があります。このステップに一番苦戦しました。下の記事を参考に、 API document とにらめっこしながら LLM に頼りまくることで実装しました。構文解析難しい...
なんとか下の画像のように数式ブロックや箇条書きもうまく扱うことができるようになりました。OCR や LLM の生成などの不安要素を通過してちゃんと数式が書けてるのすごい。
⑤ Discord に通知送信
③, ④ の結果をまとめて Discord に送っています。 Discord webhook はとても使いやすくて便利です。ここでも詳しい説明は他の記事に頼ります:
動作例のところと同じ画像を下に貼っておきます。工夫点としては、メタデータを箇条書きにしたところと一言の要約を最後に追加しているところです。まだまだ改善の余地はありそう。
最後に
以上が私の作っていた arxiv-bot の紹介になります。今度時間があるときに Kaggle Notebook で定期実行を仕込んでもう少しわかりやすい説明を書いてみようと思います。(Kaggle Notebook ってコンペ以外に使ってもいいのでしょうか?)
Mistral OCR は無料だと思っていたので使っていたのですが、(ほとんど無料みたいな額とはいえ)お金がかかるとわかったのでちょっと考え直してみます。 OpenAI API の無料枠を毎日有効活用したいなぁ。
宣伝
私が所属していたサークル「理工系学術サークル Wathematica」にて、後輩たちがアドベントカレンダー企画をやっています。とてもクオリティの高い記事ばかりですごいので是非みてください!





