專利名稱:識別雙字節(jié)字符集字符數(shù)據(jù)的語言的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及信息處理,尤其是涉及一種識別雙字節(jié)字符集(DoubleByte Character Set,DBCS)字符數(shù)據(jù)為何種東方語言的方法和系統(tǒng)。
背景技術(shù):
隨著計算機網(wǎng)絡(luò)和通信技術(shù)的發(fā)展,人們對互聯(lián)網(wǎng)以及相關(guān)電子服務(wù)的使用越來越普遍,并且通過這些服務(wù)在不同地方持不同自然語言的人們之間的信息傳輸也越來越頻繁。
然而,不同地方的不同語言的用戶在計算機系統(tǒng)中使用不同國家(或地區(qū))規(guī)定的用于計算機信息交換的不同的字符集,例如ASCII字符集、DBCS字符集、Unicode字符集等。就地處東方的亞洲來說,普遍使用的是DBCS的本地字符集,其中包括例如,中國國家標(biāo)準(zhǔn)GB2312-80、GBK、GB18030-2000;由臺灣財團法人信息工業(yè)策進會和五家軟件公司創(chuàng)立的BIG5;日語的S_JIS;和韓語的KSC等等。因而,導(dǎo)致現(xiàn)有技術(shù)中存在著與此相關(guān)的諸多技術(shù)問題,其中例如,在進行諸如有賴于特定自然語言的特性的選擇、顯示、打印的操作之前,必須確定待操作的文件所使用的語言。又例如,當(dāng)用戶瀏覽環(huán)球網(wǎng)時,用戶一般都希望以其所持本地語言輸入進行搜索的字符串,并且希望搜索引擎或網(wǎng)頁只搜索或顯示出為其本地語言的結(jié)果。而此時如果網(wǎng)頁或搜索引擎不能夠支持對輸入本地語言的識別,則其僅能將輸入字符串當(dāng)作英文來進行搜索,其結(jié)果通常是沒有匹配項,因此不能正確地執(zhí)行搜索。還有一些網(wǎng)頁可以允許用戶手工地指定瀏覽和搜索所期望的語言。
另外,某些自然語言處理工具,例如拼寫檢查器、語法檢查器等也需要在操作之前得知待檢查文字段所用的語言以正確地運行。
已出現(xiàn)了一些解決相關(guān)技術(shù)問題的可行方法和技術(shù),例如Mozilla和Microsoft的方法,它們都是基于對特定語言的碼點在文本中出現(xiàn)的頻度的統(tǒng)計來檢測其所屬本地字符集的,這些方法實現(xiàn)起來比較繁鎖,而且結(jié)果的準(zhǔn)確性也不夠理想。并且這些方法都是基于用于西方語言的字典。另外,相關(guān)的專利文獻例如有美國專利號US6157905(名稱為“IDENTIFYING LANGUAGEAND CHARACTER SET OF DATA REPRESENTING TEXT”)、US6704698(名稱為“WORDCOUNTING NATURAL LANGUAGE DETERMINATION”)和US6539118(名稱為“SYSTEMAND METHOD FOR EVALUATING CHARACTER SETS OF A MESSAGE CONTAINING APLURALITY OF CHARACTER SETS”)。其中US6157905是利用對廣泛的數(shù)據(jù)建立一個字符出現(xiàn)頻度統(tǒng)計模型,通過一個“訓(xùn)練階段(training phase)”來積累數(shù)據(jù),作為其后的辨別的依據(jù)。在判別的過程中,利用它自己建立的統(tǒng)計數(shù)據(jù)和新來數(shù)據(jù)產(chǎn)生的結(jié)果進行匹配的檢查。但是該發(fā)明利用統(tǒng)計數(shù)據(jù)進行猜測判斷,其單純的頻度統(tǒng)計里面會混入一些無用的數(shù)據(jù)(例如在各種語言中都常用的編碼點),并對結(jié)果的準(zhǔn)確性造成干擾。并且該發(fā)明的方法并未針對某些特定的字符集,整個方法比較繁瑣復(fù)雜。US6704698主要是檢測數(shù)據(jù)表述的是哪一種自然語言,并不涉及對屬于哪個字符集進行判別。并且其是根據(jù)各種歐洲語言的常用詞來進行判斷,也沒有包含中日韓等亞洲國家的語言。US6539118的目的是檢查已知是使用Unicode或者其它的通用格式(universal format)的文字?jǐn)?shù)據(jù),并且判斷其表述的是何種自然語言,進而使用哪一種本地字符集可以表示該段數(shù)據(jù)所包含的文字。但該發(fā)明并不涉及判斷雙字節(jié)字符集的未知編碼格式的文字?jǐn)?shù)據(jù)是使用哪種本地字符集以及編碼。
總之,現(xiàn)有技術(shù)中缺少和需要一種針對可能包含某種東方語言的DBCS字符數(shù)據(jù)來高效和準(zhǔn)確地進行識別的方法和系統(tǒng)。
發(fā)明內(nèi)容
鑒于上述問題,做出了本發(fā)明。
本發(fā)明的一個目的是提供一種能夠識別DBCS字符數(shù)據(jù)的語言的簡單且準(zhǔn)確度高的方法和系統(tǒng)。
本發(fā)明的另一個目的是提供一種能夠識別DBCS字符數(shù)據(jù)的語言并且進而能夠分辨其所屬本地字符集的方法。
本申請的發(fā)明人利用了各種東方語言自身、尤其是在計算機中輸入和存儲格式方面的唯一的區(qū)別性特征做出了本發(fā)明。也就是說,在DBCS的本地字符集中,各種語言都分別具有一些獨特的特征值,這些特征值在別種語言的本地字符集中或者沒有定義或者是通常不用。比如說,當(dāng)一段字符數(shù)據(jù)中包含有對中文簡體所獨特的特征值時,則其有很小的可能性會是日語或其它的什么語言,因為該特征值在日語或其它的語言中會根本沒有定義或基本上不用。這是本發(fā)明用以識別DBCS字符數(shù)據(jù)的語言的重要思想。
根據(jù)本發(fā)明的一個方面,提供了一種用于在計算機中識別可能是包括韓語和其它多種東方語言的候選語言之一的DBCS字符數(shù)據(jù)的語言的方法,包括下列步驟a.分別對于每一種候選語言確定一個特征值集合,其中所確定的特征值在其它候選語言相應(yīng)的本地字符集中沒有定義或通常不用;b.讀取待識別的DBCS字符數(shù)據(jù)并累計雙字節(jié)的總計數(shù);c.將DBCS字符數(shù)據(jù)與每種候選語言的特征值集合進行比較,并且每當(dāng)DBCS字符數(shù)據(jù)和所述候選語言之一的特征值集合中的特征值之一匹配時,對相應(yīng)候選語言累計計數(shù);d.如果相應(yīng)于韓語的計數(shù)大于總計數(shù)的10%,則將待識別的DBCS字符數(shù)據(jù)識別為韓語,否則,將待識別的DBCS字符數(shù)據(jù)識別為所述其它多種東方語言中其計數(shù)最大的語言。
根據(jù)本發(fā)明的另一方面,還提供了一種用于在計算機中識別可能是包括韓語和其它多種東方語言的候選語言之一的DBCS字符數(shù)據(jù)的語言的系統(tǒng),包括存儲單元,用于存儲分別對于每一種候選語言所確定的特征值集合,其中所確定的特征值在其它候選語言相應(yīng)的本地字符集中沒有定義或通常不用;讀取單元,用于讀取待識別的DBCS字符數(shù)據(jù);總計數(shù)單元,用于累計所讀取的DBCS字符數(shù)據(jù)的雙字節(jié)的總計數(shù);比較單元,用于將所讀取的DBCS字符數(shù)據(jù)與每種候選語言的特征值集合進行比較并輸出比較結(jié)果;多個累加器,其分別相應(yīng)于每種候選語言,當(dāng)所輸出的比較結(jié)果表明所述DBCS字符數(shù)據(jù)和所述候選語言之一的特征值集合中的特征值之一匹配時,該多個累加器中相應(yīng)于該候選語言的累加器將其計數(shù)累加1;語言識別單元,用于根據(jù)所述總計數(shù)單元的總計數(shù)和所述分別相應(yīng)于每種候選語言的多個累加器的相應(yīng)計數(shù)來識別所述DBCS字符數(shù)據(jù)的語言,其中如果相應(yīng)于韓語的計數(shù)大于總計數(shù)的10%,則將待識別的DBCS字符數(shù)據(jù)識別為韓語,否則,將待識別的DBCS字符數(shù)據(jù)識別為所述其它多種東方語言中其計數(shù)最大的語言。
由此,根據(jù)本發(fā)明的方法和系統(tǒng),可以簡單高效地區(qū)別出不帶有標(biāo)識所采用語言和所屬字符集的附加字符集信息或字體信息的DBCS本地字符數(shù)據(jù)的語言。并且與現(xiàn)有技術(shù)中已有的方法相比,本發(fā)明的方法實現(xiàn)起來更簡單,提供了較高的準(zhǔn)確度,并且所需的步驟少,占用的資源也小。
本發(fā)明的其它方面和/或優(yōu)點將部分地在隨后的說明中得以闡明,并且部分地,將是從說明中能夠明顯看出的,或從本發(fā)明的實踐中學(xué)習(xí)得到。
從下面結(jié)合附圖對實施例的說明中,本發(fā)明的這些和/或其它方面和優(yōu)點將是顯而易見的并且非常容易理解,在附圖中圖1是圖示了根據(jù)本發(fā)明實施例的用于識別DBCS字符數(shù)據(jù)的語言的系統(tǒng)的結(jié)構(gòu)的方框圖;圖2是根據(jù)本發(fā)明實施例的用于識別DBCS字符數(shù)據(jù)的語言的方法的流程圖;和圖3是根據(jù)本發(fā)明另一實施例的用于識別DBCS字符數(shù)據(jù)的語言的方法的流程圖。
具體實施例方式
現(xiàn)在參考
這些實施例以解釋本發(fā)明。
在以下的詳細描述中,都假定待識別的DBCS字符數(shù)據(jù)遵循各種東方語言(如中文簡體、中文繁體、日語、韓語等)在語言學(xué)上的規(guī)則,被正確地注以標(biāo)點符號和用空格分開(如果適用的話)。并將不考慮不正常的數(shù)據(jù),例如是由用戶隨機輸入的亂碼等。
如前所述,在DBCS的本地字符集中,各種語言都分別具有一些獨特的特征值。具體而言,韓語在字或詞之間使用單字節(jié)空格,而中文簡體、中文繁體、日語卻不用。韓語的這個獨特的特征可以用來作為區(qū)分韓語和其它東方語種的關(guān)鍵點。如果DBCS文字中間有空格分開,并且空格數(shù)量占DBCS文字的10-15%,可認為該段DBCS文字是韓文。另外,韓語的另一個獨特的特點是其使用單字節(jié)的標(biāo)點符號,而其它語種一般都使用雙字節(jié)標(biāo)點符號。故,如果DBCS字符數(shù)據(jù)中使用的全部都是單字節(jié)的標(biāo)點分割雙字節(jié)的數(shù)據(jù),則其為韓文的可能性最大。雖然不可排除在某些情況下,韓文以外的其他文字也可能使用單字節(jié)的標(biāo)點符號。但是,單字節(jié)標(biāo)點符號只有在韓文中是通常習(xí)慣使用的。
通常在語句中使用的最重要的標(biāo)點符號是逗號和句號,并且中文簡體、中文繁體和日語的DBCS標(biāo)點符號的本地值是相互不同和唯一的。由此,如果一段DBCS字符數(shù)據(jù)中有雙字節(jié)標(biāo)點符號的特征碼點使用,由于這些特征碼點在其他字符集中很少使用,故可以據(jù)此判斷DBCS字符數(shù)據(jù)的語言及其所用字符集。(這里請注意韓文的雙字節(jié)標(biāo)點碼點雖然和簡體中文相同,但是韓文具有空格分隔單詞的顯著特征。)比如,如果一段字符數(shù)據(jù)包含了中文簡體逗號或句號的本地值,則其幾乎不可能是日語或中文繁體內(nèi)容,因為該本地值在日語或中文繁體的本地字符集中根本就沒有定義或通常不用。這是用以識別中文簡體、中文繁體、日語的重要思想。由此可見,為各種語言挑選適當(dāng)?shù)奶卣髦挡⒋_定相應(yīng)的特征值集合非常重要。
下面舉例說明各種語言的特征值(或稱為特征碼點)的挑選及其集合的確定。
比如,為韓語(在KSC中)確定的特征值集合包括以下單字節(jié)碼點0x20(空格)、0x21(感嘆號)、0x2c(逗號)、0x2e(句號)和0x3f(問號)。這些空格和其他單字節(jié)標(biāo)點在韓語用作為分隔雙字節(jié)字符的符號。它們在其它語種的本地字符集中根據(jù)不用。
為中文簡體(在GB中)確定的特征值集合例如包括以下雙字節(jié)碼點0xa3ac(全寬逗號)、0xa1a2(表意逗號)、0xa1a3(表意句號)、0xa3a1(全寬感嘆號)和0xa3bf(全寬問號)。這些雙字節(jié)值在其它語言中的定義和使用情況在下面表1中列出。其中<Uxxxx>是表示其相應(yīng)的Unicode碼點。
表1中文簡體的特征值在其它語言中的定義和使用情況
為中文繁體(在BIG5中)確定的特征值集合例如包括以下雙字節(jié)碼點0xa141(全寬逗號)、0xa142(表意逗號)、0xa144(全寬句號)、0xa143(表意句號)、0xa149(全寬感嘆號)和0xa148(全寬問號)。這些雙字節(jié)值在其它語言中的定義和使用情況在下面表2中列出。其中<Uxxxx>是表示其相應(yīng)的Unicode碼點。
表2中文繁體的特征值在其它語言中的定義和使用情況
為日語(在S_JIS中)確定的特征值集合例如包括以下雙字節(jié)碼點0x8141(表意逗號)、0x8142(表意句號)、0x8149(全寬感嘆號)和0x8148(全寬問號)。這些雙字節(jié)值在其它語言中的定義和使用情況在下面表3中列出。其中<Uxxxx>是表示其相應(yīng)的Unicode碼點。
表3日語的特征值在其它語言中的定義和使用情況
以下表4更加直觀地列出了上述這些特征碼點在每個字符集的使用情況,其中黑色表示很常用,灰色是罕用。
表4所選特征碼點在每個字符集的使用情況
上述這些特征值(特征碼點)的選擇僅僅是示例性的,本發(fā)明對于各種語言的特征值的選擇并不限于此。例如在某些特殊的情況下,特征碼點的選擇也可以少做變通,根據(jù)特定數(shù)據(jù)環(huán)境作些調(diào)整。比如,當(dāng)已知批量輸入的數(shù)據(jù)中必定包含其他的特定字符時,可以加入這些特定字符作為特征碼點。
并且對于特征值的選擇也不限于上述示例中所舉的本地字符集中,而是可以擴展到其他的字符集。比如,日文UNIX系統(tǒng)上的EUCJP使用和S_JIS不同的編碼,其標(biāo)點符號和日文假名部分的編碼和中文簡體GB和韓文KSC相同。這時候,仍然可以利用不同標(biāo)點符號使用的情況,并且加上是否使用假名來判斷是中文、日文、或者韓文。另外,中文的GB2312-80、GBK和GB18030-2000這三種編碼基本都是在GB2312的基礎(chǔ)上拓展,所以都可應(yīng)用這一方法。
下面參考圖1詳細說明根據(jù)本發(fā)明一個實施例的識別DBCS字符數(shù)據(jù)的語言的系統(tǒng)。在圖1中,系統(tǒng)100包括存儲單元101、讀取單元102、總計數(shù)單元103、比較單元104、多個累加器105、和語言識別單元106。
存儲單元101存儲分別對于每一種候選語言所確定的特征值集合,其中例如有以上所述的韓語的0x20(空格)、0x21(感嘆號)、0x2c(逗號)、0x2e(句號)和0x3f(問號);中文簡體的0xa3ac(全寬逗號)、0xa1a2(表意逗號)、0xa1a3(表意句號)、0xa3a1(全寬感嘆號)和0xa3bf(全寬問號);中文繁體的0xa141(全寬逗號)、0xa142(表意逗號)、0xa144(全寬句號)、0xa143(表意句號)、0xa149(全寬感嘆號)和0xa148(全寬問號);以及日語的0x8141(表意逗號)、0x8142(表意句號)、0x8149(全寬感嘆號)和0x8148(全寬問號)。
讀取單元102逐字節(jié)地讀取待識別的DBCS字符數(shù)據(jù),并將所讀取的數(shù)據(jù)分別提供到總計數(shù)單元103和比較單元104。
總計數(shù)單元103檢查所提供的DBCS字符數(shù)據(jù),并且對雙字節(jié)進行累計計數(shù)。
比較單元104將從讀取單元102提供的字符數(shù)據(jù)與存儲在存儲單元101中的每種語言的特征值集合中的每個特征值進行比較匹配,并輸出比較匹配結(jié)果到多個累加器105中。具體地,比較單元104檢查從讀取單元102提供的單字節(jié)字符數(shù)據(jù),當(dāng)發(fā)現(xiàn)其與韓語特征值集合中的單字節(jié)空格值或其它單字節(jié)標(biāo)點符號值相同時,則比較單元104將比較匹配結(jié)果輸出到多個累加器105中與韓語相應(yīng)的累加器,從而該多個累加器105中與韓語相應(yīng)的累加器可以分別相對于單字節(jié)空格值或其它單字節(jié)標(biāo)點符號值進行累加計數(shù)。由于韓語中使用的單字節(jié)空格和標(biāo)點符號是用來分隔雙字節(jié)字符的,所以在進行是否是韓語的單字節(jié)空格和標(biāo)點符號的比較時,不僅要比較單字節(jié)字符數(shù)據(jù)本身是否和選定特征值相同,而且還要考慮到該單字節(jié)字符數(shù)據(jù)的前后必須是在韓語中有意義的雙字字字符數(shù)據(jù)。僅當(dāng)這些條件都滿足時,才向多個累加器105中與韓語相應(yīng)的累加器輸出匹配結(jié)果。同時,比較單元104還檢查從讀取單元102提供的連續(xù)的兩個單字節(jié)字符數(shù)據(jù),即雙字節(jié)字符數(shù)據(jù),以比較其是否是在相關(guān)于韓語外的其它語言確定的特征值集合中的特征值。當(dāng)發(fā)現(xiàn)其與中文簡體、中文繁體或日語之一的特征值集合中的某特征值相同時,則比較單元104將比較匹配結(jié)果輸出到多個累加器105中與該語言相應(yīng)的累加器,從而該多個累加器105中相應(yīng)的累加器可以根據(jù)匹配結(jié)果對相應(yīng)的特征值出現(xiàn)的次數(shù)進行累加計數(shù)。判斷雙字節(jié)的方法已經(jīng)成熟,并且在這些字符集中通用。簡單的根據(jù)首字節(jié)的高位即可判斷,也可以結(jié)合其他的方法。
由此,根據(jù)本實施例的系統(tǒng)100通過一次掃描,即可搜集到輸入DBCS字符數(shù)據(jù)的所有特征,并且能夠累計得到每個特征碼點出現(xiàn)的次數(shù)。
最后,語言識別單元106根據(jù)總計數(shù)單元103中的總計數(shù)和多個累加器105中各相應(yīng)累加器的相應(yīng)計數(shù)來識別DBCS字符數(shù)據(jù)的語言。語言識別單元106首先檢查相對于韓語的單字節(jié)空格的計數(shù)是否大于或等于雙字節(jié)總計數(shù)的10%,如果是,則語言識別單元106將DBCS字符數(shù)據(jù)識別為韓語。通常來說,如果DBCS字符數(shù)據(jù)為韓語文字的話,則單字節(jié)空格數(shù)量占DBCS雙字符數(shù)據(jù)的比率一般會大于20%。如果該比率小于10%,則語言識別單元106找出多個累加器105中相應(yīng)于韓語外的各種語言的相應(yīng)累加器中其計數(shù)最大者,并將DBCS字符數(shù)據(jù)識別為該相應(yīng)的語言。優(yōu)選地,如果其中不存在最大的計數(shù),則語言識別單元106可以進而檢查相對于韓語的其它單字節(jié)標(biāo)點符號的計數(shù)是否大于0,如果大于0,則語言識別單元106將DBCS字符數(shù)據(jù)識別為韓語。當(dāng)上述的判斷識別都失敗時,則意味著該段DBCS字符數(shù)據(jù)中可能基本上不包含雙字節(jié)的文字。或者,雖然是包含有雙字節(jié)的數(shù)據(jù),但是其不符合自然語言文字的書寫方式和習(xí)慣。例如,其是隨機生成的碼點數(shù)據(jù)。
圖2是根據(jù)本發(fā)明實施例的用于識別DBCS字符數(shù)據(jù)的語言的方法的流程圖。參考圖2,在步驟201,對DBCS字符數(shù)據(jù)可能是的每種候選東方語言確定一個特征值集合,關(guān)于特征值集合的確定已在前面詳細進行了描述,這里不再贅述。
在步驟202,讀取待識別的DBCS字符數(shù)據(jù)并累計雙字節(jié)的總計數(shù)。然后,在步驟203,將所讀取的DBCS字符數(shù)據(jù)與每個特征值集合中的特征值逐一進行比較,當(dāng)DBCS字符數(shù)據(jù)和某個特征值集合中的特征值匹配時,則對于相應(yīng)候選語言進行累加計數(shù)。
在步驟204,判斷相應(yīng)于韓語的計數(shù)是否大于或等于雙字節(jié)的總計數(shù)的10%。如果是,則處理進行到步驟205,從而在步驟205中,將所讀取的DBCS字符數(shù)據(jù)識別為韓語,然后處理結(jié)束。如果在步驟204中判斷出相應(yīng)于韓語的計數(shù)小于雙字節(jié)總計數(shù)的10%,則處理進行到步驟206,在步驟206中,將所讀取的DBCS字符數(shù)據(jù)識別為其它語言中其計數(shù)最大的語言,然后處理結(jié)束。
圖3示出了根據(jù)本發(fā)明另一實施例的用于識別DBCS字符數(shù)據(jù)的語言的方法的流程。與圖2實施例方法中的步驟201和步驟202相似,在步驟301,對DBCS字符數(shù)據(jù)可能是的每種候選東方語言確定一個特征值集合,并且在步驟302,讀取待識別的DBCS字符數(shù)據(jù)并累計雙字節(jié)的總計數(shù)。
然后,在步驟303,將所讀取的DBCS字符數(shù)據(jù)與每個特征值集合中的特征值逐一進行比較,當(dāng)DBCS字符數(shù)據(jù)和某個特征值集合中的特征值匹配時,則對于相應(yīng)候選語言的該特征值進行累加計數(shù)。
在步驟304中,判斷相應(yīng)于韓語單字節(jié)空格的計數(shù)是否大于或等于雙字節(jié)的總計數(shù)的10%。如果是,則處理進行到步驟305,從而在步驟305中,將所讀取的DBCS字符數(shù)據(jù)識別為韓語,然后處理結(jié)束。
如果在步驟304中判斷出相應(yīng)于韓語單字節(jié)空格的計數(shù)小于雙字節(jié)總計數(shù)的10%,則處理進行到步驟306,在步驟306中,進一步判斷在相應(yīng)于除韓語外的其它東方語言的計數(shù)值中是否存在最大值。如果是,則處理進行到步驟307,從而在步驟307中將所讀取的DBCS字符數(shù)據(jù)識別為其它語言中其計數(shù)值最大的語言,然后處理結(jié)束;否則,處理進行到步驟308。
在步驟308中進而判斷相應(yīng)于韓語單字節(jié)標(biāo)點符號的計數(shù)是否大于0,如果是,則處理進行到將所讀取的DBCS字符數(shù)據(jù)識別為韓語的步驟305,然后處理結(jié)束;否則,認為識別失敗,在這種情況下,可能是該段DBCS字符數(shù)據(jù)中基本上不包含雙字節(jié)的文字。或者,雖然是包含有雙字節(jié)的數(shù)據(jù),但是其不符合自然語言文字的書寫方式和習(xí)慣。
雖然上述各個實施例在累計計數(shù)后的判斷識別階段都以從韓語開始進行示例說明,但本發(fā)明并不限于此。也可以從檢查其它語種中的最大計數(shù)值開始,例如在某些情況下,在識別前已知待識別的DBCS字符數(shù)據(jù)很小有可能是韓語。
在識別出DBCS字符數(shù)據(jù)的語言之后,也就相當(dāng)于基本上確定了DBCS字符數(shù)據(jù)所屬的本地字符集。因為,一般地,如前所述,中文簡體相應(yīng)于GB系列的字符集,中文繁體相應(yīng)于BIG5,日語相應(yīng)于S_JIS,而韓語相應(yīng)于KSC。
為了準(zhǔn)確地確定已識別出其語言的DBCS字符數(shù)據(jù)所屬的本地字符集,本發(fā)明還可以進一步結(jié)合其他現(xiàn)行的方法,通過檢查是否所有的DBCS字符數(shù)據(jù)都由待定字符集中定義的字符組成來確定所屬的字符集。例如,在已識別出為中文字符集的情況下,由于GBK是GB2312-80的擴展,而GB18030-2000又是GBK的擴展,故可以根據(jù)該段DBCS字符數(shù)據(jù)是否包含擴充的編碼段來分辨其究竟屬于哪個字符集。
因此,根據(jù)本發(fā)明,不僅可以簡單、準(zhǔn)確地識別出DBCS字符數(shù)據(jù)所用的語言而且能夠準(zhǔn)確地分辨其所屬的本地字符集。
從而,通過應(yīng)用本發(fā)明,可以帶來諸多優(yōu)點。比如從服務(wù)器方面來說,使其能夠準(zhǔn)確判斷并處理輸入數(shù)據(jù),服務(wù)于多語種客戶端,并且提供簡潔高效的服務(wù),因此提高了服務(wù)器的性能。而從客戶端方面來說,通過利用本發(fā)明,使其免除了手工選擇,從而方便了用戶。另外,還使客戶端可以編程處理多語言數(shù)據(jù)。
盡管已結(jié)合圖1示例性地說明了實現(xiàn)根據(jù)本發(fā)明一個實施例的系統(tǒng)的硬件結(jié)構(gòu),但是本發(fā)明的系統(tǒng)在硬件結(jié)構(gòu)上并不限于此。而是各個功能單元可以再進一步地細分或和其它功能單元相結(jié)合,只要總體上能夠?qū)崿F(xiàn)本發(fā)明系統(tǒng)所需的功能即可。例如是,總計數(shù)器103可以和多個累加器105相結(jié)合構(gòu)成一個計數(shù)累加單元。
另外,實現(xiàn)本發(fā)明的硬件和功能的邊界完全是設(shè)計者例行設(shè)計選擇的問題。例如,可以很容易地以單片硬件(例如,集成電路(IC))或以多片、合作運行IC執(zhí)行讀取、比較、計數(shù)和識別功能??梢砸杂布?、軟件、固件或者這三種一般的平臺類型的任何組合來執(zhí)行這些功能。類似地,圖1中所示實施例中的存儲單元、讀取單元、比較單元、總計數(shù)單元、多個累加器和語言識別單元之間的硬件和/或功能邊界僅是說明性的。
盡管已經(jīng)示出和描述了本發(fā)明的幾個實施例,本領(lǐng)域的技術(shù)人員應(yīng)該理解,在不脫離本發(fā)明的原則和精神的情況下可以對這些實施例做出改變,本發(fā)明的范圍由權(quán)利要求書及其等同物來定義。對示例性實施例的許多變更和修改都包含在本發(fā)明的范圍之內(nèi)。
權(quán)利要求
1.一種用于在計算機系統(tǒng)中識別可能是包括韓語和其它多種東方語言的候選語言之一的雙字節(jié)字符集字符數(shù)據(jù)的語言的方法,包括下列步驟a.分別對于每一種候選語言確定一個特征值集合,其中所確定的特征值在其它候選語言相應(yīng)的本地字符集中沒有定義或通常不用;b.讀取待識別的雙字節(jié)字符集字符數(shù)據(jù)并累計雙字節(jié)的總計數(shù);c.將雙字節(jié)字符集字符數(shù)據(jù)與每種候選語言的特征值集合進行比較,并且每當(dāng)雙字節(jié)字符集字符數(shù)據(jù)和所述候選語言之一的特征值集合中的特征值之一匹配時,對相應(yīng)候選語言累計計數(shù);d.如果相應(yīng)于韓語的計數(shù)大于或等于總計數(shù)的10%,則將待識別的雙字節(jié)字符集字符數(shù)據(jù)識別為韓語,否則,將待識別的雙字節(jié)字符集字符數(shù)據(jù)識別為所述其它多種東方語言中其計數(shù)最大的語言。
2.如權(quán)利要求1所述的方法,其中所述其它多種東方語言分別為中文簡體、中文繁體和日語。
3.如權(quán)利要求1或2所述的方法,其中所確定的韓語的特征值集合中的特征值包括單字節(jié)空格值0x20,并且當(dāng)相對于待識別的雙字節(jié)字符集字符數(shù)據(jù)和該單字節(jié)空格值相匹配時而累計的計數(shù)大于總計數(shù)的10%時,將所述待識別的雙字節(jié)字符集字符數(shù)據(jù)識別為韓語。
4.如權(quán)利要求3所述的方法,其中所確定的韓語的特征值集合中的特征值還包括下面單字節(jié)標(biāo)點符號值感嘆號0x21、逗號0x2c、句號0x2e、和問號0x3f,當(dāng)所述步驟d的識別失敗時,該方法還包括步驟e,用來判斷相對于待識別的雙字節(jié)字符集字符數(shù)據(jù)和所述單字節(jié)標(biāo)點符號值相匹配時而累計的計數(shù)是否大于0,若是,則將所述待識別的雙字節(jié)字符集字符數(shù)據(jù)識別為韓語。
5.如權(quán)利要求2或4所述的方法,還包括在識別出雙字節(jié)字符集字符數(shù)據(jù)為哪種語言后,通過檢查是否所有雙字節(jié)字符集字符數(shù)據(jù)都是由與該種語言相應(yīng)的本地字符集中定義的字符組成來確定所屬的本地字符集的步驟。
6.如權(quán)利要求5所述的方法,其中與中文簡體相應(yīng)的本地字符集為GBK,與中文繁體相應(yīng)的本地字符集為BIG5,與日語相應(yīng)的本地字符集為S_JIS,與韓語相應(yīng)的本地字符集為KSC。
7.如權(quán)利要求2所述的方法,其中所確定的中文簡體的特征值集合中的特征值包括下面雙字節(jié)標(biāo)點符號值全寬逗號0xa3ac、表意逗號0xa1a2、表意句號0xa1a3、全寬感嘆號0xa3a1、全寬問號0xa3bf。
8.如權(quán)利要求2所述的方法,其中所確定的中文繁體的特征值集合中的特征值包括下面雙字節(jié)標(biāo)點符號值全寬逗號0xa141、表意逗號0xa142、全寬句號0xa144、表意句號0xa143、全寬感嘆號0xa149、全寬問號0xa148。
9.如權(quán)利要求2所述的方法,其中所確定的日語的特征值集合中的特征值包括下面雙字節(jié)標(biāo)點符號值表意逗號0x8141、表意句號0x8142、全寬感嘆號0x8149、全寬問號0x8148。
10.一種用于在計算機系統(tǒng)中識別可能是包括韓語和其它多種東方語言的候選語言之一的雙字節(jié)字符集字符數(shù)據(jù)的語言的系統(tǒng),包括存儲單元,用于存儲分別對于每一種候選語言所確定的特征值集合,其中所確定的特征值在其它候選語言相應(yīng)的本地字符集中沒有定義或通常不用;讀取單元,用于讀取待識別的雙字節(jié)字符集字符數(shù)據(jù);總計數(shù)單元,用于累計所讀取的雙字節(jié)字符集字符數(shù)據(jù)的雙字節(jié)的總計數(shù);比較單元,用于將所讀取的雙字節(jié)字符集字符數(shù)據(jù)與每種候選語言的特征值集合進行比較并輸出比較結(jié)果;多個累加器,其分別相應(yīng)于每種候選語言,當(dāng)所輸出的比較結(jié)果表明所述雙字節(jié)字符集字符數(shù)據(jù)和所述候選語言之一的特征值集合中的特征值之一匹配時,該多個累加器中相應(yīng)于該候選語言的累加器將其計數(shù)累加1;語言識別單元,用于根據(jù)所述總計數(shù)單元的總計數(shù)和所述分別相應(yīng)于每種候選語言的多個累加器的相應(yīng)計數(shù)來識別所述雙字節(jié)字符集字符數(shù)據(jù)的語言,其中如果相應(yīng)于韓語的計數(shù)大于總計數(shù)的10%,則將待識別的雙字節(jié)字符集字符數(shù)據(jù)識別為韓語,否則,將待識別的雙字節(jié)字符集字符數(shù)據(jù)識別為所述其它多種東方語言中其計數(shù)最大的語言。
全文摘要
一種在計算機系統(tǒng)中識別可能是包括韓語和其它多種東方語言的候選語言之一的DBCS字符數(shù)據(jù)的語言的方法和系統(tǒng)。該方法包括分別對于每一種候選語言確定一個特征值集合,其中所確定的特征值在其它候選語言相應(yīng)的本地字符集中沒有定義或通常不用;讀取待識別的DBCS字符數(shù)據(jù)并累計雙字節(jié)的總計數(shù);將DBCS字符數(shù)據(jù)與每種候選語言的特征值集合進行比較,并且每當(dāng)DBCS字符數(shù)據(jù)和所述候選語言之一的特征值集合中的特征值之一匹配時,對相應(yīng)候選語言累計計數(shù);如果相應(yīng)于韓語的計數(shù)大于或等于總計數(shù)的10%,則將待識別的DBCS字符數(shù)據(jù)識別為韓語,否則,將待識別的DBCS字符數(shù)據(jù)識別為所述其它多種東方語言中其計數(shù)最大的語言。
文檔編號G06F17/27GK1916888SQ20051009197
公開日2007年2月21日 申請日期2005年8月15日 優(yōu)先權(quán)日2005年8月15日
發(fā)明者趙香美, 郭宇 申請人:國際商業(yè)機器公司