
本地端 ML 訓練資料集清理:去重複、規範化與品質評分
如何在本地端清理 ML 訓練資料集——涵蓋使用 MinHash 去重複、文字規範化、個人識別資訊編輯,以及在不使用雲端 API 的情況下進行品質評分。
攝入之後,您擁有結構化文字。但結構化並不等同於乾淨。企業文件集合包含重複項、編碼殘差、個人識別資訊、格式不一致,以及會降低模型性能的低品質記錄——如果它們進入訓練集的話。
清理是大多數團隊投入不足的階段——也是決定模型在生產環境中能否正常工作的地方。本指南涵蓋完全在本地端清理 ML 訓練資料集的實用技術:不使用雲端 NER 服務、不使用外部 API、不外洩資料。
去重複:精確和近似重複
訓練資料中的重複項導致模型在重複範例上過度擬合,在評估期間誇大性能指標,同時降低泛化能力。在企業文件集合中,重複項普遍存在——同一合同範本使用了 300 次,有細微修改;同一政策文件分發給每個部門;同一封電子郵件通過收件人鏈轉發。
精確去重複
最簡單的情況。計算每個文件內容的雜湊值(SHA-256),並移除具有相同雜湊值的記錄。這能捕捉到字節完全相同的重複項——以不同名稱保存的同一文件,或從多個來源攝入的同一文件。
精確去重複速度快(使用雜湊集合為 O(n)),應始終是第一步。
近似重複偵測
更有價值也更複雜。近似重複是內容高度相似但不完全相同的文件——同一範本的不同版本、有細微編輯的文件,或共享 90% 內容的記錄。
兩種實用方法:
使用局部敏感雜湊(LSH)的 MinHash:從文件 n-gram 計算 MinHash 簽名,然後使用 LSH 高效找到具有高 Jaccard 相似性的對。這能擴展到數百萬個文件,並捕捉內容級別的近似重複,而不管格式差異。典型閾值:0.8 到 0.9 的 Jaccard 相似性。
SimHash:使用加權 Token 特徵為每個文件計算單一指紋。Hamming 距離低於閾值的文件被標記為近似重複。對於非常大的集合比 MinHash 更快,但對於較短的文件精確度較低。
對於訓練資料集,帶 LSH 的 MinHash 是標準選擇。它能很好地處理企業案例:找到那 300 份幾乎相同的合同,並將它們折疊為 15 到 20 個不同變體的代表性集合。
如何處理近似重複
不要只是刪除它們。近似重複包含了關於文件哪些部分是穩定的(樣板)與可變的(重要部分)的資訊。選項:
- 保留一個代 表:選擇最高品質的版本並捨棄其餘版本
- 全部保留但標記:包含一個集群 ID,以便下游階段可以相應地加權或取樣
- 合併:對於範本文件,提取可變部分並創建一個涵蓋變化空間的單一訓練範例
文字規範化
規範化在不改變含義的情況下使文字一致。企業文件在對模型訓練重要的方面非常不一致。
編碼規範化
將所有內容轉換為 UTF-8 NFC(規範分解後跟規範組合)。這處理了:
- Windows-1252「智能引號」在 UTF-8 中顯示為亂碼
- 同一字元的多個 Unicode 表示(例如,「é」作為單個碼點與「e」+ 組合重音)
- 破壞分詞的零寬空格、字節順序標記和其他不可見字元