前言:
使用輸入法打字或者語(yǔ)音搜索時(shí)乖篷,用戶的輸入常常無(wú)法分辨,或者無(wú)法憑借聲學(xué)透且,拼音無(wú)法準(zhǔn)確判斷那伐。
這個(gè)時(shí)候可以用大量歷史數(shù)據(jù)訓(xùn)練出一個(gè)N-Gram 模型,依靠模型來(lái)估計(jì)用戶的輸入石蔗。
今天就先看一下N-Gram相關(guān)的基本知識(shí)。
N-gram:
N-gram是計(jì)算機(jī)語(yǔ)言學(xué)和概率論范疇內(nèi)的概念畅形,是指給定的一段文本或者語(yǔ)音中的N個(gè)項(xiàng)目(item)的序列养距。
項(xiàng)目(item)可以是音節(jié),字母日熬,或者單詞棍厌。
N=1時(shí)N-gram又被稱作unigram,N=2時(shí)N-gram被稱為bigram竖席,N=3時(shí)被稱為trigram耘纱,依此類推。實(shí)際應(yīng)用通常是采用bigram和trigram進(jìn)行計(jì)算毕荐。
一個(gè)例子:
今天又是元?dú)鉂M滿的一天
這句話的bigram為:
今天束析,天又,又是憎亚,是元员寇,元?dú)猓瑲鉂M第美,滿滿蝶锋,滿的,的一什往,一天扳缕。
trigram就是:
今天又,天又是,又是元躯舔,是元?dú)饴刻蓿獨(dú)鉂M,氣滿滿庸毫,滿滿的仔拟,滿的一,的一天飒赃。
N-gram的用途:
輸入法
用前幾個(gè)字預(yù)測(cè)之后要輸入的字利花,這個(gè)功能幾乎存在于每一個(gè)我們用到的輸入法中。
語(yǔ)音識(shí)別
同樣载佳,在前面提到過(guò)炒事,N-gram模型也被應(yīng)用在語(yǔ)音識(shí)別領(lǐng)域。比如用戶在使用語(yǔ)音搜索的時(shí)候蔫慧,輸入的語(yǔ)音常常比較含糊挠乳,并且同音詞無(wú)法通過(guò)聲學(xué)原理來(lái)判斷。這個(gè)時(shí)候往往就需要語(yǔ)音識(shí)別服務(wù)提供商通過(guò)歷史搜索記錄訓(xùn)練出一個(gè)N-gram模型姑躲,依靠模型來(lái)估計(jì)用戶更有可能的輸入睡扬。
模糊匹配
除了常了解到的字符間編輯距離之外,還可以利用N-gram距離黍析,利用兩個(gè)字符串的公共子串?dāng)?shù)量卖怜,能夠比較字符串相似度,從而實(shí)現(xiàn)模糊匹配阐枣。