mcpField
E
efficient-literature-survey

efficient-literature-survey

github.com/namooubn生産性10125 回インストール27 週間前に更新
リポジトリ

efficient-literature-survey について

efficient-literature-surveyは、学術文献の一括処理を支援するワークフローです。段階ごとの確認と優先度別の精読により、学位論文やレビュー論文の執筆を進めます。

主な機能

  1. 01文献メタデータの一括抽出
  2. 02テーマ分類と関連度評価
  3. 03優先度別の対象読解
  4. 04アウトライン確認のチェックポイント
  5. 05文献に基づく構成的な執筆

活用シーン

  1. 01学術論文フォルダーの整理
  2. 02論文レビュー用文献の優先順位付け
  3. 03文献マップと執筆アウトラインの作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/namooubn/efficient-literature-survey --skill efficient-literature-survey

インストール後、Claude Code で/efficient-literature-surveyを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

.gitignore
README.md
CHANGELOG.md
README_EN.md
extract_literature_metadata.py
pyproject.toml
requirements.txt
test_extract_literature_metadata.py
cache/
__init__.py
manager.py
checkpoint/
manager.py
citation/
__init__.py
bibtex.py
engine.py
core/
__init__.py
constants.py
logging_config.py
config.py
helpers.py
extractors/
__init__.py
docx.py
base.py
txt.py
pdf.py
epub.py
report/
__init__.py
generator.py

詳細

効率的な文献調査ワークフロー

基本的な前提

  • 文献の種類:ユーザーが提供するファイルは、学術論文、専門書、または学位論文です。非学術コンテンツ(ニュース記事、法律文書、製品マニュアル)は non-academic としてマークし、P2 に格下げして要約のみ処理します。
  • 言語:中国語と英語が混在する文献に対応しています。出力言語は Stage 0 のユーザー設定に従います。
  • 形式:PDF、DOCX、TXT、MD、EPUB。CAJ は事前に PDF に変換する必要があります。
  • トークン戦略:全文通読(500 万文字以上)から対象を絞った読み込み(約 3 万文字)に圧縮し、99% 以上を節約します。

トリガー

  • 「文献を読んで」「序論とレビューを書いて」「大量の文献をすばやく理解したい」「トークンを節約して論文を読む」
  • 「literature review」「thesis introduction」「batch read papers」
  • ユーザーが文献ファイルのフォルダーを持っており、構造化された学術的な出力を必要としている

使用しない場合: 論文が 5 本未満の場合、単一論文の要約のみの場合、またはファイルがすべて非学術資料の場合。

開始モード

  • モード A(デフォルト):Stage 1 のスクリプトをただちに実行 → 結果テーブルを表示 → 残りの Stage 0 設定を収集します。
  • モード B:ユーザーが 5 つの設定をすべて提示している場合、Stage 1 に直行します。
  • モード C(高速モード):(a)5 つの設定がすべて提示され、かつ(b)ユーザーが明示的に「そのまま進めて/全速力で進めて/確認不要」と伝えた場合にのみ起動します。このモードでは:
    • Stage 1 の結果を表示します。ユーザーから異議がなければ、自動的に Stage 2 に進みます。
    • Stage 2 のクラスターマップを表示し、Stage 3(統合チェックポイント)に自動的に進みます。
    • Stage 3 の読解サマリーを表示します。Stage 3.5 の前に、必ずユーザーの確認を待ちます。
    • Stage 3.5 のアウトラインを表示します。Stage 4 の前に、必ずユーザーの確認を待ちます。
    • Stage 0 と Stage 2 のチェックポイントは維持します。Stage 2→3 のチェックポイントは「マップ + 計画」の 1 つのサマリーに統合します。
  • モード D(セミ高速モード):(a)5 つの設定がすべて提示され、かつ(b)ユーザーが明示的に「各段階で確認」と伝えていない場合に起動します。このモードでは:
    • Stage 1 の結果を表示し、自動的に Stage 2 に進みます。
    • Stage 2 のクラスターマップと読解計画を 1 つの出力に統合します。Stage 3 の前に、必ずユーザーの確認を待ちます。
    • Stage 3 の読解サマリーを表示します。Stage 3.5 の前に、必ずユーザーの確認を待ちます。
    • Stage 3.5 のアウトラインを表示します。Stage 4 の前に、必ずユーザーの確認を待ちます。
    • 重要なルール:モード D でも、エージェントはユーザーから明示的な確認を得ることなく、Stage 2→3 または Stage 3.5→4 に進んではなりません。これらは譲れないチェックポイントです。

