本申請涉及計算機技術領域,具體涉及互聯網技術領域,尤其涉及用于生成同語言平行文本的方法和裝置。
背景技術:
人工智能(artificialintelligence,ai)是研究、開發用于模擬、延伸和擴展人的智能的理論、方法、技術及應用系統的一門新的技術科學。人工智能是計算機科學的一個分支,它企圖了解智能的實質,并生產出一種新的能以人類智能相似的方式做出反應的智能機器,該領域的研究包括機器人、語言識別、圖像識別、自然語言處理和專家系統等。人工智能領域中的自然語言處理是計算機科學領域與人工智能領域中的一個重要方向。它研究能實現人與計算機之間用自然語言進行有效通信的各種理論和方法。為一個文本生成與該文本語言相同語義相似的同語言平行文本是自然語言處理中的重要組成部分。同語言平行文本的應用場合很多,作為示例,目前,搜索引擎在對用戶輸入的查詢語句(query)進行檢索時,由于用戶輸入查詢語句的隨意性,如果使用用戶輸入的查詢語句進行檢索,往往效果不好,為了能夠獲得更好的檢索效果,通常都會對查詢語句生成同語言平行文本,然后用所生成的同語言平行文本進行檢索。
然而,目前在生成一個文本的同語言平行文本時,通常是預先采用統計對齊算法或者規則對齊算法,基于平行語料庫生成替換詞典;然后,根據先驗知識和替換詞典,生成替換后的同語言平行文本。現有的生成同語言平行文本的方法,對齊算法復雜,需要人工干預較多,所生成的替換詞典準確率低,而且需要存儲替換詞典,通常替換詞典的所需存儲空間大小都在幾千兆字節,從而存在著所需存儲空間大的問題。
技術實現要素:
本申請的目的在于提出一種改進的用于生成同語言平行文本的方法和裝置,來解決以上背景技術部分提到的技術問題。
第一方面,本申請實施例提供了一種用于生成同語言平行文本的方法,該方法包括:獲取源切分詞序列和預先訓練的詞向量表,其中,上述詞向量表用于表征詞與詞向量之間的對應關系;根據上述詞向量表,確定與上述源切分詞序列對應的源詞向量序列;將上述源詞向量序列導入預先訓練的第一循環神經網絡模型,生成用于表征上述源切分詞序列的語義的預設維數的中間向量,其中,上述第一循環神經網絡模型用于表征詞向量序列與上述預設維數的向量之間的對應關系;將上述中間向量導入預先訓練的第二循環神經網絡模型,生成與上述中間向量對應的目標詞向量序列,其中,上述第二循環神經網絡模型用于表征上述預設維數的向量與詞向量序列之間的對應關系;根據上述詞向量表,確定與上述目標詞向量序列對應的目標切分詞序列,并將上述目標切分詞序列確定為與上述源切分詞序列對應的同語言平行文本。
在一些實施例中,上述獲取源切分詞序列和預先訓練的詞向量表之前,上述方法還包括:接收用戶使用終端發來的查詢請求,上述查詢請求包括查詢語句;對上述查詢語句進行預處理,得到上述查詢語句的切分詞序列,上述預處理包括分詞處理和去除特殊符號;將所得到的切分詞序列確定為源切分詞序列。
在一些實施例中,上述將上述目標切分詞序列確定為與上述源切分詞序列對應的同語言平行文本之后,上述方法還包括:根據上述同語言平行文本進行搜索,得到搜索結果;將上述搜索結果發送至上述終端。
在一些實施例中,上述獲取源切分詞序列和預先訓練的詞向量表之前,上述方法還包括訓練步驟,上述訓練步驟包括:獲取至少一對同語言平行切分詞序列,其中,每對同語言平行切分詞序列包括語言相同且語義相同的第一切分詞序列和第二切分詞序列;獲取預設的詞向量表、預設的第一循環神經網絡模型和預設的第二循環神經網絡模型;對于上述至少一對同語言平行切分詞序列中的每對同語言平行切分詞序列,根據上述預設的詞向量表,確定該對同語言平行切分詞序列的第一切分詞序列對應的第一切分詞向量序列;將上述第一切分詞向量序列導入上述預設的第一循環神經網絡模型,得到與上述第一切分詞向量序列對應的上述預設維數的向量;將所得到的向量導入上述預設的第二循環神經網絡模型,得到與所得到的向量對應的第二切分詞向量序列;根據上述預設的詞向量表,確定與上述第二切分詞向量序列對應的詞序列;根據所得到的詞序列與該對同語言平行切分詞序列的第二切分詞序列之間的差異信息,對上述預設的詞向量表、上述預設的第一循環神經網絡模型和上述預設的第二循環神經網絡模型進行調整;將上述預設的詞向量表、上述預設的第一循環神經網絡模型和上述預設的第二循環神經網絡模型分別確定為訓練得到的詞向量表、第一循環神經網絡模型和第二循環神經網絡模型。
在一些實施例中,上述第一循環神經網絡模型和上述第二循環神經網絡模型均為時間循環神經網絡模型。
在一些實施例中,上述根據上述詞向量表,確定與上述源切分詞序列對應的源詞向量序列,包括:對上述源切分詞序列中的每個切分詞,在上述詞向量表中查詢與該切分詞匹配的詞向量,并將查找到的詞向量確定為上述源詞向量序列中與該切分詞在上述源切分詞序列中的位置相同的位置對應的源詞向量。
在一些實施例中,上述根據上述詞向量表,確定與上述目標詞向量序列對應的目標切分詞序列,包括:對于上述目標詞向量序列中的每個目標詞向量,從上述詞向量表中選取與該目標詞向量的相似度最高的詞向量所對應的詞,將所選取的詞確定為上述目標切分詞序列中與該目標詞向量在上述目標詞向量序列中的位置相同的位置對應的目標切分詞。
第二方面,本申請實施例提供了一種用于生成同語言平行文本的裝置,該裝置包括:獲取單元,配置用于獲取源切分詞序列和預先訓練的詞向量表,其中,上述詞向量表用于表征詞與詞向量之間的對應關系;第一確定單元,配置用于根據上述詞向量表,確定與上述源切分詞序列對應的源詞向量序列;第一生成單元,配置用于將上述源詞向量序列導入預先訓練的第一循環神經網絡模型,生成用于表征上述源切分詞序列的語義的預設維數的中間向量,其中,上述第一循環神經網絡模型用于表征詞向量序列與上述預設維數的向量之間的對應關系;第二生成單元,配置用于將上述中間向量導入預先訓練的第二循環神經網絡模型,生成與上述中間向量對應的目標詞向量序列,其中,上述第二循環神經網絡模型用于表征上述預設維數的向量與詞向量序列之間的對應關系;第二確定單元,配置用于根據上述詞向量表,確定與上述目標詞向量序列對應的目標切分詞序列,并將上述目標切分詞序列確定為與上述源切分詞序列對應的同語言平行文本。
在一些實施例中,上述裝置還包括:接收單元,配置用于接收用戶使用終端發來的查詢請求,上述查詢請求包括查詢語句;預處理單元,配置用于對上述查詢語句進行預處理,得到上述查詢語句的切分詞序列,上述預處理包括分詞處理和去除特殊符號;第三確定單元,配置用于將所得到的切分詞序列確定為源切分詞序列。
在一些實施例中,上述裝置還包括:搜索單元,配置用于根據上述同語言平行文本進行搜索,得到搜索結果;發送單元,配置用于將上述搜索結果發送至上述終端。
在一些實施例中,上述裝置還包括訓練單元,上述訓練單元包括:第一獲取模塊,配置用于獲取至少一對同語言平行切分詞序列,其中,每對同語言平行切分詞序列包括語言相同且語義相同的第一切分詞序列和第二切分詞序列;第二獲取模塊,配置用于獲取預設的詞向量表、預設的第一循環神經網絡模型和預設的第二循環神經網絡模型;調整模塊,配置用于對于上述至少一對同語言平行切分詞序列中的每對同語言平行切分詞序列,根據上述預設的詞向量表,確定該對同語言平行切分詞序列的第一切分詞序列對應的第一切分詞向量序列;將上述第一切分詞向量序列導入上述預設的第一循環神經網絡模型,得到與上述第一切分詞向量序列對應的上述預設維數的向量;將所得到的向量導入上述預設的第二循環神經網絡模型,得到與所得到的向量對應的第二切分詞向量序列;根據上述預設的詞向量表,確定與上述第二切分詞向量序列對應的詞序列;根據所得到的詞序列與該對同語言平行切分詞序列的第二切分詞序列之間的差異信息,對上述預設的詞向量表、上述預設的第一循環神經網絡模型和上述預設的第二循環神經網絡模型進行調整;確定模塊,配置用于將上述預設的詞向量表、上述預設的第一循環神經網絡模型和上述預設的第二循環神經網絡模型分別確定為訓練得到的詞向量表、第一循環神經網絡模型和第二循環神經網絡模型。
在一些實施例中,上述第一循環神經網絡模型和上述第二循環神經網絡模型均為時間循環神經網絡模型。
在一些實施例中,上述第一確定單元進一步配置用于:對上述源切分詞序列中的每個切分詞,在上述詞向量表中查詢與該切分詞匹配的詞向量,并將查找到的詞向量確定為上述源詞向量序列中與該切分詞在上述源切分詞序列中的位置相同的位置對應的源詞向量。
在一些實施例中,上述第二確定單元進一步配置用于:對于上述目標詞向量序列中的每個目標詞向量,從上述詞向量表中選取與該目標詞向量的相似度最高的詞向量所對應的詞,將所選取的詞確定為上述目標切分詞序列中與該目標詞向量在上述目標詞向量序列中的位置相同的位置對應的目標切分詞。
第三方面,本申請實施例提供了一種電子設備,該電子設備包括:一個或多個處理器;存儲裝置,用于存儲一個或多個程序,當上述一個或多個程序被上述一個或多個處理器執行時,使得上述一個或多個處理器實現如第一方面中任一實現方式描述的方法。
第四方面,本申請實施例提供了一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,該計算機程序被處理器執行時實現如第一方面中任一實現方式描述的方法。
本申請實施例提供的用于生成同語言平行文本的方法和裝置,通過根據詞向量表,確定與對應的源詞向量序列,再將源詞向量序列導入預先訓練的第一循環神經網絡模型,生成用于表征源切分詞序列的語義的預設維數的中間向量,而后將中間向量導入預先訓練的第二循環神經網絡模型,生成與中間向量對應的目標詞向量序列,接著再根據上述詞向量表,確定與目標詞向量序列對應的目標切分詞序列,最后并將目標切分詞序列確定為與源切分詞序列對應的同語言平行文本。從而,生成過程不需要人工干預,降低了生成同語言平行文本的算法復雜性,并且不需要存儲占用空間較大的替換詞典(通常大小在幾千兆字節),只需要存儲詞向量表、第一循環神經網絡模型的參數和第二循環神經網絡模型的參數(三者總共約占用空間為幾十兆),從而減少了所需的存儲空間。
附圖說明
通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細描述,本申請的其它特征、目的和優點將會變得更明顯:
圖1是本申請可以應用于其中的示例性系統架構圖;
圖2是根據本申請的用于生成同語言平行文本的方法的一個實施例的流程圖;
圖3是根據本申請的用于生成同語言平行文本的方法的一個應用場景的示意圖;
圖4是根據本申請的用于生成同語言平行文本的方法的又一個實施例的流程圖;
圖5是根據本申請的用于生成同語言平行文本的裝置的一個實施例的結構示意圖;
圖6是適于用來實現本申請實施例的電子設備的計算機系統的結構示意圖。
具體實施方式
下面結合附圖和實施例對本申請作進一步的詳細說明。可以理解的是,此處所描述的具體實施例僅僅用于解釋相關發明,而非對該發明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與有關發明相關的部分。
需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結合實施例來詳細說明本申請。
圖1示出了可以應用本申請的用于生成同語言平行文本的方法或用于生成同語言平行文本的裝置的實施例的示例性系統架構100。
如圖1所示,系統架構100可以包括終端設備101、102、103,網絡104和服務器105。網絡104用以在終端設備101、102、103和服務器105之間提供通信鏈路的介質。網絡104可以包括各種連接類型,例如有線、無線通信鏈路或者光纖電纜等等。
用戶可以使用終端設備101、102、103通過網絡104與服務器105交互,以接收或發送消息等。終端設備101、102、103上可以安裝有各種客戶端應用,例如網頁瀏覽器應用、購物類應用、搜索類應用、即時通信工具、郵箱客戶端、社交平臺軟件等。
終端設備101、102、103可以是具有顯示屏的各種電子設備,包括但不限于智能手機、平板電腦、膝上型便攜計算機和臺式計算機等等。
服務器105可以是提供各種服務的服務器,例如從終端設備101、102、103上顯示的搜索類網站提供支持的后臺搜索服務器。后臺搜索服務器可以對接收到的搜索請求等數據進行分析等處理,并將處理結果(例如網頁鏈接數據)反饋給終端設備。
需要說明的是,本申請實施例所提供的用于生成同語言平行文本的方法一般由服務器105執行,相應地,用于生成同語言平行文本的裝置一般設置于服務器105中。在一些情況下,本申請實施例所提供的用于生成同語言平行文本的方法也可以不需要終端設備101、102、103,而可以由服務器105單獨執行,這時,服務器105既可以是具有服務器功能的服務器,也可以是不具有服務器功能但具有運算功能的一般電子設備。
應該理解,圖1中的終端設備、網絡和服務器的數目僅僅是示意性的。根據實現需要,可以具有任意數目的終端設備、網絡和服務器。
繼續參考圖2,其示出了根據本申請的用于生成同語言平行文本的方法的一個實施例的流程200。該用于生成同語言平行文本的方法,包括以下步驟:
步驟201,獲取源切分詞序列和預先訓練的詞向量表。
在本實施例中,用于生成同語言平行文本的方法運行于其上的電子設備(例如圖1所示的服務器)可以本地或者遠程地從與上述電子設備網絡連接的其他電子設備獲取源切分詞序列和預先訓練的詞向量表。
在本實施例中,切分詞是指不帶有特殊符號或者標點符號的詞或短語。切分詞序列是由按順序排列的至少一個切分詞組成的序列。源切分詞序列可以是預先存儲在上述電子設備本地的待生成同語言平行文本的切分詞序列。源切分詞序列也可以是由用戶指定的待生成同語言平行文本的切分詞序列。源切分詞序列還可以是上述電子設備從與上述電子設備網絡連接的其他電子設備(例如,圖1所示的終端設備)接收到的待生成同語言平行文本的切分詞序列。一個文本的平行文本是指與該文本的語義相似的文本。一個文本的同語言平行文本是指與該文本語言相同且義相似的文本。例如,“訂直達車”是“直達車訂票”的同語言平行文本,“大米有沒有蛋白質”是“米飯有沒有蛋白質”的同語言平行文本。
在本實施例中,詞向量表用于將詞或短語映射成實數向量,所映射的實數向量就是詞向量。通過使用詞向量表,可以實現把自然語言中的特征從詞匯表大小的高維度空間降低到一個相對低的維度空間。衡量詞向量表的原則為:語義相近的兩個詞的詞向量之間的相似度應該比較高,反之較低。作為示例,詞向量可以是用distributedrepresentation(或distributionalrepresentation)表示的一種實數向量。這里的詞向量表可以是預先訓練好的。例如,詞向量表中的一條記錄可以是詞為“北京”,對應的詞向量為“-0.1654,0.8764,0.5364,-0.6354,0.1645”,這里詞向量具有5維,實際應用中可以為任意維數,本申請對此不做具體限定。
需要說明的是,如何訓練詞向量表是目前廣泛研究和應用的現有技術,在此不再贅述。
作為示例,可以首先獲取包括大量語句的語句庫以及每個語句所包括的詞語;然后,對于詞語庫中的每個詞語,獲取語句庫中包含該詞語的語句,進而在這些語句中,獲取與該詞語相鄰的上下文詞語,基于使詞語與上下文詞語的關聯度之和最大的原則,計算每個詞語的詞向量。
作為示例,也可以獲取語句庫中包含的每個待分析詞語在語句庫中所屬的各語句的預設的類型,得到每個待分析詞語對應的類型集合;將每個待分析詞語的詞向量設置為訓練變量,根據每個待分析詞語對應的類型集合和詞向量,建立各待分析詞語之間關聯度的總和的計算模型,作為訓練模型;根據上述訓練模型,基于使關聯度的總和最大的原則,對訓練變量進行訓練,得到每個待分析詞語的詞向量。
步驟202,根據詞向量表,確定與源切分詞序列對應的源詞向量序列。
在本實施例中,根據步驟201中得到的詞向量表,上述電子設備(例如圖1所示的服務器)可以確定與步驟201所獲取的源切分詞序列對應的源詞向量序列。這里,源詞向量序列是用于生成源切分詞序列的同語言平行文本的詞向量序列。源詞向量序列是由按順序排列的至少一個源詞向量組成的。源詞向量序列中的每個源詞向量與源切分詞序列中的每個源切分詞一一對應,且源詞向量序列中的每個源詞向量是根據源切分詞序列中與該源詞向量對應的源切分詞在詞向量表中查詢得到的。
在本實施例的一些可選的實現方式中,步驟202可以如下進行:對源切分詞序列中的每個切分詞,在詞向量表中查詢與該切分詞匹配的詞向量,并將查找到的詞向量確定為源詞向量序列中與該切分詞在源切分詞序列中的位置相同的位置對應的源詞向量。
步驟203,將源詞向量序列導入預先訓練的第一循環神經網絡模型,生成用于表征源切分詞序列的語義的預設維數的中間向量。
在本實施例中,用于生成同語言平行文本的方法運行于其上的電子設備上可以將源詞向量序列導入預先訓練的第一循環神經網絡模型,生成用于表征源切分詞序列的語義的預設維數的中間向量。其中,第一循環神經網絡模型用于表征詞向量序列與預設維數的向量之間的對應關系。
實踐中,循環神經網絡(recurrentneuralnetworks,rnns)模型不同于傳統的fnns(feed-forwardneuralnetworks,前向反饋神經網絡),rnns引入了定向循環,能夠處理那些輸入之間前后關聯的問題。在傳統的神經網絡模型中,是從輸入層到隱含層再到輸出層,層與層之間是全連接的,每層之間的節點是無連接的。但是這種普通的神經網絡對于處理序列相關的問題卻無能無力。而在循環神經網絡模型中,一個序列當前的輸出與前面的輸出也有關。具體的表現形式為循環神經網絡網絡會對前面的信息進行記憶并應用于當前輸出的計算中,即隱藏層之間的節點不再無連接而是有連接的,并且隱藏層的輸入不僅包括輸入層的輸出還包括上一時刻隱藏層的輸出。理論上,循環神經網絡能夠對任何長度的序列數據進行處理。但是在實踐中,為了降低復雜性往往假設當前的狀態只與前面的幾個狀態相關。
作為示例,第一循環神經網絡模型可以是以大量的詞向量序列和對應的預設維數的向量作為訓練數據,使用任意的非線性激活函數(例如,sigmoid函數、softplus函數、雙極性sigmoid函數等)作為預設的第一循環神經網絡模型的神經元激活函數,對所輸入的詞向量序列進行計算,將與該輸入的詞向量序列對應的預設維數的向量作為輸出,訓練初始的第一循環神經網絡模型而得到的。
步驟204,將中間向量導入預先訓練的第二循環神經網絡模型,生成與中間向量對應的目標詞向量序列。
在本實施例中,上述電子設備可以將步驟203中所生成的中間向量導入預先訓練的第二循環神經網絡模型,生成與中間向量對應的目標詞向量序列。其中,第二循環神經網絡模型用于表征預設維數的向量與詞向量序列之間的對應關系。這里,目標詞向量序列是由按順序排列的至少一個目標詞向量組成的,目標詞向量序列中目標詞向量的個數可以與源詞向量序列中源詞向量的個數相同,也可以與源詞向量序列中源詞向量的個數不同,即,目標詞向量序列中目標詞向量的個數不是固定不變的。
作為示例,第二循環神經網絡模型可以是以大量的預設維數的向量和對應的詞向量序列作為訓練數據,使用任意的非線性激活函數(例如,sigmoid函數、softplus函數、雙極性sigmoid函數等)作為預設的第二循環神經網絡模型的神經元激活函數,對所輸入的預設維數的向量進行計算,將與所輸入的預設維數的向量對應的詞向量序列作為輸出,訓練初始的第二循環神經網絡模型而得到的。
步驟205,根據詞向量表,確定與目標詞向量序列對應的目標切分詞序列,并將目標切分詞序列確定為與源切分詞序列對應的同語言平行文本。
在本實施例中,上述電子設備可以根據步驟201中獲取的詞向量表,確定與步驟204中所生成的目標詞向量序列對應的目標切分詞序列,并將目標切分詞序列確定為與源切分詞序列對應的同語言平行文本。這里,目標切分詞序列是由按順序排列的至少一個目標切分詞組成的。目標切分詞序列中的每個目標切分詞與目標詞向量序列中的每個目標詞向量一一對應,且目標切分詞序列中的每個目標切分詞是根據目標詞向量序列中與該目標切分詞對應的目標詞向量在詞向量表中查詢得到的。
在本實施例的一些可選的實現方式中,步驟205可以如下進行:
對于目標詞向量序列中的每個目標詞向量,從詞向量表中選取與該目標詞向量的相似度最高的詞向量所對應的詞,將所選取的詞確定為目標切分詞序列中與該目標詞向量在目標詞向量序列中的位置相同的位置對應的目標切分詞。
作為示例,可以計算兩個詞向量之間的余弦相似度作為兩個詞向量之間的相似度。
作為示例,還可以計算兩個詞向量之間的歐式距離,歐式距離越近,則兩個詞向量之間的相似度越高,反之相似度越低。
由于步驟201中所獲取的詞向量表可以將源切分詞映射到源詞向量,在步驟205中將目標詞向量映射到目標切分詞時,使用的還是步驟201中所獲取的詞向量表,即是與將源切分詞映射到源詞切分向量時相同的詞向量表,因此,按照步驟201中所獲取的詞向量表,將目標詞向量序列映射到目標切分詞序列,所得到的目標切分詞序列與源切分詞序列的語言相同且語義相似,即,所得到的目標切分詞序列為與源切分詞序列對應的同語言平行文本。
在本實施例的一些可選的實現方式中,詞向量表、第一循環神經網絡模型和第二循環神經網絡模型可以是通過如下訓練步驟訓練得到的:
首先,獲取至少一對同語言平行切分詞序列。
這里,每對同語言平行切分詞序列包括語言相同且語義相同的第一切分詞序列和第二切分詞序列。作為示例,所獲取的每對同語言平行切分詞序列可以是由技術人員人工標注的語言相同且語義相同的第一切分詞序列和第二切分詞序列。
然后,獲取預設的詞向量表、預設的第一循環神經網絡模型和預設的第二循環神經網絡模型。
接著,對于至少一對同語言平行切分詞序列中的每對同語言平行切分詞序列,根據預設的詞向量表,確定該對同語言平行切分詞序列的第一切分詞序列對應的第一切分詞向量序列;將第一切分詞向量序列導入預設的第一循環神經網絡模型,得到與第一切分詞向量序列對應的預設維數的向量;將所得到的向量導入預設的第二循環神經網絡模型,得到與所得到的向量對應的第二切分詞向量序列;根據預設的詞向量表,確定與第二切分詞向量序列對應的詞序列;根據所得到的詞序列與該對同語言平行切分詞序列的第二切分詞序列之間的差異信息,對預設的詞向量表、預設的第一循環神經網絡模型和預設的第二循環神經網絡模型進行調整。作為示例,調整詞向量表可以是調整詞向量表中詞與詞對應的詞向量中各維的取值,調整第一循環神經網絡模型可以是調整第一循環神經網絡模型的輸入矩陣、隱藏層矩陣和輸出矩陣,調整第二循環神經網絡模型可以是調整第二循環神經網絡模型的輸入矩陣、隱藏層矩陣和輸出矩陣。
最后,將預設的詞向量表、預設的第一循環神經網絡模型和預設的第二循環神經網絡模型分別確定為訓練得到的詞向量表、第一循環神經網絡模型和第二循環神經網絡模型。這里,預設的詞向量表、預設的第一循環神經網絡模型和預設的第二循環神經網絡模型中的各項參數已經在訓練過程中得到了調整和優化,在使用時可以達到更好的效果。
在本實施例的一些可選的實現方式中,第一循環神經網絡模型和第二循環神經網絡模型可以均為時間循環神經網絡模型,例如lstm(longshort-termmemory)時間循環神經網絡模型。
繼續參見圖3,圖3是根據本實施例的用于生成同語言平行文本的方法的應用場景的一個示意圖。在圖3的應用場景中,首先電子設備獲取了源切分詞序列301“訂直達車”和詞向量表302,然后通過詞向量表302確定源切分詞序列301的源詞向量序列303,再將源詞向量序列303導入預先訓練的第一循環神經網絡模型304,生成中間向量305,而后將中間向量305導入預先訓練的第二循環神經網絡模型306,生成目標詞向量序列307,最后通過詞向量表302將目標詞向量序列307確定目標切分詞序列308“直達車訂票”,從而生成了源切分詞序列301“訂直達車”對應的同語言平行文本“直達車訂票”。
本申請的上述實施例提供的方法通過根據詞向量表,確定與對應的源詞向量序列,再將源詞向量序列導入預先訓練的第一循環神經網絡模型,生成用于表征源切分詞序列的語義的預設維數的中間向量,而后將中間向量導入預先訓練的第二循環神經網絡模型,生成與中間向量對應的目標詞向量序列,接著再根據上述詞向量表,確定與目標詞向量序列對應的目標切分詞序列,最后并將目標切分詞序列確定為與源切分詞序列對應的同語言平行文本。從而降低了生成同語言平行文本的算法復雜性,并減少了所需的存儲空間。
進一步參考圖4,其示出了用于生成同語言平行文本的方法的又一個實施例的流程400。該用于生成同語言平行文本的方法的流程400,包括以下步驟:
步驟401,接收用戶使用終端發來的查詢請求。
在本實施例中,用于生成同語言平行文本的方法運行于其上的電子設備(例如圖1所示的服務器)可以通過有線連接方式或者無線連接方式接收用戶使用終端發來的查詢請求。這里,查詢請求可以包括查詢語句。作為示例,用戶可以使用終端上安裝的瀏覽器訪問搜索類網站,并輸入查詢語句,而后向對上述搜索類網站提供支持的上述電子設備發送包括上述查詢語句的查詢請求,從而上述電子設備可以接收到上述查詢請求。
步驟402,對查詢語句進行預處理,得到查詢語句的切分詞序列。
在本實施例中,上述電子設備可以對查詢語句進行預處理,得到查詢語句的切分詞序列。這里,預處理可以包括分詞處理和去除特殊符號。
分詞處理就是將連續的字序列按照一定的規范重新組合成詞序列的過程。需要說明的是分詞處理是本領域技術人員廣泛研究和應用的現有技術,在此不再贅述。作為示例,分詞處理可以采用基于字符串匹配的分詞方法、基于理解的分詞方法和基于統計的分詞方法。
在這里,特殊符號指相對于傳統或常用的符號外,使用頻率較少且難以直接輸入的符號,比如:數學符號、單位符號、制表符等。去除特殊符號就是指對待去除特殊符號的文本,將其中所包括的特殊符號去除,保留其中非特殊符號的過程。
經過了上述的預處理,可以得到查詢語句的切分詞序列。這里,切分詞序列是由按照順序排列的至少一個切分詞組成的。
步驟403,將所得到的切分詞序列確定為源切分詞序列。
在本實施例中,上述電子設備可以將步驟402中所得到的切分詞序列確定為源切分詞序列,以供后續步驟使用。
步驟404,獲取源切分詞序列和預先訓練的詞向量表。
步驟405,根據詞向量表,確定與源切分詞序列對應的源詞向量序列。
步驟406,將源詞向量序列導入預先訓練的第一循環神經網絡模型,生成用于表征源切分詞序列的語義的預設維數的中間向量。
步驟407,將中間向量導入預先訓練的第二循環神經網絡模型,生成與中間向量對應的目標詞向量序列。
步驟408,根據詞向量表,確定與目標詞向量序列對應的目標切分詞序列,并將目標切分詞序列確定為與源切分詞序列對應的同語言平行文本。
在本實施例中,步驟404、步驟405、步驟406、步驟407和步驟408的具體操作與圖2所示的實施例中步驟201、步驟202、步驟203、步驟204和步驟205的具體操作基本相同,在此不再贅述。
步驟409,根據同語言平行文本進行搜索,得到搜索結果。
在本實施例中,上述電子設備可以在步驟408中確定了與源切分詞序列對應的同語言平行文本后,根據同語言平行文本進行搜索,得到搜索結果。作為示例,搜索結果可以包括與同語言平行文本相關的網頁的網頁鏈接。由于用戶在終端輸入查詢語句的時候比較隨意,如果按照用戶輸入的內容進行搜索,召回率較低。而采用步驟404到步驟408的操作,生成了查詢語句的切分詞序列對應的同語言平行文本后,所生成的同語言平行文本與查詢語句的語義近似,但更適合用于搜索,從而可以提高搜索的召回率。
步驟410,將搜索結果發送至終端。
在本實施例中,上述電子設備可以將步驟409中搜索得到的搜索結果發送至步驟401中接收到查詢請求的終端。
從圖4中可以看出,與圖2對應的實施例相比,本實施例中的用于生成同語言平行文本的方法的流程400多出了從終端接收查詢請求并對查詢請求中的查詢語句進行預處理以及根據所確定的同語言平行文本進行搜索并將搜索結果返回終端的步驟。由此,本實施例描述的方案可以提高搜索引擎搜索的召回率。
進一步參考圖5,作為對上述各圖所示方法的實現,本申請提供了一種用于生成同語言平行文本的裝置的一個實施例,該裝置實施例與圖2所示的方法實施例相對應,該裝置具體可以應用于各種電子設備中。
如圖5所示,本實施例的用于生成同語言平行文本的裝置500包括:獲取單元501、第一確定單元502、第一生成單元503、第二生成單元504和第二確定單元505。其中,獲取單元501,配置用于獲取源切分詞序列和預先訓練的詞向量表,其中,上述詞向量表用于表征詞與詞向量之間的對應關系;第一確定單元502,配置用于根據上述詞向量表,確定與上述源切分詞序列對應的源詞向量序列;第一生成單元503,配置用于將上述源詞向量序列導入預先訓練的第一循環神經網絡模型,生成用于表征上述源切分詞序列的語義的預設維數的中間向量,其中,上述第一循環神經網絡模型用于表征詞向量序列與上述預設維數的向量之間的對應關系;第二生成單元504,配置用于將上述中間向量導入預先訓練的第二循環神經網絡模型,生成與上述中間向量對應的目標詞向量序列,其中,上述第二循環神經網絡模型用于表征上述預設維數的向量與詞向量序列之間的對應關系;第二確定單元505,配置用于根據上述詞向量表,確定與上述目標詞向量序列對應的目標切分詞序列,并將上述目標切分詞序列確定為與上述源切分詞序列對應的同語言平行文本。
在本實施例中,用于生成同語言平行文本的裝置500的獲取單元501、第一確定單元502、第一生成單元503、第二生成單元504和第二確定單元505的具體處理及其所帶來的技術效果可分別參考圖2對應實施例中步驟201、步驟202、步驟203、步驟204和步驟205的相關說明,在此不再贅述。
在本實施例的一些可選的實現方式中,上述用于生成同語言平行文本的裝置500還可以包括:接收單元506,配置用于接收用戶使用終端發來的查詢請求,上述查詢請求包括查詢語句;預處理單元507,配置用于對上述查詢語句進行預處理,得到上述查詢語句的切分詞序列,上述預處理包括分詞處理和去除特殊符號;第三確定單元508,配置用于將所得到的切分詞序列確定為源切分詞序列。接收單元506、預處理單元507和第三確定單元508的具體處理及其所帶來的技術效果可分別參考圖4對應實施例中步驟401、步驟402和步驟403的相關說明,在此不再贅述。
在本實施例的一些可選的實現方式中,上述用于生成同語言平行文本的裝置500還可以包括:搜索單元509,配置用于根據上述同語言平行文本進行搜索,得到搜索結果;發送單元510,配置用于將上述搜索結果發送至上述終端。搜索單元509和發送單元510的具體處理及其所帶來的技術效果可分別參考圖4對應實施例中步驟409和步驟410的相關說明,在此不再贅述。
在本實施例的一些可選的實現方式中,上述用于生成同語言平行文本的裝置500還可以包括訓練單元511,上述訓練單元511可以包括:第一獲取模塊5111,配置用于獲取至少一對同語言平行切分詞序列,其中,每對同語言平行切分詞序列包括語言相同且語義相同的第一切分詞序列和第二切分詞序列;第二獲取模塊5112,配置用于獲取預設的詞向量表、預設的第一循環神經網絡模型和預設的第二循環神經網絡模型;調整模塊5113,配置用于對于上述至少一對同語言平行切分詞序列中的每對同語言平行切分詞序列,根據上述預設的詞向量表,確定該對同語言平行切分詞序列的第一切分詞序列對應的第一切分詞向量序列;將上述第一切分詞向量序列導入上述預設的第一循環神經網絡模型,得到與上述第一切分詞向量序列對應的上述預設維數的向量;將所得到的向量導入上述預設的第二循環神經網絡模型,得到與所得到的向量對應的第二切分詞向量序列;根據上述預設的詞向量表,確定與上述第二切分詞向量序列對應的詞序列;根據所得到的詞序列與該對同語言平行切分詞序列的第二切分詞序列之間的差異信息,對上述預設的詞向量表、上述預設的第一循環神經網絡模型和上述預設的第二循環神經網絡模型進行調整;確定模塊5114,配置用于將上述預設的詞向量表、上述預設的第一循環神經網絡模型和上述預設的第二循環神經網絡模型分別確定為訓練得到的詞向量表、第一循環神經網絡模型和第二循環神經網絡模型。訓練單元511的具體處理及其所帶來的技術效果可分別參考圖2對應實施例中的相關說明,在此不再贅述。
在本實施例的一些可選的實現方式中,上述第一循環神經網絡模型和上述第二循環神經網絡模型可以均為時間循環神經網絡模型。
在本實施例的一些可選的實現方式中,上述第一確定單元502可以進一步配置用于:對上述源切分詞序列中的每個切分詞,在上述詞向量表中查詢與該切分詞匹配的詞向量,并將查找到的詞向量確定為上述源詞向量序列中與該切分詞在上述源切分詞序列中的位置相同的位置對應的源詞向量。第一確定單元502的具體處理及其所帶來的技術效果可分別參考圖2對應實施例中步驟202的相關說明,在此不再贅述。
在本實施例的一些可選的實現方式中,上述第二確定單元505可以進一步配置用于:對于上述目標詞向量序列中的每個目標詞向量,從上述詞向量表中選取與該目標詞向量的相似度最高的詞向量所對應的詞,將所選取的詞確定為上述目標切分詞序列中與該目標詞向量在上述目標詞向量序列中的位置相同的位置對應的目標切分詞。第一確定單元505的具體處理及其所帶來的技術效果可分別參考圖2對應實施例中步驟205的相關說明,在此不再贅述。
下面參考圖6,其示出了適于用來實現本申請實施例的電子設備的計算機系統600的結構示意圖。圖6示出的電子設備僅僅是一個示例,不應對本申請實施例的功能和使用范圍帶來任何限制。
如圖6所示,計算機系統600包括中央處理單元(cpu,centralprocessingunit)601,其可以根據存儲在只讀存儲器(rom,readonlymemory)602中的程序或者從存儲部分606加載到隨機訪問存儲器(ram,randomaccessmemory)603中的程序而執行各種適當的動作和處理。在ram603中,還存儲有系統600操作所需的各種程序和數據。cpu601、rom602以及ram603通過總線604彼此相連。輸入/輸出(i/o,input/output)接口605也連接至總線604。
以下部件連接至i/o接口605:包括硬盤等的存儲部分606;以及包括諸如lan(局域網,localareanetwork)卡、調制解調器等的網絡接口卡的通信部分607。通信部分607經由諸如因特網的網絡執行通信處理。驅動器608也根據需要連接至i/o接口605。可拆卸介質609,諸如磁盤、光盤、磁光盤、半導體存儲器等等,根據需要安裝在驅動器608上,以便于從其上讀出的計算機程序根據需要被安裝入存儲部分606。
特別地,根據本公開的實施例,上文參考流程圖描述的過程可以被實現為計算機軟件程序。例如,本公開的實施例包括一種計算機程序產品,其包括承載在計算機可讀介質上的計算機程序,該計算機程序包含用于執行流程圖所示的方法的程序代碼。在這樣的實施例中,該計算機程序可以通過通信部分607從網絡上被下載和安裝,和/或從可拆卸介質609被安裝。在該計算機程序被中央處理單元(cpu)601執行時,執行本申請的方法中限定的上述功能。需要說明的是,本申請所述的計算機可讀介質可以是計算機可讀信號介質或者計算機可讀存儲介質或者是上述兩者的任意組合。計算機可讀存儲介質例如可以是——但不限于——電、磁、光、電磁、紅外線、或半導體的系統、裝置或器件,或者任意以上的組合。計算機可讀存儲介質的更具體的例子可以包括但不限于:具有一個或多個導線的電連接、便攜式計算機磁盤、硬盤、隨機訪問存儲器(ram)、只讀存儲器(rom)、可擦式可編程只讀存儲器(eprom或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(cd-rom)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本申請中,計算機可讀存儲介質可以是任何包含或存儲程序的有形介質,該程序可以被指令執行系統、裝置或者器件使用或者與其結合使用。而在本申請中,計算機可讀的信號介質可以包括在基帶中或者作為載波一部分傳播的數據信號,其中承載了計算機可讀的程序代碼。這種傳播的數據信號可以采用多種形式,包括但不限于電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質還可以是計算機可讀存儲介質以外的任何計算機可讀介質,該計算機可讀介質可以發送、傳播或者傳輸用于由指令執行系統、裝置或者器件使用或者與其結合使用的程序。計算機可讀介質上包含的程序代碼可以用任何適當的介質傳輸,包括但不限于:無線、電線、光纜、rf等等,或者上述的任意合適的組合。
附圖中的流程圖和框圖,圖示了按照本申請各種實施例的系統、方法和計算機程序產品的可能實現的體系架構、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段、或代碼的一部分,該模塊、程序段、或代碼的一部分包含一個或多個用于實現規定的邏輯功能的可執行指令。也應當注意,在有些作為替換的實現中,方框中所標注的功能也可以以不同于附圖中所標注的順序發生。例如,兩個接連地表示的方框實際上可以基本并行地執行,它們有時也可以按相反的順序執行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執行規定的功能或操作的專用的基于硬件的系統來實現,或者可以用專用硬件與計算機指令的組合來實現。
描述于本申請實施例中所涉及到的單元可以通過軟件的方式實現,也可以通過硬件的方式來實現。所描述的單元也可以設置在處理器中,例如,可以描述為:一種處理器包括獲取單元、第一確定單元、第一生成單元、第二生成單元和第二確定單元。其中,這些單元的名稱在某種情況下并不構成對該單元本身的限定,例如,第一確定單元還可以被描述為“確定源詞向量序列的單元”。
作為另一方面,本申請還提供了一種計算機可讀介質,該計算機可讀介質可以是上述實施例中描述的裝置中所包含的;也可以是單獨存在,而未裝配入該裝置中。上述計算機可讀介質承載有一個或者多個程序,當上述一個或者多個程序被該裝置執行時,使得該裝置:獲取源切分詞序列和預先訓練的詞向量表,其中,上述詞向量表用于表征詞與詞向量之間的對應關系;根據上述詞向量表,確定與上述源切分詞序列對應的源詞向量序列;將上述源詞向量序列導入預先訓練的第一循環神經網絡模型,生成用于表征上述源切分詞序列的語義的預設維數的中間向量,其中,上述第一循環神經網絡模型用于表征詞向量序列與上述預設維數的向量之間的對應關系;將上述中間向量導入預先訓練的第二循環神經網絡模型,生成與上述中間向量對應的目標詞向量序列,其中,上述第二循環神經網絡模型用于表征上述預設維數的向量與詞向量序列之間的對應關系;根據上述詞向量表,確定與上述目標詞向量序列對應的目標切分詞序列,并將上述目標切分詞序列確定為與上述源切分詞序列對應的同語言平行文本。
以上描述僅為本申請的較佳實施例以及對所運用技術原理的說明。本領域技術人員應當理解,本申請中所涉及的發明范圍,并不限于上述技術特征的特定組合而成的技術方案,同時也應涵蓋在不脫離上述發明構思的情況下,由上述技術特征或其等同特征進行任意組合而形成的其它技術方案。例如上述特征與本申請中公開的(但不限于)具有類似功能的技術特征進行互相替換而形成的技術方案。