9/05/2026

同音錯別字 在AI時代的處理方式



在2015~2022左右,電商網站,如果想要處理產品搜尋、同音字與錯別字時,Elasticsearch (ES) 是市場上最主流且最常見的解決方案。

他有很多搜尋引擎的優勢,Inverted Index與文字分析,內建完善的 Tokenizer 與 Filter 機制,能整合中文斷詞(如 IK Analyzer、Jieba),有拼音轉換插件(如 elasticsearch-analysis-pinyin),將同音字轉為拼音進行比對。

而且,模糊比對(Fuzzy Query):原生支援編輯距離演算法,可處理英文字母錯字或輸入長度的微小差異。(中文可能要有其他方式)

然而,AI 特別是LLM的出現,讓原本Elasticsearch能做的事情,很大一部分可以被取代,或者被改善。特別是中文,有新產品的出現,讓原本的斷詞,如果不用 Character N-gram去處理的話,會有很大的問題。舉例來說,「拉布布」是2024年才開始紅的,而且坦白說,我直到今天才知道他是什麼。如果辭典檔沒有這個詞,非常可能產生斷詞錯誤。此外,同音字,多個錯誤拼音字,夾雜不小心輸入的注音符號的詞,這些雖然都可以處理,但是都要額外花時間。

然而,LLM的出現可以讓這件事情變得簡單。

因為可以要求LLM (透過API/Prompt)來直理解輸入的詞彙。即時處理最近才出現在網路的詞(Gemini API可以做web search),繁簡轉換可同時進行。


例如,一個典型的網路電商,要處理使用者輸入搜尋「哈利波特」非常簡單。

但是要處理「哈力波ㄊㄜ」這樣混著不同錯誤情況的,在elasticsearch不是做不到,而是所需要設定,花的心力,維護的成本是相當高的。

然而透過LLM檢視重建查詢字串,卻非常簡單,只有一個API加上不到300token的prompt。以Gemini來說,一百萬次的這樣查詢重建也不到400台幣,而且對於系統架構來說非常簡單,沒有各種維護的負擔。

當然,LLM在很多時候的成本是相當高的,也不是用來取代elasticsearch,但是查詢字串重構,是個非常容易實作,效果又很不錯的做法,對於中小型電商來說,成本也很低啊~







沒有留言:

張貼留言

感謝你的留言,但我不是常常會看留言,也歡迎email與我聯絡: consultant.3rd@gmail.com