[0156] 下面以第一文本字串"忘情水"與第二文本字串"碗清水"的匹配為例進(jìn)行說(shuō)明:
[0157] 1)首先獲得第一歷史路徑累積矩陣,并將該矩陣初始化,為了方便以下表(一)示 出:
[0158]
[0159] 2)然后開始由該第一歷史路徑累積矩陣的左上角的矩陣單元開始計(jì)算,"忘"和 "碗,,字不同,音相似,則獲得"忘,,的音串序列"wang,,,"碗,,的音串序列"碰,,,計(jì)算兩音串 序列的音層面匹配代價(jià)。
[0160] a)獲得第二歷史路徑累積矩陣,如下表(二)所示:
[0161]
[0162] b)如果按照現(xiàn)有動(dòng)態(tài)規(guī)劃算法,通過計(jì)算最優(yōu)編輯路徑來(lái)獲得音層面匹配代價(jià), 則可以獲得如下表(三)所示的第二歷史路徑累積矩陣:
[0163]
[0164] 該第二歷史路徑累積矩陣最右下角的矩陣單元即為"忘"和"碗"的音層面匹配代 價(jià)。
[0165] 如果按照本申請(qǐng)?zhí)岢龅耐ㄟ^訓(xùn)練語(yǔ)料獲得音層面元素匹配代價(jià)矩陣,然后通過查 找該音層面元素匹配代價(jià)矩陣,也可以獲得音層面匹配代價(jià)。
[0166] 3)在獲得上述"忘"和"碗"音層面匹配代價(jià)后,繼續(xù)計(jì)算下一矩陣單元。對(duì)于其 他矩陣單元,如果待匹配的字符對(duì)的字相同,則可以直接按照現(xiàn)有編輯距離算法計(jì)算匹配 代價(jià),如果字不同,音相似,則采用類似"忘"和"碗"音層面匹配代價(jià)的算法計(jì)算匹配代價(jià), 最終更新獲得的第一歷史路徑累積矩陣如下表(四)所示:
[0170] 其中音層面變換代價(jià)的計(jì)算公式為:
[0171] cost_covert (PH0NE_C0ST)=固定代價(jià) * (PH0NE_C0ST+ 極小值),如果 PH0NE_C0ST 為插入代價(jià)INSERT_PH0NE_C0ST,即音層面插入代價(jià),如表3中"碗"和"忘"的插入代價(jià)為 w的插入代價(jià)+ang的插入代價(jià),則固定代價(jià)為INSERT_C0ST,即字層面插入固定代價(jià);如果 PH0NE_C0ST為刪除代價(jià)DELETE_PH0NE_C0ST,即音層面刪除代價(jià),則固定代價(jià)為DELETE_ COST,即字層面刪除固定代價(jià);如果PH0NE_C0ST為替換代價(jià)REPLACE_PH0NE_C0ST,即音層 面替換代價(jià),則固定代價(jià)為REPLACE_C0ST,即字層面替換固定代價(jià)。
[0172] 相應(yīng)地,本發(fā)明實(shí)施例還提供了一種文本字串匹配系統(tǒng),參見圖6,為本發(fā)明實(shí)施 例一種文本字串匹配系統(tǒng)的結(jié)構(gòu)示意圖。
[0173] 該系統(tǒng)可以包括:
[0174] 矩陣生成單元601,用于獲得由待匹配的第一文本字串和第二文本字串形成的第 一歷史路徑累積矩陣。
[0175] 判定單元602,用于判斷所述第一歷史路徑累積矩陣中待匹配的第一字符與第二 字符是否相同;其中,所述第一字符為所述第一文本字串中的字符,所述第二字符為第二文 本字串中的字符。
[0176] 序列獲取單元603,用于當(dāng)所述第一字符與所述第二字符不同時(shí),獲取所述第一字 符的第一音串序列和所述第二字符的第二音串序列。
[0177] 代價(jià)計(jì)算單元604,用于計(jì)算所述第一音串序列與所述第二音串序列的音層面匹 配代價(jià)。
[0178] 矩陣更新單元605,用于根據(jù)所述音層面匹配代價(jià)更新所述第一歷史路徑累積矩 陣;
[0179] 匹配代價(jià)確定單元606,用于將所述第一文本字串中的另一字符作為所述第一字 符,將所述第二文本字串中的另一字符作為所述第二字符,然后發(fā)送至所述判斷單元602 重復(fù)執(zhí)行所述判斷所述第一歷史路徑累積矩陣中的第一字符與第二字符是否相同的步驟, 直至所述第一歷史路徑累積矩陣更新完成,獲得所述第一文本字串和所述第二文本字串的 最終匹配代價(jià)。
[0180] 該系統(tǒng)通過上述單元在計(jì)算文本字串之間的匹配代價(jià)時(shí),對(duì)不完全匹配的字符對(duì) 進(jìn)行發(fā)音層面匹配代價(jià)的計(jì)算,并據(jù)此修整文本字串對(duì)匹配的歷史路徑,克服了傳統(tǒng)字串 匹配中僅依靠字面度量的缺點(diǎn),本申請(qǐng)通過對(duì)字串音層面相似度的度量,提高了文本字串 匹配的有效性。
[0181] 在本發(fā)明的另一實(shí)施例中,如圖7所示,該代價(jià)計(jì)算單元604可以進(jìn)一步包括:
[0182] 矩陣生成子單元701,用于獲得由所述第一音串序列和所述第二音串序列形成的 第二歷史路徑累積矩陣;
[0183] 矩陣更新子單元702,用于依次獲得所述第二歷史路徑累積矩陣中待匹配音層面 元素的累積歷史路徑得分,并根據(jù)所述待匹配音層面元素的累積歷史路徑得分更新所述第 二歷史路徑累積矩陣;
[0184] 代價(jià)確定子單元703,用于將所述第二歷史路徑累積矩陣更新完成時(shí)所依據(jù)的累 積歷史路徑得分作為所述第一音串序列與所述第二音串序列的音層面匹配代價(jià)。
[0185] 其中,如圖8所示,該矩陣更新子單元702又可以進(jìn)一步包括:
[0186] 代價(jià)表生成子單元801,用于獲得音層面元素匹配代價(jià)矩陣;
[0187] 查找更新子單元802,用于依次查找所述音層面元素匹配代價(jià)矩陣獲得所述第二 歷史路徑累積矩陣中待匹配音層面元素的累積歷史路徑得分,并根據(jù)所述待匹配音層面元 素的累積歷史路徑得分更新所述第二歷史路徑累積矩陣。
[0188] 如圖9所示,該代價(jià)表生成子單元801又可以進(jìn)一步包括:
[0189] 序列獲取子單元901,用于獲取訓(xùn)練語(yǔ)料的音串序列;
[0190] 對(duì)齊子單元902,用于對(duì)所述訓(xùn)練語(yǔ)料的音串序列進(jìn)行語(yǔ)料對(duì)齊;
[0191] 統(tǒng)計(jì)子單元903,用于統(tǒng)計(jì)語(yǔ)料對(duì)齊后的所述訓(xùn)練語(yǔ)料的音串序列中一個(gè)音層面 元素錯(cuò)為另一個(gè)音層面元素的次數(shù);
[0192] 生成子單元904,用于根據(jù)統(tǒng)計(jì)的所述一個(gè)音層面元素錯(cuò)為另一個(gè)音層面元素的 次數(shù)生成音層面元素匹配代價(jià)矩陣。
[0193] 代價(jià)表生成子單元801還可以進(jìn)一步包括:
[0194] 迭代優(yōu)化子單元905,用于對(duì)所述音層面元素匹配代價(jià)矩陣進(jìn)行迭代優(yōu)化;
[0195] 代價(jià)表確定子單元906,用于當(dāng)?shù)鷥?yōu)化后的音層面元素匹配代價(jià)矩陣滿足收斂 條件時(shí),將最后一次迭代生成的音層面元素匹配代價(jià)矩陣作為最終的音層面元素匹配代價(jià) 矩陣。其中,收斂條件可以包括:相鄰兩次迭代生成的音層面元素匹配代價(jià)矩陣之間的差值 小于差值閾值;或者,相鄰兩次迭代生成的音層面元素匹配代價(jià)矩陣之間滿足預(yù)設(shè)的收斂 函數(shù);或者,迭代次數(shù)達(dá)到預(yù)設(shè)次數(shù)閾值。
[0196] 如圖10所示,迭代優(yōu)化子單元905可以包括:
[0197] 重對(duì)齊字單元1001,用于利用上一次迭代生成的音層面元素匹配代價(jià)矩陣對(duì)所述 訓(xùn)練語(yǔ)料的音串序列進(jìn)行語(yǔ)料對(duì)齊;
[0198] 重統(tǒng)計(jì)子單元1002,用于統(tǒng)計(jì)語(yǔ)料對(duì)齊后的所述訓(xùn)練語(yǔ)料的音串序列中一個(gè)音層 面元素錯(cuò)為另一個(gè)音層面元素的次數(shù);
[0199] 迭代生成子單元1003,用于根據(jù)統(tǒng)計(jì)的所述一個(gè)音層面元素錯(cuò)為另一個(gè)音層面元 素的次數(shù)生成本次迭代的音層面元素匹配代價(jià)矩陣。
[0200] 本實(shí)施例通過上述單元在標(biāo)注訓(xùn)練數(shù)據(jù)上訓(xùn)練得到音層面元素匹配代價(jià)表,明確 各單獨(dú)音層面元素之間的發(fā)音相似性,由于該音層面元素匹配代價(jià)矩陣是從客觀數(shù)據(jù)上分 析獲得,其代價(jià)得分計(jì)算客觀合理。應(yīng)用該音層面元素匹配代價(jià)矩陣計(jì)算獲得的第一音串 序列與第二音串序列的音層面匹配代價(jià)更為準(zhǔn)確。
[0201] 上述系統(tǒng)中各單元的具體實(shí)現(xiàn)過程請(qǐng)參照前述方法實(shí)施例的描述,此處不再贅 述。
[0202] 為了描述的方便,描述以上系統(tǒng)時(shí)以功能分為各種單元分別描述。當(dāng)然,在實(shí)施本 申請(qǐng)時(shí)可以把各單元的功能在同一個(gè)或多個(gè)軟件和/或硬件中實(shí)現(xiàn)。
[0203] 通過以上的實(shí)施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請(qǐng)可 借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn)?;谶@樣的理解,本申請(qǐng)的技術(shù)方案本質(zhì) 上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品 可以存儲(chǔ)在存儲(chǔ)介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備 (可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請(qǐng)各個(gè)實(shí)施例或者實(shí)施例的某些 部分所述的方法。
[0204] 本說(shuō)明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,各個(gè)實(shí)施例之間相同相似的部 分互相參見即可,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處。尤其,對(duì)于系統(tǒng)實(shí) 施例而言,由于其基本相似于方法實(shí)施例,所以描述得比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例 的部分說(shuō)明即可。以上所描述的系統(tǒng)實(shí)施例僅僅是示意性的,其中所述作為分離部件說(shuō)明 的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是 物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要 選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出 創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。
[0205] 本申請(qǐng)可用于眾多通用或?qū)S玫挠?jì)算系統(tǒng)環(huán)境或