iT邦幫忙

2026 iThome 鐵人賽

DAY 8
0
Vibe Coding

與Claude一起從零打造產值評估工具系列 第 8

Day 8 | 用 Claude 建字庫與過去爬蟲有何不同?

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20260810/20183196Sb0TnnbTng.png
昨天把資料層鎖的架構建立起來後,
目前產值評估工具中有5個靜態JSON,
但都還只是一個空殼classification.json
因此今天就要來製作本工具中的關鍵字庫判斷方式
意即我不是不呼叫任何API,
而是透過讓使用者「輸入企業描述」來讓工具內直接「判斷所屬產業」~

一、今日目標

  • 用 Claude 在開發期建出「行業別 × 關鍵字 × 同義詞 × 權重」的分類庫,
  • 寫出執行期的純前端計分架構,用來輸出前 3 名候選產業(附信心度與命中關鍵字),由使用者點選確認。

二、計分設計:六個步驟

https://ithelp.ithome.com.tw/upload/images/20260810/201831966x266BYQzl.png

流程:使用者輸入 → 正規化(全半形、去贅字)→ 對照 classification.json 做同義詞展開與加權比對 → 計分排序與門檻過濾 → 輸出前 3 候選(信心 %+命中關鍵字)→ 人工確認(低於門檻時引導手動搜尋行業分類)。

以「我們做車用 PCB 打件與組裝」為例:
「PCB」經同義詞展開命中「印刷電路板」(+3.0)
「打件」命中「SMT 組裝」(+2.0)
「車用」是應用場景詞(+1.0)
加總後「印刷電路板製造業」以 92% 信心度排第一,卡片上同時顯示命中了哪些詞,判斷過程對使用者完全透明。

三、我下的 Prompt

依主計總處行業標準分類的製造業與資訊服務業主要類別,幫我建立 classification.json:每個行業別列出 8–15 個核心關鍵字、每個關鍵字的同義詞(含英文縮寫與台灣業界慣用語,例如 PCB=印刷電路板=電路板)、權重 1–3(越具產業識別度越高)。通用詞如「科技」「電子」「公司」權重歸零或列入停用詞
輸出必須符合 types/data.ts 的 Classification

https://ithelp.ithome.com.tw/upload/images/20260810/20183196yzh2kf6ci4.png

四、驗收與修正

Claude一樣給我了一個 修正後的檔
因此在覆蓋專案檔後
執行以下內容
https://ithelp.ithome.com.tw/upload/images/20260810/201831967imYkdgO4U.png

執行結果如下
https://ithelp.ithome.com.tw/upload/images/20260810/20183196HM9EB1X8E6.png

結果顯示
20 句擬真企業描述丟進引擎,19句判段正確。
因為目標是 18/20,所以通過驗收通過

但實際上我們可以去看那句失敗的案例

我們幫車廠做板子上的元件」
這句是故意設計來失敗的
因為此句話中,並沒有專有名詞

**「板子」不是 PCB、「元件」不是 MLCC,
唯一具體的詞是「車廠」,
因此工具在判定中係透過「車廠」這個線索來判定
所以最終判成汽車零件製造業。
但實際上這句話要做的是被動元件(貼在電路板上的電容電阻)~
**

所以這暴露出目前工具中可能存在一些問題
它只認得「字」,不懂「意思」
當我們在看到「板子上的元件」時,經常性會認為這是電子元件,而這也是為什麼我在前面規劃時即已劃分,使用者如若要有精準判斷,需自備金鑰的設計
畢竟有花token跟沒花token還是有結果差異的。

五、和過去寫爬蟲建字庫差在哪?

寫到這邊,我認為這裡對於過去有寫爬蟲程式經驗者來說
我可以分享一下很有趣的心得
當年的標準做法是寫爬蟲:抓政府分類說明頁、人力銀行職缺、公司簡介、產品目錄,清洗後用 jieba 斷詞、算 TF-IDF 詞頻、再人工篩選標註。

同一件事,兩種做法的差異整理如下:

面向 傳統爬蟲建庫 Claude 建庫(本次做法)
知識來源 網路上的實際語料(實證) 模型內化的產業知識(蒸餾)
前置工程 爬蟲程式、清洗管線、斷詞、詞頻統計 一段結構清楚的 Prompt
產出時間 以「週」計(爬取+清洗+標註) 以「小時」計(含對抗測試迭代)
同義詞與業界慣用語 要靠語料量堆出來,縮寫對應常缺漏 開箱即有(PCB=印刷電路板=電路板)
權重依據 詞頻/TF-IDF,有量化基礎 模型判斷「產業識別度」,無頻率佐證
長尾涵蓋 語料夠大就抓得到冷門詞 冷門利基產業可能漏抓
法遵與反爬風險 有(robots.txt、網站條款)
錯誤型態 髒資料、斷詞錯誤 可能生成看似合理但不存在的用語
維護更新 重跑管線即可,可排程自動化 重新對話迭代,靠測試集把關

兩個關鍵差異如下:

  • 本質差異是「實證 vs 蒸餾」:爬蟲字庫的每個詞都有語料出處,可以回答「為什麼收這個詞」;Claude 字庫快得多、同義詞品質高得多,但權重是模型的判斷而非統計,因此在目前Claude給我的設計上,對抗測試是必需的,它扮演了過去「詞頻統計」的驗證角色
  • 兩者其實互補:這次用 Claude 在幾小時內把庫建到八成堪用,是爬蟲做法辦不到的起步速度;但若日後要衝長尾涵蓋率,回頭用爬蟲抓真實語料來驗證與補強字庫,仍然是最正規的玩法。

六、今日小結

整體來說我認為今天我做的事情
是要闡述一件事
零成本不等於零智慧
儘管透過Claude的幫助,成功在這個平台製作上,可以有效變成零成本
但實際上這跟我們以前在寫「爬蟲」的概念一樣
如果我辭庫具備滿滿的資訊與判斷
那必定可以更精準判定
但如果是把這些行業分類資訊,「蒸餾」成一份靜態 JSON
那儘管際成本為零,但在進行對抗測試時,一定會出現問題
當然這也是我為什麼要分兩種情況來寫這個平台~

我覺得對於給使用者操作上,一個很公平的選擇
既然消費者有決定權,那自行承擔應付費用
是合理的,當然在此平台的設計上,
仍舊是以公開且免費使用為最基本~


上一篇
Day 7 | 零資料庫的資料層設計
系列文
與Claude一起從零打造產值評估工具8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言