arXiv 論文分析スキル(詳細版)
arXiv 論文を分析して、各章・セクションの詳細な解説と参照論文の深い分析を含むレポートを生成します。
100ページ以上の長いドキュメントにも対応しています。
長いドキュメントの処理(100ページ以上)
重要: 100ページ以上の論文や 10MB 以上の PDF は Read ツールで直接読み取れません。
必ず以下のチャンクエクスポートワークフローを使用してください。
ドキュメント長の確認
論文をダウンロードして、まずページ数を確認してください:
bash
1uv run arxiv-helper <arxiv_url> --download
出力に Pages: XXX と表示されます。100ページ以上または 10MB 以上の場合は、次のセクションの手順に従ってください。
長いドキュメントの分析戦略
| ページ数 | 分類 | 推奨アプローチ |
|---|
| 1-30 | 標準 | 通常の分析フロー(Read で PDF を直接読む) |
| 31-50 | やや長い | セクション単位で読む |
| 51-100 | 長い | チャンク分割、重要部分を優先 |
| 100+ | 非常に長い | チャンクエクスポート必須(下記参照) |
【必須】100ページ以上の論文のワークフロー
ステップ 1: チャンクをテキストファイルにエクスポート
このステップが最も重要です。 以下のコマンドでPDFをテキストファイルに分割します:
bash
1uv run pdf-chunker <arxiv_url_or_id> --export-dir chunks/<arxiv_id>
例:
bash
1uv run pdf-chunker 2512.13564 --export-dir chunks/2512.13564
このコマンドにより以下が生成されます:
chunks/<arxiv_id>/<arxiv_id>_chunks_info.md - チャンク情報サマリー
chunks/<arxiv_id>/<arxiv_id>_chunk01_*.txt - チャンク1のテキスト
chunks/<arxiv_id>/<arxiv_id>_chunk02_*.txt - チャンク2のテキスト
- ...
ステップ 2: チャンク情報を確認
まず情報ファイルを読んで、チャンク構成を確認します:
Read(file_path="chunks/<arxiv_id>/<arxiv_id>_chunks_info.md")
このファイルには以下が含まれます:
- PDF の基本情報(ページ数、サイズ等)
- チャンク一覧(ページ範囲、タイトル)
- 各チャンクファイルのパス
ステップ 3: チャンクを順番に読んで分析
各チャンクファイルを Read ツールで読み取り、分析を進めます:
# チャンク1を読む
Read(file_path="chunks/<arxiv_id>/<arxiv_id>_chunk01_Introduction.txt")
# チャンク2を読む
Read(file_path="chunks/<arxiv_id>/<arxiv_id>_chunk02_*.txt")
分析の優先順位(時間が限られる場合):
- 最優先: Introduction/Abstract を含むチャンク、Conclusion を含むチャンク
- 高優先: Method/Approach を含むチャンク、Results を含むチャンク
- 中優先: Related Work, Background を含むチャンク
- 低優先: Appendix, 詳細な証明を含むチャンク
ステップ 4: チャンク分析のテンプレート
各チャンクを読んだ後、以下の形式で分析結果を記録します:
チャンク分析のテンプレート:
markdown
1## チャンク [N] 分析結果(p.XX-YY)
2
3### セクション: [セクション名]
4
5#### 要約
6[このチャンクの主要な内容を 3-5 文で要約]
7
8#### キーポイント
9- [ポイント1]
10- [ポイント2]
11- [ポイント3]
12
13#### 重要な図表
14- Figure X: [説明]
15- Table Y: [説明]
16
17#### 参照される論文
18- [論文1の情報]
19
20#### 次のチャンクへの接続
21[このチャンクから次のチャンクにつながる内容]
ステップ 5: 結果の統合とレポート生成
全チャンクの分析が完了したら、結果を統合してレポートを生成します:
- 各チャンクのサマリーを結合
- 重複する情報を整理
- 論理的な流れを確認
- 最終レポートを
reports/{arxiv_id}_report.md として生成
長いドキュメント分析のベストプラクティス
Do's(やるべきこと)
- ✅ 最初に全体構造を把握する
- ✅ チャンク計画を立ててから分析を開始する
- ✅ 重要なセクションを優先的に分析する
- ✅ 各チャンクの分析結果を記録する
- ✅ 中間結果を定期的に保存する
- ✅ セクション間の関連性を意識する
Don'ts(避けるべきこと)
- ❌ 100ページ以上の PDF を一度に全て読み込もうとする
- ❌ チャンク計画なしに分析を開始する
- ❌ 詳細な分析なしに全体を流し読みする
- ❌ 中間結果を記録せずに進める
- ❌ 参照論文を全て調査しようとする(5-10本に絞る)
サーベイ論文(100ページ以上)の特別な注意点
サーベイ論文は特に長くなりやすいため、以下に注意:
-
分類体系(Taxonomy)を最初に把握
- 多くのサーベイは分類軸を持つ
- 分類軸を理解してから各カテゴリを分析
-
各カテゴリの代表的手法に集中
- 全ての手法を詳細に分析する必要はない
- 各カテゴリから 2-3 の代表的手法を選択
-
比較表を優先的に抽出
- サーベイの価値は比較分析にある
- 比較表は完全に転記する
-
セクション間の重複に注意
- サーベイは同じ手法が複数箇所で言及される
- 重複を整理して記述する
【最重要】レポート執筆の文体規則
文体: ですます調(敬体)・丁寧語で統一【必須】
レポート全体を必ず「ですます調(敬体)」と「丁寧語」で統一してください。
これは最も重要なルールです。読者に丁寧に説明する姿勢で、すべての文を敬体で記述します。
ですます調の基本パターン
| パターン | 例文 |
|---|
| 〜です | 「本論文の目的は効率化です。」 |
| 〜ます | 「提案手法はメモリを自動管理します。」 |
| 〜ています | 「著者らは新しいアプローチを提案しています。」 |
| 〜されています | 「実験により有効性が確認されています。」 |
| 〜でしょう | 「この手法は広く応用できるでしょう。」 |
| 〜ください | 「以下の点に注意してください。」 |
良い例(ですます調・丁寧語)✓
- 「本論文では、LLMエージェントの効率化手法を提案しています。」
- 「この手法の特徴は、メモリ管理を自動化する点にあります。」
- 「実験結果から、提案手法が従来手法を15%上回ることが示されています。」
- 「以下では、各コンポーネントについて詳しく説明します。」
- 「この結果は非常に重要な意味を持っています。」
悪い例(である調は使用禁止)✗
以下のような「である調(常体)」は使用しないでください:
「本論文では、LLMエージェントの効率化手法を提案している。」
「この手法の特徴は、メモリ管理を自動化する点にある。」
「実験結果から、提案手法が従来手法を15%上回ることが示された。」
「以下では、各コンポーネントについて説明する。」
「この結果は重要な意味を持つ。」
注意すべき表現
| 使用禁止(である調) | 使用すべき(ですます調) |
|---|
| 〜である | 〜です |
| 〜している | 〜しています |
| 〜された | 〜されました |
| 〜と考えられる | 〜と考えられます |
| 〜が必要だ | 〜が必要です |
| 〜すべきだ | 〜すべきです |
| 〜ではない | 〜ではありません |
| 〜できる | 〜できます |
| 〜だろう | 〜でしょう |
詳細で自己完結した説明
レポートは論文を読まなくても内容が理解できるレベルの詳細さで記述します。
原則
-
専門用語は必ず説明する
- 初出の専門用語には定義や説明を付ける
- 略語は初出時にフルスペルと意味を記載する
-
背景知識を補足する
- 読者が前提知識を持っていないと仮定する
- 必要な背景情報は省略せずに記述する
-
論理の流れを明確にする
- 「なぜなら」「したがって」「具体的には」等の接続表現を使用する
- 各段落の関係性を明示する
-
具体例を豊富に含める
- 抽象的な説明には具体例を添える
- 数値や事例を用いて理解を助ける
詳細な説明の例
悪い例(説明不足):
MemGPTは階層的メモリを使用します。
良い例(詳細で自己完結):
MemGPTは、コンピュータのOSにおけるメモリ管理の仕組みをLLMに適用した手法です。
具体的には、LLMのコンテキストウィンドウを「メインメモリ」、外部データベースを
「仮想メモリ(外部ストレージ)」として扱います。LLMは必要に応じてこれらの
メモリ間でデータを移動させる関数(core_memory_append、archival_memory_search等)
を自律的に呼び出すことで、コンテキスト長の制限を実質的に撤廃しています。
この仕組みにより、長期間にわたる対話でも重要な情報を保持し続けることが可能になります。
論文タイプの判定
最初に論文タイプを判定し、適切な分析アプローチを選択してください。
1. サーベイ論文 (Survey/Review)
以下の特徴がある場合はサーベイ論文として分析します:
- タイトルに "Survey", "Review", "Overview", "Systematic Review" 等が含まれる
- 複数の既存手法を比較・分類している
- 新しい手法の提案ではなく、分野の整理が目的
分析方針: 紹介されている各手法・論文の説明を中心に、分類体系や比較軸を詳述します。
2. 研究論文 (Research Paper)
以下の特徴がある場合は研究論文として分析します:
- 新しい手法・理論・発見を提案している
- 実験による主張の検証がある
分析方針: 主張・ロジック・手法・実験・結果を正確に追跡します。
読解の姿勢
- まず全体を通読してから詳細分析に入ります
- 論文の構造と流れを把握します
- 著者の主張と根拠の関係を理解します
- 数値・引用は原文に忠実に抽出します
- 解釈を加えすぎないようにします(論文が言っていないことを書かない)
ワークフロー
1. URL/ID の解析とドキュメント情報の取得
bash
1uv run arxiv-helper <url_or_id> --download
このコマンドにより arXiv ID、PDF URL、メタデータが表示され、PDF がダウンロードされます。
2. ドキュメント長の確認と戦略決定
PDF をダウンロードしたら、まずページ数を確認します:
python
1from src.pdf_chunker import get_pdf_info
2
3info = get_pdf_info("reports/<arxiv_id>.pdf")
4print(f"ページ数: {info.page_count}")
5print(f"長いドキュメント: {info.is_long_document}")
6print(f"非常に長いドキュメント: {info.is_very_long_document}")
分岐:
- 50ページ未満: 通常のワークフロー(下記ステップ3へ)
- 50-100ページ: セクション単位の分析を推奨
- 100ページ以上: 上記「長いドキュメントの処理」セクションに従う
3. PDF の読み取り
標準的なドキュメント(50ページ未満、10MB未満)
Read ツールで直接 PDF を読み取ります
- 必ず論文全体を通読してから詳細分析に入ります
- 論文のタイプ(サーベイ vs 研究論文)を判定します
長いドキュメント(50ページ以上 または 10MB以上)
重要: 大きな PDF は Read ツールで直接読み取れません。以下のワークフローを使用してください。
-
チャンクをテキストファイルにエクスポート:
bash
1uv run pdf-chunker <arxiv_id> --export-dir chunks/<arxiv_id>
-
チャンク情報を確認:
Read(file_path="chunks/<arxiv_id>/<arxiv_id>_chunks_info.md")
-
各チャンクを順番に読み取り:
Read(file_path="chunks/<arxiv_id>/<arxiv_id>_chunk01_*.txt")
Read(file_path="chunks/<arxiv_id>/<arxiv_id>_chunk02_*.txt")
...
詳細は上記「【必須】100ページ以上の論文のワークフロー」セクションを参照してください。
4. 論文タイプに応じた詳細分析
以下の A または B のセクションに従って分析を進めます。
A. サーベイ論文の分析方法
サーベイ論文では、紹介されている手法・論文の正確な説明が最も重要です。
A.1 サーベイの構造把握
以下の項目を特定します:
- 対象分野: このサーベイが扱う研究領域は何か
- 分類軸(Taxonomy): どのような基準で手法を分類しているか
- 各カテゴリ: それぞれのカテゴリにはどのような手法が含まれるか
- 比較表: 手法間の比較表があれば抽出します
A.2 各カテゴリ・手法の詳細記述
サーベイで紹介されている各手法について、以下の形式で詳細に記述します:
markdown
1### [手法名]
2
3**提案論文**: [著者名], [年], [会議/ジャーナル名]
4
5#### 概要
6
7[この手法が何を目的として、どのようなアプローチを取るのかを3-5文で説明します。
8専門用語は必ず説明を付け、読者が予備知識なしに理解できるようにします。]
9
10#### 技術的詳細
11
12この手法の核心となる技術的なポイントを説明します。
13
14**主要なアイデア**:
15[手法の着想や基本的な考え方を説明します。なぜこのアプローチを取るのか、
16その動機も含めて記述します。]
17
18**アーキテクチャ/アルゴリズムの特徴**:
19[具体的な処理の流れ、構成要素、重要なステップを説明します。
20図がある場合は「Figure X に示すように」と言及します。]
21
22**重要な数式**:
23[手法の理解に必要な数式があれば、その意味と各変数の定義を含めて記載します。]
24
25$$[数式]$$
26
27ここで、$[変数]$ は [変数の意味] を表しています。
28
29#### 利点
30
31この手法には以下の強みがあります:
32- [利点1の詳細な説明]
33- [利点2の詳細な説明]
34
35#### 限界
36
37一方で、以下の課題が残されています:
38- [限界1の詳細な説明と、それが問題となる理由]
39- [限界2の詳細な説明]
40
41#### サーベイでの位置づけ
42
43本サーベイでは、この手法を[カテゴリ名]に分類しています。
44[サーベイ著者がこの手法をどのように評価しているか、
45他の手法との比較でどのような特徴があるとされているかを記述します。]
A.3 比較分析の抽出
- 比較表があれば完全に転記し、各項目の意味を説明します
- 各手法の違いを明確に説明します
- トレードオフを特定し、どのような状況でどの手法が適しているかを記述します
- 性能比較があれば数値を正確に引用し、その意味を解説します
A.4 サーベイの結論・展望
- サーベイが示す分野の現状を要約します
- 未解決の課題を列挙し、それぞれがなぜ難しいのかを説明します
- 今後の研究方向として示唆されている内容を記述します
B. 研究論文の分析方法
研究論文では、主張・ロジック・実験・結果の正確な追跡が最も重要です。
B.1 主張の特定
以下を明確に抽出します:
- 主要な主張(Main Claim): この論文が最も伝えたいことは何か
- その主張を支える論拠: なぜその主張が正しいと言えるのか
- 主張の新規性: 既存研究と比較して何が新しいのか
B.2 ロジックの追跡
論文の論理展開を以下のように追跡します:
1. 問題提起: [既存の何が問題なのかを具体的に説明します]
↓ なぜなら
2. 問題の原因: [その問題が生じる根本原因を分析します]
↓ したがって
3. 提案の着想: [どのようなアイデアで解決しようとしているかを説明します]
↓ 具体的には
4. 手法の詳細: [提案手法の技術的詳細を記述します]
↓ 検証するために
5. 実験設計: [どのような実験で主張を検証するかを説明します]
↓ 結果として
6. 実験結果: [実験で何が示されたかを数値とともに記述します]
↓ これは
7. 結論: [主張が正しいことがどのように確認されたかを述べます]
B.3 各セクションの詳細分析
Abstract の分析
Abstract から以下の情報を抽出します:
- 主要な主張: 論文の核心を1文で表現します
- キーポイント: 重要なポイントを箇条書きで列挙します
- 数値的成果: 具体的な改善率や達成した性能を正確に引用します
記述例:
markdown
1### 概要
2
3本論文では、[研究テーマ]に取り組んでいます。著者らは[問題]を解決するために
4[提案手法]を提案しています。
5
6#### キーポイント
7
8- [キーポイント1の詳細な説明]
9- [キーポイント2の詳細な説明]
10- [キーポイント3の詳細な説明]
11
12#### 主要な数値結果
13
14実験の結果、以下の成果が報告されています:
15- [指標1]: [数値](従来手法と比較して[X]%の改善)
16- [指標2]: [数値](ベンチマーク[Y]における最高性能)
Introduction の詳細分析
Introduction から以下の情報を抽出し、詳細に記述します:
問題の背景・文脈:
この研究が取り組む問題がなぜ重要なのかを説明します。関連する応用分野や
社会的意義についても言及します。
既存手法の課題:
これまでにどのようなアプローチが試みられてきたか、そしてそれらの
具体的な限界は何かを説明します。
研究ギャップ:
既存研究では何が解決されていないのか、どのような課題が残されているのかを
明確にします。
本研究の着想:
著者らがどのようなアイデアで問題を解決しようとしているのかを説明します。
その着想がどこから来ているのか(他分野からの応用、既存手法の組み合わせ等)
も含めて記述します。
貢献のリスト:
論文が主張する貢献を原文から抽出し、それぞれの意義を説明します。
重要な引用文:
論文の核心を表す重要な文を原文で引用し、日本語で解説を加えます。
markdown
1> "Our method achieves state-of-the-art performance while reducing computational cost by 50%."
2
3この文は、提案手法が最先端の性能を達成しながら、同時に計算コストを半減させている
4ことを主張しています。これは性能と効率のトレードオフを解決した点で重要な貢献です。
関連研究をカテゴリ別に分類して記述します:
markdown
1### 関連研究
2
3#### [カテゴリ1の名前]
4
5このカテゴリには、[カテゴリの特徴や共通点]を持つ手法が含まれます。
6
7**代表的な手法**:
8
9- **[手法1の名前]** ([著者], [年]): [手法の概要を2-3文で説明します。
10 何を目的として、どのようなアプローチを取り、どのような結果を得たかを記述します。]
11
12- **[手法2の名前]** ([著者], [年]): [同様に説明します]
13
14**本研究との関係**:
15本研究は、これらの手法と比較して[どのように異なるか/どのように発展させているか]
16という点で差別化されています。具体的には、[具体的な違いの説明]という特徴があります。
Method / Approach の詳細分析
このセクションは最も詳細に分析します。
以下の項目すべてについて、読者が実装できるレベルの詳細さで記述します:
手法の動機:
なぜこのアプローチを選んだのかを説明します。他のアプローチではなく
このアプローチを選んだ理由、期待される利点を記述します。
全体アーキテクチャ:
markdown
1Figure [X] に、提案手法の全体アーキテクチャを示します。システムは以下の
2[N]個の主要コンポーネントから構成されています:
3
45|---------------|------|------|------|
6| [コンポーネント1] | [このコンポーネントが担う役割の説明] | [入力データの形式と内容] | [出力データの形式と内容] |
7| [コンポーネント2] | [役割の説明] | [入力] | [出力] |
各コンポーネントの詳細:
markdown
1#### [コンポーネント1の名前]
2
3このコンポーネントは[役割]を担当しています。
4
5**処理の流れ**:
61. まず、入力として[入力の説明]を受け取ります
72. 次に、[処理1の説明]を行います
83. その後、[処理2の説明]を実行します
94. 最後に、[出力の説明]を生成します
10
11**重要な数式**:
12このコンポーネントの中核となる処理は、以下の数式で表されます:
13
14$$[数式]$$
15
16ここで:
17- $[変数1]$: [変数1の意味と次元]
18- $[変数2]$: [変数2の意味と次元]
19- $[変数3]$: [変数3の意味と典型的な値の範囲]
20
21この数式の意味は、[数式が何を計算しているのか、なぜこの形式なのかの説明]です。
アルゴリズム:
markdown
1#### アルゴリズムの詳細
2
3論文の Algorithm [X] に示されている処理の流れを以下に説明します:
4
入力: [入力の説明]
出力: [出力の説明]
- [ステップ1の処理内容]
- [ステップ2の処理内容]
- for each [要素] in [集合]:
-
[ループ内の処理]
- end for
- return [戻り値]
**各ステップの解説**:
- ステップ1では、[このステップが何をしているのか、なぜ必要なのかの説明]
- ステップ2では、[同様の説明]
- ステップ3-5のループでは、[ループの目的と処理内容の説明]
理論的根拠:
定理や証明がある場合は以下のように記述します:
markdown
1#### 理論的保証
2
3本手法には以下の理論的保証があります。
4
5**定理 [X]**: [定理の statement を記載]
6
7この定理は、[定理が意味すること、なぜ重要かの説明]を示しています。
8
9**証明の概要**:
10証明は以下の流れで行われています:
111. まず、[証明の第一段階の説明]
122. 次に、[第二段階の説明]
133. 最後に、[結論の導出]
実装の詳細:
markdown
1#### 実装の詳細
2
3**使用フレームワーク**: [PyTorch/TensorFlow/JAX 等]
4
5**重要なハイパーパラメータ**:
6
78|-----------|-----|------|
9| [パラメータ1] | [値] | [このパラメータが何を制御するか、なぜこの値を選んだかの説明] |
10| [パラメータ2] | [値] | [説明] |
11
12**計算リソース**:
13- GPU: [使用したGPUの種類と数]
14- 学習時間: [かかった時間]
15- 推論時間: [1サンプルあたりの時間]
Experiments の詳細分析
実験の目的:
この実験セクションで検証しようとしている仮説や主張を明確にします。
データセット:
markdown
1#### 使用データセット
2
34|-------------|-------|------|------|
5| [データセット1] | [サンプル数、特徴量数等] | [データの特徴、ドメイン] | [学習/検証/テスト] |
6
7**[データセット1]の詳細**:
8[データセット1]は[作成元/目的]のために構築されたデータセットです。
9[データの形式、含まれる情報、データセットの特徴]を含んでいます。
10本研究では、[データセットをどのように使用したか、前処理の内容]を行っています。
評価指標:
markdown
1#### 評価指標
2
3本研究では以下の評価指標を使用しています:
4
5**[指標1の名前]**:
6$$[数式]$$
7
8この指標は[何を測定するのか]を表しています。値が[高い/低い]ほど
9[良い/悪い]ことを意味します。この指標を選んだ理由は、[選択理由の説明]です。
ベースライン手法:
markdown
1#### ベースライン手法
2
3比較対象として以下の手法を使用しています:
4
56|------|------|------|
7| [手法1] | [手法の概要と特徴を2-3文で説明] | [著者公開実装/再実装] |
Results の詳細分析
主要結果の完全な転記と解説:
markdown
1#### 主要な実験結果
2
3Table [X] に主要な実験結果を示します。
4
56|------|---------|---------|---------|
7| [ベースライン1] | [値] | [値] | [値] |
8| [ベースライン2] | [値] | [値] | [値] |
9| **提案手法** | **[値]** | **[値]** | **[値]** |
10
11**結果の解説**:
12この結果から、以下のことが読み取れます:
13
141. 提案手法は[指標1]において、最も性能の高いベースラインである[手法名]と
15 比較して[X]%の改善を達成しています。これは[改善の意義の説明]を示しています。
16
172. [指標2]については、[結果の解釈と意味]という傾向が見られます。
18
193. 特筆すべき点として、[特に重要な発見や洞察]が挙げられます。
アブレーション研究:
markdown
1#### アブレーション研究
2
3提案手法の各コンポーネントの貢献を検証するため、以下のアブレーション実験を
4行っています:
5
67|------|--------|------|
8| 完全な提案手法 | [値] | (基準) |
9| [コンポーネント1]を除去 | [値] | [X]%低下 |
10| [コンポーネント2]を除去 | [値] | [Y]%低下 |
11
12**考察**:
13- [コンポーネント1]の除去により[X]%の性能低下が見られることから、
14 [このコンポーネントの重要性/役割]が確認されます。
15- [コンポーネント2]については、[結果の解釈]であることがわかります。
定性的分析:
markdown
1#### 定性的分析
2
3**成功例**:
4Figure [X] に提案手法の成功例を示します。[成功例の具体的な説明、
5なぜ成功したかの分析]
6
7**失敗例**:
8一方、Figure [Y] に示すケースでは、提案手法は期待通りの結果を
9得られていません。この失敗の原因として、[失敗の原因分析、
10どのような入力で失敗しやすいか]が考えられます。
Conclusion の詳細分析
markdown
1### 結論
2
3#### 主要な貢献
4
5本論文の主要な貢献は以下の通りです:
6
71. **[貢献1のタイトル]**: [貢献1の詳細な説明。何を達成し、なぜそれが重要か]
8
92. **[貢献2のタイトル]**: [貢献2の詳細な説明]
10
113. **[貢献3のタイトル]**: [貢献3の詳細な説明]
12
13#### 限界と課題
14
15著者らは以下の限界を認めています:
16
17- **[限界1]**: [限界の詳細な説明と、それが実用上どのような問題を引き起こすか]
18- **[限界2]**: [限界の説明]
19
20#### 今後の研究方向
21
22本研究を発展させる方向として、以下が示唆されています:
23
24- **[方向1]**: [具体的な研究の方向性と期待される成果]
25- **[方向2]**: [方向性の説明]
4. 参照論文の詳細調査
References セクションから重要な論文を 5-10 本特定します。
重要な論文の選定基準:
- 本文で詳しく議論されている
- ベースラインとして使用されている
- 提案手法の基盤となっている
- 比較対象として重要
各論文について WebSearch で調査し、以下の形式で詳細に記述します:
markdown
1### [論文番号]. [論文タイトル]
2
34|------|------|
5| **著者** | [著者名] |
6| **年** | [年] |
7| **発表先** | [会議/ジャーナル名] |
8| **URL** | [arXiv/公式URL] |
9
10#### 概要
11
12[この論文が何を目的として、どのような手法を提案し、どのような結果を得たかを
133-5文で説明します。専門用語は必ず説明を付けてください。]
14
15#### 主要な貢献
16
17この論文の主要な貢献は以下の通りです:
18- **[貢献1]**: [貢献の詳細な説明]
19- **[貢献2]**: [貢献の詳細な説明]
20
21#### 手法の概要
22
23[技術的な手法の説明を、読者が理解できるレベルの詳細さで記述します。
24重要な概念やアルゴリズムの流れを説明してください。]
25
26#### 本論文での引用箇所・方法
27
28分析対象の論文では、この参照論文を以下のように引用しています:
29- セクション[X.X]で[ベースライン/基盤手法/比較対象]として使用
30- 「[原文引用]」と言及されています
31
32#### この論文の限界
33
34この参照論文には以下の限界があり、分析対象の論文はそれを以下のように解決しています:
35- **[限界]**: [限界の説明]
36- **解決方法**: [分析対象論文がどのように解決しているか]
37
38#### 本論文との関係
39
40[基盤手法/ベースライン/関連アプローチ/評価手法] として位置づけられています。
41[より詳細な関係性の説明]
参照論文のカテゴリ分類:
以下のカテゴリに分類して整理します:
- 基盤となる手法: 提案手法が依拠している先行研究
- 比較対象(ベースライン): 実験で比較している手法
- 関連するアプローチ: 類似の問題を扱う別のアプローチ
- 評価手法・ベンチマーク: 評価に使用したベンチマーク論文
- 応用分野: 応用先に関する論文
5. レポート生成
reports/{arxiv_id}_report.md として保存します。
詳細分析のポイント
論文からの引用
精度と完全性
- 論文が言っていることだけを書きます
- 推測や解釈は明示的に区別します(「推測ですが」「おそらく」等)
- わからないことは「論文に記載なし」と明記します
- 数式はできる限り正確に転記し、各変数の意味を説明します
サーベイ論文特有の注意点
- 紹介されている各手法を公平に説明します
- 分類体系(Taxonomy)を正確に再現します
- 比較表を完全に転記し、各項目の意味を解説します
- サーベイ著者の評価・意見と事実を区別します
研究論文特有の注意点
- 主張の強さを正確に伝えます("demonstrates" vs "suggests" の違い等)
- 実験の限界を見逃さないようにします
- 再現に必要な情報が記載されているか確認します
Python API の活用
基本的な使用方法
python
1from src.paper_analyzer import PaperAnalyzer, AnalysisConfig
2from pathlib import Path
3
4# 分析を実行します
5config = AnalysisConfig(output_dir=Path("reports"))
6analyzer = PaperAnalyzer(config)
7paper = analyzer.load_from_url("https://arxiv.org/abs/2401.12345")
8
9# ドキュメント情報を確認(長いドキュメントの場合に重要)
10if analyzer.is_long_document:
11 print(analyzer.get_analysis_guidance())
12
13# 論文タイプを設定します
14analyzer.set_section("paper_type", "survey") # or "research"
15
16# サーベイ論文の場合: 分類体系を設定します
17analyzer.set_section("taxonomy_overview", "本サーベイは3つの軸で分類しています...")
18analyzer.set_section("taxonomy_categories", [
19 "カテゴリ1: 説明",
20 "カテゴリ2: 説明",
21])
22
23# 紹介されている手法を追加します
24analyzer.add_surveyed_method(
25 name="MethodName",
26 paper_ref="Author et al., 2023",
27 summary="手法の概要",
28 technical_details="技術的詳細",
29 advantages=["利点1", "利点2"],
30 limitations=["限界1"],
31 category="カテゴリ1",
32)
33
34# 研究論文の場合: 主張とロジックを設定します
35analyzer.set_section("main_claim", "本論文の主要な主張")
36analyzer.set_section("claim_evidence", "主張を支える根拠")
37analyzer.set_section("novelty", "新規性のポイント")
38
39# レポートを生成します
40report_path = analyzer.generate_report()
長いドキュメント用 API
python
1from src.paper_analyzer import PaperAnalyzer, AnalysisConfig, ChunkingStrategy
2from src.pdf_chunker import PDFChunker, get_pdf_info
3from pathlib import Path
4
5# 長いドキュメント用の設定
6config = AnalysisConfig(
7 output_dir=Path("reports"),
8 long_document_threshold=50, # 50ページ以上で「長い」と判定
9 very_long_document_threshold=100, # 100ページ以上で「非常に長い」と判定
10 chunking_strategy=ChunkingStrategy.SMART,
11 target_chunk_size=20, # 目標チャンクサイズ
12)
13
14analyzer = PaperAnalyzer(config)
15paper = analyzer.load_from_url("https://arxiv.org/abs/XXXX.XXXXX")
16
17# ドキュメント情報を取得
18doc_info = analyzer.document_info
19print(f"ページ数: {doc_info.page_count}")
20print(f"推奨戦略: {doc_info.recommended_strategy.value}")
21print(f"チャンク数: {doc_info.estimated_chunks}")
22
23# チャンク情報を確認
24for chunk in doc_info.chunk_info:
25 print(f"Chunk {chunk['id']}: p.{chunk['start']}-{chunk['end']}")
26
27# チャンクごとに分析して結果を追加
28analyzer.add_chunk_result(
29 chunk_id=1,
30 start_page=1,
31 end_page=20,
32 title="Introduction",
33 content_summary="本論文は...",
34 key_points=["ポイント1", "ポイント2"],
35)
36
37# 進捗を確認
38print(analyzer.get_progress_summary())
39
40# 残りのチャンクを確認
41remaining = analyzer.get_remaining_chunks()
42print(f"残りチャンク: {len(remaining)}")
PDF チャンカーの直接使用
python
1from src.pdf_chunker import get_pdf_info, export_chunks_to_files
2
3# PDF 情報を取得
4info = get_pdf_info("downloads/2401.12345.pdf")
5print(f"ページ数: {info.page_count}")
6print(f"目次あり: {info.has_toc}")
7print(f"セクション数: {len(info.sections)}")
8print(f"長いドキュメント: {info.is_long_document}")
9print(f"非常に長いドキュメント: {info.is_very_long_document}")
10
11# 長いドキュメントの場合、チャンクをファイルにエクスポート
12if info.is_long_document:
13 result = export_chunks_to_files(
14 "downloads/2401.12345.pdf",
15 output_dir="chunks/2401.12345",
16 arxiv_id="2401.12345",
17 strategy="smart",
18 target_pages=20,
19 )
20 print(f"Exported {result.total_chunks} chunks to {result.output_dir}")
21
22 # 各チャンクファイルを Read ツールで読み取り可能
23 for chunk_file in result.chunk_files:
24 print(f" - {chunk_file}")
CLI からチャンクをエクスポート:
bash
1uv run pdf-chunker downloads/2401.12345.pdf --export-dir chunks/2401.12345
レポートセクション構成
| セクション | サーベイ論文 | 研究論文 |
|---|
| 概要 | サーベイの範囲と目的 | 主要な主張とキーポイント |
| 背景 | 分野の概要と課題 | 問題設定と研究ギャップ |
| 本論 | 分類体系と各手法の説明 | 提案手法の詳細 |
| 比較/実験 | 手法の比較分析 | 実験設定と結果 |
| 参照論文 | サーベイ内の重要論文 | 引用された重要論文 |
| 結論 | 分野の現状と展望 | 貢献と限界 |
注意事項
- 【最重要】すべての記述は「ですます調(敬体)」と「丁寧語」で統一してください
- 論文の内容を正確に反映します(解釈を加えすぎない)
- 数値や主張は原文に忠実に引用します
- 長い論文は処理に時間がかかることがあります
- 参照論文は重要度の高い 5-10 本に絞って詳細に調査します
- 数式や図表の詳細な再現には限界があります
- 旧形式の arXiv ID はファイル名で
/ を _ に置換します
最終チェックリスト
レポート完成前に以下を確認してください: