貼一個台北市地址,30 秒知道它落在哪個國中學區、共同學區會分到哪幾間、以及那間學校今年額不額滿——把買房、租屋、設籍前要跑兩三個官方系統才拼得出來的資訊,收斂成一頁。
① 115 學年度國中學區一覽表
臺北市115學年度國民中學學區一覽表(115-01-23 更新,官方 PDF 逐字轉錄)。台北市教育局公告 PDF,逐字人工轉錄成 data/junior-high-districts.json。
② 台北市門牌位置數值資料(門牌→里鄰)
取自 data.taipei開放資料集,dataset resource id:ce76ca0c-7f94-4935-ab47-1d2a41ca2abb。提供機關:臺北市政府民政局,每月更新一次。
③ 115 學年度國中新生分發額滿學校公告
台北市教育局公告,分兩階段:第一階段(需優先資格審查)與第二階段(依設籍先後分發)。
學區表不是抓取結構化資料,是把 PDF 逐頁、逐里、逐鄰手動轉錄成 JSON——遇到看不清或格式異常的欄位一律標註不確定,不用猜的補上去。轉錄完,再用已知的正確案例(例如「通化里屬大安、仁愛共同學區」這種可查證的事實)逐條核對轉錄結果,核對不過就回頭重讀原文,不改斷言遷就資料。
同一份官方文件裡,同一個里在不同學校各自的頁面上,有時措辭並不完全一致(例如共同學區的夥伴校清單排序不同、甚至個別欄位有轉錄疏漏)。系統會把這類疑點浮出來而不是悄悄吃掉——查到有規則衝突時,介面會顯示「資料矛盾」提醒,而不是隨機選一個答案給你。轉錄過程中發現的疑點與後續裁定,都留在 data/junior-high-districts.json 的 etlNotes 欄位:
- 四片轉錄合併:p1-7(agent etl-a)/p7-12(etl-b,古亭跨頁已解)/p13-14(主對話手工自文字層)/p15-21(etl-c,明德跨頁18已解)
- ⚠️ 待覆核:龍門國中學校代碼原文僅5碼「33350」;螢橋國中「富水(6-12鄰)」列無冒號格式歧義;景興國中「萬和(1-8鄰)」列缺冒號;文山區共同學區之「民族」推定=民族實驗國中(申請制)
- sharedWith 已正規化為官方全名;「新北市樟樹國中」為跨市共同學區之外部學校,保留原名
- 2026-07-21 裁定修正:民族實驗國中「萬和(1-8鄰)」原轉錄誤植為民族/興福共同——p6 文字層逐字原文為「萬和(1-8鄰):民族、景興共同學區」,與景興國中列(p14)一致,非官方文件矛盾
- 2026-07-21 verifier(task #8)抓到系統性里名轉錄錯誤,task #11 全區機械掃描(比對 data/junior-high-districts.json 里名集合 vs public/data/lilin/*.json 門牌權威資料)逐筆回 PDF 裁定修正 11 筆:中山區「埠頭→埤頭」(長安/懷生)、「朱厝→朱崙」(長安)、「朱厝→朱馥」(大同高中國中部,與長安的朱厝是兩個不同錯字巧合撞名)、「下埠→下埤」(五常,pdftotext 與門牌資料雙證據一致);中正區「螢圍→螢圃」(螢橋)、「庋安⚠️?→廈安」(南門,ETL 未解標記誤入正式資料);大同區「鄭江→鄰江」(蘭州);萬華區「糖廊→糖廍」(大理高中國中部,跨行斷字);信義國中「黎和/黎孝/芳和(1-2,7-18鄰)」adminDistrict 信義區→大安區(與和平高中國中部/芳和實驗國中自己頁面印刷不一致,2:1+門牌地理事實裁定);蘭雅國中「永欣(1-7,10-23鄰)」adminDistrict 士林區→北投區(與明德/天母/石牌三校印刷不一致,同樣裁定)。另加 normalizeLi 異體字對照(恒→恆,中山區新興國中「恒安」維持 PDF 原文不改,改由查詢時正規化解決)。詳細裁定依據見各校 sourceRows 對應註記;audit script:scripts/etl/audit-li-names.mjs
- 2026-07-21 task #11 追加:verifier 以官方學區查詢系統(schooldistrict.tp.edu.tw)第三方獨立確認 3 筆正字(中山區恆安、中正區廈安、中正區螢圃),並指出 sourceRows 逐字稿本身(不只結構化 li 欄位)也可能沿用了原始誤讀——已回頭核對前一批 11 筆修正,其中 8 筆(埠頭×2/朱厝×2/下埠/螢圍/庋安/鄭江/糖廊,即真的看錯字的案例)連 sourceRows 本體一併更正;恒/恆一筆維持 sourceRows 原文「恒安」不改(PDF 本身用異體字,非誤讀,靠 engine 正規化收斂);信義國中/蘭雅國中兩筆 adminDistrict 標籤裁定不受影響(那兩筆 sourceRows 本來就如實引用各自頁面印刷內容,問題在裁定哪頁可信而非逐字讀錯)。
轉錄/驗證日期:2026-07-21。