專利名稱:提供雙向雙語詞典的方法和系統的制作方法
技術領域:
本發(fā)明一般涉及提供要求減少存儲空間的雙向雙語詞典的方法和系統。本發(fā)明具體用于,但不必限定于,嵌入到掌上設備中的雙語詞典。
背景技術:
消費者一直希望諸如移動電話、個人數字助理(PDA)等掌上設備能夠同時向更小、更便宜、功能更完善的方向發(fā)展。這些設備的功能包括利用雙語詞典翻譯語言的能力。然而這類詞典通常都是資源密集型的,需要大量的存儲空間和處理能力。
由于通常的詞典都不是雙向的,所以對雙向詞典存儲空間的要求非常高。例如,在現有技術的英漢/漢英詞典中,當用戶搜索“HongKong”的時候得到的翻譯是“香港”,但是當用戶搜索“香港”的時候可能就無法得到翻譯“Hong Kong”。這是因為實際上詞典包含兩個獨立的搜索引擎和兩個獨立的詞典;其中的一個引擎和字典提供英漢翻譯,另一個引擎和詞典提供漢英翻譯。圖1示出了一個現有技術雙語詞典的雙重結構的示意框圖。因為在兩種詞典的兩種語言中能查到許多的詞匯,所以這種雙重結構需要相當大的冗余。
因此需要一個更加有效的雙語詞典,其在提供可以在語言間快速翻譯詞匯的雙向搜索引擎的同時消除現有技術雙語詞典的冗余,使它更適于應用到有限存儲空間和有限處理能力的掌上設備當中。
發(fā)明內容
從一方面說,本發(fā)明是一種提供雙向雙語詞典的方法,其包含以下步驟以第一自然語言,以計算機可讀取的格式接收輸入詞匯;從與所述第一語言對應的第一詞匯索引文件中獲取所述輸入詞匯的索引;從翻譯索引文件中獲取所述輸入詞匯的翻譯索引,所述翻譯索引與所述輸入詞匯的詞匯索引相對應;從與所述第二語言對應的第二詞匯索引文件中獲取所述輸入詞匯在第二語言中的翻譯,所述翻譯與所述翻譯索引相對應。
本方法可進一步包括將塊索引文件讀取到內存的步驟和利用所述塊索引文件確定存儲塊位置,并從所述第一詞匯索引文件、所述翻譯索引文件、所述第二詞匯索引文件的每個中讀取特定存儲塊的步驟,其中每個特定塊分別包括所述輸入詞匯索引,所述翻譯索引,以及所述翻譯。
本方法可包括從語音索引文件中獲取所述輸入詞匯在第二語言中的語音發(fā)音的步驟,所述語言發(fā)音與所述翻譯索引相對應。
本方法可包括通過在第一和第二詞匯索引文件中進行搜索來獲取所述輸入詞匯的第一字節(jié)從而確定所述輸入詞匯的語言種類的步驟,其中所述輸入詞匯的語言種類與從中獲取所述第一字節(jié)的詞匯索引文件的語言種類相對應。
本方法還可包括根據所述語音發(fā)音來合成語音的步驟。
從另外一種形式講,本發(fā)明是一種提供雙向雙語詞典的系統,其包含一個搜索引擎;一個有效與所述搜索引擎相連的塊索引文件;兩個有效與所述搜索引擎相連的詞匯索引文件,所述索引文件之一與第一自然語言相關,另一個與第二自然語言相關,其中所述詞匯索引文件包括詞匯和與所述詞匯相關聯的詞匯索引;以及兩個有效與所述搜索引擎相連的翻譯索引文件,其中所述翻譯索引文件包括所述詞匯索引和與所述詞匯索引相對應的翻譯索引。
所述塊索引文件可包括一個表示塊起始點的起始字段,一個表示塊長度的長度字段,和一個表示塊大小的大小字段。
所述塊索引文件可包括一個整數流。
可將所述詞匯索引文件之一分割為26個塊,其中每一塊都與一個唯一的羅馬字母相關聯。
根據漢字國標編碼GB 2312將所述詞匯索引文件之一分割為72個塊。
所述系統還包括一個有效與所述搜索引擎相連的語音索引文件,以及一個有效與所述搜索引擎相連的語音合成器,其中所述語言合成器通過連接從所述語音索引文件獲取的音素從而合成語音。
在本說明書以及權利要求書中,術語“包括(comprises、comprising)”以及類似術語的含義是指非排他性的包括,因此包括一系列組件的方法或裝置,其不僅包括那些已單獨列出的組件,還可能很好地包括那些沒有列出的其它組件。
為了使本發(fā)明易于理解并付諸實施,現在將結合附圖來參考引用優(yōu)選實施例,其中相似的引用數字指代類似的組件,在附圖中圖1為說明現有技術雙語詞典的雙重結構的示意框2為說明根據本發(fā)明的一個實施例、提供一種雙向雙語詞典的系統的示意框圖。
圖3為說明根據本發(fā)明的實施例、翻譯一個輸入詞匯的方法的流程圖。
圖4為來自根據本發(fā)明實施例的詞匯索引文件中的兩行多列(列數可變)的例子,其用于在英文和中文語言之間進行翻譯。
圖5A為說明根據本發(fā)明一個實施例的塊索引文件的塊索引的三字段結構(three-field structure)的示意圖。
圖5B為說明根據本發(fā)明實施例的塊索引文件的數據結構的示意圖。
圖6為說明根據本發(fā)明的實施例、利用語音索引文件的方法的流程圖。
具體實施例方式
參看圖2,示出了根據本發(fā)明一個實施例的提供雙向雙語詞典的系統200的示意框圖。系統200包含一個搜索引擎205,該搜索引擎205有效地連接下面五個數據文件第一自然語言(語言“A”)詞匯索引文件210;第二自然語言(語言“B”)詞匯索引文件215;“A到B”的翻譯索引文件220;“B到A”的翻譯索引文件225;以及語音索引文件230。所述搜索引擎205同時也有效地連接到一個包含一系列索引的塊索引文件235上,這一系列索引代表了五個數據文件205到230中的不同記錄的位置。這五個數據文件205到230都被分割到與塊索引文件235中的索引相一致的存儲塊當中。
由于將詞匯的冗余使用減到了最小,由這五種數據文件205到230的存儲形式形成的雙語詞典可以比現有技術詞典占用更小的存儲空間。如上所述,現有技術詞典包括不可逆的數據文件,一個是從自然語言A翻譯到自然語言B的數據文件(例如,從英文到中文),另一個是從自然語言B翻譯到自然語言A的數據文件(例如,從中文到英文)。這樣,在現有技術詞典當中很多詞匯包含冗余;例如,一個詞匯可能在第一個數據庫中作為搜索詞匯出現一次,而相同的詞匯可能在第二個數據庫中作為翻譯詞匯出現第二次。本發(fā)明通過在單獨的關于語言A的詞匯索引文件210中存放所有語言A的詞匯從而減小了這種冗余。所有第二語言B的詞匯也被列在單獨的關于第二語言B的詞匯索引文件215當中。然后,從語言A到語言B的翻譯索引文件220和從語言B到語言A的翻譯索引文件225與塊索引文件235共同工作,用來確定這兩個詞匯索引文件210和215之間的雙向翻譯。
可選地,還可以讓語音索引文件230與塊索引文件235共同作用,提供要翻譯的詞匯的語音拼讀或音素。同時搜索引擎205可以有效地連接到語音合成器240上,合成與翻譯詞匯相對應的聽得到的波形。
參看圖3,示出了根據本發(fā)明的實施例、用于翻譯輸入詞匯的方法300的流程圖。首先,在步驟305,塊索引文件235被讀入到與搜索引擎205相關的內存當中。然后在步驟310,搜索引擎205接收到一個輸入詞匯。隨后在步驟315,確定輸入詞匯的語言種類。可以自動確定輸入語言的種類,例如用戶可以選取一種切換器,該切換器表明了要求翻譯是從語言A到語言B的。另外,搜索引擎205可以通過分析輸入詞匯來確定輸入詞匯的語言種類。關于確定輸入詞匯的語言種類的幾種可選方法,將在下邊進行更為詳細討論。
如果在步驟315輸入詞匯的語言種類被確定為語言A,方法300就會運行到步驟320,在這里搜索引擎205利用塊索引文件235找到語言A的詞匯索引文件210中包含輸入詞匯的存儲塊號碼。搜索引擎205隨后從語言A詞匯索引文件210中獲取對應的存儲塊。接下來,在步驟325中,對語言A詞匯索引文件210中所獲取的存儲塊進行搜索,找到分配給輸入詞匯的唯一索引號。方法300然后繼續(xù)運行到步驟330,在這里通過在塊索引文件235中搜索分配給輸入詞匯的唯一索引號,搜索引擎205找到A到B翻譯索引文件220的存儲塊編號,該翻譯索引文件220中包括了對應于該輸入詞匯的翻譯索引。之后從A到B的翻譯索引文件220中獲得該編號所對應的存儲塊。在步驟335中,通過搜索存儲塊找到對應于輸入詞匯的翻譯索引。
方法300繼續(xù)運行到步驟340,在這里搜索引擎205再一次搜索了塊索引文件235,通過這次搜索,從包含輸入詞匯翻譯的語言B詞匯索引文件215的存儲塊中找到存儲塊編號。從語言B的詞匯索引文件215中提取出對應于存儲塊編號的存儲塊。在步驟345,搜索該存儲塊以找到輸入詞匯的翻譯。最后在步驟350,將輸入文字的翻譯提供給搜索引擎205作為輸出。
另一方面,如果在步驟315輸入詞匯被判斷為語言B,方法300就會從335到380進行運行,這些步驟是步驟320到345的鏡像。在步驟355到380,上述的語言A詞匯索引文件210和語言B詞匯索引文件215進行對調,同時A到B翻譯索引文件220由B到A翻譯索引文件225所替代。
參看圖4,示出了一個從語言A詞匯索引文件210中截取的兩行多列(列數可變)結構的例子,在這里語言A為英文,B為中文。注意到,輸入單詞(即“Aardvark”和“aback”)的相關信息被分別放在單獨的一行中。根據該例子,這使得塊索引文件235可以通過語言A詞匯文件210的唯一的整數行號來識別特定的英文輸入單詞。詞匯索引文件210、215中的第一列包括系統200所能夠翻譯的所有詞匯。第二列包括對應于第一列詞匯的語音拼讀或音素。第三列定義了第一列詞匯的詞性(POS),例如“n.”表示名詞,“ad.”表示副詞,“abbr.”表示縮寫詞等等。第四列包括由一系列分隔符(例如“<>”“[]”)所界定的第一列詞匯的不同屬性。例如“<俚>”表示第一列詞匯是俚語詞匯,“[動]”表示第一列詞匯是一種動物的名稱。因此,界定符號可以被搜索引擎205用來定位所有含有這些特定屬性的詞匯。最后如圖4所示,第五列以及后面的所有列包括第一列詞匯的一條或者多條解釋。
根據本發(fā)明,五個數據文件210到230中的信息都依照不同的算法進行了壓縮。首先兩個詞匯索引文件210和215按照字母升序排列然后插入類似“\0”的結束符號用以分割不同的詞匯,從而進行壓縮。然后可以使用諸如本領域公知的通常數據壓縮方法來壓縮這些文件中的信息。
根據本發(fā)明的一個實施例,語音索引文件230中的數據可以被壓縮成為單字節(jié)的ASCII符號。這可以通過限定索引文件230中的音素數量為72個,并且賦予每個音素一個單獨的ASCII符號來實現。之后可以使用通常的數據壓縮算法來壓縮ASCII數據。
A到B翻譯索引文件220和B到A翻譯索引文件225都可以通過為每個數據項分配一個整數的方法來進行壓縮。例如,在從英文到中文的翻譯索引文件220以及從中文到英文的翻譯索引文件225當中,每個英文詞匯都被賦予了一個同系統200中的英文詞匯索引文件210中對應詞匯相同的索引號(通常就是如上所述的行號)。類似地,每個中文詞匯也被賦予了一個同中文詞匯索引文件215中對應詞匯相同的索引號(通常也是行號)。
給詞匯索引文件210和215中的詞性和翻譯也分配了一個單獨的整數值。與上邊相同,每個翻譯詞匯也被賦予了一個與詞匯索引文件210或215對應詞匯索引號相同的整數。通常情況下只有很少數量的單獨詞性(在英文中一般為數字18,其可以包括從代表形容詞的“a.”到代表及物動詞的“vt.”的所有詞性),因此每個詞性也都被賦予了單獨的整數。
舉例說明,一個兩行的英文到中文的翻譯索引文件220可以被轉化成為整數,如下所示n. [動] 土豚ad.向后地, 朝后地被轉化成為64008 5168 4443664002 48097 11006
然后,上述翻譯索引文件220和225的整數可以進行如下壓縮。如果一行只有一個整數,該整數可被直接寫入壓縮文件。如果一行有多個整數,首先計算該行中整數的個數,然后將計數整數寫入壓縮文件。在計數整數之后寫入該行的所有整數。計數整數被賦予了比其它整數的最大值更大的值,用以區(qū)分計數整數和其它整數。例如,搜索引擎205可以被編程設置為,將大于65000的整數都識別為計數整數而非與輸入詞匯、翻譯、詞性等等相對應的整數。
參照圖5A,示出了根據本發(fā)明的一個實施例的塊索引文件235的塊索引的三字段結構示意圖。第一個字段505表示塊的起始位置,第二個字段510表示塊的長度,第三個字段515表示塊中包含有多少數據項。
例如,英文詞匯索引文件210中,可根據文件210中每行的首字母(從“a”到“z”)將文件210分割成為26個單獨塊(回想上述詞匯索引文件的每一行都對應于唯一的詞匯條目)。類似地,在中文詞匯索引文件215中,根據文件215中每個詞匯的第一個字,可以將文件215分割成塊。依照用于信息交換的簡體中文字符國標碼(GB2312),中文字符的第一個字節(jié)被賦予了從16到87的整數,因此中文的詞匯索引文件215可以被分割成72個塊。然后,每個塊都依照如上所述的三字段塊索引而在塊索引文件235當中識別。當在兩種含有不同字符集的語言之間進行翻譯的時候,正如圖3中步驟315所示,可以通過僅搜索詞匯索引文件210和215中每行的首字符來確定輸入詞匯的語言種類。當輸入詞匯的首字符與詞匯索引文件210、215中一行的首字符相匹配的時候,輸入詞匯的語言類型就與得到匹配的詞匯索引文件210、215中的語言種類相一致。
對于A到B翻譯索引文件220,B到A翻譯索引文件225,以及語音索引文件230,每個文件都可以被分割成相當于1,000行數據的塊。注意到,雖然每個塊的行數都是固定的,但是由于這些行數據的列數不同,每個塊的大小都不盡相同。因此,例如一個包括33,894行的英文到中文的翻譯索引文件220,它被分為34個塊,其中最后一個塊只包括894個條目。
參考圖5B,示出了根據本發(fā)明實施例的塊索引文件235的數據結構的結構框圖。如圖中所示,塊索引文件235是一個整數流,它以塊總數的計數作為開始,后面接著就是圖5A中所示的有三字段結構的塊索引。
利用塊索引文件235可以顯著地減少搜索引擎205運行時所需要的內存。例如,一個中文詞匯索引文件215可能包含570k字節(jié)的數據量;然而當文件215根據上述方法被分割成為72個塊的時候,每個塊僅僅需要8k字節(jié)的內存。當搜索引擎205搜索文件215時,可以只從內存中讀取大小只有8k字節(jié)的單個塊并從該單個塊中找到數據條目。在獲取數據條目之后,就會立即釋放與該塊相關聯的內存空間,由此減少運行時所需要的內存。
參考圖6,示出了根據本發(fā)明實施例的使用語音索引文件230的方法600的流程圖。方法600可以作為可選功能而被包括在圖3所示的方法300之中。因此方法600從步驟340開始,在這里搜索引擎205通過搜索塊索引文件235找到語言B詞匯索引文件215中的存儲塊的塊編號。之后,從語言B詞匯索引文件215中提取出對應于該塊編號的存儲塊。方法600繼續(xù)運行到步驟605,在這里提取出語音索引文件230中包含輸入詞匯的翻譯的音素的存儲塊。語音索引文件230從語言B的詞匯索引文件215中導出,這樣在語音索引文件230中包含音素的塊的塊編號就與用于在語言B詞匯索引文件215中查找翻譯的塊編號相一致。
之后,方法600運行到步驟610,在這里對語音索引文件230的相關塊進行搜索以獲取輸入詞匯翻譯的音素。接著在步驟615,音素就可以作為發(fā)音基礎(pronunciation key)輸出,例如作為印好的音素(printed phonemes)輸出到掌上設備的顯示屏幕上。同樣在步驟620,音素也可以連接到語音合成器240上。最后,在步驟625,從掌上設備的揚聲器等類似設備中輸出與輸入詞匯翻譯相對應的合成語音波形。
因此,本發(fā)明是提供高效雙語詞典的改進系統和方法,此系統和方法在提供可以快速進行語言間詞匯翻譯的搜索引擎的同時消除了現有技術雙語詞典中的冗余,使它更適于應用在有限存儲空間、有限處理資源的掌上設備當中。特別地,本發(fā)明的雙向架構可以消除在現有技術中出現的輸入詞匯和翻譯詞匯的存儲冗余。更進一步地,因為只需要把相關數據很小的塊裝載到內存中,所以本發(fā)明的塊索引文件235可以顯著地減小搜索引擎205運行時所需要的內存。一旦數據被處理,包含該塊的內存分配就會馬上被釋放,這樣其它的系統資源就可以使用這些內存了。
上面的詳細說明只是為了提供優(yōu)選的示范實施例,而并不想限制本發(fā)明的范圍、適用性或結構。對優(yōu)選示范實施例的詳細說明是為了向本領域技術人員提供一個使其能夠實現本發(fā)明的優(yōu)選實施例的說明。應該可以理解,在不背離所附權利要求中所闡述的本發(fā)明的精神和范圍的前提下,可以對組件及步驟的功能和結構做出多種不同的改變。
權利要求
1.一種提供雙向雙語詞典的方法,其包括如下步驟以計算機可讀取的格式接收第一自然語言的輸入詞匯;從與所述第一語言對應的第一詞匯索引文件中獲取所述輸入詞匯的索引;從翻譯索引文件中獲取所述輸入詞匯的翻譯索引,所述翻譯索引與所述輸入詞匯的所述詞匯索引相對應;和從與所述第二語言對應的第二詞匯索引文件中獲取所述輸入詞匯在第二語言中的翻譯,所述翻譯與所述翻譯索引相對應。
2.如權利要求1所述的方法,其進一步包括如下步驟將塊索引文件讀取到系統內存中;和僅從所述第一詞匯索引文件、所述翻譯索引文件和所述第二詞匯索引文件的每一個中讀取利用所述塊索引文件定位的特定存儲塊,其中每個特定的塊分別包括所述輸入詞匯索引、所述翻譯索引以及所述翻譯。
3.如權利要求2所述的方法,其中所述塊索引文件包括一個表示塊起始位置的起始字段,一個表示塊長度的長度字段,以及一個表示塊大小的大小字段。
4.如權利要求2所述的方法,其中所述塊索引文件包括一個整數流。
5.如權利要求1所述的方法,其中所述詞匯索引文件之一被分割為26塊,其中每一塊都與羅馬字母表中的唯一字母相關聯。
6.如權利要求1所述的方法,其中所述詞匯索引文件之一根據漢語國標編碼GB 3212被分割成72塊。
7.如權利要求1所述的方法,其進一步包括從語音索引文件中獲取所述輸入詞匯在第二語言中的語音發(fā)音的步驟,所述語音發(fā)音與所述翻譯索引相對應。
8.如權利要求1所述的方法,其進一步包括通過搜索所述第一和第二詞匯索引文件以獲取所述輸入詞匯的第一字節(jié)從而確定所述輸入詞匯的語言種類的步驟,其中所述輸入詞匯的語言種類與從中獲取所述第一字節(jié)的詞匯索引文件的語言種類相對應。
9.如權利要求7所述的方法,其進一步包括由所述語音發(fā)音合成語音的步驟。
10.一種提供雙向雙語詞典的系統,其包括一個搜索引擎;一個有效與所述搜索引擎相連的塊索引文件;兩個有效與所述搜索引擎相連的詞匯索引文件,所述兩個詞匯索引文件之一與第一自然語言相關,另一個與第二自然語言相關,其中所述詞匯索引文件包括詞匯和與所述詞匯相關的詞匯索引;和兩個有效與所述搜索引擎相連的翻譯索引文件,其中所述翻譯索引文件包括所述詞匯索引和與所述詞匯索引相對應的翻譯索引。
11.如權利要求10所述的系統,其中所述塊索引文件包括一個表示塊起始位置的起始字段,一個表示塊長度的長度字段,和一個表示塊大小的大小字段。
12.如權利要求10所述的系統,其中所述塊索引文件包括一個整數流。
13.如權利要求10所述的系統,其中所述兩個詞匯索引文件之一被分割為26塊,其中每一塊都與羅馬字母表中的唯一字母相關聯。
14.如權利要求10所述的系統,其中所述兩個詞匯索引文件之一根據漢語國標編碼GB 2312被分割為72塊。
15.如權利要求10所述的系統,其進一步包括一個有效與所述搜索引擎相連的語音索引文件;和一個有效與所述搜索引擎相連的語音合成器,其中所述語音合成器通過把從所述語音索引文件中獲取的音素連接起來而合成語音。
全文摘要
本發(fā)明公開一種提供雙向雙語詞典的方法和系統,該系統包括一個搜索引擎(205),一個塊索引文件(235),兩個詞匯索引文件(210,215),和兩個翻譯索引文件(220,225)。該方法包括以計算機可讀取的格式接收第一自然語言的輸入詞匯(步驟310);從與第一自然語言相對應的詞匯索引文件(210)中獲取輸入詞匯索引(步驟320和325);從翻譯索引文件(220)中獲取所述輸入詞匯的翻譯索引,所述的翻譯索引與所述輸入詞匯的索引相對應(步驟330和335);并且從與所述第二語言相對應的第二詞匯索引文件(215)中獲取所述輸入詞匯在第二語言中的翻譯,所述翻譯與所述的翻譯索引相對應(步驟340和345)。
文檔編號G06F17/28GK1617135SQ200310115619
公開日2005年5月18日 申請日期2003年11月10日 優(yōu)先權日2003年11月10日
發(fā)明者韓客松 申請人:摩托羅拉公司