專利名稱:一種應(yīng)用于語音問答系統(tǒng)中的句子相似度識別方法
技術(shù)領(lǐng)域:
本發(fā)明屬于屬于計(jì)算機(jī)技術(shù)領(lǐng)域,涉及語音問答系統(tǒng),尤其涉及一種應(yīng)用于語音問答系統(tǒng)中的句子相似度識別方法,特別是一種考慮了口語特點(diǎn)和語音識別結(jié)果準(zhǔn)確性的句子相似度識別方法。
背景技術(shù):
句子相似度的計(jì)算是自動問答系統(tǒng)中一個重要的理論基礎(chǔ)。在基于常問問題集(Frequently-Asked Question,簡稱FAQ)的問答系統(tǒng)中,F(xiàn)AQ知識庫作為自動問答系統(tǒng)的一個組成部分,它把用戶經(jīng)常提問的問題和相關(guān)答案保存起來。對于用戶輸入的問題,首先在FAQ知識庫中查找答案,如果能夠找到相應(yīng)的問題,就直接將問題所對應(yīng)的答案返回給用戶。其中關(guān)鍵在于計(jì)算用戶查詢和FAQ知識庫中問題的相似度,從而找到FAQ知識庫中與用戶查詢最為相似的問題,這是一個句子相似度計(jì)算的過程。
隨著語音識別技術(shù)的成熟,用語音作為人機(jī)交互的手段成為可能,于是出現(xiàn)了語音問答系統(tǒng)。它和一般的問答系統(tǒng)相比有兩個突出的特點(diǎn)(1)語音輸入的句子具有口語特點(diǎn);(2)用戶的輸入經(jīng)過語音識別后結(jié)果不是百分之百準(zhǔn)確,并且語音識別率與周圍環(huán)境有關(guān),當(dāng)噪聲較大時識別率會顯著下降。由于傳統(tǒng)的句子相似度計(jì)算方法是針對準(zhǔn)確的文字輸入,沒有考慮到以上兩個特點(diǎn),所以有必要設(shè)計(jì)一種專門針對語音問答系統(tǒng)的句子相似度計(jì)算方法。
發(fā)明內(nèi)容
為了解決上述背景技術(shù)的問題,本發(fā)明的目的在于考慮了語音問答系統(tǒng)中用戶語音輸入口語化這一特征,使得對于口語化的句子仍然能夠得到比較準(zhǔn)確的句子相似度值,為此,本發(fā)明提供一種應(yīng)用于語音問答系統(tǒng)中句子相似度的識別方法。
本發(fā)明的又一目的在于提供一種應(yīng)用于語音問答系統(tǒng)中的句子相似度識別方法,它考慮了語音問答系統(tǒng)中語音識別結(jié)果不是百分之百準(zhǔn)確這一事實(shí),使得在語音識別結(jié)果不是完全正確的情況下仍然能夠得到比較準(zhǔn)確的句子相似度值。
本發(fā)明的目的是這樣實(shí)現(xiàn)的一種應(yīng)用于語音問答系統(tǒng)中的句子相似度識別方法,它包括首先用關(guān)鍵詞組合表示FAQ知識庫中的問題,然后在語音識別結(jié)果中提取出關(guān)鍵詞,與FAQ知識庫中的問題匹配得到候選問題集,最后用句子相似度計(jì)算公式確定句子相似度與該語音識別結(jié)果匹配的問題。
所述的用關(guān)鍵詞組合表示FAQ知識庫中的問題是指從FAQ知識庫的問題中提取出最能表達(dá)該句意義的一個或者幾個詞作為關(guān)鍵詞,用這些詞的組合表示常問問題集知識庫中的這一問題。本發(fā)明的方法考慮到(1)口語表達(dá)比較隨意,經(jīng)常會在句子中添加一些沒有意義的口語詞,這些詞對于句子意義的理解沒有太大的作用;(2)人類在用語音交流的過程中,并不需要將每一個字都聽得很清楚,而只需要聽懂句子中最關(guān)鍵的詞,就可以理解整句話的意思,所以在很多情況下只要分析語音識別結(jié)果中的關(guān)鍵詞就可以確定用戶的意圖,除關(guān)鍵詞以外的其它部分識別錯誤并不會嚴(yán)重影響對于用戶意圖的判斷。
所述的從語音識別結(jié)果中提取出關(guān)鍵詞,與FAQ知識庫中的問題匹配得到候選問題集是指設(shè)置語音識別結(jié)果中共有n個關(guān)鍵詞為W1,W2,…,Wn,F(xiàn)AQ知識庫中共有m個問題,第i(1≤i≤m)個問題含有ni個關(guān)鍵詞為Q1,Q2,…,Qni;從語音識別結(jié)果的關(guān)鍵詞組合中任選k(1≤k≤n)個詞組成序列為Wm1,Wm2,…,Wmj,Wmj+1,…,Wmk,其中1≤j≤k-1,mj<m+1,1≤mj≤n,如果該詞序列與第i(1≤i≤m)個問題中的關(guān)鍵詞組合序列相同,則把第i個問題認(rèn)為是與用戶當(dāng)前輸入語句相匹配的句子之一,將其加入候選問題集。
所述的用句子相似度計(jì)算公式確定與該識別結(jié)果匹配的問句是指計(jì)算語音識別結(jié)果與候選問題集中各個問題的相似度,取出最大相似度值所對應(yīng)的問題,認(rèn)為是與該語音識別結(jié)果匹配的問題;計(jì)算句子相似度的公式如下設(shè)置語音識別結(jié)果W中共有n個關(guān)鍵詞(W1、W2、…、Wn),候選問題集中某個問題Q含有k關(guān)鍵詞,從識別結(jié)果W中取出k(1≤k≤n)個詞組成的序列(Wm1,Wm2,…,Wmj,Wmj+1,…,Wmk),其中(1≤j≤k-1,mj<mj+1,1≤mj≤n),與問題Q匹配,則語音識別結(jié)果W與問題Q的相似度如下Similarity(W,Q)=0.7(k-0.75Σj=1k-1(mj+1-mj-1))/n+0.3Σj=1kmj/Σm=n-k+1nm]]>這一相似度計(jì)算公式遵循以下三條原則(1)“向后”原則“向后”原則是指如果語音識別結(jié)果同時與多個問題匹配,此時優(yōu)先選擇與語音識別結(jié)果中比較靠后的關(guān)鍵詞組合匹配的問題。
主要考慮到以下兩種情形人們在用口語表達(dá)的過程中,因?yàn)槭沁呄脒呎f,所以難免會有表達(dá)錯誤或者突然改變意圖的時候,此時就可能會出現(xiàn)用語句后面的部分來糾正或替代前面部分的情形。
例如你多大,哦不,你叫什么?有一些問句較長,多數(shù)情況下,句子的重點(diǎn)是在語句中比較靠后的部分。
例如你好,你叫什么名字?(2)“偏多”原則“偏多”原則是指包含關(guān)鍵詞較多的問題要優(yōu)先于包含關(guān)鍵詞較少的問題。因?yàn)榘P(guān)鍵詞較多的問題能夠更準(zhǔn)確的確定用戶的意圖。
(3)“緊湊”原則
“緊湊”原則是指在語音識別結(jié)果的關(guān)鍵詞序列中,詞間距離較近的關(guān)鍵詞組合所匹配的問題要優(yōu)先于距離較遠(yuǎn)的關(guān)鍵詞組合所匹配的問題。這里的詞間距離是指關(guān)鍵詞在語音識別結(jié)果中所處的位置。
例如“你好叫什么名字”中,“你好”和“叫什么”之間的距離比“你好”和“名字”之間的距離要近。
設(shè)計(jì)這一原則是因?yàn)?,?dāng)關(guān)鍵詞之間相距過遠(yuǎn)時,由于它們之間還有別的關(guān)鍵詞,所以有時雖然它們的組合能夠與某一問題匹配,但是實(shí)際上并不是表達(dá)該問題所指的意圖。另外考慮到語音識別的正確率不是百分之百,可能某一語音識別錯誤的關(guān)鍵詞與距離較遠(yuǎn)的其它一個或幾個關(guān)鍵詞組合之后,與系統(tǒng)中某一問題匹配,此時應(yīng)該對這些候選的問題賦予較低的置信度。
公式中前半部分0.7(k-0.75Σj=1k-1(mj+1-mj-1))/n]]>體現(xiàn)了“偏多”原則“緊湊”原則,詞間距離越小,Σj=1k-1(mj+1-mj-1)]]>就越小,該公式取值越大,問題中包括的關(guān)鍵詞數(shù)目越多,k值就越大,該公式取值越大。當(dāng)語音識別結(jié)果W中n個關(guān)鍵詞正好與問題Q相匹配時,k=n,Σj=1k-1(mj+1-mj-1)=0,]]>0.7(k-0.75Σj=1k-1(mj+1-mj-1))/n]]>取得最大值0.7;公式中后半部分0.3Σj=1kmj/Σm=n-k+1nm]]>主要體現(xiàn)了“向后”原則,語音識別結(jié)果W中與問題Q相匹配的關(guān)鍵詞越靠后,Σj=1kmj]]>的值就越大,公式取值越大,當(dāng)語音識別結(jié)果中最后k個連續(xù)的關(guān)鍵詞組成的序列與問題Q相匹配時,Σj=1kmj=Σm=n-k+1nm,]]>0.3Σj=1kmj/Σm=n-k+1nm]]>取得最大值0.3。
從本發(fā)明的上述技術(shù)方案分析可知,這種應(yīng)用于語音問答系統(tǒng)中的句子相似度計(jì)算方法,解決了背景技術(shù)語音問答系統(tǒng)中用戶語音輸入具有口語特點(diǎn)和語音識別結(jié)果并非完全正確這一事實(shí),通過使用本發(fā)明關(guān)鍵詞組合的方式表示問題,以及應(yīng)用恰當(dāng)?shù)木渥酉嗨贫扔?jì)算公式,使得在語音識別結(jié)果不是完全正確的情況下仍然能夠得到比較準(zhǔn)確的句子相似度值,能夠較為準(zhǔn)確地得到用戶意圖。
通過以下結(jié)合附圖的詳細(xì)描述,本發(fā)明的上述和其它方面、特征和優(yōu)點(diǎn)將變得更加顯而易見。
圖1是本發(fā)明一種應(yīng)用于語音問答系統(tǒng)中的句子相似度識別方法示意圖具體實(shí)施方式
下面對本發(fā)明作具體說明。應(yīng)該指出,所描述的實(shí)施例僅僅是為說明的目的,而不是對本發(fā)明的限制。
本發(fā)明可在普通計(jì)算機(jī)上實(shí)現(xiàn)。在應(yīng)用本發(fā)明前,需要先將輸入的語音經(jīng)過語音識別算法得到語音識別結(jié)果。
本發(fā)明的實(shí)現(xiàn)可以分為以下幾個步驟步驟S1利用計(jì)算機(jī)從FAQ知識庫的問題中提取出最能表達(dá)該句意義的一個或者幾個詞作為關(guān)鍵詞,用這些詞的組合表示這一問題例如對于問題“請問你叫什么名字”,可以選取“叫什么”和“名字”作為關(guān)鍵詞,用關(guān)鍵詞組合“叫什么名字”來表示問題“請問你叫什么名字”。
步驟S2利用計(jì)算機(jī)從語音識別結(jié)果中提取出關(guān)鍵詞,與FAQ知識庫中的問題匹配得到候選問題集。具體方法如下設(shè)語音識別結(jié)果中共有n個關(guān)鍵詞(W1,W2,…,Wn),F(xiàn)AQ知識庫中共有m個問題,第i(1≤i≤m)個問題含有ni個關(guān)鍵詞(Q1,Q2,…,Qni)。從語音識別結(jié)果的關(guān)鍵詞組合中任選k(1≤k≤n)個詞組成序列(Wm1,Wm2,…,Wmj,Wmj+1,…,Wmk),其中(1≤j≤k-1,mj<mj+1,1≤mj≤n),如果該詞序列與第i(1≤i≤m)個問題中的關(guān)鍵詞組合序列相同,則把第i個問題認(rèn)為是與用戶當(dāng)前輸入語句相匹配的句子之一,將其加入候選問題集。
步驟S3利用計(jì)算機(jī)計(jì)算語音識別結(jié)果與候選問題集中各個句子的相似度,取出最大的相似度值所對應(yīng)的問題,認(rèn)為是與該語音識別結(jié)果匹配的問題。
計(jì)算句子相似度的公式如下設(shè)語音識別結(jié)果W中共有n個關(guān)鍵詞(W1、W2、…、Wn),候選問題集中某個問題Q含有k個關(guān)鍵詞,從語音識別結(jié)果W中取出k(1≤k≤n)個詞組成的序列(Wm1,Wm2,…,Wmj,Wmj+1,…,Wmk),其中(1≤j≤k-1,mj<mj+1,1≤mj≤n),與問句Q匹配,則語音識別結(jié)果W與問句Q的相似度計(jì)算公式如下Similarity(W,Q)=0.7(k-0.75Σj=1k-1(mj+1-mj-1))/n+0.3Σj=1kmj/Σm=n-k+1nm]]>具體實(shí)施例為例1用戶輸入你好,那個請問你叫什么名字呀?語音識別結(jié)果你好是嗎請問你叫什么名字步驟S1涉及到三個FAQ知識庫中的問題“你好”、“你叫什么”、“請問你叫什么名字”,它們分別用關(guān)鍵詞組合“你好”、“叫什么”、“叫什么名字”來表示;步驟S2從語音識別結(jié)果中提取關(guān)鍵詞,得到關(guān)鍵詞組合“你好叫什么名字”,此時,n=3,W1=你好,W2=叫什么,W3=名字,當(dāng)k=1時,序列一你好 m1=1序列二叫什么 m1=2序列三名字m1=3當(dāng)k=2時,序列四你好叫什么m1=1,m2=2序列五你好名字 m1=1,m2=3序列六叫什么名字m1=2,m2=3
當(dāng)k=3時,序列七你好叫什么名字m1=1,m2=2,m3=3按照上述方法可以找到三個問題作為候選。其中序列一與問題一相匹配,序列二與問句二相匹配,序列六與問題三相匹配。
問題一“你好”問題二“叫什么”問題三“叫什么名字”步驟S3計(jì)算句子相似度。
問題一 n=3,k=1,m2=1;Similarity(W,Q)=0.333問題二 n=3,k=1,m1=2;Similarity(W,Q)=0.433問題三 n=3,k=2,m1=2,m2=3;Similarity(W,Q)=0.767因?yàn)閱栴}三對應(yīng)的相似度值最大,所以就認(rèn)為問題三與用戶意圖相匹配。從例1可以看出,通過使用該種相似度計(jì)算方法,忽略了口語中的“那個”這一沒有意義的詞,語音識別結(jié)果中錯誤的部分“是嗎”沒有對用戶意圖的判斷造成影響,根據(jù)“向后”原則準(zhǔn)確的理解了用戶的意圖。
例2用戶輸入什么時候你出生的語音識別結(jié)果什么時候本事出生的步驟S1涉及到兩個FAQ知識庫中的問題“你有什么本事”、“你是什么時候出生的”,它們分別用關(guān)鍵詞組合“本事”、“時候出生”來表示;步驟S2從語音識別結(jié)果中提取關(guān)鍵詞,得到關(guān)鍵詞組合“時候本事出生”,此時,n=3,W1=時候,W2=本事,W2=出生當(dāng)k=1時,序列一時候 m1=1序列二本事 m1=2序列三出生 m1=3當(dāng)k=2時,序列四時候 本事 m1=1,m2=2
序列五時候 出生 m1=1,m2=3序列六本事 出生 m1=2,m2=3當(dāng)k=3時,序列七時候本事 出生 m1=1,m2=2,m3=3按照上述方法可以找到兩個問句作為候選。其中序列二與問題一相匹配,序列五與問題二相匹配。
問題一“本事”問題二“時候 出生”步驟S3計(jì)算句子相似度。
問題一 n=3,k=1,m1=2;Similarity(W,Q)=0.433問題二 n=3,k=2,m1=1,m2=3;Similarity(W,Q)=0.532因?yàn)閱栴}二對應(yīng)的相似度值最大,所以就認(rèn)為問題二與用戶意圖相匹配。從例2可以看出,通過使用該種相似度計(jì)算方法,語音識別結(jié)果中錯誤的部分“本事”沒有對用戶意圖的判斷造成影響,根據(jù)“偏多”原則準(zhǔn)確的理解了用戶的意圖。
上面描述是用于實(shí)現(xiàn)本發(fā)明及其實(shí)施例,本領(lǐng)域普通技術(shù)人員可以根據(jù)實(shí)際情況確定多種實(shí)現(xiàn)方法,因此,本發(fā)明的范圍不應(yīng)由該描述來限定。本領(lǐng)域的技術(shù)人員應(yīng)該理解,在不脫離本發(fā)明的范圍的任何修改或局部替換,均屬于本發(fā)明權(quán)利要求來限定的范圍。
權(quán)利要求
1.一種應(yīng)用于語音問答系統(tǒng)中的句子相似度識別方法,其特征在于所述方法包括如下步驟步驟a用關(guān)鍵詞組合表示常問問題集知識庫中的問題;步驟b在語音識別結(jié)果中提取出關(guān)鍵詞,與常問問題集知識庫中的問題匹配得到候選問題集;步驟c用句子相似度計(jì)算公式確定句子相似度與語音識別結(jié)果匹配的問題。
2.根據(jù)權(quán)利要求1所述的應(yīng)用于語音問答系統(tǒng)中的句子相似度識別方法,其特征在于,所述步驟a的具體步驟如下從常問問題集知識庫的問題中提取出最能表達(dá)該句意義的一個或者幾個詞作為關(guān)鍵詞,用這些詞的組合表示常問問題集知識庫中的問題。
3.根據(jù)權(quán)利要求1所述的應(yīng)用于語音問答系統(tǒng)中的句子相似度識別方法,其特征在于,所述步驟b確定候選問題集的具體步驟如下設(shè)置語音識別結(jié)果中有n個關(guān)鍵詞為W1,W2,...,Wn;常問問題集知識庫中有m個問題,第i個問題含有ni個關(guān)鍵詞為Q1,Q2,...,Qni,其中1≤i≤m;從語音識別結(jié)果的關(guān)鍵詞組合中任選k個詞組成序列為Wm1,Wm2,...,Wmj,Wmj+1,...,Wmk,其中1≤k≤n,1≤j≤k-1,mj<mj+1,1≤mj≤n;如果該詞序列與第i個問題中的關(guān)鍵詞組合序列相同,則把第i個問題認(rèn)為是與用戶當(dāng)前輸入語句相匹配的句子之一,將其加入候選問題集。
4.根據(jù)權(quán)利要求1所述的應(yīng)用于語音問答系統(tǒng)中的句子相似度識別方法,其特征在于所述步驟c的具體步驟如下根據(jù)句子相似度計(jì)算公式計(jì)算語音識別結(jié)果與候選問題集中各個句子的相似度,取出最大相似度值所對應(yīng)的問題,認(rèn)為是與該語音識別結(jié)果匹配的問題。
5.根據(jù)權(quán)利要求1和4所述的應(yīng)用于語音問答系統(tǒng)中的句子相似度識別方法,其特征在于所述句子相似度計(jì)算步驟如下設(shè)置語音識別結(jié)果W中有n個關(guān)鍵詞為W1、W2、...、wn,候選問題集中某個問題Q含有k個關(guān)鍵詞,從語音識別結(jié)果W中取出k個詞組成的序列為Wm1,Wm2,...,Wmj,Wmj+1,...,Wmk,與問題Q的問句匹配,其中1≤k≤n,1≤j≤k-1,mj<mj+1,1≤mj≤n,則語音識別結(jié)果W與問題Q的問句相似度計(jì)算公式如下Similarity(W,Q)=0.7(k-0.75Σj=1k-1(mj+1-mj-1))/n+0.3Σj=1kmj/Σm=n-k+1nm.]]>
全文摘要
本發(fā)明公開一種應(yīng)用于語音問答系統(tǒng)中的句子相似度識別方法,尤其是一種考慮了口語特點(diǎn)和語音識別結(jié)果準(zhǔn)確性的句子相似度識別方法,它包括首先用關(guān)鍵詞組合表示常問問題知識庫中的問題,然后在語音識別結(jié)果中提取出關(guān)鍵詞,與常問問題知識庫中的問題匹配得到候選問題集,最后用句子相似度計(jì)算公式確定與該識別結(jié)果匹配的問題的步驟。本發(fā)明解決了背景技術(shù)語音問答系統(tǒng)中用戶語音輸入具有口語特點(diǎn)和語音識別結(jié)果并非完全正確的問題,通過使用本發(fā)明關(guān)鍵詞組合的方式表示問題,以及應(yīng)用恰當(dāng)?shù)木渥酉嗨贫扔?jì)算公式,使得在語音識別結(jié)果不是完全正確的情況下仍然能夠得到比較準(zhǔn)確的句子相似度值,能夠較為準(zhǔn)確地得到用戶意圖。
文檔編號G10L15/02GK101086843SQ20061001213
公開日2007年12月12日 申請日期2006年6月7日 優(yōu)先權(quán)日2006年6月7日
發(fā)明者李成榮, 高倩倩 申請人:中國科學(xué)院自動化研究所