專利名稱:一種整句生成方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及漢字輸入技術(shù),特別是一種整句生成方法及裝置。
技術(shù)背景在打字的過程中,經(jīng)常需要對已輸入的文字進(jìn)行修改,如刪除個(gè)別的詞句 或插入個(gè)別的詞句,這樣,就需要根據(jù)新插入的詞或詞句生成新的整句。傳統(tǒng) 的輸入法在句子中間插入詞或句子與在其他場合輸入時(shí)的處理方式并沒有什么 不同。目前比較常用的為最大概率法。下面以拼音輸入法為例進(jìn)行詳細(xì)說明。在拼音輸入法中, 一個(gè)漢語拼音串可以對應(yīng)多個(gè)候選詞。如"dajia"這個(gè)拼 音串對應(yīng)的候選詞可以有大家、打架、大甲、打假、大加等等。為了提高用 戶的輸入體驗(yàn),在設(shè)計(jì)輸入法軟件的時(shí)候需要為候選詞進(jìn)行一個(gè)合理的排序, 一般是按照候選詞的詞頻進(jìn)行排序,如從"大家"到"大加",詞頻逐漸減小。最大概率法實(shí)現(xiàn)整句預(yù)測的基本原理是對應(yīng)用戶輸入的一串拼音串,一 般存在著多種候選詞語的組合方案,通常先找出對應(yīng)這個(gè)拼音串可能出現(xiàn)的所 有候選詞,然后在這些候選詞的組合中找到一個(gè)概率最大的組合方案作為最后 的整句生成結(jié)果。例如輸入"womendoushipingfanren"拼音串,經(jīng)過音節(jié)劃分后的音節(jié)序列為 "wo,men,dou,shi,ping,fan,ren",根據(jù)這個(gè)音節(jié)序列,查詢該輸入法下的拼音詞 典,得到圖l所示的詞組結(jié)構(gòu)。其中,每一條弧線代表一個(gè)詞。從圖l中可以看出,每一條弧線對應(yīng)著一個(gè)或多個(gè)候選詞,從上到下按照 詞頻從高到低排序,而且每一條弧線都隱含有詞頻信息(圖中沒有標(biāo)出),詞頻 信息指的是拼音串所對應(yīng)的所有候選詞中詞頻最大的詞的詞頻,圖l虛線框中 的詞即為詞頻最大的詞。在目前的輸入法中,只給用戶提供一個(gè)候選整句信息,
只有詞頻最高的詞才有效,也就是說詞頻排在第二位以后的詞,比如窩,門,斗士等,不會在最后的候選整句結(jié)果中出現(xiàn)。因此圖1可以簡化為圖2。根據(jù)圖2所示,利用兩點(diǎn)間最短路徑算法求出概率最大的一條路徑,即最有可能的候選詞組合方案,作為最后的整句生成結(jié)果,并作為候選詞窗口的第一位輸出,在圖2中以虛線標(biāo)出。但是使用該方法,只能選擇詞頻最高的詞, 如果第一候選詞不正確,用戶要重新選擇每個(gè)詞組,準(zhǔn)確率不高。發(fā)明內(nèi)容有鑒于此,本發(fā)明的主要目的在于提供一種整句生成方法及裝置,能簡單 高效地生成整句,并能提高選詞的準(zhǔn)確率。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的一種整句生成的裝置,該裝置包括查詢模塊、第一緩沖區(qū)、第二緩沖區(qū)、整句輸出模塊;其中,第一、第二緩沖區(qū),分別用于存儲當(dāng)前拼音輸入的上、下文;查詢模塊,用于在詞表中查詢當(dāng)前拼音輸入的各候選詞詞頻、各候選詞與上下文詞組共現(xiàn)詞頻;整句輸出模塊,用于計(jì)算當(dāng)前拼音輸入的每個(gè)候選詞與上下文共現(xiàn)的條件概率,并選擇條件概率最大的候選詞與上下文構(gòu)成整句輸出。 該裝置還包括分詞模塊,用于根據(jù)輸入法詞表劃分詞組。 該裝置還包括統(tǒng)計(jì)模塊,用于統(tǒng)計(jì)單個(gè)詞、共現(xiàn)詞的詞頻,將統(tǒng)計(jì)結(jié)果存入詞表。一種整句生成的方法,該方法包括A、 截取光標(biāo)兩側(cè)上下文,并對所截取的上下文分別進(jìn)行分詞;B、 對當(dāng)前拼音輸入劃分音節(jié),獲取每個(gè)音節(jié)的候選詞;C、 在詞表中查詢各音節(jié)的全部候選詞、各候選詞詞頻、上下文單個(gè)詞詞 頻、各候選詞與上下文的共現(xiàn)詞頻;D、 確定每個(gè)音節(jié)的候選詞,并輸出整句。 步驟A中根據(jù)緩沖區(qū)大小,截取光標(biāo)兩側(cè)上下文,且遇到標(biāo)點(diǎn)結(jié)束截取。 步驟A中所述分詞為將上下文根據(jù)輸入法詞表分別劃分為若干個(gè)詞。所述方法還包括根據(jù)輸入法詞表,釆用原始文本訓(xùn)練,存儲共同出現(xiàn)的詞的共現(xiàn)詞頻。所述原始文本訓(xùn)練步驟包括選取若干文本并掃描;對掃描結(jié)果進(jìn)行分詞;統(tǒng)計(jì)分詞結(jié)果,存儲單個(gè)詞、共現(xiàn)詞頻;其中,共現(xiàn)詞頻詞組中包含的詞的個(gè)數(shù),根據(jù)緩沖區(qū)的大小確定。步驟D進(jìn)一步包括Dl、分別計(jì)算各音節(jié)候選詞的條件概率;D2、對每個(gè)音節(jié)選取條件概率最大的候選詞,組成整句輸出。本發(fā)明所提供的整句生成方法及裝置,在根據(jù)候選詞生成整句時(shí),考慮到當(dāng)前候選詞位置兩側(cè)的上下文,這樣能充分利用輸入上下文的信息,生成的候選結(jié)果準(zhǔn)確率更高,從而提高了用戶的輸入體驗(yàn)。
圖1為現(xiàn)有輸出整句的詞組結(jié)構(gòu)示意圖;圖2為簡化的現(xiàn)有輸出整句的詞組結(jié)構(gòu)示意圖;圖3為本發(fā)明裝置示意圖;圖4為本發(fā)明方法流程圖;圖5為本發(fā)明輸出整句詞組結(jié)構(gòu)示意圖。
具體實(shí)施方式
本發(fā)明的基本思想是對原始文本進(jìn)行訓(xùn)練,使其包含共現(xiàn)詞詞頻。通常, 輸入法都會帶有自己的詞表、劃分詞組的方式即分詞方法,根據(jù)原始文本訓(xùn)練 每個(gè)詞出現(xiàn)的次數(shù),即詞頻。本發(fā)明在原始文本訓(xùn)練過程中,除了統(tǒng)計(jì)單個(gè)詞
的詞頻,還要各種詞組共同出現(xiàn)的頻率,即共現(xiàn)詞詞頻,并將統(tǒng)計(jì)結(jié)果保存在 詞表中備用。當(dāng)用戶輸入文本時(shí),選擇當(dāng)前拼音輸入的候選詞中與上下文組成 整句概率最大的,與上下文生成整句輸出。本發(fā)明所述裝置如圖3所示,該裝置包括分詞模塊、統(tǒng)計(jì)模塊、查詢模 塊、左緩沖區(qū)、右緩沖區(qū),其中,分詞模塊用于根據(jù)輸入法詞表將文件劃分為若干詞組;統(tǒng)計(jì)模塊用于統(tǒng)計(jì)單個(gè)詞、共現(xiàn)詞的詞頻,將統(tǒng)計(jì)結(jié)果存入詞表;查詢模塊用于從詞表中查詢當(dāng)前拼音輸入的各候選詞的詞頻、各候選詞與 上下文詞組的共現(xiàn)詞頻;左、右緩沖區(qū)分別用于存儲當(dāng)前拼音輸入的上、下文;實(shí)際應(yīng)用中,也可 以將分別存儲上、下文的緩沖區(qū)命名為前、后緩沖區(qū)等等,只要功能相同即可, 基于此,本發(fā)明將分別存儲上、下文的緩沖區(qū)統(tǒng)稱為第一緩沖區(qū)和第二緩沖區(qū); 每次進(jìn)行插入詞匯的操作,對上一次緩沖區(qū)的內(nèi)容進(jìn)行覆蓋;整句輸出模塊用于計(jì)算當(dāng)前拼音輸入的每個(gè)候選詞與上下文共現(xiàn)的條件概 率,并選擇條件概率最大的候選詞與上下文構(gòu)成整句輸出。釆用本發(fā)明所述方法之前,根據(jù)原始文本對輸入法進(jìn)行訓(xùn)練,使其包含共 現(xiàn)詞詞頻,將共現(xiàn)詞頻保存在詞表中。原始訓(xùn)練的過程是選取若干文本并掃描;對掃描結(jié)果進(jìn)行分詞;統(tǒng)計(jì)分 詞結(jié)果,存儲單個(gè)詞、共現(xiàn)詞頻;其中共現(xiàn)詞頻詞組中包含的詞的個(gè)數(shù),根據(jù) 緩沖區(qū)的大小確定。例如緩沖區(qū)存放l個(gè)詞,那么只需訓(xùn)練兩個(gè)詞共現(xiàn)詞頻, 如果緩沖區(qū)存放2個(gè)詞,那么需要訓(xùn)練3個(gè)詞的共現(xiàn)詞頻和兩個(gè)詞的共現(xiàn)詞頻, 以此類推。例如當(dāng)前光標(biāo)所在位置兩側(cè)的內(nèi)容是"現(xiàn)在l股市大漲",這里,T代表 光標(biāo)。用戶想在光標(biāo)位置處插入"滬深"這個(gè)詞,如圖4所示,有以下步驟 步驟l:獲取光標(biāo)兩側(cè)上下文,對上下文分詞,并將分詞結(jié)果放入緩沖區(qū)。 從光標(biāo)兩側(cè)獲取文本內(nèi)容,獲取文本的長度根據(jù)用戶的需要確定,例如, 設(shè)定為十個(gè)字、二十個(gè)字等等,只要不超過緩沖區(qū)能夠容納的范圍即可。并且,
遇到標(biāo)點(diǎn)符號則停止,本例中取緩沖區(qū)存放兩個(gè)字。然后,將所獲得的上下文內(nèi)容分別傳送到分詞模塊,由分詞模塊根據(jù)輸入 法詞表對所獲取的上下文分別進(jìn)行分詞,并將上文的分詞結(jié)果放入左緩沖區(qū), 下文分詞結(jié)果放入右緩沖區(qū)。對應(yīng)前述例子,將"現(xiàn)在"這個(gè)詞存放左緩沖區(qū), 將"股巿"這個(gè)詞存放到右緩沖區(qū)。步驟2:對當(dāng)前拼音輸入劃分音節(jié),獲取每個(gè)音節(jié)的候選詞,并在詞表中 查詢各音節(jié)的全部候選詞、各候選詞詞頻、上下文單個(gè)詞詞頻、各候選詞與上 下文的共現(xiàn)詞頻。根據(jù)候選詞的上下文,由分詞模塊對"hu,shen"劃分音節(jié)后,對應(yīng)的詞輸 出情況如圖5所示查詢模塊從左、右緩沖區(qū)分別調(diào)取上下文,并在詞表中尋 找各候選詞的詞頻、各候選詞與上下文分別共現(xiàn)的共現(xiàn)詞頻,將查詢結(jié)果傳送 到整句輸出模塊。本例中,查詢模塊根據(jù)上下文,查找"護(hù)身"、"滬深"、"護(hù)身股巿"、"現(xiàn) 在護(hù)身"、"現(xiàn)在滬深"、"滬深股巿"的詞頻,并傳送到整句輸出模塊。將"現(xiàn) 在"、"hushen"、"股巿"分別標(biāo)記為A、 B、 C,其中"hushen,,的對應(yīng)的候選 詞,分別標(biāo)記為B,、 B2、 B3等等。步驟3:確定每個(gè)音節(jié)的候選詞,并輸出整句。計(jì)算每個(gè)音節(jié)的全部候選詞與上下文構(gòu)成整句的概率,選擇與上下文構(gòu)成 整句概率最大的候選詞輸出。整句中B出現(xiàn)的概率可根據(jù)如下公式計(jì)算<formula>formula see original document page 8</formula> (1)
其中,P(B)表示各候選詞出現(xiàn)的條件概率,a和b是0 l之間的數(shù),并且a 和b之和要小于1,根據(jù)原始文本的訓(xùn)練經(jīng)驗(yàn)或者選取最大概率情況下的候選 詞的最優(yōu)化方法得出a、 b的值,fAB、 fA、 fe分別表示AB兩個(gè)詞共現(xiàn)詞頻、A 詞的詞頻、B詞的詞頻,F(xiàn)表示所構(gòu)成整句中的所有詞的詞頻總和,N表示所 構(gòu)成整句中的總的詞數(shù)。本實(shí)施例中,a取0.85, b取0.12。如果A詞在原始
文本中沒有出現(xiàn),則詞頻計(jì)為0,如果A詞、B詞兩個(gè)詞沒有共現(xiàn),則共現(xiàn)的詞頻也計(jì)為0。 fAB、 fA、 fB均從詞表中查找,F(xiàn)是指A詞、B詞、C詞的總的詞 頻,N在此處取3。對各候選詞B的每個(gè)候選項(xiàng)B,、 B2,分別計(jì)算Pw、 PB2, 選擇概率大的輸出。如果兩個(gè)詞共同出現(xiàn)過,那么,該兩個(gè)詞之間存在條件概率,這兩個(gè)詞的 概率乘積要大于沒有共同出現(xiàn)過的兩個(gè)單獨(dú)詞。從詞表知,"滬深"和"股巿" 存在共現(xiàn)詞頻,而"護(hù)身"和"股市"不存在共現(xiàn)詞頻,則"滬深"與"股巿" 的概率乘積要大于"護(hù)身"和"股巿"之間的概率乘積,從而選擇"滬深"作為當(dāng)前拼音輸入的最終選項(xiàng),整句輸出模塊輸出"現(xiàn)在滬深股市"。 下面再舉一個(gè)例子,說明當(dāng)緩沖區(qū)存放多個(gè)詞時(shí)的情況。 本例中,當(dāng)前光標(biāo)所在位置兩側(cè)的內(nèi)容是"周末我們?nèi)十三陵水庫游玩",用戶想輸入"北京市昌平區(qū)"兩個(gè)詞,緩沖區(qū)存放兩個(gè)詞,那么,整句生成方法包括步驟601:獲取光標(biāo)兩側(cè)上下文,對上下文分詞,并將分詞結(jié)果放入緩沖區(qū)。將"周末"、"我們"、"去"、"十三陵"、"水庫"、"游玩",分別標(biāo)記為詞D、 E、 H、 L、 M和S。左緩沖區(qū)按照句子原來的順序依次存放"我們"、"去";右 緩沖區(qū)依次存放"十三陵"、"水庫"。步驟602:對當(dāng)前拼音輸入劃分音節(jié),獲取每個(gè)音節(jié)的候選詞,并在詞表 中查詢各音節(jié)的全部候選詞、各候選詞詞頻、上下文單個(gè)詞詞頻、各候選詞與 上下文的共現(xiàn)詞頻。對"beijingshichangpingqu,, 的劃分結(jié)果為 "beijingshi,, 、 "changpingqu"、 標(biāo)記為詞J、詞K,查找上下文中的單個(gè)詞詞頻、各候選詞的詞頻,即詞D、 E、 H、 L、 M和S的詞頻fb、 fE、 fH、 fl、 fM和fs,詞J、詞K候選詞各有兩個(gè)分 別為J,"北京巿"、J2 "背景是"、& "昌平區(qū)"、K2 "長平區(qū)",詞頻分別為fn、 fK1、 fj2、 &2, 以及計(jì)算中需要的上下文共現(xiàn)詞頻fEH、 fHI1、 fHJ2、 fI1K、卩K2L、 fEHJl、 fEHJ2、 fRUKl、 fHJlK2、 f*HJ2K2、 fHJ2K2、 ftlKlL、 fjlK2L、 fj2KlL、 fj2K2L、 fKlLM、flC2LM。步驟603:確定每個(gè)音節(jié)的候選詞,并輸出整句。計(jì)算每個(gè)音節(jié)的各候選詞與上下文構(gòu)成整句的概率,選擇與上下文構(gòu)成整句概率最大的各候選詞組成整句輸出。此時(shí),計(jì)算每個(gè)各候選詞出現(xiàn)的條件概率的公式,以詞J為例,為尸(力-"x^ + "左+0-") (2) /甜 , ^fEHJ為詞J與緩沖區(qū)中上文詞E、詞H共現(xiàn)詞頻,fEH為緩沖區(qū)中的詞E和詞H共現(xiàn)詞頻,fj為詞J的詞頻;此時(shí)的總詞數(shù)N為緩沖區(qū)的詞加上當(dāng)前要輸 入的詞,即N為6; F即為根據(jù)不同候選詞所選6個(gè)詞的總詞頻;a、 b的取值 同實(shí)施例一。根據(jù)公式(2),分別計(jì)算當(dāng)前拼音輸入的各個(gè)候選詞與緩沖區(qū)中的上下文構(gòu)成整句的條件概率Pn、 Pj2、 PK1、 PK2,選擇概率最大的候選詞Ji、 Ki組合輸出,得到"北京巿昌平區(qū)"輸出。類似的,當(dāng)緩沖區(qū)中存放多個(gè)詞,當(dāng)前的光標(biāo)處需要插入多個(gè)詞的時(shí)候, 要預(yù)先訓(xùn)練相應(yīng)個(gè)數(shù)的詞的共現(xiàn)頻率,并計(jì)算欲插入詞的每個(gè)候選詞在整句輸 出時(shí)的條件概率,以其中條件概率最大的構(gòu)成整句輸出,該輸出結(jié)果可能在語 意上不完全是一句話,但是避免了對詞匯的一個(gè)一個(gè)的選擇過程,大大提高了 用戶輸入的滿意度。以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。
權(quán)利要求
1、一種整句生成的裝置,其特征在于,該裝置包括查詢模塊、第一緩沖區(qū)、第二緩沖區(qū)、整句輸出模塊;其中,第一、第二緩沖區(qū),分別用于存儲當(dāng)前拼音輸入的上、下文;查詢模塊,用于在詞表中查詢當(dāng)前拼音輸入的各候選詞詞頻、各候選詞與上下文詞組共現(xiàn)詞頻;整句輸出模塊,用于計(jì)算當(dāng)前拼音輸入的每個(gè)候選詞與上下文共現(xiàn)的條件概率,并選擇條件概率最大的候選詞與上下文構(gòu)成整句輸出。
2、 根據(jù)權(quán)利要求l所述的整句生成的裝置,其特征在于,該裝置還包括分 詞模塊,用于根據(jù)輸入法詞表劃分詞組。
3、 根據(jù)權(quán)利要求l所述的整句生成的裝置,其特征在于,該裝置還包括統(tǒng) 計(jì)模塊,用于統(tǒng)計(jì)單個(gè)詞、共現(xiàn)詞的詞頻,將統(tǒng)計(jì)結(jié)果存入詞表。
4、 一種整句生成的方法,其特征在于,該方法包括A、 截取光標(biāo)兩側(cè)上下文,并對所截取的上下文分別進(jìn)行分詞;B、 對當(dāng)前拼音輸入劃分音節(jié),獲取每個(gè)音節(jié)的候選詞;c、在詞表中查詢各音節(jié)的全部候選詞、各候選詞詞頻、上下文單個(gè)詞詞 頻、各候選詞與上下文的共現(xiàn)詞頻;D、確定每個(gè)音節(jié)的候選詞,并輸出整句。
5、 根據(jù)權(quán)利要求4所述的整句生成的方法,其特征在于,步驟A中根據(jù) 緩沖區(qū)大小,截取光標(biāo)兩側(cè)上下文,且遇到標(biāo)點(diǎn)結(jié)束截取。
6、 根據(jù)權(quán)利要求4所述的整句生成的方法,其特征在于,步驟A中所述 分詞為將上下文根據(jù)輸入法詞表分別劃分為若干個(gè)詞。
7、 根據(jù)權(quán)利要求4所述的整句生成的方法,其特征在于,所述方法還包括 根據(jù)輸入法詞表,釆用原始文本訓(xùn)練,存儲共同出現(xiàn)的詞的共現(xiàn)詞頻。
8、 根據(jù)權(quán)利要求7所述的整句生成的方法,其特征在于,所述原始文本訓(xùn) 練步驟包括 選取若干文本并掃描;對掃描結(jié)果進(jìn)行分詞;統(tǒng)計(jì)分詞結(jié)果,存儲單個(gè)詞、共現(xiàn)詞頻;其中,共現(xiàn)詞頻詞組中包含的詞的個(gè)數(shù),根據(jù)緩沖區(qū)的大小確定。
9、根據(jù)權(quán)利要求4所述的整句生成的方法,其特征在于,步驟D進(jìn)一步包括Dl、分別計(jì)算各音節(jié)候選詞的條件概率;D2、對每個(gè)音節(jié)選取條件概率最大的候選詞,組成整句輸出。
全文摘要
本發(fā)明公開了一種整句生成的方法,該方法包括對各候選詞兩側(cè)上下文分詞;在詞表中查詢每個(gè)候選詞與所述上下文的共現(xiàn)詞頻;根據(jù)得到的共現(xiàn)詞頻計(jì)算每個(gè)候選詞與上下文構(gòu)成整句的概率,選擇與上下文構(gòu)成整句概率最大的候選詞輸出。本發(fā)明還公開了相應(yīng)裝置,該裝置包括查詢模塊、第一緩沖區(qū)、第二緩沖區(qū)、整句輸出模塊;其中,第一、第二緩沖區(qū),分別用于存儲當(dāng)前拼音輸入的上、下文;查詢模塊,用于在詞表中查詢各候選詞詞頻、各候選詞與上下文詞組共現(xiàn)詞頻;整句輸出模塊,用于計(jì)算根據(jù)每個(gè)候選詞與上下文共現(xiàn)的條件概率,并選擇條件概率最大的候選詞與上下文構(gòu)成整句輸出。本發(fā)明整句輸出準(zhǔn)確率更高。
文檔編號G06F17/30GK101158969SQ200710178040
公開日2008年4月9日 申請日期2007年11月23日 優(yōu)先權(quán)日2007年11月23日
發(fā)明者張會鵬 申請人:騰訊科技(深圳)有限公司