Stage 0:ユーザー設定(必須 — 5 項目すべて収集するまでここで待機)

#設定質問
1出力言語「何語で出力しますか?」
2引用形式「APA/MLA/GB/T 7714/番号付き [1] のどれですか?」
3章構成「独自の見出しを使いますか、それともデフォルトのテンプレート(中国語/英語の学位論文)を使いますか?」
4研究の位置づけ「学位論文のタイトル、要旨、研究課題、または 3~5 個のキーワードのいずれかをお知らせください。」
5文献フォルダーのパス「ファイルはどこにありますか?」
6出力の種類「学位論文(学位论文)/レビュー論文(综述论文)/その他のどれですか?」(デフォルト:学位論文)

ルール:5 項目すべてを収集するまで Stage 4 に進まないでください。独自の章構成が選択されているものの、まだ提示されていない場合は、Stage 0 で待機します。

Stage 1:メタデータの一括抽出

Step 0:環境の事前確認(必須)

抽出を実行する前に、実行時の失敗を避けるため、環境を確認します。

python extract_literature_metadata.py <folder_path> --env-check

以下を確認します:

  • 依存関係がインストールされていること(PyPDF2、pdfplumber、python-docx など)
  • ターミナルのエンコーディング(Windows の GBK → UTF-8 に関する警告)
  • 暗号化された PDF、スキャン画像の PDF、CAJ ファイル

依存関係が不足している場合:pip install PyPDF2 PyCryptodome pdfplumber python-docx ebooklib beautifulsoup4 Windows で GBK の場合:chcp 65001 または set PYTHONIOENCODING=utf-8 を実行します。 暗号化された PDF が検出された場合:軽度の暗号化と完全な暗号化を区別します(下記の「判断ポイント」を参照)。

ステップ 1:抽出の実行

extract_literature_metadata.py <folder_path> [--keywords "kw1,kw2"] を実行して、以下を抽出します。

  • タイトル、著者、発行年、ページ数、語数
  • ジャーナル/巻/号/ページ範囲/DOI(ヒューリスティック検出)
  • スキャン画像フラグ、暗号化フラグ(レベル:light/full)、1 ページ目のプレビューテキスト
  • モノグラフの目次+キーワードに一致する章(100 ページを超える PDF が対象)
  • 重複検出

出力:_literature_extraction.json + _literature_report.md + 任意で _literature_references.bib。

増分再利用:出力フォルダーに _literature_extraction.json がすでに存在し、ファイルが変更されていない場合(SHA-256 キャッシュ)は、再抽出をスキップしてステージ 2 に進みます。ユーザーが明示的に要求しない限り、ステージ 1 を強制的に再実行しないでください。

判断ポイント:

  • スキャン画像 PDF → ユーザーに警告し、marker/nougat/tesseract による OCR を提案します。
  • 暗号化 PDF → レベルに応じて処理します。
    • 軽度の暗号化(encryption_level: light):PyPDF2 は暗号化されていると判定しますが、pdfplumber は通常どおりテキストを読み取れます。スクリプトが空のパスワードで自動的に復号します。通常どおり進めます。
    • 完全な暗号化(encryption_level: full):PyPDF2 と pdfplumber の両方で読み取りに失敗します。フラグを設定し、ユーザーに手動で復号するよう依頼します。
  • CAJ を検出 → PDF に変換するよう指示します。
  • 目次との一致があるモノグラフ(100 ページ超)→ ステージ 1 の出力で、一致した章とページ範囲を報告します。これらは P0 の中核的な読書対象になります。
  • 参考文献が 40 件を超える → サブフォルダーまたはクラスター単位でバッチ処理します。

[USER_CHECKPOINT]:ステージ 1 の結果テーブルを提示します。ステージ 2 に進む前に、ユーザーの確認を待ちます。

ステージ 2:文献マップの作成(クラスター化+優先順位付け)

入力:ステージ 1 のメタデータ(タイトル、プレビュー)+ステージ 0 の研究の位置付け。

