本申請(qǐng)涉及輸入法領(lǐng)域,尤其涉及一種預(yù)測(cè)用戶待輸入詞的方法及裝置。
背景技術(shù):
傳統(tǒng)的輸入法在通過(guò)鍵盤接收到用戶待輸入詞的部分相關(guān)字符(如部分拼音或者部分筆畫)時(shí),向用戶推送的用戶待輸入詞的命中率往往較低,而只有在接收到用戶待輸入詞的全部相關(guān)字符時(shí),才能正確地向用戶推送用戶待輸入詞,這影響了輸入法的輸入速度,且這些全部的相關(guān)字符會(huì)大量地占用計(jì)算機(jī)的內(nèi)存資源。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)實(shí)施例提供了一種預(yù)測(cè)用戶待輸入詞的方法及裝置,可以有效提高輸入法的輸入速度。
第一方面,提供了一種預(yù)測(cè)用戶待輸入詞的方法,該方法包括:
從當(dāng)前統(tǒng)計(jì)單元中讀取用戶輸入的自然語(yǔ)言,所述統(tǒng)計(jì)單元是用戶輸入的自然語(yǔ)言中在預(yù)定標(biāo)點(diǎn)符號(hào)之間的語(yǔ)義單位;
對(duì)所述自然語(yǔ)言進(jìn)行自然語(yǔ)言處理,得到已輸入詞;
在詞與詞向量對(duì)應(yīng)表中查詢所述已輸入詞對(duì)應(yīng)的詞向量,其中,所述詞與詞向量對(duì)應(yīng)表用于記錄包括所述已輸入詞的多個(gè)詞以及所述多個(gè)詞對(duì)應(yīng)的詞向量;
根據(jù)所述已輸入詞對(duì)應(yīng)的詞向量以及所述多個(gè)詞對(duì)應(yīng)的詞向量,預(yù)測(cè)用戶待輸入詞;
展示預(yù)測(cè)的用戶待輸入詞。
第二方面,提供了一種預(yù)測(cè)用戶待輸入詞的裝置,該裝置包括:讀取單元、處理單元、查詢單元、預(yù)測(cè)單元以及展示單元;
所述讀取單元,用于從當(dāng)前統(tǒng)計(jì)單元中讀取用戶輸入的自然語(yǔ)言,所述統(tǒng)計(jì)單元是用戶輸入的自然語(yǔ)言中在預(yù)定標(biāo)點(diǎn)符號(hào)之間的語(yǔ)義單位;
所述處理單元,用于對(duì)所述讀取單元讀取的所述自然語(yǔ)言進(jìn)行自然語(yǔ)言處理,得到已輸入詞;
所述查詢單元,用于在詞與詞向量對(duì)應(yīng)表中查詢所述處理單元得到的所述已輸入詞對(duì)應(yīng)的詞向量,其中,所述詞與詞向量對(duì)應(yīng)表用于記錄包括所述已輸入詞的多個(gè)詞以及所述多個(gè)詞對(duì)應(yīng)的詞向量;
所述預(yù)測(cè)單元,用于根據(jù)所述查詢單元查詢的所述已輸入詞對(duì)應(yīng)的詞向量以及所述多個(gè)詞對(duì)應(yīng)的詞向量,預(yù)測(cè)用戶待輸入詞;
所述展示單元,用于展示所述預(yù)測(cè)單元預(yù)測(cè)的用戶待輸入詞。
本申請(qǐng)?zhí)峁┑念A(yù)測(cè)用戶待輸入詞的方法及裝置,根據(jù)用戶已輸入詞對(duì)應(yīng)的詞向量以及在詞與詞向量對(duì)應(yīng)表中記錄的多個(gè)詞對(duì)應(yīng)的詞向量,預(yù)測(cè)用戶待輸入詞,并展示預(yù)測(cè)的用戶待輸入詞,使得用戶可從展示的用戶待輸入詞中直接選擇實(shí)際要輸入詞。實(shí)現(xiàn)了結(jié)合上下文語(yǔ)境預(yù)測(cè)用戶待輸入詞,提高了預(yù)測(cè)的用戶待輸入詞的命中率,從而可以有效提升輸入法的輸入速度。
附圖說(shuō)明
圖1為本申請(qǐng)一種實(shí)施例提供的預(yù)測(cè)用戶待輸入詞的方法流程圖;
圖2為預(yù)測(cè)的用戶待輸入詞的示意圖之一;
圖3為預(yù)測(cè)的用戶待輸入詞的示意圖之二;
圖4為預(yù)測(cè)的用戶待輸入詞的示意圖之三;
圖5為本申請(qǐng)另一種實(shí)施例提供的預(yù)測(cè)用戶待輸入詞的裝置示意圖;
圖6為本申請(qǐng)?jiān)僖环N實(shí)施例提供的預(yù)測(cè)用戶待輸入詞的裝置示意圖;
圖7為本申請(qǐng)又一種實(shí)施例提供的預(yù)測(cè)用戶待輸入詞的裝置示意圖。
具體實(shí)施方式
為使本申請(qǐng)實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本申請(qǐng)保護(hù)的范圍。
為便于對(duì)本申請(qǐng)實(shí)施例的理解,下面將結(jié)合附圖以具體實(shí)施例做進(jìn)一步的解釋說(shuō)明,實(shí)施例并不構(gòu)成對(duì)本申請(qǐng)實(shí)施例的限定。
本申請(qǐng)實(shí)施例提供的預(yù)測(cè)用戶待輸入詞的方法可與任意輸入法結(jié)合。根據(jù)用戶已輸入詞對(duì)應(yīng)的詞向量以及在詞與詞向量對(duì)應(yīng)表中記錄的多個(gè)詞對(duì)應(yīng)的詞向量,預(yù)測(cè)用戶待輸入詞,并展示預(yù)測(cè)的用戶待輸入詞,使得用戶可從展示的用戶待輸入詞中直接選擇實(shí)際要輸入詞。實(shí)現(xiàn)了結(jié)合上下文語(yǔ)境預(yù)測(cè)用戶待輸入詞,提高了預(yù)測(cè)的用戶待輸入詞的命中率,從而可以有效提升輸入法的輸入速度。
其中,所述詞向量是固定長(zhǎng)度的向量,該長(zhǎng)度可任意設(shè)定。本實(shí)施例中將詞映射為詞向量,用于預(yù)測(cè)用戶待輸入詞過(guò)程中作為進(jìn)行量化計(jì)算的基礎(chǔ)。
所述詞與詞向量對(duì)應(yīng)表是基于大量的規(guī)范文本訓(xùn)練得到的用于保存詞與詞向量對(duì)應(yīng)關(guān)系的集合。也就是執(zhí)行本申請(qǐng)的預(yù)測(cè)用戶待輸入詞的方法需訓(xùn)練得到該詞與詞向量對(duì)應(yīng)表。訓(xùn)練該詞與詞向量對(duì)應(yīng)表的過(guò)程是在執(zhí)行該預(yù)測(cè)用戶待輸入詞的方法前完成。
圖1為本申請(qǐng)一種實(shí)施例提供的預(yù)測(cè)用戶待輸入詞的方法流程圖。所述方法的執(zhí)行主體可以為具有處理能力的設(shè)備:服務(wù)器或者系統(tǒng)或者裝置,如圖1所示,所述方法具體可以包括:
步驟110,從當(dāng)前統(tǒng)計(jì)單元中讀取用戶輸入的自然語(yǔ)言,所述統(tǒng)計(jì)單元是用戶輸入的自然語(yǔ)言中在預(yù)定標(biāo)點(diǎn)符號(hào)之間的語(yǔ)義單位。
可選地,在執(zhí)行步驟110之前還可以包括訓(xùn)練所述詞與詞向量對(duì)應(yīng)表的步驟,通過(guò)該步驟可以提高詞與詞向量對(duì)應(yīng)表中記錄的詞與詞向量對(duì)應(yīng)關(guān)系的準(zhǔn)確度,從而可以提高根據(jù)已輸入詞對(duì)應(yīng)的詞向量預(yù)測(cè)用戶待輸入詞的正確性。
具體步驟如下:
步驟A:從語(yǔ)料庫(kù)中選取樣本,對(duì)所述樣本進(jìn)行自然語(yǔ)言處理,得到多個(gè)連續(xù)的詞。
需要說(shuō)明的是,所述連續(xù)的詞,即,所選取的多個(gè)詞是在一個(gè)統(tǒng)計(jì)單元中。所述統(tǒng)計(jì)單元是指在預(yù)定標(biāo)點(diǎn)符號(hào)之間的語(yǔ)義單位。所述預(yù)定標(biāo)點(diǎn)符號(hào)包括:逗號(hào)、句號(hào)、問(wèn)號(hào)、分號(hào)、感嘆號(hào)、省略號(hào)、頓號(hào)、冒號(hào)。
語(yǔ)料庫(kù)中的樣本可以是由服務(wù)器或者客戶端預(yù)先從網(wǎng)頁(yè)頁(yè)面中收集的文字信息,如,網(wǎng)頁(yè)上的大量文章、評(píng)論等,這些文章、評(píng)論中每?jī)蓚€(gè)相鄰的預(yù)定標(biāo)點(diǎn)符合之間都形成一個(gè)統(tǒng)計(jì)單元。在一個(gè)實(shí)施例中,可以把這樣一個(gè)統(tǒng)計(jì)單元作為一個(gè)樣本;或者也可以是由服務(wù)器或者客戶端預(yù)先從用戶輸入的文字信息中收集。自然語(yǔ)言處理包括標(biāo)準(zhǔn)化處理和分詞處理等,舉例來(lái)說(shuō),標(biāo)準(zhǔn)化處理就是將樣本中包含的英文大寫統(tǒng)一轉(zhuǎn)化為小寫,或者將樣本中包含的繁體字轉(zhuǎn)化為簡(jiǎn)體字等處理。而分詞處理就是將一個(gè)樣本拆分成多個(gè)連續(xù)的詞,如,將樣本“我們需要治理城市霧霾”經(jīng)過(guò)分詞處理之后,就可以得到多個(gè)連續(xù)的詞:“我們”、“需要”、“治理”、“城市”以及“霧霾”。
步驟B:在所述詞與詞向量對(duì)應(yīng)表中查詢所述樣本中除最后一個(gè)詞外的所有其它詞對(duì)應(yīng)的詞向量,對(duì)于所述詞與詞向量對(duì)應(yīng)表中未記錄詞向量的詞,則為其隨機(jī)分配對(duì)應(yīng)的詞向量。
本實(shí)施例中,將所述樣本中除最后一個(gè)詞外的所有其它詞稱為訓(xùn)練詞,而將所述樣本中最后一個(gè)詞稱為驗(yàn)證詞。
詞向量是用于表征詞的向量,其可以包括若干個(gè)維度,其中每個(gè)維度對(duì)應(yīng)一個(gè)[-1,1]之間的數(shù)值。每個(gè)詞都唯一對(duì)應(yīng)于一個(gè)詞向量,每個(gè)詞向量也唯一對(duì)應(yīng)于一個(gè)詞。
詞與詞向量對(duì)應(yīng)表用于記錄多個(gè)詞以及多個(gè)詞對(duì)應(yīng)的詞向量,此處的多個(gè)詞可以是在對(duì)上述語(yǔ)料庫(kù)中的樣本做分詞處理后得到的全部的詞或者部分詞;初始時(shí),上述多個(gè)詞對(duì)應(yīng)的詞向量為空,即該詞與詞向量對(duì)應(yīng)表中未保存多個(gè)詞對(duì)應(yīng)的詞向量,則可以為多個(gè)詞隨機(jī)分配對(duì)應(yīng)的詞向量。例如,可為多個(gè)詞中每個(gè)詞對(duì)應(yīng)的詞向量中的每個(gè)維度從[-1,1]中隨機(jī)選擇一個(gè)數(shù)值。
本申請(qǐng)實(shí)施例對(duì)詞向量的維度不做具體限制,詞向量的維度多,即表示詞向量的長(zhǎng)度長(zhǎng)。在訓(xùn)練時(shí),詞向量的長(zhǎng)度越長(zhǎng),則訓(xùn)練得到的詞與詞向量的對(duì)應(yīng)關(guān)系越準(zhǔn)確。
如前述例子中,對(duì)語(yǔ)料庫(kù)中的一個(gè)樣本進(jìn)行自然語(yǔ)言處理后,得到多個(gè)連續(xù)的詞:“我們”、“需要”、“治理”、“城市”以及“霧霾”,根據(jù)上述定義可知,訓(xùn)練詞包括:“我們”、“需要”、“治理”、“城市”,而驗(yàn)證詞為“霧霾”。
通過(guò)查詢?cè)~與詞向量對(duì)應(yīng)表得到的訓(xùn)練詞對(duì)應(yīng)的詞向量分別為:
“我們”的詞向量為[C11、C12、C13、…C1m];
“需要”的詞向量為[C21、C22、C23、…C2m];
“治理”的詞向量為[C31、C32、C33、…C3m];
“城市”的詞向量為[C41、C42、C43、…C4m]。
步驟C:對(duì)所述樣本中除最后一個(gè)詞外的所有其它詞對(duì)應(yīng)的詞向量進(jìn)行預(yù)定線性變換或非線性變換,得到預(yù)測(cè)詞向量。
本步驟可根據(jù)訓(xùn)練詞對(duì)應(yīng)的詞向量得到預(yù)測(cè)詞向量,具體的,可對(duì)訓(xùn)練詞對(duì)應(yīng)的詞向量進(jìn)行預(yù)定線性變換或非線性變換得到預(yù)測(cè)詞向量。
如前述例子,假設(shè)預(yù)測(cè)的詞向量可以表示為[y1、y2、y3、…ym],其中,y1= C11+C21+C31+C41,同理,y2=C12+C22+C32+C42,…,ym=C1m+C2m+C3m+C4m,或者,
在根據(jù)訓(xùn)練詞對(duì)應(yīng)的詞向量計(jì)算預(yù)測(cè)詞向量時(shí),針對(duì)訓(xùn)練詞對(duì)應(yīng)的詞向量的每個(gè)維度采用的算法是相同的,也就是若采用線性變換方法,則同時(shí)均采用該線性變換方法。若采用非線性變換方法,則同時(shí)均采用非線性變換方法。
步驟D:將所述預(yù)測(cè)詞向量輸入語(yǔ)音訓(xùn)練模型,判斷輸出的結(jié)果是否與所述最后一個(gè)詞相符,其中,所述語(yǔ)音訓(xùn)練模型是預(yù)定義的用于根據(jù)輸入的詞向量得出該詞向量對(duì)應(yīng)的詞的機(jī)器學(xué)習(xí)模型。
語(yǔ)音訓(xùn)練模型是預(yù)定義的用于根據(jù)輸入的詞向量得出該詞向量對(duì)應(yīng)的詞的機(jī)器學(xué)習(xí)模型。該語(yǔ)音訓(xùn)練模型的作用是實(shí)現(xiàn)依據(jù)輸入的詞向量確定與該詞向量對(duì)應(yīng)的詞。本申請(qǐng)實(shí)施例對(duì)所應(yīng)用的語(yǔ)音訓(xùn)練模型不做具體限制。該語(yǔ)音訓(xùn)練模型可以采用深度學(xué)習(xí)模型,例如,word2vec或RNN(Recurrent neural Network,多層反饋)等。
在將預(yù)測(cè)詞向量輸入語(yǔ)音訓(xùn)練模型后,判斷輸出的詞是否為驗(yàn)證詞,例如,將預(yù)測(cè)詞向量[y1、y2、y3、…ym]輸入語(yǔ)音訓(xùn)練模型中,判斷輸出的詞是否為“霧霾”。
若輸出的詞與樣本中的驗(yàn)證詞相符,則結(jié)束操作,否則執(zhí)行步驟E。
步驟E:若不相符,則調(diào)整所述除最后一個(gè)詞外的所有其它詞對(duì)應(yīng)的詞向量,直到輸出結(jié)果與所述最后一個(gè)詞相符為止。
具體的,若輸出的詞與樣本中的驗(yàn)證詞不相符,則調(diào)整預(yù)測(cè)詞向量,直到語(yǔ)音訓(xùn)練模型根據(jù)該調(diào)整后的預(yù)測(cè)詞向量輸出與驗(yàn)證詞相符的詞為止。根據(jù)調(diào)整后的預(yù)測(cè)詞向量相應(yīng)的調(diào)整訓(xùn)練詞對(duì)應(yīng)的詞向量。具體的調(diào)整幅度與所采用的預(yù)定線性變換或非線性變換方法相關(guān)。
步驟F:利用調(diào)整后的除最后一個(gè)詞外的所有其它詞對(duì)應(yīng)的詞向量更新所 述詞與詞向量對(duì)應(yīng)表中所述除最后一個(gè)詞外的所有其它詞對(duì)應(yīng)的詞向量。
也就是,將調(diào)整后的訓(xùn)練詞對(duì)應(yīng)的詞向量更新于所述詞與詞向量對(duì)應(yīng)表中,該更新具體包括:將調(diào)整后的訓(xùn)練詞對(duì)應(yīng)的詞向量與訓(xùn)練詞的對(duì)應(yīng)關(guān)系替換詞與詞向量對(duì)應(yīng)表中已有的訓(xùn)練詞對(duì)應(yīng)的詞向量與訓(xùn)練詞的對(duì)應(yīng)關(guān)系。
可以理解的是,上述流程為針對(duì)一個(gè)樣本的處理過(guò)程,實(shí)際訓(xùn)練過(guò)程需要利用大量的樣本重復(fù)執(zhí)行上述流程,樣本數(shù)量越多,則訓(xùn)練得到的詞與詞向量對(duì)應(yīng)表中詞與詞向量對(duì)應(yīng)關(guān)系越準(zhǔn)確。本申請(qǐng)以下涉及的詞與詞向量對(duì)應(yīng)表均可以為采用上述方法訓(xùn)練得到的詞與詞向量對(duì)應(yīng)表。
回到步驟110中,統(tǒng)計(jì)單元是用戶輸入的自然語(yǔ)言中在預(yù)定標(biāo)點(diǎn)符號(hào)之間的語(yǔ)義單位,預(yù)定標(biāo)點(diǎn)符號(hào)的定義如步驟A所述。也就是,本申請(qǐng)實(shí)施例會(huì)記錄用戶輸入操作所在的統(tǒng)計(jì)單元(即當(dāng)前統(tǒng)計(jì)單元)中用戶已輸入的自然語(yǔ)言。
步驟120,對(duì)所述自然語(yǔ)言進(jìn)行自然語(yǔ)言處理,得到已輸入詞。
其中,步驟120具體可以包括:
對(duì)所述自然語(yǔ)言進(jìn)行自然語(yǔ)言處理,得到用戶最近輸入的n個(gè)詞,其中,n為當(dāng)前統(tǒng)計(jì)單元中用戶已輸入的詞的個(gè)數(shù)與預(yù)定個(gè)數(shù)N中的較小者,n和N為正整數(shù)。
此處,自然語(yǔ)言處理包括標(biāo)準(zhǔn)化處理和分詞處理等。由于用戶輸入的自然語(yǔ)言通常是不規(guī)范的,如可能輸入的自然語(yǔ)言可能既包括大寫又包括小寫,還可能包括繁體字等情況,因此,需要對(duì)自然語(yǔ)言進(jìn)行標(biāo)準(zhǔn)化處理,以便機(jī)器能夠識(shí)別。在對(duì)自然語(yǔ)言進(jìn)行標(biāo)準(zhǔn)化處理之后,還需要進(jìn)行分詞處理,就可以得到用戶最近輸入的n個(gè)詞。其中,記錄的用戶已輸入詞的個(gè)數(shù)可設(shè)定不超過(guò)預(yù)定個(gè)數(shù)N(N為正整數(shù))。則需要記錄的用戶已輸入詞的個(gè)數(shù)n(n為正整數(shù))為:當(dāng)前統(tǒng)計(jì)單元中用戶最近輸入的詞的個(gè)數(shù)與預(yù)定個(gè)數(shù)N中的較小者。
假如,N為5,則在對(duì)自然語(yǔ)言進(jìn)行自然語(yǔ)言處理后,得到已輸入詞的個(gè) 數(shù)為4時(shí),則記錄該4個(gè)已輸入詞;而在對(duì)自然語(yǔ)言進(jìn)行自然語(yǔ)言處理后,得到已輸入詞的個(gè)數(shù)為6時(shí),則僅記錄最近輸入的前5個(gè)詞,也就是將記錄的當(dāng)前統(tǒng)計(jì)單元中的第一個(gè)詞刪除。若當(dāng)前統(tǒng)計(jì)單元輸入完成,例如,用戶輸入了一個(gè)逗號(hào),則開始下一統(tǒng)計(jì)單元,從下一統(tǒng)計(jì)單元的第一個(gè)詞開始記錄,前一個(gè)統(tǒng)計(jì)單元中記錄的詞刪除。
步驟130,在詞與詞向量對(duì)應(yīng)表中查詢所述已輸入詞對(duì)應(yīng)的詞向量,其中,所述詞與詞向量對(duì)應(yīng)表用于記錄包括所述已輸入詞的多個(gè)詞以及所述多個(gè)詞對(duì)應(yīng)的詞向量。
通過(guò)查詢?cè)~與詞向量對(duì)應(yīng)表獲取所記錄的當(dāng)前統(tǒng)計(jì)單元中用戶已輸入詞對(duì)應(yīng)的詞向量。其中,詞與詞向量對(duì)應(yīng)表中記錄的多個(gè)詞的定義如步驟B所述。需要說(shuō)明的是,此處的詞與詞向量對(duì)應(yīng)表是采用步驟A至步驟F的訓(xùn)練方法得到的,所以,記錄在詞與詞向量對(duì)應(yīng)表中多個(gè)詞中的每個(gè)詞都唯一地對(duì)應(yīng)一個(gè)詞向量。
步驟140,根據(jù)所述已輸入詞對(duì)應(yīng)的詞向量以及所述多個(gè)詞對(duì)應(yīng)的詞向量,預(yù)測(cè)用戶待輸入詞。
其中,步驟140具體可以包括:
步驟1401,對(duì)所述已輸入詞對(duì)應(yīng)的詞向量進(jìn)行預(yù)定線性變換或非線性變換,得到目標(biāo)詞向量。
需要說(shuō)明的是,此處采用的變換方法(預(yù)定線性變換或非線性變換)與訓(xùn)練詞與詞向量對(duì)應(yīng)表時(shí)采用的變換方法一致。
步驟1402,計(jì)算所述多個(gè)詞中每個(gè)詞對(duì)應(yīng)的詞向量與所述目標(biāo)詞向量的相似度。
步驟1403,根據(jù)所述相似度預(yù)測(cè)用戶待輸入詞。
本申請(qǐng)實(shí)施例對(duì)計(jì)算詞與詞向量對(duì)應(yīng)表中所述多個(gè)詞中每個(gè)詞對(duì)應(yīng)的詞向量與所述目標(biāo)詞向量的相似度的方法不做具體限制,其可采用已有的任一種計(jì)算兩個(gè)向量之間相似度的方法。
其中,相似度高表示命中率越高,即用戶輸入該詞的幾率越高。則根據(jù)所述相似度預(yù)測(cè)用戶待輸入詞的方法可以為:將相似度高于預(yù)定閾值的一個(gè)或多個(gè)詞向量對(duì)應(yīng)的詞確定為所述用戶待輸入詞;和/或,根據(jù)所述相似度,對(duì)所述多個(gè)詞對(duì)應(yīng)的詞向量進(jìn)行排序;將排序靠前的一個(gè)或多個(gè)詞向量對(duì)應(yīng)的詞確定為所述用戶待輸入詞。也就是,可將相似度高于所述預(yù)定閾值的一個(gè)或多個(gè)詞向量對(duì)應(yīng)的詞全部展示給用戶;或?qū)⑾嗨贫雀哂陬A(yù)定閾值的指定數(shù)量個(gè)詞向量對(duì)應(yīng)的詞展示給用戶;或按照相似度從高到低的順序?qū)υ~向量排序后,將排序靠前的一個(gè)或多個(gè)詞向量對(duì)應(yīng)的詞展示給用戶。
步驟150,展示預(yù)測(cè)的用戶待輸入詞。
展示所述預(yù)測(cè)的用戶待輸入詞時(shí),可按照相似度由高到低的順序排序該預(yù)測(cè)的用戶待輸入詞。
本實(shí)施例實(shí)現(xiàn)了結(jié)合上下文語(yǔ)境預(yù)測(cè)用戶待輸入詞,參見圖2所示的預(yù)測(cè)的用戶待輸入詞的示意圖之一以及圖3所示的預(yù)測(cè)的用戶待輸入詞的示意圖之二,當(dāng)用戶在一個(gè)統(tǒng)計(jì)單元中已輸入詞包括“我們需要治理城市”時(shí),則通過(guò)本實(shí)施例的方法預(yù)測(cè)的用戶待輸入詞包括:“霧霾”、“污染”、“垃圾”以及“能源短缺”等;當(dāng)用戶在一個(gè)統(tǒng)計(jì)單元中已輸入詞包括“我們需要規(guī)劃城市”時(shí),通過(guò)本實(shí)施例的方法預(yù)測(cè)的用戶待輸入詞包括:“建設(shè)”、“交通”、“街道”以及“發(fā)展方向”等??梢姡A(yù)測(cè)的用戶待輸入詞與上下文的語(yǔ)境是相關(guān)的。在展示預(yù)測(cè)的用戶待輸入詞時(shí)由于不可能將所有預(yù)測(cè)的用戶待輸入詞一次性展示,因此通過(guò)圖2及圖3中的向左或向后的箭頭翻頁(yè)或左右移動(dòng)來(lái)展示其它預(yù)測(cè)的用戶待輸入詞。
若當(dāng)前展示的用戶待輸入詞包含了用戶實(shí)際要輸入的詞,則用戶無(wú)需再輸入任何其它信息就可直接選擇該詞。若當(dāng)前展示的用戶待輸入詞沒(méi)有包含用戶實(shí)際要輸入的詞,則可根據(jù)用戶輸入的其它信息,更新當(dāng)前展示的用戶待輸入詞。所述其它信息即為用戶輸入的實(shí)際待輸入詞的相關(guān)字符,包括:實(shí)際待輸入詞的部分拼音、實(shí)際待輸入詞的筆畫或?qū)嶋H待輸入詞的片假名等 等。其中,根據(jù)用戶輸入的其它信息,更新當(dāng)前展示的用戶待輸入詞包括:
接收用戶輸入的其它信息,根據(jù)所述其它信息,更新所述預(yù)測(cè)的用戶待輸入詞的展示順序;和/或,
接收用戶輸入的其它信息,根據(jù)所述其它信息,從所述預(yù)測(cè)的用戶待輸入詞中篩選出目標(biāo)用戶待輸入詞,展示所述目標(biāo)用戶待輸入詞。
以所述其它信息為實(shí)際待輸入詞的拼音首字母為例,假如,初始展示的預(yù)測(cè)的用戶待輸入詞如圖2所示,當(dāng)用戶輸入拼音“s”,則更新后的用戶待輸入詞如圖4所示。由于在展示的用戶待輸入詞中“水污染”的拼音首字母為“s”,其它用戶待輸入詞的拼音首字母均為非“s”,因此將詞“水污染”的排序提前,也就是將與用戶輸入的其它信息相符的用戶待輸入詞的排序提前?;蛘咧苯訉⑴c用戶輸入的其它信息不符的用戶待輸入詞隱藏,而將與用戶輸入的其它信息相符的用戶待輸入詞篩選為目標(biāo)用戶待輸入詞,如,可以將圖4中的“水污染”、“市容”、“市貌”以及“樹木”篩選為目標(biāo)用戶待輸入詞,并展示該目標(biāo)用戶待輸入詞。這樣若用戶實(shí)際待輸入詞為“水污染”時(shí),則可在輸入該拼音首字母“s”后,即可直接選擇該詞,而無(wú)需輸入該詞的全部拼音,提升了輸入速度。
本申請(qǐng)?zhí)峁┑念A(yù)測(cè)用戶待輸入詞的方法,根據(jù)用戶已輸入詞對(duì)應(yīng)的詞向量以及在詞與詞向量對(duì)應(yīng)表中記錄的多個(gè)詞對(duì)應(yīng)的詞向量,預(yù)測(cè)用戶待輸入詞,并展示預(yù)測(cè)的用戶待輸入詞,使得用戶可從展示的用戶待輸入詞中直接選擇實(shí)際要輸入詞。實(shí)現(xiàn)了結(jié)合上下文語(yǔ)境預(yù)測(cè)用戶待輸入詞,提高了預(yù)測(cè)的用戶待輸入詞的命中率,從而可以有效提升輸入法的輸入速度。
與上述預(yù)測(cè)用戶待輸入詞的方法對(duì)應(yīng)地,本申請(qǐng)實(shí)施例還提供的一種預(yù)測(cè)用戶待輸入詞的裝置,如圖5所示,該裝置可設(shè)置于已有的任一種輸入法系統(tǒng)中,用于輸入過(guò)程中結(jié)合已輸入詞預(yù)測(cè)用戶待輸入詞。該裝置包括:讀取單元501、處理單元502、查詢單元503、預(yù)測(cè)單元504以及展示單元505。
讀取單元501,用于從當(dāng)前統(tǒng)計(jì)單元中讀取用戶輸入的自然語(yǔ)言,所述 統(tǒng)計(jì)單元是用戶輸入的自然語(yǔ)言中在預(yù)定標(biāo)點(diǎn)符號(hào)之間的語(yǔ)義單位。
統(tǒng)計(jì)單元是用戶輸入的自然語(yǔ)言中在預(yù)定標(biāo)點(diǎn)符號(hào)之間的語(yǔ)義單位,預(yù)定標(biāo)點(diǎn)符號(hào)的定義如步驟A所述。也就是,本申請(qǐng)實(shí)施例會(huì)記錄用戶輸入操作所在的統(tǒng)計(jì)單元(即當(dāng)前統(tǒng)計(jì)單元)中用戶已輸入的自然語(yǔ)言。
處理單元502,用于對(duì)讀取單元501讀取的所述自然語(yǔ)言進(jìn)行自然語(yǔ)言處理,得到已輸入詞。
處理單元502具體用于:對(duì)所述自然語(yǔ)言進(jìn)行自然語(yǔ)言處理,得到用戶最近輸入的n個(gè)詞,其中,n為當(dāng)前統(tǒng)計(jì)單元中用戶已輸入的詞的個(gè)數(shù)與預(yù)定個(gè)數(shù)N中的較小者,n和N為正整數(shù)。
此處,自然語(yǔ)言處理包括標(biāo)準(zhǔn)化處理和分詞處理等。由于用戶輸入的自然語(yǔ)言通常是不規(guī)范的,如可能輸入的自然語(yǔ)言可能既包括大寫又包括小寫,還可能包括繁體字等情況,因此,需要對(duì)自然語(yǔ)言進(jìn)行標(biāo)準(zhǔn)化處理,以便機(jī)器能夠識(shí)別。在對(duì)自然語(yǔ)言進(jìn)行標(biāo)準(zhǔn)化處理之后,還需要進(jìn)行分詞處理,就可以得到用戶最近輸入的n個(gè)詞。其中,記錄的用戶已輸入詞的個(gè)數(shù)可設(shè)定不超過(guò)預(yù)定個(gè)數(shù)N(N為正整數(shù))。則需要記錄的用戶已輸入詞的個(gè)數(shù)n(n為正整數(shù))為:當(dāng)前統(tǒng)計(jì)單元中用戶最近輸入的詞的個(gè)數(shù)與預(yù)定個(gè)數(shù)N中的較小者。
假如,N為5,則在對(duì)自然語(yǔ)言進(jìn)行自然語(yǔ)言處理后,得到已輸入詞的個(gè)數(shù)為4時(shí),則記錄該4個(gè)已輸入詞;而在對(duì)自然語(yǔ)言進(jìn)行自然語(yǔ)言處理后,得到已輸入詞的個(gè)數(shù)為6時(shí),則僅記錄最近輸入的前5個(gè)詞,也就是將記錄的當(dāng)前統(tǒng)計(jì)單元中的第一個(gè)詞刪除。若當(dāng)前統(tǒng)計(jì)單元輸入完成,例如,用戶輸入了一個(gè)逗號(hào),則開始下一統(tǒng)計(jì)單元,從下一統(tǒng)計(jì)單元的第一個(gè)詞開始記錄,前一個(gè)統(tǒng)計(jì)單元中記錄的詞刪除。
查詢單元503,用于在詞與詞向量對(duì)應(yīng)表中查詢處理單元502得到的所述已輸入詞對(duì)應(yīng)的詞向量,其中,所述詞與詞向量對(duì)應(yīng)表用于記錄包括所述已輸入詞的多個(gè)詞以及所述多個(gè)詞對(duì)應(yīng)的詞向量。
通過(guò)查詢?cè)~與詞向量對(duì)應(yīng)表獲取所記錄的當(dāng)前統(tǒng)計(jì)單元中用戶已輸入詞對(duì)應(yīng)的詞向量。其中,詞與詞向量對(duì)應(yīng)表中記錄的多個(gè)詞的定義如步驟B所述。需要說(shuō)明的是,此處的詞與詞向量對(duì)應(yīng)表是采用步驟A至步驟F的訓(xùn)練方法得到的,所以,記錄在詞與詞向量對(duì)應(yīng)表中多個(gè)詞中的每個(gè)詞都唯一地對(duì)應(yīng)一個(gè)詞向量。
預(yù)測(cè)單元504,用于根據(jù)查詢單元503查詢的所述已輸入詞對(duì)應(yīng)的詞向量以及所述多個(gè)詞對(duì)應(yīng)的詞向量,預(yù)測(cè)用戶待輸入詞。
預(yù)測(cè)單元504具體用于:對(duì)所述已輸入詞對(duì)應(yīng)的詞向量進(jìn)行預(yù)定線性變換或非線性變換,得到目標(biāo)詞向量;
計(jì)算所述多個(gè)詞中每個(gè)詞對(duì)應(yīng)的詞向量與所述目標(biāo)詞向量的相似度;
根據(jù)所述相似度預(yù)測(cè)用戶待輸入詞。
需要說(shuō)明的是,此處采用的變換方法(預(yù)定線性變換或非線性變換)與訓(xùn)練詞與詞向量對(duì)應(yīng)表時(shí)采用的變換方法一致。
本申請(qǐng)實(shí)施例對(duì)計(jì)算詞與詞向量對(duì)應(yīng)表中所述多個(gè)詞中每個(gè)詞對(duì)應(yīng)的詞向量與所述目標(biāo)詞向量的相似度的方法不做具體限制,其可采用已有的任一種計(jì)算兩個(gè)向量之間相似度的方法。
其中,相似度高表示命中率越高,即用戶輸入該詞的幾率越高。
可選地,預(yù)測(cè)單元504還具體用于:
將相似度高于預(yù)定閾值的一個(gè)或多個(gè)詞向量對(duì)應(yīng)的詞確定為所述用戶待輸入詞;和/或,
根據(jù)所述相似度,對(duì)所述多個(gè)詞對(duì)應(yīng)的詞向量進(jìn)行排序;
將排序靠前的一個(gè)或多個(gè)詞向量對(duì)應(yīng)的詞確定為所述用戶待輸入詞。
也就是,可將相似度高于所述預(yù)定閾值的一個(gè)或多個(gè)詞向量對(duì)應(yīng)的詞全部展示給用戶;或?qū)⑾嗨贫雀哂陬A(yù)定閾值的指定數(shù)量個(gè)詞向量對(duì)應(yīng)的詞展示給用戶;或按照相似度從高到低的順序?qū)υ~向量排序后,將排序靠前的一個(gè)或多個(gè)詞向量對(duì)應(yīng)的詞展示給用戶。
展示單元505,用于展示預(yù)測(cè)單元504預(yù)測(cè)的用戶待輸入詞。
展示所述預(yù)測(cè)的用戶待輸入詞時(shí),可按照相似度由高到低的順序排序該預(yù)測(cè)的用戶待輸入詞。
本實(shí)施例實(shí)現(xiàn)了結(jié)合上下文語(yǔ)境預(yù)測(cè)用戶待輸入詞,參見圖2所示的預(yù)測(cè)的用戶待輸入詞的示意圖之一以及圖3所示的預(yù)測(cè)的用戶待輸入詞的示意圖之二,當(dāng)用戶在一個(gè)統(tǒng)計(jì)單元中已輸入詞包括“我們需要治理城市”時(shí),則通過(guò)本實(shí)施例的方法預(yù)測(cè)的用戶待輸入詞包括:“霧霾”、“污染”、“垃圾”以及“能源短缺”等;當(dāng)用戶在一個(gè)統(tǒng)計(jì)單元中已輸入詞包括“我們需要規(guī)劃城市”時(shí),通過(guò)本實(shí)施例的方法預(yù)測(cè)的用戶待輸入詞包括:“建設(shè)”、“交通”、“街道”以及“發(fā)展方向”等。可見,所預(yù)測(cè)的用戶待輸入詞與上下文的語(yǔ)境是相關(guān)的。在展示預(yù)測(cè)的用戶待輸入詞時(shí)由于不可能將所有預(yù)測(cè)的用戶待輸入詞一次性展示,因此通過(guò)圖2及圖3中的向左或向后的箭頭翻頁(yè)或左右移動(dòng)來(lái)展示其它預(yù)測(cè)的用戶待輸入詞。
若當(dāng)前展示的用戶待輸入詞包含了用戶實(shí)際要輸入的詞,則用戶無(wú)需再輸入任何其它信息就可直接選擇該詞。若當(dāng)前展示的用戶待輸入詞沒(méi)有包含用戶實(shí)際要輸入的詞,則可根據(jù)用戶輸入的其它信息,更新當(dāng)前展示的用戶待輸入詞。所述其它信息即為用戶輸入的實(shí)際待輸入詞的相關(guān)字符,包括:實(shí)際待輸入詞的部分拼音、實(shí)際待輸入詞的筆畫或?qū)嶋H待輸入詞的片假名等等。
如圖6所示,另一種實(shí)施例所述裝置還可以包括:接收單元506,用于接收用戶輸入的其它信息,根據(jù)所述其它信息,更新所述預(yù)測(cè)的用戶待輸入詞的展示順序;和/或,
接收用戶輸入的其它信息,根據(jù)所述其它信息,從所述預(yù)測(cè)的用戶待輸入詞中篩選出目標(biāo)用戶待輸入詞,展示所述目標(biāo)用戶待輸入詞。
以所述其它信息為實(shí)際待輸入詞的拼音首字母為例,假如,初始展示的預(yù)測(cè)的用戶待輸入詞如圖2所示,當(dāng)用戶輸入拼音“s”,則更新后的用戶待 輸入詞如圖4所示。由于在展示的用戶待輸入詞中“水污染”的拼音首字母為“s”,其它用戶待輸入詞的拼音首字母均為非“s”,因此將詞“水污染”的排序提前,也就是將與用戶輸入的其它信息相符的用戶待輸入詞的排序提前。或者直接將與用戶輸入的其它信息不符的用戶待輸入詞隱藏,而將與用戶輸入的其它信息相符的用戶待輸入詞篩選為目標(biāo)用戶待輸入詞,如,可以將圖4中的“水污染”、“市容”、“市貌”以及“樹木”篩選為目標(biāo)用戶待輸入詞,并展示該目標(biāo)用戶待輸入詞。這樣若用戶實(shí)際待輸入詞為“水污染”時(shí),則可在輸入該拼音首字母“s”后,即可直接選擇該詞,而無(wú)需輸入該詞的全部拼音,提升了輸入速度。
如圖7所示,另一種實(shí)施例所述裝置還可以包括:訓(xùn)練單元507,用于重復(fù)執(zhí)行下列過(guò)程:
從語(yǔ)料庫(kù)中選取樣本,對(duì)所述樣本進(jìn)行自然語(yǔ)言處理,得到多個(gè)連續(xù)的詞;
在所述詞與詞向量對(duì)應(yīng)表中查詢所述樣本中除最后一個(gè)詞外的所有其它詞對(duì)應(yīng)的詞向量,對(duì)于所述詞與詞向量對(duì)應(yīng)表中未記錄詞向量的詞,則為其隨機(jī)分配對(duì)應(yīng)的詞向量;
對(duì)所述樣本中除最后一個(gè)詞外的所有其它詞對(duì)應(yīng)的詞向量進(jìn)行預(yù)定線性變換或非線性變換,得到預(yù)測(cè)詞向量;
將所述預(yù)測(cè)詞向量輸入語(yǔ)音訓(xùn)練模型,判斷輸出的結(jié)果是否與所述最后一個(gè)詞相符,其中,所述語(yǔ)音訓(xùn)練模型是預(yù)定義的用于根據(jù)輸入的詞向量得出該詞向量對(duì)應(yīng)的詞的機(jī)器學(xué)習(xí)模型;
若不相符,則調(diào)整所述除最后一個(gè)詞外的所有其它詞對(duì)應(yīng)的詞向量,直到輸出結(jié)果與所述最后一個(gè)詞相符為止;
利用調(diào)整后的除最后一個(gè)詞外的所有其它詞對(duì)應(yīng)的詞向量更新所述詞與詞向量對(duì)應(yīng)表中所述除最后一個(gè)詞外的所有其它詞對(duì)應(yīng)的詞向量。
本申請(qǐng)實(shí)施例裝置的各功能模塊的功能,可以通過(guò)上述方法實(shí)施例的各 步驟來(lái)實(shí)現(xiàn),因此,本申請(qǐng)?zhí)峁┑难b置的具體工作過(guò)程,在此不復(fù)贅述。
本申請(qǐng)?zhí)峁┑念A(yù)測(cè)用戶待輸入詞的裝置,讀取單元501從當(dāng)前統(tǒng)計(jì)單元中讀取用戶輸入的自然語(yǔ)言,所述統(tǒng)計(jì)單元是用戶輸入的自然語(yǔ)言中在預(yù)定標(biāo)點(diǎn)符號(hào)之間的語(yǔ)義單位;處理單元502對(duì)所述自然語(yǔ)言進(jìn)行自然語(yǔ)言處理,得到已輸入詞;查詢單元503在詞與詞向量對(duì)應(yīng)表中查詢所述已輸入詞對(duì)應(yīng)的詞向量,其中,所述詞與詞向量對(duì)應(yīng)表用于記錄包括所述已輸入詞的多個(gè)詞以及所述多個(gè)詞對(duì)應(yīng)的詞向量;預(yù)測(cè)單元504根據(jù)查詢單元503查詢的所述已輸入詞對(duì)應(yīng)的詞向量以及所述多個(gè)詞對(duì)應(yīng)的詞向量,預(yù)測(cè)用戶待輸入詞;展示單元505展示預(yù)測(cè)的用戶待輸入詞。實(shí)現(xiàn)了結(jié)合上下文語(yǔ)境預(yù)測(cè)用戶待輸入詞,提高了預(yù)測(cè)的用戶待輸入詞的命中率,從而可以有效提升輸入法的輸入速度。
專業(yè)人員應(yīng)該還可以進(jìn)一步意識(shí)到,結(jié)合本文中所公開的實(shí)施例描述的各示例的對(duì)象及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來(lái)實(shí)現(xiàn),為了清楚地說(shuō)明硬件和軟件的可互換性,在上述說(shuō)明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來(lái)執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來(lái)使用不同方法來(lái)實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本申請(qǐng)的范圍。
結(jié)合本文中所公開的實(shí)施例描述的方法或算法的步驟可以用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來(lái)實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器(RAM)、內(nèi)存、只讀存儲(chǔ)器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動(dòng)磁盤、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。
以上所述的具體實(shí)施方式,對(duì)本申請(qǐng)的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說(shuō)明,所應(yīng)理解的是,以上所述僅為本申請(qǐng)的具體實(shí)施方式而已,并不用于限定本申請(qǐng)的保護(hù)范圍,凡在本申請(qǐng)的精神和原則之內(nèi),所做 的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請(qǐng)的保護(hù)范圍之內(nèi)。