実証研究データパイプライン
「雑然とした資料」を「検証可能なサンプルフロー+追跡可能なコード化/フィールドデータ+再現可能なモデル+投稿可能な図表と原稿」に変換します。本スキルは学問分野、言語、ファイル形式を問いません。法律判決文は「テキストコーディング」の一例に過ぎず、質問紙、インタビュー、ニュース、政策文書、実験記録、オープンデータ、Webページ、データベースエクスポートにも同様に適用できます。
このリポジトリ/パッケージ内のサンプル数字、ファイル名、パス、変数値はすべて架空のプレースホルダーであり、実際の資料、コード化データ、SPSSデータ、論文原稿を含みません。
使用タイミング
- ユーザーがフォルダを渡し、その中にPDF、Word、Excel、CSV、テキスト、Webページ、インタビュー原稿、画像、スキャン文書が混在しており、整理、コード化、統計、グラフ作成、論文執筆を依頼してきた場合。
- 既存のCSV/SPSSデータがあり、クレンジング、結合、新規資料の追加、サンプル基準の修正、モデルの再実行が必要な場合。
- 質問紙、インタビュー、実験、観察、公開データなどに対し、記述統計、グループ間比較、回帰、異質性、頑健性、予測評価が必要な場合。
- 実証部分をWord/PDFにまとめる必要があり、図、表、本文の数値がすべて一致している必要がある場合。
- ユーザーが「同様の資料をもう一度処理したい」と言い、同じフローを再利用したい場合。
資料タイプと処理境界
| 資料 | ネイティブ処理 | 説明 |
|---|---|---|
| テキストレイヤー、ページ数、文字数、画像数、暗号化状態 | スキャン文書は先にOCR;画像のみのPDFは image_only とマーク | |
| DOCX / ODT / PPTX | 段落、テーブル、スライドテキスト | .doc/.ppt 旧形式は先に変換 |
| XLSX / XLSM | ワークシート、セルテキスト;読み取り専用で開く | .xls は先に変換;openpyxl のインストール推奨 |
| CSV / TSV / JSON / JSONL | フィールド、行数、エンコーディング、欠損;表形式データ品質監査 | コード化作業シートはテーブルをスキップし、auto_stats に直接進む |
| TXT / MD / HTML / XML / YAML / RTF | プレーンテキスト抽出;HTMLはタグ除去 | Webページ本文は利用可能;スクリプト/スタイルは除去 |
| 画像(PNG/JPG/TIFF 等) | ファイルリスト;寸法/ページ数 | 先にOCR、その後コード化;本スキルはOCR機能を内蔵しない |
| 音声/動画 | ファイルリスト | 先に書き起こし/フレーム抽出、その後コード化;本スキルはASR機能を内蔵しない |
| 圧縮ファイル | ファイルリスト | 先に解凍;監査では unsupported とマーク |
| 未知/独自形式 | ファイルリスト | 先に上記形式に変換またはエクスポート |
「あらゆる資料」は「あらゆるバイナリを直接解析できる」という意味ではありません。本スキルはまずすべてのファイルを監査とサンプル突き合わせの対象とします;直接読み取れない形式は明確にマークし、変換パスを示します。静かに見逃すことはありません。
6つの厳格なルール
- 先に監査、その後コード化/モデリング。 ファイル数、読み取り可能なテキスト数、重複数、フィールド欠損、除外理由を把握する前に、統計を始めてはいけません。
- 内容に基づいて重複除去(ファイル名ではない)。 同名別文、同文別名はよくあります;少なくともMD5を使用し、さらにタイトル/キーフィールド/本文サンプリングで再確認します。
- 1行 = 1つの分析単位。 文書、回答者、事件、機関、地域-年、または質問票の回答は、プロジェクト開始時に固定しなければなりません;複数単位が混在する場合は制限事項に説明します。
- 各コード化/抽出値には根拠が必要。 原文に記載がない場合は
NA/未記載と記録し、デフォルトで0と記録してはいけません;否定表現、他者の提案、言い換えは最終事実として扱ってはいけません。 - 記述サンプルN ≠ モデルサンプルN。 各モデルごとに個別にNとフィルタ条件を報告します;本文、表、図、要約は同じ基準を使用します。
- 関連 ≠ 因果。 「関連/対応/より可能性が高い」と書き、「引き起こす/有効にする/証明する」とは書きません。
フロー概要
0 範囲と問題 → 1 資料/データ監査 → 2 コード化または抽出プロトコル → 3 データセット
↓
7 最終チェック ← 6 原稿組み立て ← 5 出版品質グラフ ← 4 統計分析
各フェーズには「ゲート」があります。ゲートを通過しない限り、次のフェーズに進みません。
フェーズ0:範囲と問題
まず scope.md を1ページ作成し、少なくとも以下を含めます:
- 研究課題、理論的メカニズム、期待される貢献。
- 資料タイプとソース:データベース、検索式/サンプリングフレーム、時間範囲、言語、地域。
- 分析単位:1文書/1回答者/1事件/1機関/1質問票。
- 包含/除外基準:時間、タイプ、言語、文字数、重複、読み取り不能、キーフィールド欠損。
- 予想変数リストと役割:従属変数、中心的な独立変数、メカニズム/調整変数、制御変数。
- データ形態:テキスト、表形式、混合;手動コーディング、質問票スケール、実験グループ、または二次データが必要かどうか。
ゲート:「生資料 → 読み取り可能資料 → 範囲内サンプル → 分析サンプル」の各ステップでどれだけ減り、その理由を一文で説明できること。
フェーズ1:資料とデータ監査(必ず先に実行)
1A ファイルレベル監査
scripts/audit_corpus.py を実行:
python scripts/audit_corpus.py --root "資料ディレクトリ" --out-dir "output/audit" --min-chars 100
デフォルトですべてのサポートタイプをスキャンします。個別に --ext を指定する必要はありません;--list-ext で完全なリストを表示可能。出力されるもの:
| ファイル | 用途 |
|---|---|
corpus_audit.csv | 各ファイルの拡張子、タイプ、バイト数、ページ数/テーブル数、文字数、画像数、MD5、ステータス、エラー |
corpus_summary.json | 機械可読なサマリー |
corpus_duplicates.csv | 重複グループ、保持/削除提案 |
corpus_report.md | プロジェクトログに直接貼り付け可能な中国語レポート |
ステートマシン(各ファイルは一つのカテゴリに分類される必要あり):
| ステータス | 意味 | 分析対象か |
|---|---|---|
valid | 開ける、十分なテキスト/データあり | はい |
metadata | ._*、.DS_Store などのシステムファイル | いいえ |
hidden | 隠しファイル/隠しディレクトリ | いいえ、ユーザー確認を除く |
unsupported | 未知形式、圧縮ファイル、旧版Office、パーサー不足 | いいえ、まず変換/解凍 |
quarantined | _duplicates などのスキップディレクトリ内 | いいえ、隔離済みコピー |
zero_byte | 0バイト | いいえ |
corrupt | 開けない、ファイル破損 | いいえ |
encrypted | パスワード/権限制限あり | いいえ、復号可能な場合を除く |
textless | ページ/セルがあるがテキスト不足 | いいえ、空ファイルか再エクスポートが必要か確認 |
image_only | 画像/スキャン文書、テキストレイヤーなし | OCR後に利用可能 |
media | 音声/動画 | 先に書き起こし/フレーム抽出 |
重複は独立した status ではありません:内容が同じファイルは依然として valid ですが、dup_group/dup_role でkeeper/duplicateをマークします;レポート内の unique_valid_files はコピーを差し引いています。
各項目を逐次処理する必要があります:
._*、.DS_Store:macOSメタデータ、研究資料ではありません;「非資料ファイル」に計上し、サンプルに含めてはいけません。読み取り可能な._*は error 列に注釈され、手動確認が必要です。- 隠しファイル/ディレクトリは
hiddenと記録;拡張子がサポートリストにないものはunsupportedと記録;_duplicatesなどのスキップディレクトリはquarantinedと記録。これらはすべてサンプルに入りませんが、総数とレポートに表示されなければなりません。 - 0バイト、開けない、暗号化、テキスト不足:それぞれ
zero_byte/corrupt/encrypted/textlessと記録;画像のみのPDFはimage_onlyと記録。 - トップレベル/年分布はユニークサンプル(
validかつ非コピー)のみをカウント;メタデータ、破損ファイル、重複コピーをサンプル構造に含めてはいけません。 - 重複コピー:MD5でグループ化;「ID/年を含むファイル名、短いパス、完全なテキスト」を持つものを保持し、残りは
_duplicates/に移動、直接削除してはいけません。 - ファイル名の切り詰め、末尾のドット、長すぎるパス:Windowsで一般的;Pythonで読み取り、レポートに記録、エクスプローラーで手動カウントしてはいけません。
- 同名別文、本文は同じだがメタデータ/エクスポート設定が異なる(MD5が異なる):タイトル/キーフィールド/本文サンプリングで手動再確認が必要;MD5のみで自動重複除去してはいけません。
次に scripts/dedupe_corpus.py を実行して重複除去計画を生成:
python scripts/dedupe_corpus.py --audit "output/audit/corpus_audit.csv" --root "資料ディレクトリ" --out-dir "output/audit" --apply
ゲート:sample_flow.md で照合できること:
生ファイル数(.DS_Store/拡張子なしファイルを含む)
- メタデータ/隠しファイル
- 非サポート/変換が必要(unsupported)
- _duplicates などの隔離ディレクトリ(quarantined)
- 0バイト/破損/暗号化/テキスト不足
= 読み取り可能資料数
- 範囲外(時間/タイプ/言語)
= 有効資料数
- 重複コピー
= ユニークサンプル数(unique_valid_files による)
- キー変数欠損/コード化不可
= 分析サンプル数
各モデルには個別のNがあり、一つのNですべてを代表させてはいけません。
1B 表形式データ品質監査
資料自体がCSV/Excel/SPSSデータの場合、まずフィールドレベルのチェックを行い、その後コード化/モデリング:
- 行数、列数、各列のタイプ(数値/カテゴリ/テキスト/日付)、欠損率、ユニーク値数。
- プライマリキー/IDの一意性;重複行;同一単位の複数記録。
- カテゴリ変数の値のスペル不一致(「はい/いいえ/1/0/TRUE」混在);日付範囲。
- 連続変数の範囲、異常値、P99トリミング、log変換の必要性。
- 質問票スケールの逆転項目、複数選択の分割、単位の一貫性。
- エンコーディング(UTF-8-SIG/GB18030)、小数点区切り文字、SPSS変数名の合法性。
csv_to_spss_syntax.py は不正/重複変数名をクリーンアップし .sps を生成;auto_stats.py は記述統計、グループ間検定、相関を提供し、データ問題の発見に役立ちますが、正式なモデルの代替にはなりません。
ゲート:各列のソース、タイプ、欠損処理、異常値処理、最終的にどのモデルに入るかを説明できること。
フェーズ2:コード化/抽出プロトコル
2.1 テキストコーディング
- まず
assets/codebook-template.mdのインスタンスを作成:各変数には定義、値、判断ルール、根拠位置、正例、反例、欠損ルールが必要。 scripts/make_coding_sheet.pyを使用して全文と候補根拠文を抽出し、コード化作業シートを生成;これは根拠断片を提供するだけで、最終判断は行いません。- デフォルト
--profile generic:インタビュー、ニュース、政策、レポート、Webページ、会議録など任意のテキスト資料に適用。 --profile legal:さらに裁判所、事件番号、省、事件理由の候補を抽出;中国の判決文を処理する場合のみ使用。- CSV/TSV/JSON/XLSX などのテーブルはスキップされ、統計フローに進むよう促されます;画像/音声/動画は先にOCR/書き起こしを促します。
- デフォルト
- 手動/LLMコーディング時、各レコードには少なくとも
*_ev根拠文を保存;根拠文がないコーディングは未完了と見なします。 - 10%–15%の資料を二人/二回コーディングし、一致率またはCohen's κを報告;不一致はまず裁定し、その後コードブックを修正。
- コードブックを凍結した後にフルコーディング;以降の変更はバージョンと影響範囲を記録。
2.2 質問票/スケール/構造化抽出
- まず項目レベルの変数辞書を作成:項目番号、項目文、値、逆転項目、欠損コード。
- 複数選択/順位付け項目は0/1または複数列に分割;スケール合計点はまず信頼性(α/ω)と次元を確認。
- 自由記述項目はまずテーマコーディングし、その後カウント/カテゴリ変数に変換;単語頻度をテーマとして直接扱ってはいけません。
- 表形式データのプライマリキー、単位、時間フィールドは元のファイルに遡れる必要があります。
ゲート:ランダムに10レコードを選び、「コード化値 → 根拠文/元フィールド → 原文/元行」を完全に遡れること;できない場合はコード化作業シートに戻りルールを修正。
詳細は references/02-coding-protocol.md を参照。
フェーズ3:データセット
推奨3点セット:
data/coded.jsonl:各資料のコーディング詳細+根拠断片、遡及容易。data/analysis.csv:分析用ワイドテーブル、一行が一つの分析単位。data/analysis.sav:SPSSで直接開ける、変数ラベル/値ラベル付き。
必須マーク列:
| 列 | 意味 |
|---|---|
in_scope | 研究範囲内か(時間、タイプ、地域、言語) |
in_analysis | 記述統計に入るか(コーディング不可/キー欠損を除外) |
model1_sample 等 | 各モデル個別のサンプルマーク;in_analysis を代用してはいけない |
dup_group | 重複グループID;保持版は0、コピーは1 |
exclusion_reason | 除外理由、サンプルフロー記述のため |
scripts/csv_to_spss_syntax.py を使用して .sps を生成し、手書き GET DATA での列タイプ不一致を回避。CSV内に「はい/いいえ、あり/なし、支持/不支持」などの二値テキストがある場合、スクリプトは自動で RECODE ... ('是'=1) ('否'=0) INTO *_num を追加;Logisticは数値列を直接使用;不要な場合は --no-recode を追加。
ゲート:CSV行数、JSONL行数、SAV行数、sample_flow.md のユニークサンプル数が一致;各モデルのNがフィルタ条件から再計算できること。
フェーズ4:統計分析と拡張
まず分析計画を書き、結果を見る。デフォルトで「主分析+記述+二変量+多変量+診断+異質性+頑健性」の組み合わせを行い、主モデルのみを実行しない。
まず自動スクリーニングスクリプトで記述統計、グループ間検定、相関、単変量モデルを実行:
python scripts/auto_stats.py --data data/analysis.csv --config assets/chart_config.example.json --out output/analysis_pack
出力は descriptives.csv、group_tests.csv、binary_rates.csv、correlations.csv、univariate_models.csv、univariate_skipped.csv、analysis_pack.md で、さらなるモデリングに値する変数を発見するために使用;最終モデルは事前に指定された仕様でSPSS/R/Stataで推定し、自動スクリーニングのp値で変数を選別してはいけません。
スクリプトは結果変数のタイプを自動認識:
- 0/1 → 二値結果(Logistic/OR)。
- 連続数値 → 連続結果(OLS/平均+CI)、多カテゴリの場合はグループ間検定にKruskal–Wallis。
- 多カテゴリ → カテゴリ結果、グループ間はカイ二乗/Cramér's V;多カテゴリ独立変数はダミー変数化して単変量OLS/Logitに入り、
変数_水準の形式で報告。 - 多カテゴリ結果自体は二項Logitにしない;主モデルは多項Logitを使用するか、カテゴリを統合する。
- 「はい/いいえ、あり/なし、支持/不支持」などの一般的なテキストラベルは自動で0/1にマッピング;その他の二値テキストは設定項目
outcome_mapで正クラスを指定する必要あり。 - 完全分離、推定が不安定な単変量モデルは
univariate_skipped.csvに書き込まれ、偽の巨大なORを与えない。 - 結果列がすべて欠損、フィルタ後に0行、
filter_queryのスペルミスがある場合は直接エラーで終了。
最低限含めるもの:
- 記述統計:各グループのN、割合/平均、結果率、95% Wilson CI。
- 主モデル:二項Logistic / OLS / 多項Logit、従属変数、参照グループ、中心独立変数、制御変数を明記。
- メカニズム/調整モデル:交互作用項、単純傾斜、またはグループ化予測値。
- 頑健性:従属変数の置き換え、サンプルの置き換え、制御変数の追加/削除、重複除去前後。
- 診断:多重共線性、完全分離、サンプルサイズ不足のセル、較正/識別力。
- 異質性:カテゴリ別/地域別/年別/グループ別。
- 可能な探索:PCA、対応分析、クラスタリング、予測ROC/較正;「探索的」と注記。
レポート表には少なくとも:係数/OR、95%CI、p、N、適合指標、参照グループ説明。各モデルに個別のN行。
実行した分析とスキップした分析を analysis_manifest.md に書き込む(テンプレートは references/08-analysis-expansion.md);有意な結果のみを報告してはいけません。
SPSS構文テンプレートと解釈規範は references/03-analysis-spss.md を参照;拡張分析リストは references/08-analysis-expansion.md を参照。
ゲート:任意のOR/βが analysis.sps → 出力ファイル → テーブル の三段階で遡れること;analysis_manifest.md が各分析の実行/非実行とサンプル数を説明できること;本文で「テキストに某状況が書いてある」を「実際に某効果が生じた」という因果結論に書いてはいけないこと。
フェーズ5:出版品質グラフ(デフォルトで全体像、単に8枚だけではない)
まず scripts/auto_chart_pack.py を実行して全体グラフパッケージを生成し、そこから本文メイン図、付録図、追加で描画が必要なモデル図を選択:
python scripts/auto_chart_pack.py \
--data data/analysis.csv \
--config assets/chart_config.example.json \
--out output/chart_pack --tiff
連続/多カテゴリ結果の場合、スクリプトを変更する必要はありません:結果変数は自動で「結果分布+グループ平均/構成」図に切り替わります;テキスト結果も outcome_map でエンコーディングを指定可能。--coef は metric(OR/HR/RR/beta)と n 列をサポートし、フォレストプロットはモデルサンプルサイズに応じてNを表示;--pred は0/1または「はい/いいえ」ラベルをサポートし、定数予測/単一カテゴリの場合はROC/PR/較正をスキップし理由を明記。term_labels で lv3 などのモデル項名を中国語にマッピング可能。二重比例ダンベルプロットはconfigで dumbbell を使用して2つの0/1列を指定。フォローアップ時間とイベント列がある場合、--survival-time、--survival-event(--survival-group 追加可能)を使用してKaplan–Meier曲線を生成。
デフォルトで7グループをカバー、通常約40–55枚:二値で約44枚、モデル入力ありで約51枚;連続で約42枚、多カテゴリで約41枚。列タイプ、欠損、スキップ項目により数量は変動;実際の数量は chart_manifest.csv に従う。
- A データ品質:欠損率、サンプルカテゴリ/年/地域、二値変数発生率。
- B 単変量:結果分布(二値/連続/多カテゴリそれぞれ処理、連続結果にはQ-Q追加)、処理構成(棒+ドーナツ)、数値分布、カテゴリ構成。
- C 二変量:カテゴリ×結果、フェーズ×結果、カテゴリ×フェーズヒートマップ/積み上げ、地域/審級差異、相関ヒートマップ、散布図フィット、バブルチャート;連続結果は平均+95%CI、多カテゴリ結果はグループ内構成スタック。
- D 多変量:バイオリンボックスプロット、散布図行列、ダンベルプロット、PCAスクリープロット/バイプロット/ローディングヒートマップ、Wardクラスタリングデンドログラム、古典的MDS。
- E 時間:結果率/平均トレンド、3σ管理図、サンプルサイズ、フェーズ構成スタック棒/面積;多カテゴリ結果は結果カテゴリ構成トレンドを追加。
- F モデル診断:フォレストプロット、ROC、較正、予測分布、混同行列、PR曲線、十分位リフト(
--coef/--predが必要);Kaplan–Meier(フォローアップ列が必要)。 - G 付録:対応分析、Pareto。
グラフ作成戦略:
- 各主要発見に少なくとも2枚の図:主結果図+頑健性/診断/異質性図。
- 本文7–10枚、付録20–50枚;図の数に上限なし。
- 各図はまず「どの質問に答えるか」を書く;質問がなければ描かない。
references/07-chart-atlas.mdを使ってタイプを選択し、SPSSでよく使われる高度なグラフをカバー:クラスター/スタック/100%スタック棒、線/面積、ヒストグラム、箱ひげ/バイオリン、誤差棒、散布図/バブル、散布図行列、Pareto、ROC、較正、Kaplan-Meier(生存データがある場合)、スクリープロット、因子ローディング、クラスタリングデンドログラム、対応分析、MDS、管理図など。- 各図は
chart_manifest.csvに書き込む:図番号、質問、タイプ、変数、N、図注、ファイルパス。 - 色の意味は原稿全体で統一:同じフェーズ/同じカテゴリはすべての図で同じ色。
- 図注にはN、データソース、モデル設定、参照グループを明記;探索的図(PCA/CA/クラスタリング)には図注に「探索的」と明記。
scripts/pubfig.py を使用してスタイルを統一:
from pubfig import set_style, save_fig, wilson_ci, forest_plot
set_style() # 15 cm 版心、宋体/Times New Roman、600 dpi
規範ポイント:
- 物理幅15 cm(A4本文15.4 cm以内)、フォントサイズ7.2–8.5 pt。
- 中国語は宋体、欧文はTimes New Roman;PDFフォント埋め込み(Type 42)。
- 図内にタイトルを入れない;図題、図注はWordで配置。
- PNG 600 dpi、ベクターPDF、LZW TIFF(
--tiff)を同時出力。 - 誤差線は95% CIを明記;フォレストプロットは実線点=有意、中空点=非有意。
- 歪んだ連続変数はlog10またはP99トリミングし、軸ラベル/図注に明記。
ゲート:chart_manifest.csv の各図に質問、N、図注、ファイルがあること;本文主図と付録図が重複しないこと;PDF内の埋め込み図の幅が3000 px以上(15 cm幅で約600 dpi);図注、図、本文引用がすべて揃っていること。
詳細は references/04-figures-publication.md と references/07-chart-atlas.md を参照。
フェーズ6:原稿組み立て
Wordレイアウト要件:
- 図、図題、図注は「次の段落と同一ページ」に設定し、図題がページ分割されないようにする。
- テーブル行はページをまたいで分割禁止、ページをまたぐ場合はヘッダーを繰り返す。
- 表注は図/表の下に配置;最初にN、次に有意性ルールを記載。
- 本文で最初に図/表を引用する際、番号はファイルと一致(図1、表1、付図1)。
- 要約、本文、表、図、付録のNとパーセンテージはすべて同一ソース;
chart_manifest.csvのNは図注に書き戻される。
WordからPDFにエクスポートする際、Wordは600 dpiの図を約200 dpiに圧縮します。scripts/export_pdf_hires.py を使用してエクスポート後、元の図を埋め戻します:
python scripts/export_pdf_hires.py --docx "manuscript.docx" --out-pdf "manuscript.pdf" --figure-map "figure_map.json"
ゲート:PDFのページ数、図数、図題数が一致;各図の埋め込み幅が3000 px以上;テーブルに行分割/ヘッダー分割がないこと。
詳細は references/05-manuscript-assembly.md を参照。
フェーズ7:最終チェック
実行:
python scripts/qa_outputs.py --docx "manuscript.docx" --pdf "manuscript.pdf" --figures "figures" --data "data/analysis.csv" --audit "output/audit/corpus_audit.csv" --manifest "output/chart_pack/chart_manifest.csv" --strict
その後、references/06-qa-checklist.md に従って手動で確認。重点はフォーマットではなく:
- サンプルフローの各段階の数字が照合できること。
- 重複コピーが分析サンプルから除去されているか、除去しない影響が明確に報告されていること。
- 本文の各Nが対応する表/図/モデルと一致していること。
- グラフと本文が同じ方向を指しており、「図は上昇、文は下降」がないこと。
- PDF内の図注番号が「図1:」「図 1.」「Table 1:」などの書き方を認識できること;低解像度チェックはキャンバスサイズが十分に大きい画像のみを対象;空のCSVは直接エラー。
- 理論的コーディング変数は方法セクションでソースを説明し、生資料から直接測定したように書かない。
- 結論は「関連/対応」を使用し、因果的表現を使用しない。
スクリプト一覧
以下のコマンドはカレントディレクトリがスキルルートディレクトリであることを前提とします;プロジェクトディレクトリから実行する場合は、scripts/ をスキルの絶対パスに置き換えてください。
| スクリプト | 役割 |
|---|---|
scripts/audit_corpus.py | 任意の資料ディレクトリをスキャン:ファイルステータス、テキスト数/ページ数、MD5、重複、形式分布、年ヒント |
scripts/dedupe_corpus.py | 監査結果に基づき重複除去計画を生成;--apply で _duplicates/ に移動 |
scripts/make_coding_sheet.py | PDF/Word/PPT/HTML/テキストから全文とキーワード根拠文を抽出;--profile legal でのみ裁判所/事件番号フィールドを抽出 |
scripts/text_extract.py | 汎用テキスト抽出とファイルチェック(PDF/DOCX/ODT/PPTX/XLSX/HTML/テキスト/画像/音声/動画) |
scripts/analysis_utils.py | 内部共有関数:サンプルフィルタリング、結果タイプ認識、二値ラベルエンコーディング;自動統計/グラフスクリプトからインポート |
scripts/csv_to_spss_syntax.py | CSVヘッダーからSPSS GET DATA 構文を生成;不正/重複変数名をクリーンアップし変数ラベルを書き込み |
scripts/auto_stats.py | 自動記述統計、グループ間検定、相関、単変量モデル(多カテゴリ独立変数はダミー変数化)、完全分離チェック |
scripts/auto_chart_pack.py | 列の役割に応じて自動で約40–55枚のデータ品質/分布/二変量/クラスタリング/時間/モデル診断/生存図とマニフェストを生成 |
scripts/pubfig.py | 出版図の統一スタイル、Wilson CI、フォレストプロット、ヒートマップ、バイオリン、ROC/PR、PCA、MDS、クラスタリング、KM、管理図など30以上の図形 |
scripts/export_pdf_hires.py | Word→PDFに変換し、600 dpiの元図を埋め戻し |
scripts/qa_outputs.py | PDF図解像度、docx図表数、空データ、重複キー、マニフェストのN/図注/パスをチェック |
参考ドキュメント
| ファイル | いつ読むか |
|---|---|
references/01-corpus-audit.md | 監査を開始する時、重複/破損/スキャン文書/複数形式に遭遇した時 |
references/02-coding-protocol.md | 変数を設計する時、コードブックを書く時、信頼性検定を行う時 |
references/03-analysis-spss.md | モデルを設定する時、SPSS構文を書く時、ORを解釈する時 |
references/04-figures-publication.md | グラフを描く時、色を選ぶ時、投稿ファイルをエクスポートする時 |
references/05-manuscript-assembly.md | Wordをレイアウトする時、PDFをエクスポートする時、図注を処理する時 |
references/06-qa-checklist.md | 投稿/納品前に項目ごとにチェックする時 |
references/07-chart-atlas.md | 図形を選ぶ時、SPSS高度なグラフに対応する時、グラフ数を決定する時 |
references/08-analysis-expansion.md | 主モデル以外にどの分析を実行するか、実行/非実行を記録する方法を決める時 |
テンプレート
assets/scope-template.md:研究範囲、包含/除外基準、サンプルフローの骨組み。assets/codebook-template.md:変数コーディングマニュアルの骨組み。assets/figure-spec-template.md:図注と製図仕様表。assets/figure_map.example.json:Word→PDF埋め戻し図のマッピング例。assets/delivery-checklist.md:納品チェックリスト。assets/coding-keywords.json:置き換え可能なキーワード辞書(汎用プレースホルダー例)。assets/chart_config.example.json:列の役割、ラベル、分析サンプルフィルタ(filter_query)の例。assets/analysis-manifest-template.md:主分析/拡張分析/スキップ項目リスト。
最もよくある失敗ポイント
- フォルダ内のファイル数をそのままサンプルサイズとする。 先にメタデータ、破損、重複、非サポート形式、範囲外を差し引く必要があります。
- ファイル名のみで重複除去する。 同じ内容に「IDあり/なし」「- コピー」「(2)」などの複数バージョンがよくあります。
- 記述統計のNとモデルのNを混用する。 モデルには欠損値、フィルタ条件があり、Nは必ず小さくなります。
- 「資料に某状況が書いてある」を「実際に某結果が発生した」とする。 これはテキスト関連であり、因果効果ではありません。
- WordからエクスポートしたPDFが正常に見えても、図が実際には200 dpiしかない。 埋め戻しと埋め込み画像幅の検証が必要です。
- 主結果図1枚だけを描く。 分布、異質性、頑健性、診断図が描かれておらず、ユーザーは繰り返し質問する羽目になります。
- 引用/添付の内容を主資料として扱う。 文書タイプ、レポートタイプ、Webページナビゲーションなどはタイトル/本文構造で判断し、全文キーワードだけを見てはいけません。
- 結果が「はい/いいえ」テキストなのに直接連続変数として扱う。
outcome_mapで正クラスを明確にするか、CSV内で0/1にエンコード;スクリプトは正負の方向を推測しません。 - 監査で特定の形式のみをカウントし、他のファイルを静かに見逃す。 すべてのファイルにステータスが必要;
total_filesはエクスプローラーと照合できる必要があります。 - 表形式データをテキストコーディングに投入する。 CSV/Excelは直接
auto_stats/SPSSフローへ;テキストコーディングは文書、インタビュー、Webページなどの非構造化資料に適しています。