ステップ 1:テーマ別クラスター化(必須)

参考文献を 5~8 個のテーマ別クラスターに分類します。各クラスター名には、代表的なキーワードを 1~2 個、括弧内に必ず含めてください。

例 — LLM 研究に関する 5 本の論文のクラスター化:

タイトル割り当てられたクラスター
Attention Is All You Need1. Transformerアーキテクチャと注意機構 (Transformer, Attention)
BERT: Pre-training of Deep Bidirectional Transformers2. 事前学習と表現学習 (Pre-training, Representation)
Language Models are Few-Shot Learners (GPT-3)3. 大規模モデルの推論と創発的能力 (LLM, Emergence)
Chain-of-Thought Prompting Elicits Reasoning3. 大規模モデルの推論と創発的能力 (LLM, Emergence)
Evaluating Large Language Models via Human Preference4. モデルの評価とアラインメント (Evaluation, Alignment)

ルール:各論文は、主要クラスターに必ず 1 つだけ所属させます。複数のテーマにまたがる場合は、副次クラスターを note に記載します。

ステップ 2:関連性のスコア付け(必須)

ユーザーのステージ 0 の研究の位置付けに含まれるキーワードを、明示的な基準として各クラスターを評価します。

スコア意味対応読解の深さ
Directユーザーの研究課題を直接扱う→ P0 中核全文(≤50k 文字)、または要約+結論+主要な章
Adjacent理論、手法、または背景を支える→ P1 補助要約+結論+キーワードに一致するセクション
Peripheral同じ分野だが、関連性が薄い→ P2 背景要約のみ
Tangential関連性がごくわずか→ 除外引用しない

ルール:すべてのスコアに、ユーザーのステージ 0 の位置付けに含まれるキーワードを少なくとも 1 つ明記する必要があります。例:「クラスター 3 は『chain-of-thought reasoning』を扱っており、ユーザーのキーワード『reasoning enhancement』に一致するため、Direct と評価しました。」

[CONTEXT_OVERFLOW] ガード:参考文献が 40 件を超える場合は、形式で絞り込むか、クラスター単位でバッチ処理します。

[USER_CHECKPOINT]:クラスター、スコア、読解方針を含む完全なマップを提示します。確認を待ちます。

ステージ 3:ティア別の対象を絞った読解

[USER_CHECKPOINT]:読書計画(どの P0/P1/P2 を、どの程度の深さで読むか)を提示します。確認を待ちます。

モード C の例外:ユーザーがステージ 2 のクラスター図を「直接走」で確認済みの場合、このチェックポイントをステージ 2 のまとめに統合します。クラスター図の出力に読書計画を含めて提示し、その後、自動的に次へ進みます。

モード D の例外:モード D で統合された「クラスター図+読書計画」の出力後も、実際の読解を始める前にユーザーの確認を待つ必要があります。計画を提示しただけで、ステージ 3 の読解を黙って実行してはいけません。

P0(中核)— 5〜8 件
  1. 構成を把握するため、最初の 2,000 文字を読みます。
  2. 50,000 文字以下の場合は、全文を読みます。
  3. 50,000 文字を超える場合は、要旨+結論+主要な章を 2〜3 つ読みます。
  4. 抽出する内容:中心的な議論、直接引用 2〜3 件、理論的系譜、方法論。
P1(補足)— 15〜20 件
  1. 最初の 2,000 文字(要旨+序論)を読みます。
  2. 最後の 1,500 文字(結論)を読みます。
  3. プレビューにキーワードが含まれている場合は、該当箇所(前後 500 文字)を読みます。
  4. 抽出する内容:貢献に関する 2〜3 文+研究上のギャップとの関連。
P2(背景)— 残りの文献
  1. 最初の 1,000 文字(要旨)を読みます。
  2. 位置づけを一文で記します。

[CONTEXT_OVERFLOW] ガード:P0+P1 の合計が 100k 語を超える場合は、P1 をすべて要旨のみの読解に切り替え、P0 は上位 5 件のみにします。

[USER_CHECKPOINT]:ステージ 3 の後、簡潔な読解サマリーを提示します。ステージ 4 に進む前に確認を待ちます。

ステージ 3.5:アウトラインの確認(必須)

