最近需要實現(xiàn)一個針對學校名字進行搜索的功能,普通來說闪幽,就是關鍵字有什么就匹配起來輸出對應的結(jié)果可以了砸脊。但是實際情況卻是感挥,我們提供學校根據(jù)關鍵字搜索,但是很有可能冻辩,家長輸入的和實際情況大相徑庭猖腕,比如學校名字叫 南昌市青云譜區(qū)好孩子幼兒園拆祈,家長輸入可能是 好孩子、南昌市好孩子谈息、好孩子的 等缘屹,效果是必須都能正確匹配到 南昌市青云譜區(qū)好孩子幼兒園 的結(jié)果選項。
如果是簡單的關鍵字匹配檢索那就存在一個非常到的問題侠仇,只有在家長輸入關鍵字百分百都包含的時候(如青云譜區(qū)好孩子)轻姿,才能正確的篩選出學校,輸入其他的都是查無結(jié)果的逻炊,因為 "好孩子的"互亮、"南昌市好孩子" 都不是連續(xù)的關鍵字,不能簡單用 ?like %% 就可以解決余素。如何能讓程序能夠正確的理解輸入的內(nèi)容就很關鍵了豹休。比較中文詞義和英文不一樣,英文是每個單詞之間都有空格桨吊,可以很好的拆分威根,但是中文都是連成一片的,需要智能的算法才可以很好識別詞組视乐。
還好就是有牛人能做到別人覺得不可能的事洛搀, SCWS 中文分詞(http://www.xunsearch.com) 工具能很好的將一連串的中文高度智能的劃分出來若干詞組,精確度非常的高佑淀,能非常好的滿足我解決問題的需要留美。
因為軟件是開源的,可以自己部署或者直接調(diào)用 API 實現(xiàn)同樣的效果伸刃。這里我就才用 API 的方式 http://www.xunsearch.com/scws/api.php谎砾,僅僅需要提交簡單的幾個參數(shù)就能得到分析完的結(jié)果,非常簡單實用捧颅,然后通過分詞后的詞組景图,再分別去數(shù)據(jù)庫或規(guī)則匹配包含著的學校名稱,就能簡單實現(xiàn)結(jié)果集大于等于預期想要的結(jié)果碉哑。