糾錯(cuò)是搜索引擎中一個(gè)非常有特色的模塊,對(duì)用戶輸入的內(nèi)容進(jìn)行改寫從而讓用戶得到正確的結(jié)果,有的時(shí)候也會(huì)帶有一些驚喜度,所以糾錯(cuò)技術(shù)是一個(gè)搜索體驗(yàn)的加分項(xiàng),近期突然對(duì)這塊有興趣,所以就了解了一下。
糾錯(cuò)技術(shù)的背景
人非圣賢,孰能無(wú)過(guò),別說(shuō)是搜索的時(shí)候,哪怕是我們打字、寫作文的時(shí)候,都會(huì)出現(xiàn)錯(cuò)字,一般的錯(cuò)別字不會(huì)對(duì)最終目標(biāo)帶來(lái)很大影響,且出現(xiàn)頻率很低,不拘小節(jié)的我們常常會(huì)忽略這樣的小問(wèn)題,但是,在搜索場(chǎng)景下,錯(cuò)別字意味著可能就搜不到內(nèi)容了,對(duì)于用戶而言,就是需求無(wú)法滿足,造成了很差的體驗(yàn),因此在搜索場(chǎng)景中,就很有必要去糾錯(cuò)。
錯(cuò)誤是如何產(chǎn)生的
要去糾錯(cuò),先要去看看錯(cuò)誤是怎么產(chǎn)生的。
首先是誤操作類型,這種類型可以從輸入法角度去看。
拼音輸入法。常會(huì)出現(xiàn)同音異形字,例如周節(jié)倫等。
筆畫輸入法或者手寫輸入法。常會(huì)出現(xiàn)形似字,例如博和傅。
然后是用戶的主觀理解,有的時(shí)候用戶只是聽(tīng)說(shuō)過(guò)而沒(méi)見(jiàn)過(guò),或者就是理解問(wèn)題,導(dǎo)致主動(dòng)地出入了錯(cuò)誤的內(nèi)容,例如飛揚(yáng)拔(跋)扈,然后有一些名詞,例如小說(shuō)、音樂(lè)、電影等,寫錯(cuò)字是非常容易的。
當(dāng)然,也有用戶圖方便,或者輸入問(wèn)題,導(dǎo)致直接輸入拼音或者拼音前綴,或者就是因?yàn)橛洃浀脑颍斿e(cuò)了。
當(dāng)然這里也要補(bǔ)充一些常見(jiàn)的問(wèn)題舉例:
諧音。深圳-森圳。
別字。師傅-師博。
中英文。Taylor swift-泰勒斯威夫特。
近義詞。愛(ài)情呼叫轉(zhuǎn)移-戀愛(ài)呼叫轉(zhuǎn)移。
形近字。高粱-高梁。
全拼。深圳-shenzhen。
拼音前綴。北京-bj。
內(nèi)容不完整。唐人街探案-唐人。
總之錯(cuò)誤千奇百怪。理解錯(cuò)誤產(chǎn)生的機(jī)理,我們就可以嘗試去處理這些問(wèn)題。
詞典與規(guī)則方法
詞典是搜索系統(tǒng)中非常常用的方法,詞典具有高速、高準(zhǔn)的優(yōu)點(diǎn),如果詞典的覆蓋度高,甚至可以達(dá)到高召回的效果,因此詞典基本是搜索系統(tǒng)中的核心存在,我們不應(yīng)該小看他,而是盡可能挖掘他的潛能。
詞典方法,說(shuō)白了就是對(duì)query找對(duì)應(yīng)詞典里有沒(méi)有,如果有就改寫過(guò)去,這種方法的優(yōu)點(diǎn)在于速度快,而難點(diǎn)在于怎么去挖掘這個(gè)詞典。
至于怎么挖掘這個(gè)詞典,方法有很多底層數(shù)據(jù)庫(kù)抽取,用戶日志等,都有很多構(gòu)建起這樣的詞典,能夠大大降低耗時(shí),復(fù)雜度至于query和單詞長(zhǎng)度有關(guān)。那么一般都有什么詞典呢,我們來(lái)一個(gè)一個(gè)看看。
拼音和拼音前綴詞典。先將query或者單詞轉(zhuǎn)為拼音,然后通過(guò)通過(guò)拼音召回對(duì)應(yīng)的結(jié)果,完成糾錯(cuò)。
別字詞典,記錄一些常見(jiàn)的錯(cuò)別字,例如百度的形近詞表就很不錯(cuò)(就在百度百科里面)。
其他改寫字典。一般基于具體業(yè)務(wù)來(lái)改寫,例如用戶輸入唐人街探案,其實(shí)唐人街探案有3部,我們應(yīng)該給那個(gè),需要基于熱度等方面去改寫到具體最合適的一部。
詞典只是能夠匹配到合適的結(jié)果,但是我們需要知道的是,改寫的內(nèi)容不能和原來(lái)差距太遠(yuǎn),否則會(huì)出現(xiàn)很多意料之外的結(jié)果,因此改寫不能大改,只能改微調(diào),否則出來(lái)的結(jié)果會(huì)讓用戶感到很懵逼。控制的方法主要是編輯距離。
所謂的編輯距離,就是改寫前到改寫后,需要經(jīng)過(guò)的操作多少,說(shuō)人話就是兩句話的不同點(diǎn)有幾個(gè),精確到字級(jí)別。深圳-森圳的編輯距離就是1。通過(guò)編輯距離的約束,一般能夠讓兩者的差距不是很大。
我知道很多人熱衷于用語(yǔ)義相似度之類的操作,不管別的什么方法,編輯距離一定要約束,用戶強(qiáng)調(diào)的是直觀感受,語(yǔ)義相近與否不是他們第一個(gè)關(guān)心的,只有當(dāng)字相近的結(jié)果不好的時(shí)候考慮語(yǔ)義相近才是用戶的實(shí)際反映,且錯(cuò)別字帶來(lái)的語(yǔ)義變化非常大,此處用予以相似度其實(shí)不完全合適。
模型類方法
說(shuō)是詞典和規(guī)則好處很多,但是在泛化能力上,模型還是很強(qiáng)的。那么在模型視角下,其實(shí)會(huì)分為下面3個(gè)步驟進(jìn)行分析處理。
錯(cuò)誤診斷。即判斷有沒(méi)有錯(cuò)。
修正召回。召回可能的修改項(xiàng)。保證召回率
修正確認(rèn)。判斷最終需要的修改項(xiàng)。保證準(zhǔn)確率。
當(dāng)然,如果模型足夠強(qiáng)力,召回和確認(rèn)兩個(gè)步驟也可以合并,具體看準(zhǔn)招和耗時(shí)了。
其實(shí)這個(gè)思路最廣泛的應(yīng)用就是推薦系統(tǒng),召回和排序分離,這個(gè)我在大概是去年很早的一篇文章里談到在這個(gè),這是推薦系統(tǒng)里面非常重要的思想,這個(gè)思想其實(shí)在很多地方可以遷移下面的一條公眾號(hào)文章。
至于模型層面,有下面的思路。
kenlm統(tǒng)計(jì)語(yǔ)言工具。運(yùn)用統(tǒng)計(jì)學(xué)方法進(jìn)行語(yǔ)言建模從而檢測(cè)和修正錯(cuò)誤。
rnn_attention。RNN加上attention還是一個(gè)非常有意思的方法。
rnn_crf模型:說(shuō)起來(lái)你們可能不信,這個(gè)思路來(lái)自阿里2016參賽中文語(yǔ)法糾錯(cuò)比賽的第一名的方法。
seq2seq_attention模型:比RNN強(qiáng)一些,長(zhǎng)文本效果不錯(cuò),但是容易過(guò)擬合。
transformer:線性優(yōu)秀的序列表征模型,大家懂的。
bert:中文微調(diào),最妙的是mask可協(xié)助糾正錯(cuò)別字。
conv_seq2seq模型:基于Facebook出品的fairseq,在NLPCC-2018的中文語(yǔ)法糾錯(cuò)比賽中,是唯一使用單模型并取得第三名的成績(jī)。
小結(jié)
怎么說(shuō)呢,目前我還只是在探索,深度不是很夠,后面有所補(bǔ)充,再和大家交流,參考文獻(xiàn)放這里吧:
中文文本糾錯(cuò)算法--錯(cuò)別字糾正的二三事:https://zhuanlan.zhihu.com/p/40806718
pycorrector:https://github.com/shibing624/pycorrector
中文文本糾錯(cuò)算法走到多遠(yuǎn)了?:https://blog.csdn.net/sinat_26917383/article/details/86737361
-
搜索引擎
+關(guān)注
關(guān)注
0文章
119瀏覽量
13389 -
模型
+關(guān)注
關(guān)注
1文章
3325瀏覽量
49240 -
語(yǔ)言建模
+關(guān)注
關(guān)注
0文章
5瀏覽量
6279
原文標(biāo)題:搜索系統(tǒng)中的糾錯(cuò)問(wèn)題
文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
背景抑制光電開(kāi)關(guān)的設(shè)計(jì)及應(yīng)用
接近感應(yīng)單片機(jī)在背景抑制光電開(kāi)關(guān)上的應(yīng)用
基于 XD08M3232 接近感應(yīng)單片機(jī)的背景抑制光電開(kāi)關(guān)設(shè)計(jì)與應(yīng)用
探討大模型時(shí)代背景下數(shù)據(jù)存儲(chǔ)的變革之道
友思特方案 瞬時(shí)糾錯(cuò)的智慧算法:鋰電與半導(dǎo)體多類型視覺(jué)檢測(cè)助力高效高質(zhì)生產(chǎn)
![友思特方案 瞬時(shí)<b class='flag-5'>糾錯(cuò)</b>的智慧算法:鋰電與半導(dǎo)體多類型視覺(jué)檢測(cè)助力高效高質(zhì)生產(chǎn)](https://file1.elecfans.com/web3/M00/01/2A/wKgZO2dRNveAPTtkAAHCZiIXo24773.png)
無(wú)人機(jī)巡檢技術(shù)的背景及多重優(yōu)勢(shì)
TMS320C64x+和TMS320C674x的檢錯(cuò)糾錯(cuò)機(jī)制
![TMS320C64x+和TMS320C674x的檢錯(cuò)<b class='flag-5'>糾錯(cuò)</b>機(jī)制](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
DaVinci技術(shù)背景和規(guī)格
![DaVinci<b class='flag-5'>技術(shù)</b><b class='flag-5'>背景</b>和規(guī)格](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
華怡豐開(kāi)發(fā)出背景抑制系列傳感器產(chǎn)品
SDV的發(fā)展背景背景與功能
探討數(shù)字化背景下PMC的挑戰(zhàn)和機(jī)遇
國(guó)內(nèi)首顆,精準(zhǔn)糾錯(cuò)!德明利TWSC2985系列:支持4K LDPC技術(shù)的存儲(chǔ)芯片
![國(guó)內(nèi)首顆,精準(zhǔn)<b class='flag-5'>糾錯(cuò)</b>!德明利TWSC2985系列:支持4K LDPC<b class='flag-5'>技術(shù)</b>的存儲(chǔ)芯片](https://file1.elecfans.com/web2/M00/DB/25/wKgZomYrP96AX6OCAChdAIUukYQ428.png)
背景音樂(lè)和藍(lán)牙進(jìn)來(lái)的音樂(lè),如何共享一個(gè)功放和喇叭?
LoRa調(diào)制解調(diào)器的優(yōu)勢(shì) LoRa調(diào)制解調(diào)器和Wi-Fi的區(qū)別
![LoRa調(diào)制解調(diào)器的優(yōu)勢(shì) LoRa調(diào)制解調(diào)器和Wi-Fi的區(qū)別](https://file1.elecfans.com/web2/M00/C4/8B/wKgZomX0HkCAJpQ2AAHYqn88Seo294.png)
黑白通吃的BGS背景抑制光電是如何做出來(lái)的?
![黑白通吃的BGS<b class='flag-5'>背景</b>抑制光電是如何做出來(lái)的?](https://file.elecfans.com/web2/M00/4F/12/poYBAGLDzd6AEcaOAABBJLbgtXA388.png)
評(píng)論