目的:6,800 語以上を書いた後にユーザーが構成の変更を希望した場合の、大幅な手戻りを防ぎます。ユーザーの「我不着急 一步步来」という意向を尊重するためのステージです。

入力:ステージ 3 の読解サマリー+ステージ 0 の章構成+専著の章との対応関係(該当する場合)。

出力:以下を含む箇条書き形式のアウトライン。

  • セクション見出し(ユーザーが指定したステージ 0 の構成と完全に一致させます)
  • 各セクションの中心的な議論(1〜2 文)
  • 各セクションで使用する予定の引用番号
  • 各セクションの推定語数
  • 専著の章とセクションの対応関係(例:「専著『X』第3章 → 本節の理論的枠組み」)

形式:

## 写作大纲(待确认)

### 1. 研究背景与问题提出(约 800 字)
- 论点:XXX 领域的发展引出 YYY 核心问题
- 引用:[1], [3], [5]

### 2. 文献综述 — 子主题 A(约 1200 字)
- 论点:早期研究侧重... 近期突破在于...
- 引用:[2], [4], [7]
- 专著映射:专著《X》第3章"理论框架" → 本节理论基础

...

### N. 研究缺口与本研究定位(约 600 字)
- 论点:现有研究存在三方面局限 → 本研究的切入点
- 引用:[6], [8]

**预估总字数**:6800 字

ルール:

  1. このステージでは本文全体を書かず、箇条書きのみを作成します。
  2. 使用予定の引用はすべて、ステージ 1 の結果にある実在の文献に対応している必要があります。
  3. ユーザーがステージ 0 で独自の章構成を提示した場合は、その構成をそのまま使用し、新しい見出しを作成しないでください。
  4. chapter_texts を含む専著の場合、どの章がどのセクションに反映されるかを記載します。

モード C/D の例外:ファスト/セミファストモードでも、ステージ 3.5 はスキップ不可です。ここでは自動的に次へ進めません。ステージ 2 から 3 への統合チェックポイントは、ステージ 4 ではなく、ステージ 3.5 で終了する必要があります。

[USER_CHECKPOINT]:アウトラインを提示します。明示的な確認または修正の依頼を待ちます。

  • ユーザーが「确认/可以/没问题/就这么写」と言った場合 → ステージ 4 に進みます。
  • ユーザーが変更を依頼した場合 → アウトラインを修正して再提示します。ユーザーが確認するまで、ステージ 4 に進んではいけません。

ステージ 4:構成に沿った執筆

ユーザーが指定したステージ 0 の章構成に従って、序論と文献レビューを執筆します。明示的に選択されていない限り、デフォルトのテンプレートを使用してはいけません。

執筆ルール(必須)
  1. 章構成の厳守:ユーザー指定の見出し階層をそのまま使用します。
  2. 引用形式:ユーザー指定のスタイル(APA/MLA/GB/番号付き)を使用します。
  3. 出典の位置づけ:
    • P0 参考文献 → 理論的根拠と主要な主張を深く支えます
    • P1 参考文献 → 実証的な裏付けと副次的な主張を支えます
    • P2 参考文献 → 分野の広がりや歴史的位置づけにのみ使用します
  4. すべての主張を特定の参考文献までたどれるようにします。
  5. 研究ギャップ:最終セクションでは、ギャップを明示し、ユーザーの研究がどのようにそのギャップを埋めるかを述べる必要があります。
  6. 出力言語:Stage 0 の設定に厳密に従います。
  7. 時間的な変遷:各クラスター内では、参考文献を年代順または理論的系譜に沿って整理します。初期の研究 → 転換点 → 最近の進展を示します。
  8. 批判的分析(output_type に応じて分岐):
    • review article:各クラスターの段落に、対立、方法論上の限界、または相反する知見のうち少なくとも1つを本文中に含めます。批判はクラスターの論述の流れの中に配置します。
    • thesis(デフォルト):批判は、専用の「文献評述/Literature Critique」セクション(通常、すべてのクラスターの小節の後)にまとめてもかまいません。各クラスターの段落では、年代に沿った変遷とテーマの統合に焦点を当てます。統合的な批判セクションでは、分野全体にまたがるギャップ、方法論上の限界、相反する知見を特定します。各クラスター内で簡潔に批判するかどうかは任意です。
    • Mixed:各クラスター内で簡潔に批判し、分野横断的なギャップを扱う統合的な批判セクションも設けます。
  9. サーベイ論文と独自研究の区別:被引用数の多いサーベイ論文には、本文中での初出の引用の直後に 〔综述〕 を明示します。例:「郭小宇等〔综述〕は、X 分野を体系的に整理し……」。独自の実験論文には印を付けません。
