糾錯是搜索引擎中一個非常有特色的模塊,對用戶輸入的內(nèi)容進(jìn)行改寫從而讓用戶得到正確的結(jié)果,有的時候也會帶有一些驚喜度,所以糾錯技術(shù)是一個搜索體驗的加分項,近期突然對這塊有興趣,所以就了解了一下。
糾錯技術(shù)的背景
人非圣賢,孰能無過,別說是搜索的時候,哪怕是我們打字、寫作文的時候,都會出現(xiàn)錯字,一般的錯別字不會對最終目標(biāo)帶來很大影響,且出現(xiàn)頻率很低,不拘小節(jié)的我們常常會忽略這樣的小問題,但是,在搜索場景下,錯別字意味著可能就搜不到內(nèi)容了,對于用戶而言,就是需求無法滿足,造成了很差的體驗,因此在搜索場景中,就很有必要去糾錯。
錯誤是如何產(chǎn)生的
要去糾錯,先要去看看錯誤是怎么產(chǎn)生的。
首先是誤操作類型,這種類型可以從輸入法角度去看。
拼音輸入法。常會出現(xiàn)同音異形字,例如周節(jié)倫等。
筆畫輸入法或者手寫輸入法。常會出現(xiàn)形似字,例如博和傅。
然后是用戶的主觀理解,有的時候用戶只是聽說過而沒見過,或者就是理解問題,導(dǎo)致主動地出入了錯誤的內(nèi)容,例如飛揚拔(跋)扈,然后有一些名詞,例如小說、音樂、電影等,寫錯字是非常容易的。
當(dāng)然,也有用戶圖方便,或者輸入問題,導(dǎo)致直接輸入拼音或者拼音前綴,或者就是因為記憶的原因,輸錯了。
當(dāng)然這里也要補(bǔ)充一些常見的問題舉例:
諧音。深圳-森圳。
別字。師傅-師博。
中英文。Taylor swift-泰勒斯威夫特。
近義詞。愛情呼叫轉(zhuǎn)移-戀愛呼叫轉(zhuǎn)移。
形近字。高粱-高梁。
全拼。深圳-shenzhen。
拼音前綴。北京-bj。
內(nèi)容不完整。唐人街探案-唐人。
總之錯誤千奇百怪。理解錯誤產(chǎn)生的機(jī)理,我們就可以嘗試去處理這些問題。
詞典與規(guī)則方法
詞典是搜索系統(tǒng)中非常常用的方法,詞典具有高速、高準(zhǔn)的優(yōu)點,如果詞典的覆蓋度高,甚至可以達(dá)到高召回的效果,因此詞典基本是搜索系統(tǒng)中的核心存在,我們不應(yīng)該小看他,而是盡可能挖掘他的潛能。
詞典方法,說白了就是對query找對應(yīng)詞典里有沒有,如果有就改寫過去,這種方法的優(yōu)點在于速度快,而難點在于怎么去挖掘這個詞典。
至于怎么挖掘這個詞典,方法有很多底層數(shù)據(jù)庫抽取,用戶日志等,都有很多構(gòu)建起這樣的詞典,能夠大大降低耗時,復(fù)雜度至于query和單詞長度有關(guān)。那么一般都有什么詞典呢,我們來一個一個看看。
拼音和拼音前綴詞典。先將query或者單詞轉(zhuǎn)為拼音,然后通過通過拼音召回對應(yīng)的結(jié)果,完成糾錯。
別字詞典,記錄一些常見的錯別字,例如百度的形近詞表就很不錯(就在百度百科里面)。
其他改寫字典。一般基于具體業(yè)務(wù)來改寫,例如用戶輸入唐人街探案,其實唐人街探案有3部,我們應(yīng)該給那個,需要基于熱度等方面去改寫到具體最合適的一部。
詞典只是能夠匹配到合適的結(jié)果,但是我們需要知道的是,改寫的內(nèi)容不能和原來差距太遠(yuǎn),否則會出現(xiàn)很多意料之外的結(jié)果,因此改寫不能大改,只能改微調(diào),否則出來的結(jié)果會讓用戶感到很懵逼??刂频姆椒ㄖ饕蔷庉嬀嚯x。
所謂的編輯距離,就是改寫前到改寫后,需要經(jīng)過的操作多少,說人話就是兩句話的不同點有幾個,精確到字級別。深圳-森圳的編輯距離就是1。通過編輯距離的約束,一般能夠讓兩者的差距不是很大。
我知道很多人熱衷于用語義相似度之類的操作,不管別的什么方法,編輯距離一定要約束,用戶強(qiáng)調(diào)的是直觀感受,語義相近與否不是他們第一個關(guān)心的,只有當(dāng)字相近的結(jié)果不好的時候考慮語義相近才是用戶的實際反映,且錯別字帶來的語義變化非常大,此處用予以相似度其實不完全合適。
模型類方法
說是詞典和規(guī)則好處很多,但是在泛化能力上,模型還是很強(qiáng)的。那么在模型視角下,其實會分為下面3個步驟進(jìn)行分析處理。
錯誤診斷。即判斷有沒有錯。
修正召回。召回可能的修改項。保證召回率
修正確認(rèn)。判斷最終需要的修改項。保證準(zhǔn)確率。
當(dāng)然,如果模型足夠強(qiáng)力,召回和確認(rèn)兩個步驟也可以合并,具體看準(zhǔn)招和耗時了。
其實這個思路最廣泛的應(yīng)用就是推薦系統(tǒng),召回和排序分離,這個我在大概是去年很早的一篇文章里談到在這個,這是推薦系統(tǒng)里面非常重要的思想,這個思想其實在很多地方可以遷移下面的一條公眾號文章。
至于模型層面,有下面的思路。
kenlm統(tǒng)計語言工具。運用統(tǒng)計學(xué)方法進(jìn)行語言建模從而檢測和修正錯誤。
rnn_attention。RNN加上attention還是一個非常有意思的方法。
rnn_crf模型:說起來你們可能不信,這個思路來自阿里2016參賽中文語法糾錯比賽的第一名的方法。
seq2seq_attention模型:比RNN強(qiáng)一些,長文本效果不錯,但是容易過擬合。
transformer:線性優(yōu)秀的序列表征模型,大家懂的。
bert:中文微調(diào),最妙的是mask可協(xié)助糾正錯別字。
conv_seq2seq模型:基于Facebook出品的fairseq,在NLPCC-2018的中文語法糾錯比賽中,是唯一使用單模型并取得第三名的成績。
小結(jié)
怎么說呢,目前我還只是在探索,深度不是很夠,后面有所補(bǔ)充,再和大家交流,參考文獻(xiàn)放這里吧:
中文文本糾錯算法--錯別字糾正的二三事:https://zhuanlan.zhihu.com/p/40806718
pycorrector:https://github.com/shibing624/pycorrector
中文文本糾錯算法走到多遠(yuǎn)了?:https://blog.csdn.net/sinat_26917383/article/details/86737361
-
搜索引擎
+關(guān)注
關(guān)注
0文章
120瀏覽量
13529 -
模型
+關(guān)注
關(guān)注
1文章
3477瀏覽量
49922 -
語言建模
+關(guān)注
關(guān)注
0文章
5瀏覽量
6309
原文標(biāo)題:搜索系統(tǒng)中的糾錯問題
文章出處:【微信號:zenRRan,微信公眾號:深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
谷歌跨越量子糾錯難題,中美量子科技競爭焦灼
漢思新材料:國際關(guān)稅貿(mào)易戰(zhàn)背景下電子芯片膠國產(chǎn)化的必要性

GUIguider1.9.0能不能增加,將背景圖也放入外部存儲類型中?
背景抑制光電開關(guān)的設(shè)計及應(yīng)用
接近感應(yīng)單片機(jī)在背景抑制光電開關(guān)上的應(yīng)用
基于 XD08M3232 接近感應(yīng)單片機(jī)的背景抑制光電開關(guān)設(shè)計與應(yīng)用
探討大模型時代背景下數(shù)據(jù)存儲的變革之道
友思特方案 瞬時糾錯的智慧算法:鋰電與半導(dǎo)體多類型視覺檢測助力高效高質(zhì)生產(chǎn)

無人機(jī)巡檢技術(shù)的背景及多重優(yōu)勢
TMS320C64x+和TMS320C674x的檢錯糾錯機(jī)制

DaVinci技術(shù)背景和規(guī)格

評論