輸錯字了怎么辦?

  做輸入法的時候,有一個很常見的問題,就是如果用戶輸錯了拼音钧唐,怎么辦诱建?(嘉定用戶用的是拼音輸入法)

  比如說,我要打北京灾炭,拼音就是beijing,結(jié)果達成了beijnig,或者bejing逗扒,怎么辦?

  首先欠橘,算法要做的就是區(qū)分到底是正確輸入矩肩,還是錯誤輸入。

  比如beijin這個到底算是beijing的錯誤輸入肃续,還是一個正確輸入呢黍檩?

  這個的最好做法是做上下文判斷,但這個算是高級要求始锚,這里忽略刽酱。

  在不做上下文判斷的情況下(感覺谷歌輸入法和蘋果是有上下文判斷的,雖然很不靠譜瞧捌,蘋果的輸入法我感覺在不靠譜程度上更甚)棵里,面對一個用戶輸入,我們先去做匹配察郁,看能否匹配到詞組衍慎。

  如果一個拼音輸入可以匹配到一個存在的詞組,那么就認為這是正確輸入皮钠,不考慮錯誤輸入的判定流程——當然稳捆,要走也可以,優(yōu)先級調(diào)低(比如一頁十個前6個是正確輸入后4個做錯誤輸入處理)麦轰。

  而乔夯,如果一個拼音輸入沒有匹配到任何已經(jīng)存在的詞組砖织,那么就可以當作是錯誤輸入,來做糾正末荐。

  好了侧纯,重頭戲來了——面對錯誤的輸入,要怎么找到正確的輸入甲脏?

  比如說眶熬,面對bejing或者beijnig,我怎么知道它的正確拼寫應該是什么樣的块请?

  這就是下一個問題——輸入錯誤的種類娜氏。

  輸入錯誤的種類其實是有限的,可以歸為四大類:

  1墩新,亂序贸弥,比如從beijing到beijnig

  2,遺漏海渊,比如從beijing到bejing

  3绵疲,冗余,比如從beijing到beijiing

  4臣疑,誤入盔憨,比如從beijing到baijing

  接下來的下一個問題,就是如何找到正確的拼寫朝捆。

  這里牽扯到這么一個概念:給定拼音A和拼音B之間的“距離”(這里有個專有名詞般渡,就不引用了)

  比如說,同樣是亂序芙盘,beijing到beijnig和到biejing的“距離”是一樣的驯用,都是亂序1。但beijing到biejnig的距離就為2儒老,因為需要亂序兩次蝴乔。

  我們當然不可能將所有亂序、遺漏和冗余的可能性都來一遍——一個字符數(shù)為n的字符串的亂序1的可能為n-1驮樊,但亂序2的可能就是(n-1)(n-2)薇正,如果窮舉所有亂序的可能,那就是(n-1)!的量級囚衔,碰到zhuangshangying這樣的長詞組直接嗝屁挖腰。

  所以,我們只能去搜尋所有錯符距為1的詞組练湿,并從中找到正確的單詞猴仑。

  這個做法在中文輸入法(拼音是最常見的使用場景)和英文輸入法(你不會不知道英文也有輸入法吧?這個在手機上特別多)上都是最常用的做法肥哎。

  可以算得上是業(yè)界標準辽俗。


  但疾渣,我們的故事到此并沒有結(jié)束。

  就如前面所說崖飘,從錯符距1到錯符距2榴捡,工作量是幾何級上升的,所以Google和蘋果基本都只考慮錯符距1朱浴,我們公司以前的產(chǎn)品也遵守這個業(yè)界統(tǒng)一標準吊圾。

  但,這并不是我們不做錯符距2的合理理由赊琳。

  因為街夭,事實上,錯符距2一樣可以在非幾何級上升情況下被解決的躏筏,也就是說,不需要將工作量從n-1上升到(n-1)(n-2)也一樣可以完成錯符距2的糾正呈枉。

  現(xiàn)在讓我們以英語為例趁尼。

  比如單詞transformer,變壓器猖辫,變形金剛酥泞,或者morphism,automorphism啃憎,endomorphism芝囤,transmorphism。

  說這個不是在飚英語(話說GRE和雅思考完以后基本就不看英語了我擦……)辛萍,而是在問你——發(fā)現(xiàn)沒有悯姊,上面有什么規(guī)律?

  答對了贩毕,詞根悯许。

  英文單詞的輸入錯誤糾正目前和拼音一樣,也是基于錯符距1的辉阶,但這是將注意力放在“單詞”這個整體上的先壕,事實上卻可以做進一步的拆分。

  英文單詞都有詞根谆甜,要么是前綴垃僚,要么是后綴,組合在一起规辱。于是一個單詞可以分解為:prefix?+body*+postfix?谆棺,?表示有或者沒有,*表示若干個(很少看到四個詞根拼成一個單詞的按摘。包券。纫谅。不過生物化學醫(yī)藥等專業(yè)領(lǐng)域的新造詞一個單詞冒出十來個詞根也是正常)。

  比如說溅固,transformer付秕,就是trans + form + er(這個也算么?侍郭?)询吴,transmorphism就是trans + morphism,automorphism就是auto + morphism亮元。

  如果我們將單詞以詞根為單位做分解猛计,然后對每個詞根的部分做錯符距1糾正,那么一個完整的單詞就可以做到錯符距2甚至錯符距3的糾正爆捞,用戶體驗大增奉瘤。

  而詞根分解本身的工作量是n的量級,三個詞根構(gòu)成的單詞的錯符距3糾正也不過是4n的量級煮甥,比原本n^2甚至n^3的量級小了很多盗温。

  在拼音輸入中也是。

  我們輸入shanghai成肘,結(jié)果輸成了shanghia或者shnaghai卖局,那么現(xiàn)在的輸入法(谷歌或者蘋果)都能自動糾正,但如果你輸成了shnaghia双霍,就直接無能為力了砚偶。

  可,如果一個詞組按照拼音來分解(這方面比英語詞根分解要容易很多洒闸,因為中文一個單詞的聲母韻母及其組合比英語詞根有規(guī)律太多了)染坯,那么上述shnaghia是可以被自動糾錯的。

  可見顷蟀,業(yè)界標準的錯符距1其實也不過是一個習慣性規(guī)定而已酒请,并不存在技術(shù)上的絕對壁壘。


  這點不單單輸入法可以用鸣个,在搜索引擎上也可以用羞反。

  畢竟,輸入法說到底囤萤,其核心功能就是對詞庫的搜索昼窗,所以也就是一種小型搜索引擎而已。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末涛舍,一起剝皮案震驚了整個濱河市澄惊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖掸驱,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肛搬,死亡現(xiàn)場離奇詭異,居然都是意外死亡毕贼,警方通過查閱死者的電腦和手機温赔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鬼癣,“玉大人陶贼,你說我怎么就攤上這事〈海” “怎么了拜秧?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長章郁。 經(jīng)常有香客問我枉氮,道長,這世上最難降的妖魔是什么驱犹? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任嘲恍,我火速辦了婚禮,結(jié)果婚禮上雄驹,老公的妹妹穿的比我還像新娘。我一直安慰自己淹辞,他們只是感情好医舆,可當我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著象缀,像睡著了一般蔬将。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上央星,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天霞怀,我揣著相機與錄音,去河邊找鬼莉给。 笑死毙石,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的颓遏。 我是一名探鬼主播徐矩,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼叁幢!你這毒婦竟也來了滤灯?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎鳞骤,沒想到半個月后窒百,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡豫尽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年篙梢,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拂募。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡庭猩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出陈症,到底是詐尸還是另有隱情蔼水,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布录肯,位于F島的核電站趴腋,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏论咏。R本人自食惡果不足惜优炬,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望厅贪。 院中可真熱鬧蠢护,春花似錦、人聲如沸养涮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽贯吓。三九已至懈凹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間悄谐,已是汗流浹背介评。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留爬舰,地道東北人们陆。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像洼专,于是被迫代替她去往敵國和親棒掠。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容

  • 筆記 誰控制的越精確屁商,誰的優(yōu)先級越高標簽名:整個標簽CLASS:相同的類型ID:一個id名稱內(nèi)聯(lián)樣式表>ID選擇器...
    xiao生氣閱讀 268評論 0 0
  • 有人說,世上沒有自認為百無一用的男子雾袱,也沒有自以為最丑陋的女子恤筛。我不是一個睿智美艷的女子,自知無法享受眾星捧月的殊...
    水滴air閱讀 670評論 2 2
  • 我們必須學會在淚水里兌一點烈酒 而不是在酒里摻雜眼淚 真正看清一個人的時候其實也不會有太多的情緒 不會生氣更不會在...
    笑起來真好看閱讀 1,816評論 0 1
  • 【設(shè)計理念:重要的是將本質(zhì)傳達給別人】 佐藤可士和作品包羅萬象芹橡,包括日本國立新美術(shù)館的標識設(shè)計毒坛、優(yōu)衣庫、樂天等的品...
    宇涵Frida閱讀 164評論 0 1
  • 昨天星期四林说,可以算是要放假了吧煎殷,因為星期五只有一節(jié)課,也就我要在課后去教學辦值個班腿箩,其他也沒有什么事了豪直,昨天上午一...
    堅志閱讀 136評論 0 0