Few-Shot:クラスター段落の書き方

ユーザーの研究上の位置づけ:「大規模言語モデルにおける思考連鎖プロンプトの研究」

良い例(ルール 7 と 8 に準拠):

LLM から推論を引き出す初期の試みでは、中間ステップを明示せず、少数の例を用いていました(Brown et al., 2020)。思考連鎖(CoT)プロンプトにより、プロンプトに推論の連鎖を挿入すると、算術推論や常識推論が大幅に向上することが示され、転機となりました(Wei et al., 2022)。しかし、その後の研究では重要な緊張関係が明らかになりました。CoT は複雑なタスクの性能を向上させる一方で、訓練データに含まれるバイアスを増幅する可能性があり(Turpin et al., 2023)、リソースの少ない言語では有効性が大きく低下します(Shi et al., 2022)。これらの相反する知見は、バイアスを考慮した CoT メカニズムの必要性を示しています。このギャップに対処するため、本研究では[あなたの手法]を提案します。

良い例 — thesis スタイル(年代に沿った統合を行い、批判は統合セクションにまとめる):

初期の研究では、少数の例を用いて LLM の推論能力を引き出していましたが、中間ステップは明示的に構成されていませんでした(Brown et al., 2020)。Wei ら(2022)は思考連鎖(CoT)プロンプトを提案し、算術推論と常識推論のタスクで大きな進展を示しました。その後、ゼロショット CoT(Kojima et al., 2022)と自己整合性デコーディング(Wang et al., 2023)によって、このパラダイムはさらに拡張されました。郭小宇ら〔综述〕は、複雑な推論における CoT の応用状況を体系的に整理しました。これらの研究は、「直接予測」から「段階的推論」へのパラダイム転換を促し、本研究で提案するバイアスを考慮した CoT メカニズムの理論的基盤を築いています。

(文献評述の節で批判をまとめる:しかし、既存の CoT 手法には2つの限界があります。1つは、訓練データに内在するバイアスを増幅する可能性があることです(Turpin et al., 2023)。もう1つは、リソースの少ない言語では性能が大幅に低下することです(Shi et al., 2022)。これらの相反する知見は、公平性と多言語間の汎化能力を両立する CoT フレームワークが強く求められていることを示しています。これこそが本研究の着眼点です。)

悪い例(ルール 7 と 8 に違反 — 単なる列挙で、相反する知見がない):

Wei et al. (2022) は思考連鎖プロンプトを提案しました。Kojima et al. (2022) はゼロショット CoT を使用しました。Wang et al. (2023) は自己整合性によってこれを改善しました。これらの手法はいずれも推論能力を向上させます。

[USER_CHECKPOINT]:Stage 4 の後、草稿を提示し、修正に関するフィードバック(構成、引用、ギャップ分析)を求めます。

追記モード:新しい参考文献の追加

ユーザーが「論文をもっと追加して」または「新しい参考文献を5件見つけました」と言った場合:

  1. 段階的な抽出:Stage 1 スクリプトを実行します。SHA-256 キャッシュにより、変更されていないファイルはスキップされます。
  2. 再クラスタリングの評価:新しい参考文献を Stage 2 で処理します。新しい参考文献から未分類のテーマが明らかになった場合、既存のクラスターの名前を変更したり、分割したりすることがあります。
  3. 最小限の書き直し:新しい参考文献に 〔新增〕 を付けて文献マップを更新します。Stage 4 の草稿は、影響を受けるクラスターのみ修正します。影響を受けないセクションは書き直さないでください。
  4. 引用番号の振り直し:番号付き引用を使用している場合は、全体の番号を振り直します。引用の変更差分を提示します。

ツールの使用

Bash — 抽出スクリプトの実行
# Environment pre-check (run first)
python extract_literature_metadata.py <folder_path> --env-check

