Back to blog
    從工程量清單中提取 AI 訓練數據:完整指南
    bill-of-quantitiesconstructiondata-extractiontraining-dataengineeringdocument-processingfine-tuning

    從工程量清單中提取 AI 訓練數據:完整指南

    如何將工程量清單(BOQ)文件轉換為結構化 AI 訓練數據——包含四個提取子階段、品質檢查和輸出格式,適用於建築與工程 AI 應用程序。

    EErtas Team·

    工程量清單(BOQ)是建築和工程行業中最重要——也是格式最混亂的——文件類型之一。每個承包商、顧問公司和業主都有自己的格式、命名慣例和層次結構。這種格式多樣性正是使 AI 訓練數據從 BOQ 中提取如此有價值的原因——以及如此困難的原因。

    本指南詳細介紹了將 BOQ 文件轉換為結構化 AI 訓練數據所需的四個提取子階段、每個階段的品質檢查,以及最終輸出格式,適用於三個主要的下游 AI 用例。


    BOQ 文件的結構

    在討論提取之前,了解你要處理的內容至關重要。

    工程量清單通常包含:

    層次結構

    • 部分(Division / Section):主要工作類別(土木工程、結構工程、機電工程等)
    • 子部分:特定工作類型
    • 項目代碼:層次識別符(如 02.03.01.A)
    • 行項目:最小的可報價工作單元

    每個行項目的欄位

    • 項目代碼(Item Code)
    • 描述(Description):通常是多行文字
    • 數量(Quantity):數值
    • 單位(Unit):m、m²、m³、kg、噸、個等
    • 單價(Rate):每單位費用(有時留空供投標)
    • 總價(Amount):數量 × 單價

    常見複雜性

    • 跨頁的描述
    • 嵌套的條件項目(「如果 X,則加上 Y」)
    • 不一致的單位格式(m² vs sqm vs sq.m.)
    • 注釋和假設(通常在頁面底部或側邊)
    • 引用規範的交叉引用

    四個提取子階段

    階段 1:結構偵測

    目標是在做任何實質性提取之前,先理解文件的組織方式。

    此階段做什麼:

    1. 識別頁面佈局類型(表格式、段落式、混合式)
    2. 偵測列結構和標題行
    3. 識別分層邊界(新部分從哪裡開始)
    4. 確定項目代碼格式(格式常因文件而異)

    品質檢查:

    • 偵測到的列數與預期相符嗎?
    • 識別出的分層邊界有意義嗎?
    • 是否有任何頁面沒有被識別為表格但應該是?

    常見失敗:

    • 將標題行解析為數據行
    • 遺漏跨頁列對齊的偏移
    • 將數字描述混淆為項目代碼

    階段 2:行項目解析

    逐行提取每個 BOQ 行項目,將其轉換為結構化記錄。

    每條記錄提取的字段:

    {
      "item_code": "03.02.01.B",
      "description": "以機器澆注的混凝土 C30/37,包括所有材料、勞工...",
      "quantity": 145.0,
      "unit": "m³",
      "rate": null,
      "amount": null,
      "section": "03 - 混凝土工程",
      "sub_section": "03.02 - 原位混凝土",
      "page_reference": "P-47",
      "notes": []
    }
    

    複雜情況的處理規則:

    • 多行描述:合併行,保留換行符
    • 空率/金額:設為 null(不要設為 0)
    • 注釋行:分別追蹤,關聯到最近的行項目
    • 匯總行:用 is_summary: true 標記,不視為訓練數據

    品質檢查:

    • 各部分的行項目總計是否與頁面匯總行一致?
    • 提取的數量是否在對應單位的合理範圍內?(1,000,000 m² 的牆面積可能是解析錯誤)
    • 是否有任何描述字段為空?

    階段 3:標準化

    原始提取結果通常包含格式不一致。標準化階段解決這些問題。

    單位標準化 將所有單位變體標準化為規範形式:

    原始標準化
    sqm、sq.m.、SQM
    cbm、cum、CUM
    lm、lin m、LMm
    no.、nr.、NR
    tonne、T、MT

    描述清洗

    • 移除多餘的空格和換行符
    • 標準化標點符號
    • 識別並標記規範引用(BS、EN、ASTM 等)

    數量驗證

    • 確認數量是正數
    • 標記統計異常值(超出中位數 10 倍以上的值)
    • 交叉引用行級金額與數量 × 單價(如果兩者都存在)

    品質檢查:

    • 標準化前後的行數是否相同?
    • 單位分佈是否合理(預計工程量清單中 m² 和 m³ 很常見)?
    • 是否有任何數量在標準化後變為 0 或負數?

    階段 4:交叉引用提取

    許多 BOQ 引用外部規範、圖紙和標準。提取這些引用既豐富了訓練數據,也為下游 RAG(檢索增強生成)應用建立了關聯。

    提取的引用類型:

    • 規範引用(「按照 BS 8110 第 1 部分」)
    • 圖紙引用(「見圖 S-12」)
    • 施工方法注釋(「按業主批准的方法陳述書施工」)
    • 替代材料條款(「或業主批准的同等材料」)

    輸出格式:

    {
      "item_code": "05.01.03.A",
      "references": [
        {"type": "standard", "code": "BS 8110", "part": "Part 1"},
        {"type": "drawing", "code": "S-12"},
        {"type": "method_statement", "code": null}
      ]
    }
    

    品質檢查:

    • 提取的規範代碼是否是已知格式(BS、EN、ASTM、ACI)?
    • 圖紙引用是否與圖紙清單交叉驗證(如果可用)?

    預期數據集規模

    處理典型規模的 BOQ 項目時可以預期的行項目數:

    項目類型典型 BOQ 規模提取的行項目
    住宅單棟建築100-300 頁1,000-5,000
    商業辦公樓300-800 頁5,000-20,000
    基礎設施項目(道路、橋樑)500-2,000 頁15,000-60,000
    大型工業設施1,000+ 頁50,000-200,000

    一個合理的 BOQ 訓練數據集——覆蓋建築類型、地區和時間段——應包含 10,000 至 150,000 個行項目以上,具體取決於目標模型的任務。


    輸出格式

    根據您的下游 AI 用例,BOQ 訓練數據有三種主要輸出格式。

    格式 1:用於分類微調的 JSONL

    用於訓練可以分類 BOQ 行項目、識別異常數量或標記缺失資訊的模型:

    {"prompt": "對以下 BOQ 行項目進行分類:\n項目代碼:04.02.01.A\n描述:230mm 厚磚牆,以 M5 砂漿砌築...\n數量:847\n單位:m²", "completion": "類別:砌體工程\n子類別:磚牆\n材料:磚\n厚度:230mm\n砂漿等級:M5"}

    格式 2:用於提取訓練的 CSV

    用於訓練可以從未結構化的 BOQ PDF 中提取結構化數據的模型:

    source_text,item_code,description,quantity,unit
    "04.02.01.A 230mm 厚磚牆,以 M5 砂漿砌築......847 m²","04.02.01.A","230mm 厚磚牆,以 M5 砂漿砌築...",847,"m²"

    格式 3:用於 RAG 的分塊文本

    用於建立可以回答關於 BOQ 數據問題的知識庫:

    [BOQ-SECTION: 04 - 砌體工程]
    [PROJECT: ABC 辦公大樓]
    [DATE: 2025-03]
    
    部分 04.02 - 磚砌工程
    
    04.02.01.A - 230mm 厚磚牆
    數量:847 m²
    工作包括:以 M5 砂漿砌築的 230mm 厚磚牆,包括所有...
    [引用: BS EN 1996-1-1]
    

    常見提取挑戰及解決方案

    掃描 PDF vs. 原生 PDF 許多 BOQ 是掃描的紙質文件。掃描件需要 OCR 預處理,其中數字識別(特別是數量和單價)比文字識別更容易出錯。解決方案:對 OCR 後的數字字段應用置信度閾值,低置信度的記錄標記為需要人工審查。

    多版本 BOQ 項目通常會產生多個 BOQ 版本(B1、B2、最終版等)。在合併版本之前,識別並追蹤版本歷史非常重要,以免混淆訓練信號。

    不一致的層次深度 有些 BOQ 有兩個層次(部分 → 行項目),有些有四個或五個層次。提取管線應對層次深度具有靈活性,而非假設固定的結構。

    混合語言 特別是在國際項目中,BOQ 可能在英語部分說明旁附有阿拉伯語、法語或其他語言的描述。語言識別和適當的標記對於下游多語言模型訓練很重要。


    從 BOQ 數據中構建 AI 應用

    以結構化形式提取的 BOQ 數據為多種 AI 應用奠定了基礎:

    成本估算輔助:微調模型,在給定項目描述和位置的情況下預測 BOQ 數量或費率。

    規範合規檢查:在 BOQ 描述和相關規範之間訓練交叉引用,以識別描述不完整或不一致的項目。

    BOQ 生成:在足夠的歷史數據上,模型可以為新項目起草初始 BOQ——這是建築行業一個主要的效率提升機會。

    數量差異分析:比較同一項目類型跨多個項目的 BOQ,識別數量異常可能表示的估算錯誤或範圍差異。


    使用 Ertas 處理 BOQ 文件

    BOQ 提取是 Ertas Data Suite 的核心用例之一。文件攝取模塊處理原生 PDF 和掃描 PDF,使用帶置信度評分的 OCR;清洗模塊應用單位標準化和數量驗證規則;標注模塊允許人工審查員驗證低置信度的提取;匯出以 JSONL、CSV 或 RAG 就緒的分塊格式提供完整稽核追蹤。

    由於 Ertas 作為原生桌面應用程序運行,BOQ 文件——通常包含商業敏感的定價信息——在整個過程中保留在您的本地基礎設施上。

    Ship AI that runs on your users' devices.

    Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.

    Keep reading