Trim the docs to their own jobs
The methodology keeps only the method that reaches the paper's conclusions; the research plan becomes the proposal minus its externalized method chapter; the standing rules move to a Chinese conventions.md; the project-structure inventory, a hand-kept mirror of the tree itself, is deleted. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+101
-202
@@ -1,12 +1,12 @@
|
||||
# 方法細節
|
||||
|
||||
(全文方法節底稿。演算法在執行前寫定;任何修訂記入
|
||||
`decision-log.md`。定義檔全文見 `prompts/`,執行紀錄見
|
||||
`runs/`。)
|
||||
`decision-log.md`。)
|
||||
|
||||
## 自然編碼管線總覽
|
||||
|
||||
五個步驟:步驟 1 自由標註(兩次執行進池)→ 步驟 2 詞彙表
|
||||
五個步驟:步驟 1 自由標註(`claude-sonnet-4-6`,
|
||||
temperature=0、thinking 關閉,兩次執行進池)→ 步驟 2 詞彙表
|
||||
建構(詞向量分群,確定性)→ 步驟 3 全量編碼(三次執行+
|
||||
多數決)→ 步驟 4 語意編碼群(三次執行+多數決)→ 步驟 5
|
||||
女性主義問題之質性深讀(三次閱讀+逐首整合+樣態統整)。
|
||||
@@ -14,13 +14,6 @@
|
||||
不接觸歌詞,步驟 2 亦不呼叫 LLM。設計原則見
|
||||
`research-plan.md`;本檔記載可重現的演算法細節。
|
||||
|
||||
編號的所指為**研究程序的工序**,不是定義檔:步驟 1、
|
||||
步驟 3、步驟 4 與步驟 5 有定義檔(`prompts/`;步驟 5 依
|
||||
子工序有三份),步驟 2 沒有——它是單一確定性計算,由
|
||||
`cluster-keywords` 一個子命令完成。有無定義檔的區別即
|
||||
「該步是否為 LLM 判斷」,由 `prompts/` 是否存在同號檔案
|
||||
直接可見。
|
||||
|
||||
## 步驟 2 詞彙表建構——詞向量分群
|
||||
|
||||
詞彙表由確定性程序產生,不經 LLM。完整分割(每個關鍵字
|
||||
@@ -30,8 +23,7 @@
|
||||
### 進池
|
||||
|
||||
兩次標註執行的全部關鍵字取聯集、逐字串精確去重、字典序
|
||||
排列。失敗與拒答的記錄跳過(其歌曲不貢獻關鍵字);解析
|
||||
時偵測重複鍵,違規即失敗。
|
||||
排列。失敗與拒答的記錄跳過(其歌曲不貢獻關鍵字)。
|
||||
|
||||
### 分群
|
||||
|
||||
@@ -39,14 +31,10 @@
|
||||
(釘定 revision),關鍵字的連字號先還原為空格再編碼,
|
||||
輸出 768 維向量並 L2 正規化。
|
||||
- **分群**:階層式聚合分群(Ward linkage),k=100。
|
||||
向量既已正規化,歐氏距離與餘弦相似度單調對應;三種
|
||||
linkage 實測比較,Ward 於各個 k 的組內一致性均最高
|
||||
(average 與 complete 皆產生吞噬半數語料的巨大異質
|
||||
組)。
|
||||
向量既已正規化,歐氏距離與餘弦相似度單調對應。
|
||||
- **組數的取捨**:k 太小則壓縮比過高,樹上層被迫併入
|
||||
不相干的詞,組雖大而無主題(k=30 最大組 491 詞、
|
||||
組內一致性 0.41,成員橫跨籃球、海灘、外星人綁架);
|
||||
k 太大則人工難以通覽。定於 100,理由是實測顯示雜物櫃
|
||||
不相干的詞,組雖大而無主題;k 太大則人工難以通覽。
|
||||
定於 100,理由是實測顯示雜物櫃
|
||||
組於此始裂解為有主題的組,且編碼實測未見碼數過多的
|
||||
副作用——全量三次執行下 101 個碼全數用到;模型另行
|
||||
造出的碼共 13 筆,佔 44,149 筆標籤指派的 0.03%。
|
||||
@@ -55,39 +43,23 @@
|
||||
自己產出過的關鍵字,非任何人事後撰寫。已知限制:
|
||||
組越大越異質時,medoid 只是折衷詞,可能代表不了組內
|
||||
內容(實測 `mutual-individuality` 組內一致 0.70 而
|
||||
編碼從未使用);此類碼於結果中呈現為零使用,據實
|
||||
報告,不事後改名。
|
||||
- **取捨紀錄**:曾以 LLM 單發收斂(merge/cap 兩步)
|
||||
實作本步,四種模型六次執行全部無法維持完整分割,
|
||||
已棄用(詳見 `decision-log.md` 2026-08-05;棄用的
|
||||
定義檔止於 git 歷史,見 `git log -- prompts/`)。
|
||||
- **產物**:五份,前綴分別標示來源與結果。
|
||||
`source-keywords.txt`(進池後的關鍵字,一行一個)
|
||||
記錄進來的是什麼;`result-keywords.txt`(組名,一行
|
||||
一個)與 `groups.csv`(欄位 Group、Keyword,一列一個
|
||||
成員)記錄算出來的分割;`keywords-to-merge.json`
|
||||
(`{"keywords": [...]}`)是實際交給模型的碼,即組名
|
||||
加上先驗主題詞——五份中只有這一份含研究者的介入。
|
||||
`meta.json` 記錄執行本身:進池的兩份執行歸檔與其有效
|
||||
筆數、嵌入模型與釘定 revision、分群參數與組數、外加
|
||||
的先驗詞、關鍵字總數,以及產生數字的套件版本。凡命令
|
||||
列上的選擇與環境事實皆在此,不記時間戳與輸入雜湊
|
||||
——前者使同環境重跑逐位元組可再生,後者只會重述 git
|
||||
已保證的事。
|
||||
編碼從未使用);此類碼於結果中呈現為零使用。
|
||||
- **取捨紀錄**:詞彙表分群曾比較的替代法與棄用理由,見
|
||||
`decision-log.md` 2026-08-05 條。
|
||||
- **產物**:分群輸出中,只有實際交給模型的碼表——組名
|
||||
加上先驗主題詞——含研究者的介入;其餘皆為分群過程本身
|
||||
的機械紀錄。
|
||||
- **可重現性**:同一輸入、同一釘定模型、同一參數逐次
|
||||
重現。不同 CPU/BLAS 實作的浮點尾數差異可能使邊界
|
||||
詞的歸屬翻動,屬已揭露的限制;論文所用碼表逐字
|
||||
commit,引用單位為該份定案檔案。
|
||||
詞的歸屬翻動,屬已揭露的限制。
|
||||
|
||||
### women-power 的注入
|
||||
|
||||
定案詞彙表為 100 個分群組名再加上 `women-power` 一詞,
|
||||
共 101 個碼。`women-power` 是研究者任意決定的先驗主題(即本
|
||||
論文的主題本身),不由資料產生,屬揭露的儀器介入。該詞
|
||||
於執行時以 `--extra-keyword` 明示加入,不寫死在程式裏
|
||||
——研究者的介入因此每次都出現在重現命令上,而非無聲
|
||||
發生;分群結果的兩份產物不含它,只有交給模型的碼表含
|
||||
它。
|
||||
的加入於每次執行皆為明示、可稽核的介入,而非無聲內建於
|
||||
判斷邏輯;分群結果本身不含它,只有交給模型的碼表含它。
|
||||
|
||||
注入而非另設篩選軌的理由:讓研究者的主題詞與模型自己
|
||||
收斂出的類別(分群已自行長出 `female-empowerment` 等組)
|
||||
@@ -97,24 +69,17 @@
|
||||
|
||||
## 步驟 3 編碼的三次執行與多數決
|
||||
|
||||
- **模型**:`claude-sonnet-4-6`,temperature=0、thinking 關閉。
|
||||
- **三次執行**:同一份定義檔、同一份輸入檔,獨立執行
|
||||
三次,三份歸檔並列(`runs/3a-code/run1`、`run2`、
|
||||
`run3`),彼此無先後主從之別。
|
||||
三次,三份歸檔並列,彼此無先後主從之別。
|
||||
- **多數決**:一首歌的一個標籤,三次執行中至少兩次標出
|
||||
即收入定案編碼。三票不平手,裁決規則因此無例外條款,
|
||||
計票由確定性子命令完成(見交接契約)。
|
||||
- **第三票取全量**:只對前兩次分歧的標籤補問第三票,
|
||||
計票結果相同;仍採全量執行——全部歌曲、全部關鍵字
|
||||
——使三票在同一條件下取得。
|
||||
計票由確定性程序完成(見交接契約)。
|
||||
- **第三票取全量**:第三次執行同為全量——全部歌曲、
|
||||
全部關鍵字——使三票在同一條件下取得。
|
||||
- **對邊緣標籤的作用**:兩次執行只分得出「兩次皆標」與
|
||||
「僅一次標」;三次執行還分得出 3-0 與 2-1,故「定案
|
||||
編碼中有多少比例僅以一票之差成立」成為可報告的量。
|
||||
至於判定本身,兩次執行相左的標籤在何種協定下都由第三
|
||||
個判斷定奪,票數不使不確定性消失:某標籤於單次執行被
|
||||
標出的傾向若恰為一半,任何票數皆為擲幣。三票之效在
|
||||
傾向偏離一半處——多數決將判定推向該傾向本身(單次
|
||||
0.7 者為 0.78,0.9 者為 0.97),程序重跑的一致性因而
|
||||
高於單次執行,唯獨恰半處無從改善。
|
||||
|
||||
## 步驟 4 語意編碼群
|
||||
|
||||
@@ -125,103 +90,79 @@
|
||||
由 LLM 依編碼名的字面語意判斷。
|
||||
- **任務**:每筆輸入為一個群名加 101 個編碼的字母序
|
||||
清單,輸出為入選編碼的單層 JSON 陣列;定義檔
|
||||
`prompts/4-group.md` 只定格式,不含任何群的語意定義。
|
||||
- **模型**:`claude-fable-5`(步驟 1、3 為
|
||||
`claude-sonnet-4-6`)。該模型不受理 `temperature` 與
|
||||
`thinking` 參數,兩者均不送出;取樣變異由多數決吸收。
|
||||
只定格式,不含任何群的語意定義。
|
||||
- **模型**:`claude-fable-5`;取樣變異由多數決吸收;
|
||||
模型裁定的理由與對照實驗見決策日誌。
|
||||
- **三次執行**:同一份定義檔、同一份輸入檔,獨立執行
|
||||
三次,歸檔並列(`runs/4-group/run1`、`run2`、`run3`)。
|
||||
三次,歸檔並列。
|
||||
- **多數決**:一個(群,編碼)配對,三次執行中至少兩次
|
||||
入選即屬該群;不在 101 碼詞彙表內的輸出項無效,每筆
|
||||
丟棄印於標準錯誤。計票由確定性子命令 `tally-groups`
|
||||
完成:`tally-groups <執行歸檔 1> <執行歸檔 2> <執行歸檔
|
||||
3> <合法碼清單> <輸出 CSV>`,合法碼清單之產法同步驟 3。
|
||||
定案分群寫入 `results/groups.csv`,欄位 `Group`、
|
||||
`Keyword`、`Votes`,列序先依群名、再依編碼,一律以
|
||||
Unicode 碼位比較,換行為 CRLF。
|
||||
- **工作儲存**:`build-db --groups <定案分群 CSV>` 將定案
|
||||
分群逐欄照存入 `groups` 資料表(群、編碼、票數),供
|
||||
群層次查詢。
|
||||
入選即屬該群;不在 101 碼詞彙表內的輸出項無效,逐筆
|
||||
記錄後丟棄。計票由確定性計票程序完成,合法碼
|
||||
清單之產法同步驟 3,結果為定案分群表。
|
||||
|
||||
## 步驟 5 女性主義問題之質性深讀
|
||||
|
||||
本步驟之 5a 至 5c 為**質性閱讀,非編碼**:輸出為自由
|
||||
文字的問題閱讀報告,無可逐項機械比對的單位,故不適用
|
||||
三票多數決與仲裁;
|
||||
三次獨立閱讀為分析者三角檢核,逐首整合為整合而非裁決,
|
||||
跨首統整之產出為草稿,終審與詮釋由研究者為之。論文引用
|
||||
本步驟之 5a 至 5c 為**質性閱讀,非編碼**:輸出為自由
|
||||
文字的問題閱讀報告,無可逐項機械比對的單位,故不適用
|
||||
三票多數決與仲裁;
|
||||
三次獨立閱讀為分析者三角檢核,逐首整合為整合而非裁決,
|
||||
跨首統整之產出為草稿,終審與詮釋由研究者為之。論文引用
|
||||
本步驟時不作次數宣稱。
|
||||
|
||||
- **對象**:定案編碼含 `women-power` 或
|
||||
- **對象**:定案編碼含 `women-power` 或
|
||||
`female-empowerment` 的 145 首歌。
|
||||
- **5a 逐首閱讀**:每筆輸入為一首歌的完整歌詞逐字全文,
|
||||
不含歌名與演唱者(盲讀);定義檔
|
||||
`prompts/5a-read.md`。同一份定義檔、同一份輸入檔,
|
||||
獨立執行三次,歸檔並列(`runs/5a-read/run1`、
|
||||
`run2`、`run3`)。
|
||||
- **5b 逐首整合**:每筆輸入為該首歌的三份閱讀報告
|
||||
(不含歌詞);以問題機制為單位保守合併,標收斂註記
|
||||
((3/3)、(2/3)),主清單僅列兩讀以上提出者,單讀發現
|
||||
以一行存目;定義檔 `prompts/5b-consolidate.md`,
|
||||
執行一次,歸檔 `runs/5b-consolidate/run1`。
|
||||
- **5c 樣態統整**:單筆輸入為一批整合報告;歸納問題
|
||||
**樣態**——問題呈現與運作的重複形態,非問題分類,
|
||||
代表引句僅取自主清單;定義檔
|
||||
`prompts/5c-synthesize.md`。四種輸入範圍各執行
|
||||
一次:全 145 首之基底統整(歸檔
|
||||
`runs/5c-synthesize/run1`),及依 `performer_gender`
|
||||
(演唱聲音之性別)切分之三個發話脈絡統整——男聲
|
||||
(male,歸檔 `run2`)、女聲(female,歸檔 `run3`)、
|
||||
混合(mixed,歸檔 `run4`);基底看橫貫各脈絡之樣態,
|
||||
分組看各權力脈絡下之樣態。genderfluid 與 non-binary
|
||||
共 3 首不設群——樣本數不支持歸納——僅入基底統整,
|
||||
由研究者以個案閱讀。同一輸入不重複執行:自由歸納之
|
||||
產出無機械合併可言,其變異由 5a 三讀、5b 整合與
|
||||
草稿地位承接,四份草稿互為對照,由研究者終審裁決。
|
||||
- **5d 樣態標註**:以 (歌, 樣態) 對為可逐項機械比對之
|
||||
單位,回歸「三次執行+多數決」協定。對象為「有問題」
|
||||
的歌——三讀中至多一個「無」(多數決精神;恰兩「無」
|
||||
者其整合報告主清單必為空,與 5b 主清單規則自洽),
|
||||
計 111 首(男聲 12、女聲 69、混合 29、genderfluid 1)。
|
||||
樣態表為三份分組統整草稿原文:男聲 13 條(M1–M13)、
|
||||
女聲 14 條(F1–F14)、混合 16 條(X1–X16);基底 15 條
|
||||
- **5a 逐首閱讀**:每筆輸入為一首歌的完整歌詞逐字全文,
|
||||
不含歌名與演唱者(盲讀)。同一份定義檔、同一份輸入檔,
|
||||
獨立執行三次,歸檔並列。
|
||||
- **5b 逐首整合**:每筆輸入為該首歌的三份閱讀報告
|
||||
(不含歌詞);以問題機制為單位保守合併,標收斂註記
|
||||
((3/3)、(2/3)),主清單僅列兩讀以上提出者,單讀發現
|
||||
以一行存目;定義檔,執行一次。
|
||||
- **5c 樣態統整**:單筆輸入為一批整合報告;歸納問題
|
||||
**樣態**——問題呈現與運作的重複形態,非問題分類,
|
||||
代表引句僅取自主清單。四種輸入範圍各執行
|
||||
一次:全 145 首之基底統整,及依演唱聲音之性別切分
|
||||
之三個發話脈絡統整——男聲(male)、女聲(female)、
|
||||
混合(mixed);基底看橫貫各
|
||||
脈絡之樣態,分組看各權力脈絡下之樣態。genderfluid
|
||||
與 non-binary 共 3 首不設群——樣本數不支持歸納——
|
||||
僅入基底統整。同一輸入不重複
|
||||
執行:自由歸納之產出無機械合併可言,其變異由 5a
|
||||
三讀、5b 整合與草稿地位承接,四份草稿互為對照,由
|
||||
研究者終審裁決。
|
||||
- **5d 樣態標註**:以(歌,樣態)對為可逐項機械比對之
|
||||
單位,回歸「三次執行+多數決」協定。對象為「有問題」
|
||||
的歌——三讀中至多一個「無」(多數決精神;恰兩「無」
|
||||
者其整合報告主清單必為空,與 5b 主清單規則自洽),
|
||||
計 111 首(男聲 12、女聲 69、混合 29、genderfluid 1)。
|
||||
樣態表為三份分組統整草稿原文:男聲 13 條(M1–M13)、
|
||||
女聲 14 條(F1–F14)、混合 16 條(X1–X16);基底 15 條
|
||||
不入矩陣——全體歸納之一條樣態可能疊合不同方向的
|
||||
權力關係(男對女、女對男),實為多個樣態共用一名。
|
||||
檢驗範圍:男聲樣態不檢驗純女聲歌、女聲樣態不檢驗
|
||||
純男聲歌(發話位置範疇錯置,檢查無意義);混合樣態
|
||||
檢驗全部(其男女聲部無系統化切分方式,無意義之標註
|
||||
容忍之);genderfluid 歌三套全查(無自身透鏡,發話
|
||||
位置無法先驗決定),其歸屬引用維持個案地位。每筆
|
||||
輸入為一首歌之整合報告(「僅單獨提及」行於組裝時
|
||||
剝除,標註僅依主清單)與該首適用之樣態表;定義檔
|
||||
`prompts/5d-annotate.md`,獨立執行三次
|
||||
(`runs/5d-annotate/run1`~`run3`),(歌, 樣態) 對
|
||||
權力關係(男對女、女對男),實為多個樣態共用一名。
|
||||
檢驗範圍:男聲樣態不檢驗純女聲歌、女聲樣態不檢驗
|
||||
純男聲歌(發話位置範疇錯置,檢查無意義);混合樣態
|
||||
檢驗全部(其男女聲部無系統化切分方式,無意義之標註
|
||||
容忍之);genderfluid 歌三套全查(無自身透鏡,發話
|
||||
位置無法先驗決定),其歸屬引用維持個案地位。每筆
|
||||
輸入為一首歌之整合報告(「僅單獨提及」行於組裝時
|
||||
剝除,標註僅依主清單)與該首適用之樣態表;定義檔
|
||||
獨立執行三次,(歌,樣態)對
|
||||
得兩票以上者定案。
|
||||
- **模型**:`claude-fable-5`(與先導深讀同儀器;
|
||||
`temperature` 與 `thinking` 參數不適用,均不送出)。
|
||||
- **輸入組裝**:確定性行內腳本。5a:145 首依歌曲 ID
|
||||
升序,`content` 為歌詞逐字全文;5b:每筆
|
||||
`{"reports": [run1 輸出, run2 輸出, run3 輸出]}`;
|
||||
5c:單筆以 `song-<ID>` 為鍵、整合報告為值之 JSON
|
||||
物件,鍵集合為該次統整之範圍(基底為全 145 首,
|
||||
分組依工作庫 `performer_gender` 切分);5d:每筆
|
||||
`{"report": 主清單, "patterns": [{"id", "name",
|
||||
"description"}]}`,樣態條目自分組統整草稿機械切出,
|
||||
代表引句不隨附——引句出自特定歌曲,判該曲時形同
|
||||
預答。各輸入檔之 SHA-256 記入該步 meta。
|
||||
- **模型**:`claude-fable-5`。
|
||||
- **輸入組裝**:各步輸入檔由確定性程序自上游產物組裝。
|
||||
5d 之樣態條目自分組統整草稿機械切出,代表引句不
|
||||
隨附——引句出自特定歌曲,判該曲時形同預答。
|
||||
|
||||
## 女性力量候選集
|
||||
|
||||
候選集為兩類歌曲的合集:定案編碼含 `women-power` 者,
|
||||
以及定案編碼含研究者指認之女性力量概念域分群組者。
|
||||
指認於詞彙表定案後、黃金標準編碼開始前完成,指認清單
|
||||
與理由記入決策日誌。
|
||||
候選集為定案編碼含 `women-power` 或 `female-empowerment`
|
||||
(步驟 4 女性力量群的兩個編碼)之歌曲聯集:wp 66 首、
|
||||
fe 144 首,聯集 145 首。
|
||||
|
||||
## 軌跡對映(診斷用)
|
||||
|
||||
沿收斂軌跡的機械對映:原始關鍵字 →(兩份標註執行歸檔的
|
||||
`output.jsonl`)歌曲、原始關鍵字 →(分群)組,純程式查表,
|
||||
原始輸出)歌曲、原始關鍵字 →(分群)組,純機械查表,
|
||||
決定性。以其結果與步驟 3 直接編碼的差異率作為「收斂軌跡
|
||||
扭曲」的診斷量,不作主結果。
|
||||
|
||||
@@ -230,78 +171,36 @@
|
||||
每一步的輸出如何變成下一步的輸入,皆為確定性程序,規則
|
||||
明定如下:
|
||||
|
||||
- **歌詞輸入檔(步驟 1)**:`export-llm-input` 自工作
|
||||
儲存產出,每筆 `{"id": "song-<ID>", "content": <歌詞>}`,
|
||||
依歌曲 ID 升序。步驟 3 的輸入由同一子命令、同一工作
|
||||
儲存產出(見下),兩步的語料同一性由此成立;各步
|
||||
輸入檔的 SHA-256 記入該步 meta。
|
||||
- **步驟 1 → 2**:`cluster-keywords` 讀兩份執行歸檔的
|
||||
`output.jsonl`(一律以換行字元 `\n` 切行——歌詞含
|
||||
U+0085 等控制字元時,`str.splitlines()` 類的通用切行
|
||||
會截斷 JSON 字串,實測踩中),進池後直接分群,一次
|
||||
產出上列五份檔案。
|
||||
- **步驟 2 → 3 輸入檔**:`export-llm-input --extras
|
||||
<定案碼表>` 自工作儲存產出步驟 3 的輸入,每筆
|
||||
`{"id": "song-<ID>", "content": <字串>}`,`content` 為
|
||||
固定鍵序序列化的 `{"lyrics": …, "keywords": [...]}`,
|
||||
依歌曲 ID 升序。碼表以參數傳入而非填進定義檔——定義
|
||||
- **歌詞輸入檔(步驟 1)**:由確定性的匯出程序自工作
|
||||
儲存產出,一筆一首歌,依歌曲 ID 升序。步驟 3 的輸入
|
||||
由同一匯出程序、同一工作儲存產出(見下),兩步的語料
|
||||
同一性由此成立。
|
||||
- **步驟 1 → 2**:確定性的分群程序讀兩份執行歸檔的
|
||||
執行紀錄,進池後直接分群,產出詞彙表與交給
|
||||
模型的碼表。
|
||||
- **步驟 2 → 3 輸入檔**:同一匯出程序自工作儲存產出
|
||||
步驟 3 的輸入,一筆一首歌,兼含歌詞與定案碼表,依
|
||||
歌曲 ID 升序。碼表以參數傳入而非填進定義檔——定義
|
||||
檔只規定任務形狀,換詞彙表、換演算法都不必改它。
|
||||
- **步驟 3 定案**:`tally-codings <執行歸檔 1> <執行歸檔
|
||||
2> <執行歸檔 3> <輸出 CSV> --corrections <更正表>
|
||||
--valid-keywords <合法碼清單>` 讀三份執行歸檔的
|
||||
`output.jsonl`,依序套用更正表、驗證所有標籤皆在合法碼
|
||||
- **步驟 3 定案**:確定性的計票程序讀三份執行歸檔的
|
||||
執行紀錄,依序套用更正表、驗證所有標籤皆在合法碼
|
||||
清單之內、計票。
|
||||
- **更正表**:`data/manual/coding-corrections.csv`,研究者
|
||||
逐列校定的人工著作,欄位 `Song ID`、`Run`、`Type`、
|
||||
`To Be Replaced`、`Correct Term`。`Type` 為 `keyword`
|
||||
或 `evidence`,分別更正標籤與引述;`Correct Term` 為
|
||||
替代字串,或 `**REMOVE**` 表示刪去該筆標籤指派(`keyword`)
|
||||
或該句引述(`evidence`)。一筆 `evidence` 更正套用於該
|
||||
首歌該次執行的所有出現處。兩個文字欄以歌詞慣例「 / 」
|
||||
表示換行(與載入後的執行紀錄同一表示法,逐字比對、不再
|
||||
轉換),故一列一行,純文字工具可逐列處理。表中任一列若
|
||||
在資料中找不到對應者,即中止;校定的判準記於
|
||||
`decision-log.md`。
|
||||
- **合法碼清單**:純文字、一行一個碼,自詞彙表產出:
|
||||
`{ cat runs/2-cluster/result-keywords.txt; echo
|
||||
women-power; } | sort`。
|
||||
- **定案表**:`results/codings.csv`,欄位 `Song`、
|
||||
`Artist Credit`、`Keyword`、`Quote`,一列一個標籤。歌名
|
||||
與演出者名銜逐首查工作儲存取得,故本子命令須在
|
||||
`build-db` 之後執行。`Quote` 為該標籤在計票中各份執行
|
||||
所引的歌詞行:各份的引述串接後逐字去重,按 Unicode
|
||||
碼位排序,以單一 `|` 相接(三份執行彼此無先後主從之
|
||||
別,引述之序取決於引述本身);引述內的換行於執行紀錄
|
||||
載入時一次換成歌詞慣例「 / 」,此後更正表、定案表與
|
||||
工作儲存全鏈路同一表示法,不再還原。「 / 」的無歧義性
|
||||
是語料事實而非結構保證:全 883 首歌詞經窮舉查核不含
|
||||
「 / 」;換語料須重查。列序依印出的前三欄依序排:
|
||||
歌名、演出者名銜、
|
||||
標籤,一律以 Unicode 碼位比較,換行為 CRLF(同專案
|
||||
其他 CSV)。
|
||||
- **序列化通則**:所有中間檔為 UTF-8,欄序、鍵序與元素
|
||||
序皆依上列規則明定,無時間戳、無隨機成分;JSON 解析
|
||||
一律偵測重複鍵,違規即失敗。人讀為主的產物採純文字或
|
||||
CSV(CSV 依 RFC 4180,標題列字首大寫),機器交接檔採
|
||||
JSON。給定相同的 LLM 執行輸出,全部交接產物逐位元組
|
||||
可再生。
|
||||
- **更正表**:研究者逐列校定的人工著作,逐筆更正標籤
|
||||
或引述——以替代字串取代,或刪去該筆標籤指派或該句
|
||||
引述。一筆引述更正套用於該首歌該次執行的所有出現處。
|
||||
表中任一列若在資料中找不到對應者,即中止;校定的
|
||||
判準記於 `decision-log.md`。
|
||||
- **合法碼清單**:自詞彙表產出:分群組名加上
|
||||
`women-power`。
|
||||
- **定案編碼表**:歌名與演出者名銜逐首查工作儲存取得。
|
||||
每個定案標籤隨附其在計票中各份執行所引的
|
||||
歌詞行,供逐碼查核(三份執行彼此無先後主從之別)。
|
||||
|
||||
## 執行與稽核
|
||||
|
||||
- LLM 步驟以 `run-llm <定義檔> <輸入檔> <歸檔目錄>`
|
||||
執行;一步的 N 次執行=重現命令清單上的 N 行命令,
|
||||
各自歸檔(`runs/<步驟>/run1`、`run2`,三票制步驟另有
|
||||
`run3`)。
|
||||
- 確定性步驟(進池、分群、計票、對映)為子命令,其
|
||||
輸入輸出檔同隨 `runs/` 歸檔;因無執行變異,歸檔目錄
|
||||
下不分 `run<N>` 層。
|
||||
- LLM 步驟以批次執行程序執行,一份定義檔配一份
|
||||
輸入檔;一步的 N 次執行為 N 次各自獨立的呼叫,各自
|
||||
歸檔自我完備。
|
||||
- Batch API 的每筆請求自含全部脈絡且互不可見(平台
|
||||
契約),歌與歌之間的獨立性由此成立;各次執行的獨立
|
||||
性由「一次呼叫、一個批次、一份歸檔」的執行結構自明。
|
||||
- 每次 `run-llm` 執行的 token 用量與費用記入
|
||||
`run-costs.md`,被取代的執行一併保留供總支出核算。
|
||||
|
||||
## 映射分析方法
|
||||
|
||||
(依 2026-07-30 決策,於看到結果前寫定;待黃金標準
|
||||
編碼展開前補入。)
|
||||
|
||||
Reference in New Issue
Block a user