# Full extraction
python extract_literature_metadata.py <folder_path> [--max-pages N] [--citation-style STYLE] [--output-dir PATH] [--bibtex] [--no-recursive]
Read — ティア別の対象を絞った読解
ティア方針
P050k 文字以下なら全文、それを超える場合は冒頭の 2k 文字と主要な章
P1冒頭の 2k 文字、末尾の 1.5k 文字、キーワードに一致するセクション
P2冒頭の 1k 文字(要旨)のみ
Write — 出力の保存
  • _literature_map.md — クラスター、スコア、読解計画
  • _thesis_introduction.md / _literature_review.md — Stage 4 の出力

クイックリファレンス

状況対応
フォルダー内に 30 件以上のファイルがあるすぐに Stage 1 を実行します(Mode A)
スキャン画像の PDFフラグを付け、OCR ツールを提案します
暗号化が軽度の PDF自動で復号し、通常どおり進めます
完全に暗号化された PDFencryption_level: full のフラグを付けます。ユーザーが復号する必要があります
100 ページを超える専門書目次を抽出し、キーワードで該当する章を特定して読みます
章立てがないStage 0 で保留し、推測しません
研究上の位置付けがないStage 0 で保留し、無条件にクラスタリングしません
関連性の低い参考文献除外し、マップに「関連性が薄い」と記載します
ユーザーが「トークンを節約したい」と言うP0/P1/P2 のティアシステムを強調します
ユーザーが「直接進めて/全速力で進めて」と言う**Mode C(高速モード)**を有効にします
ユーザーがすべての設定を提示しているが、「段階ごとに確認」と言っていない**Mode D(半高速モード)**を有効にします
CAJ ファイルPDF への変換を指示します
ワークフローの途中で新しい参考文献を追加する追記モードを使用します
_literature_extraction.json が存在するStage 1 をスキップし、Stage 2 に進みます

よくある間違い

  • すべてを読む — まずメタデータを抽出します。すべてのファイルを開くとコンテキストを消費します。
  • クラスタリングしない — テーマ別のクラスターがないと、レビューは論旨のある文章ではなく、要約の羅列になります。
  • 位置付けなしでクラスタリングする — ユーザーの研究キーワードなしでは、関連性のスコアリングは当て推量になります。
  • 構成を推測する — Stage 0 で正確な見出しを尋ねます。構成が一致しないと、全面的な書き直しが必要になります。
  • 関連性の低い参考文献を無視する — 関連性の薄い参考文献にはフラグを付け、除外を検討する必要があります。
  • ギャップ分析を省略する — Stage 4 は必ずギャップ分析と位置付けで終える必要があります。
  • Stage 0 を省略する — 5 つの設定をすべて確認せずに執筆すると、必ず不一致が生じます。
  • 自動的に次へ進む — 各 [USER_CHECKPOINT] には理由があります。ユーザーの明示的な同意がある Mode C を除き、黙って先に進まないでください。
  • 時系列に沿った単純な羅列 — ルール 7 に違反します。単なる順序ではなく、変遷を示す必要があります。
  • 批判的な緊張関係がない — ルール 8 に違反します。批判のないレビューは学術研究ではなく、書誌一覧です。
  • 出力の種類にかかわらず、批判のルールを一律に当てはめる — thesis と review article では批判の示し方が異なります。機械的に当てはめると、文章の流れが損なわれます。
  • 環境の違いを無視する — Windows の GBK エンコーディング、暗号化 PDF、依存関係の不足により、Stage 1 の一括処理が失敗することがあります。事前に必ず環境を確認してください。

再利用可能なツール

extract_literature_metadata.py — タイトル、著者、ページ数/語数、テキスト量、スキャンページの検出、書誌メタデータ(ジャーナル名/巻/号/DOI)、重複検出、書式設定済みの引用を一括抽出します。JSON、Markdown、およびオプションで BibTeX を出力します。

依存関係:PyPDF2 PyCryptodome pdfplumber python-docx ebooklib beautifulsoup4

実際の効果

中国語/英語混在の参考文献 30 件(200 ページを超える専門書 3 冊):

  • 全文:~5M+ 文字
  • 対象を絞った読解:約 30k 文字(99.4% の削減)
  • 出力:1,796 文字の序論と 3,767 文字のレビュー、引用 35 件、8 クラスター

コメント