Files
pop-fem-audit/docs/research-plan.md
T
2026-08-18 22:37:32 +08:00

132 lines
7.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 研究步驟規劃
2026-07-30 討論定案;2026-08-15 依執行現況全面改寫,
舊版規劃見 git 歷史;歷次變更與理由記於 `decision-log.md`
程序細節見 `methodology.md`
## 總體框架
- **研究敘事**:全文為獨立完整的正式研究(2016–2025 十年
語料共 1000 筆榜單紀錄、883 首歌,凍結程序後全量執行),
**不與先導研究做比較**
全文數字一律以正式研究結果為準。先導研究僅作為假說的
內部來源,記於決策日誌,不進入論文敘事。
- **執行原則**:主會話只做討論;所有分析由 deterministic
script 執行。LLM 步驟以 Python script 呼叫 Anthropic
Messages API(個人 Console 帳號、Batch API 五折),定義
檔逐字作為 system prompt。可逐項機械比對的判斷(步驟 3
編碼、步驟 4 選群、步驟 5-4 樣態標註)採「同一定義檔
獨立執行三次+多數決」,計票由確定性子命令完成。自由
生成(步驟 1 自由標註)兩次執行全數進池。步驟 5-1 至
5-3 為質性閱讀協定:三次獨立閱讀為分析者三角檢核、
逐首整合、樣態統整產出草稿,不適用投票與仲裁。詞彙表
不經 LLM,由詞向量嵌入+確定性分群產生。驗證結果不符
預期則修訂定義檔重跑該循環,絕不手改結果。
- **提示詞只定格式、不定語意**:研究對象是通用 LLM 以其
網路語料知識背景所做的自然編碼與閱讀,其結果本身是
批判對象。定義檔只規定任務形狀(輸入、數量範圍、輸出
格式),不給任何主題的定義、判準或範例。LLM 判斷一律
要求逐項引述歌詞原句,作為檢視偏差的依據。
- **模型**:步驟 1、3 用 `claude-sonnet-4-6`temperature=0、
thinking 關閉);步驟 4、5 用 `claude-fable-5`(兩參數
不適用,均不送出;取樣變異由多數決或整合吸收)——實測
發現 sonnet 將「Women Power」拆讀為 womenpower 的組合
語意,fable-5 讀為詞彙化概念,語意層任務因此換用
fable-5(經過見決策日誌)。
- **信度與效度**:三次獨立執行量測穩定性(intra-rater
reliability,可報告兩兩一致率);封閉母體全量檢查取代
抽樣防衛。可重現性定義為「程序透明+可稽核」:公開定義
檔、記錄 model ID 與執行時間、保存全部原始輸出。
## 資料儲存與模型
- **Commit 判準**:凡能由「committed 的輸入+committed 的
程式」決定性再生者,不 commit;凡不能者——源頭資料、
外部世界的捕捉(Wikidata 快照、LLM 原始輸出)、人工
著作——一律以文字格式 commit。格式跟著層次走。
- **分層**
- 源頭:原始榜單 CSV(進 git)。
- 捕捉:Wikidata 快照 CSV、`runs/` JSONL(皆進 git);
歌詞 `.txt` 快取(版權因素 gitignored,為已知的稽核
缺口)。
- 人工:`data/manual/`(僅研究者親手寫入:編碼修正、
演唱者性別修正)。
- 工作儲存:SQLite 單檔(`tools/instance/`generated、
不進 git),SQLAlchemy 2.0 typed ORM 定義 schema
設定經 pydantic-settings`.env` 供應
`SQLALCHEMY_DATABASE_URL``ANTHROPIC_API_KEY`)。
歌詞全文入 DB(不進 git 故無版權疑慮)。
- 衍生:`build-db` 建置工作儲存的同一動作產出人讀報表
`data/derived/`,進 git),與 SQLite 同交易語意。
- 報表:論文引用的定案表進 `results/`——
`codings.csv`(步驟 3 定案編碼)、`groups.csv`
(步驟 4 定案編碼群)、`patterns.csv`(步驟 5-3 定案
樣態表)、`annotations.csv`(步驟 5-4 定案歌×樣態
矩陣)。衍生與報表為「可再生仍 commit」的例外,理由:
引用穩定性、審稿人零門檻、撰稿期數字變動可 diff。
- **資料模型**`songs`(含 lyrics、`performer_gender`——
演唱聲音之性別,由署名藝人之 Wikidata 性別推導後套用
`data/manual/performer-gender-corrections.csv` 手工修正)、
`chart_entries``artists``song_artists``codings`
`groups`(語意編碼群)、`patterns`(深讀樣態)、
`annotations`(歌×樣態定案矩陣)。領域不變量(恰 1000
筆榜單、每歌至少一 primary 歌手等)檢查內建於
`build-db`,違規即建置失敗。
- **歌手背景防火牆**:歌手背景資料只進人工解讀階段,
**絕不進 LLM 輸入**——LLM 任務的 user message 維持
歌詞-only 或管線中間產物-only,避免光環偏誤。
- **Pilot 歌詞沿用(私人匯入,不進發布管線)**:先導研究
捕捉檔(lyrics.json684 首,20182025)以私人腳本
匯入歌詞快取;讀者的重現路徑純粹是
`fetch-lyrics`;沿用之事實記於
`data/captures/lyrics-provenance.csv`(進 git)。
- **子命令**`pop-fem-audit-tools <cmd>`):`build-db`
`--codings``--groups``--gender-corrections`
`--patterns``--annotations`)、`cluster-keywords`
`export-llm-input``fetch-artists``fetch-lyrics`
`run-llm``--model` 於模型登錄表中擇一)、
`tally-codings``tally-groups``tally-annotations`
## 分析管線(五步驟,全部完成)
1. **自由標註(步驟 1**:逐首歌請模型標註 thematic
keywords,附歌詞引述;提示零語意內容。獨立執行兩次,
兩次輸出全數進池。
2. **詞彙表建構(步驟 2**:聯集去重後以句向量模型嵌入、
階層式聚合分群 k=100,組名取 medoid;再併入研究者先驗
主題詞 `women-power`(據實揭露的儀器介入),共 101 碼。
3. **編碼(步驟 3**:以定稿詞彙表對全 883 首編碼,逐
標籤附引述,×3+多數決(`tally-codings`),定案
`results/codings.csv`。「女性力量」候選集(wp 66 首、
fe 144 首、wpfe 145 首)由此浮現。
4. **語意編碼群(步驟 4**:LLM 依編碼字面語意將 101 碼
選入研究者指定的四個主題群(women-powermisogyny
masculinevulnerable),×3+多數決(`tally-groups`),
定案 `results/groups.csv`wp/fe 與各編碼、各編碼群之
關聯統計(BH-FDR 校正)入論文。
5. **女性主義問題之質性深讀(步驟 5)**:對 wpfe 145 首
——5-1 逐首盲讀(僅歌詞全文)×3;5-2 逐首整合(收斂
註記、主清單限兩讀以上);5-3 樣態統整(全體基底+
男聲/女聲/混合三個發話脈絡分組);5-4 樣態標註——
以分組樣態表逐首標註「有問題」的 111 首,×3+多數決
`tally-annotations`),定案 `results/patterns.csv`
`results/annotations.csv`
定義檔命名 `prompts/<步>-<次步>-<task>.md`,編號的所指是
工序而非定義檔(確定性的第 2 步無定義檔仍佔編號);檔名
不帶版本號——版本即 git 歷史;每次執行的定義檔快照隨
`runs/` 自我完備,token 費用逐筆記於 `docs/run-costs.md`
## 時程與剩餘工作
- 全文截稿 2026-08-15;已向主辦致歉延後一至二日交件。
- 分析管線與定案表全部完成;剩餘為論文撰寫:「挪用與
污染」結論(步驟 5 素材已備)、信度說明、fe 與新自由
主義敘事之詮釋標註。
## 其他已定案事項
- 歌詞受版權保護:完整歌詞不進 git
`data/captures/lyrics/` gitignored),論文與 repo 只留
分析所引摘錄。