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