Hi大家好,
這是我參加 iT 邦幫忙鐵人賽的第 1 次挑戰,這次的主題聚焦在結合 Python 爬蟲、RAG(檢索增強生成)與 AI,打造一套 PTT 文章智慧問答系統。在過程中,我會依照每天進度上傳程式碼到 GitHub ,方便大家參考學習。也歡迎留言或來信討論,我的信箱是 gerryearth@gmail.com。
在我們前面幾天中,已經完成了資料清理、切割、向量化,並建立檢索流程。但很多人會有一個疑問:語意檢索與傳統關鍵字檢索,究竟差在哪裡?為什麼我們需要語意檢索?
今天,我們就從理論的角度,深入解析這兩種檢索方式,並探討它們的核心差異與適用情境。
關鍵字檢索是最傳統、也是目前仍廣泛使用的檢索方式,其核心概念是 字面匹配,常見方法包括:
語意檢索則是利用 向量化(Embedding)技術,將文字轉換成多維度向量,並透過相似度(通常是餘弦相似度)計算內容的相關性。
例如:
特徵 | 關鍵字檢索 | 語意檢索 |
---|---|---|
比對方式 | 文字字面匹配 | 向量相似度比較 |
同義詞處理 | 無法處理 | 可處理 |
語境理解 | 無法理解 | 支援 |
速度 | 快 | 較慢(需優化) |
成本 | 低 | 高(模型與向量儲存) |
適用場景 | 法條查詢、代碼檢索、全文比對 | 智慧問答、客服、知識庫檢索、搜尋推薦 |
當你需要精準命中關鍵詞時 → 關鍵字檢索仍然最有效,例如:
當使用者查詢不固定、語意多變時 → 語意檢索更適合,例如:
混合檢索 → 結合關鍵字與語意檢索,提升精準度與覆蓋率,並兼顧效能。
關鍵字檢索與語意檢索並不是「誰取代誰」的關係,而是「互補」的角色。
未來最佳的方案,往往是 混合檢索,結合兩者優勢,根據不同需求彈性調整。
下一篇【Day 24】Embedding 模型比較 - 選擇最適合專案的模型,我們將深入比較 不同 Embedding 模型的特性、成本與表現,並給出模型選擇的實務建議!