模糊搜尋指的是在搜尋引擎不用輸入精確的字串,也可以找到需要的資料。
舉例來說,我需要找證券交易法,那麼我在搜尋引擎打『證交法』,在精確搜尋會變成找不到關鍵字,但是如果搜尋引擎有支援模糊搜尋,就會跑出結果(但不必然是證券交易法就是了)。
不知道有沒有人發現,法源的法規查詢開始支援模糊搜尋了呢?
現在在法規的欄位打『食安法』、『動保法』、『證交法』、『個資法』甚至『第三方支付』都可以找到相關的法規。
傑克,終於~
但是當我打上『陸人來台』就又回到沒有查無資料。
這是為什麼呢?
這和模糊搜尋的處理方式有關。
簡單來說,原本搜尋引擎可以做的事情是字串比對,當我輸入『動保』,電腦會去抓資料庫裡面所有符合『動保』這個字串的關鍵字出來,所以我們可以找到這東西:『 內政部替代役警察役役男機動保安警力人員支援協助防救天然災害輔助性勤務作業規定 。』
那模糊搜尋是怎麼做到的呢?基本上有三種做法:
第一種是用手動建出一個標籤
舉例來說,『動物保護法』本身並不包含『動保』這個字串(因為動和保是拆開的)。但如果我在動物保護法上貼了一個『動保』的標籤,那使用者搜尋動保的時候,系統也會去抓貼上的標籤,就會把動保給抓出來了。
這樣的好處是很簡單可以做到,壞處是他可以支援的模糊搜尋僅限於手動加入的標籤。沒有加入的一樣找不到。
第二種是拆解關鍵字
本來搜尋『動保』系統只會找符合『動保』字串的文字,但為了達到模糊搜尋,系統會把字串拆解,例如去找『動 + 保』的關鍵字。
這種方式的優點是可以應用在所有的關鍵字模糊搜尋,但缺點是但關鍵字的排列組合變多的時候,會增加很多搜尋的負擔,而且搜出來的結果精確度會下降。
第三種是機器學習
當使用者第一次輸入關鍵字『動保』,發現找不到結果,於是他改變了關鍵字變成了動物保護法,找到他要的結果。電腦把使用者這一系列的行為記錄下來,並且理解到:當使用者輸入『動保』的時候,他要找的其實是動物保護法。
透過使用者一次次反覆操作的經驗,電腦慢慢學習到了當使用者輸入什麼關鍵字,他其實需要的是什麼,於是最後當使用者再次輸入『動保』的時候,電腦已經知道這時候要給他的就是『動物保護法』。
這是現在搜尋引擎主要的概念,但他的門檻相對來說較高。因為他沒辦法在第一天上線就提供這樣的服務,而是需要大量的使用者去教育電腦之後,才能提供相對正確的搜尋結果,但隨著使用者使用次數增加,他的結果會越來越精確。
這也是廣泛大數據應用的一環。
回過頭來,那法源的模糊搜尋是哪一種呢?
根據試驗的結果,我猜測應該是第一種,否則不會有些模糊搜尋有結果,有些沒有。不過還是很開心法源終於開始支援一些新功能了。