專利名稱:日文網(wǎng)頁自動判別方法
技術領域:
本發(fā)明涉及網(wǎng)頁處理,特別是涉及一種日文網(wǎng)頁自動判別方法。
背景技術:
互聯(lián)網(wǎng)正在以爆炸式的速度在全球發(fā)展,在互聯(lián)網(wǎng)上,用戶可以訪問的網(wǎng)頁數(shù)量也越來越多。其中,互聯(lián)網(wǎng)訪問的一個特點是用戶可以在接入網(wǎng)絡的任意一個終端上,訪問到全世界各地的網(wǎng)頁信息。而這些網(wǎng)頁中,所使用的語言是多種多樣的。包括中文、英文、 日文等等各個民族所使用的語言。對特定的用戶來說,其訪問網(wǎng)頁是存在語言偏好的。例如,可能某些用戶只需要訪問用特定語言撰寫的網(wǎng)頁。以搜索引擎google為例,google給出了特定的語言選項,可以搜索特定語言的網(wǎng)頁,對來自中國大陸地區(qū)的用戶,一般是將語言選項選擇為“簡體中文網(wǎng)頁”。而中文網(wǎng)頁和日文網(wǎng)頁存在很大的相似性,因為日文語言中也存在大量漢字,因此,如何對日文網(wǎng)頁進行識別和區(qū)分,是必須解決的問題。因此,對互聯(lián)網(wǎng)上的網(wǎng)頁來說,非常需要一種良好的系統(tǒng),能夠自動的對網(wǎng)頁的語言類型進行識別?,F(xiàn)有技術中網(wǎng)頁是一個HTML (HyperText Mark-up Language)即超文本標記語言或超文本鏈接標示語言文件,HTML的結構包括頭部(Head)即網(wǎng)頁數(shù)據(jù)頭、主體 (Body)即網(wǎng)頁數(shù)據(jù)體兩大部分,網(wǎng)頁數(shù)據(jù)頭是指HTML標簽中<Head>和</Head>之間的部分,網(wǎng)頁數(shù)據(jù)體是指<Body>和</Body>之間的部分。利用現(xiàn)有技術在進行日文網(wǎng)頁識別時,還具有以下主要技術難點一、網(wǎng)頁本身編碼方式復雜,由于歷史原因,當今互聯(lián)網(wǎng)上網(wǎng)頁編碼的方式極為復雜。對于日文網(wǎng)頁來說, 既可能采用國際通行的Unicode編碼方式,也可能會使用日文專用的編碼方式。W3C (World Wide Web Consortium)組織制訂了網(wǎng)頁編碼識別標準,在網(wǎng)頁數(shù)據(jù)頭的char set或 encoding后,放置網(wǎng)頁編碼類型的標識字符串;涉及到中日文網(wǎng)頁區(qū)分的字符串包括日文專用編碼方式sjis、ujis、shiftjis、iso2022jp、eucjp、eucjap ;中文專用編碼方式 gb2312、gbk、gbl8030、big、autocht ;以及 W3C 制定的,統(tǒng)一內碼(Unicode)的編碼方式 UTF-8。二、日語存在漢字,易與中文網(wǎng)頁混淆。
發(fā)明內容
本發(fā)明所要解決的技術問題是提供一種日文網(wǎng)頁自動判別方法,能對采用不同網(wǎng)頁編碼的日文網(wǎng)頁進行自動識別,能較好的區(qū)分中文網(wǎng)頁和日文網(wǎng)頁,還能提高日文網(wǎng)頁識別的準確度。為解決上述技術問題,本發(fā)明提供的日文網(wǎng)頁自動判別方法,包括如下步驟步驟一、獲取網(wǎng)頁數(shù)據(jù)頭和網(wǎng)頁數(shù)據(jù)體。步驟二、讀出所述網(wǎng)頁數(shù)據(jù)頭中的編碼字符串,對所述編碼字符串進行數(shù)據(jù)歸一化,數(shù)據(jù)歸一化包括步驟去除空格、將字符都轉換為小寫形式、去除所有中英文標點符號。 讀出所述編碼字符串的方法為找出所述網(wǎng)頁數(shù)據(jù)頭中的編碼特征字符串,所述編碼特征字符串為“encoding”或“charset”;抽取出所述編碼特征字符串之后的“=”之后、“〉”之前的字符串作為所述編碼字符串。步驟三、確定所述編碼字符串的類型當所述編碼字符串數(shù)據(jù)歸一化后為sjis、 ujis、shiftjis、iso2022jp、eucjp、eucjap時為類型一;當所述編碼字符串數(shù)據(jù)歸一化后為gb、big、autocht時為類型二 ;當所述編碼字符串數(shù)據(jù)歸一化后為空即沒有字符時為類型三。其中類型一的字符串屬于日文專用編碼方式的標識字符串的歸一化后的字符串;類型二 的字符串屬于中文專用編碼方式的標識字符串的歸一化后的字符串。步驟四、從所述網(wǎng)頁數(shù)據(jù)體中抽取一采樣文本。抽取方法為當所述編碼字符串為類型一時,抽取的采樣文本長度為128字節(jié),抽取方法為從所述網(wǎng)頁數(shù)據(jù)體的第一個字符開始抽取長度為128字節(jié)的采樣文本;當所述編碼字符串為類型二時,抽取的采樣文本長度為256字節(jié),抽取方法為從所述網(wǎng)頁數(shù)據(jù)體的第一個字符開始抽取長度為128字節(jié)的采樣文本、再從所述網(wǎng)頁數(shù)據(jù)體的128字節(jié)之后的中間位置處抽取長度為128字節(jié)的采樣文本;當所述編碼字符串為類型三時,抽取的采樣文本長度為512字節(jié),抽取方法為從所述網(wǎng)頁數(shù)據(jù)體的第一個字符開始抽取長度為256字節(jié)的采樣文本、再從所述網(wǎng)頁數(shù)據(jù)體的256 字節(jié)之后的中間位置處提出長度為256字節(jié)的采樣文本。步驟五、設置初始置信值,設置方法為當所述編碼字符串為類型一時,所述初始置信值設置為0. 98 ;當所述編碼字符串為類型二時,所述初始置信值設置為0. 5 ;當所述編碼字符串為類型三時,所述初始置信值設置為0. 3。步驟六、對所述采樣文本的各字符進行字符編碼是否屬于日文編碼表的判斷,并將從第一個字符開始連續(xù)屬于日文編碼表的字符段的字符個數(shù)進行統(tǒng)計,并計算所述連續(xù)屬于日文編碼表的字符段的長度;將所述字符段的長度除以所述采樣文本的長度,得到確認比率。步驟七、用所述初始置信值加上所述確認比率得到一網(wǎng)頁編碼置信值,當所述網(wǎng)頁編碼置信值大于1時,確定當前網(wǎng)頁的語言類型為日文;當所述網(wǎng)頁編碼置信值小于等于1時,確定當前網(wǎng)頁的語言類型不為日文。進一步的改進是,當所述編碼字符串為類型一時,步驟六中判斷所述采樣文本的各字符的字符編碼是否屬于日文編碼表的方法為一、判斷所述字符的字符編碼的第一個字節(jié)是否為OxlB,若是,則所述字符共含有三個字節(jié),則判斷所述字符的字符編碼是否滿足條件所述字符的字符編碼的第二個字節(jié)為‘(’、第三個字節(jié)為‘B’、‘J’、‘I’之一,或者所述字符的字符編碼的第二個字節(jié)為‘$’、第三個字節(jié)為、‘B’之一,若滿足上述條件,則所述字符的字符編碼屬于日文編碼表且長度為三個字節(jié)。二、判斷所述字符的字符編碼的第一個字節(jié)是否大于0x7F,若是,則所述字符共含有二個字節(jié),則判斷所述字符的字符編碼是否滿足條件條件一、所述第一個字節(jié)為 0x81 0x9F、0xE0 OxEF、OxFA、OxFB,且所述第二個字節(jié)為 0x40 0x7E、0x80 OxFC ; 條件二、所述第一個字節(jié)為OxSE且所述第二個字節(jié)為OxAl OxDF,或者所述第一個字節(jié)為 OxAl OxFE且所述第二個字節(jié)為OxAl OxFE ;若滿足所述條件一、或所述條件二,則所述字符的字符編碼屬于日文編碼表且長度為二個字節(jié)。進一步的改進是,當所述編碼字符串為類型二時,步驟六中判斷所述采樣文本的各字符的字符編碼是否屬于日文編碼表的方法為一、判斷所述字符的字符編碼 是否滿足條件所述字符的字符編碼的第一個字節(jié)為0xA4 0xA5,且第二個字節(jié)為OxAl 0xF6 ;若滿足,則所述字符的字符編碼屬于日文編碼表且長度為二個字節(jié)。二、判斷所述字符的字符編碼是否滿足條件所述第一個字節(jié)為0xC6且所述第二個字節(jié)為OxDB OxFE,或所述第一個字節(jié)為0xC7且所述第二個字節(jié)為0x40 0x7E、 OxAl OxFE ;若滿足,則所述字符的字符編碼屬于日文編碼表且長度為二個字節(jié)。三、判斷所述字符的字符編碼是否滿足條件所述第一個字節(jié)為0x81 OxFE,且所述第二個字節(jié)為0x40 OxFE但不為0x7F,且所述字符的字符編碼屬于JAP_DICT1 ;若滿足,則所述字符的字符編碼屬于日文編碼表且長度為二個字節(jié)。四、判斷所述字符的字符編碼是否滿足條件所述第一個字節(jié)為0x81 OxFE,且所述第二個字節(jié)為0x40 OxFE但不為0x7F,且所述字符的字符編碼屬于JAP_DICT2 ;若滿足,則所述字符的字符編碼屬于日文編碼表,所述字符的實際長度為2各字節(jié),但是在計算所述字符段的長度時將所字符的長度計算為4個字節(jié)。進一步的改進是,當所述編碼字符串為類型三時,步驟六中判斷所述采樣文本的各字符的字符編碼是否屬于日文編碼表并計算所述確認比率的方法為一、根據(jù)所述編碼字符串為類型一時的判斷方法判斷各所述字符的字符編碼是否屬于日文編碼表,并計算出確認比率一。二、根據(jù)所述編碼字符串為類型二時的判斷方法判斷各所述字符的字符編碼是否屬于日文編碼表,并計算出確認比率二。三、比較所述確認比率一和所述確認比率二,將其中較大的值作為所述確認比率。本發(fā)明能對采用不同網(wǎng)頁編碼的日文網(wǎng)頁進行識別,能較好的對包含漢字的網(wǎng)頁進行判別、從而區(qū)分中文網(wǎng)頁和日文網(wǎng)頁,還能提高日文網(wǎng)頁識別的準確度。
下面結合附圖和具體實施方式
對本發(fā)明作進一步詳細的說明圖1是本發(fā)明方法的流程示意圖;圖2是本發(fā)明實施例的流程框圖。
具體實施例方式如圖1所述為本發(fā)明方法的的流程示意圖;如圖2所示為本發(fā)明實施例的流程框圖。本發(fā)明實施例日文網(wǎng)頁自動判別方法,包括如下步驟步驟一、獲取網(wǎng)頁數(shù)據(jù)頭和網(wǎng)頁數(shù)據(jù)體。步驟二、讀出所述網(wǎng)頁數(shù)據(jù)頭中的編碼字符串,對所述編碼字符串進行數(shù)據(jù)歸一化,數(shù)據(jù)歸一化包括步驟去除空格、將字符都轉換為小寫形式、去除所有中英文標點符號。讀出所述編碼字符串的方法為找出所述網(wǎng)頁數(shù)據(jù)頭中的編碼特征字符串(code_ string),所述編碼特征字符串為“encoding”或“charset”;抽取出所述編碼特征字符串之后的“=”之后、“〉”之前的字符串作為所述編碼字符串。判斷所述編碼特征字符串是 “encoding”、還是“charset”的方法是,根據(jù)網(wǎng)頁數(shù)據(jù)頭中是否出現(xiàn)特征字符串“〈rss”或“< ? xml”,若出現(xiàn),則為“encoding”;若沒出現(xiàn),則為“charset”;在C語言中是根據(jù)is_xml 的返回值進行判斷,is_xml的表達式為bool is_xml = (html_start ! = NULL&& (strncmp (html_start,“<rss4)== 0 I I strncmp (html_start, "< ? xml,,, 5) = = 0)。當is_Xml為1時,所述編碼特征字符串為‘‘encoding”;當is_Xml為0時,所述編碼特征字符串為‘‘charset”。步驟三、確定所述編碼字符串的類型當 所述編碼字符串數(shù)據(jù)歸一化后為sjis、 ujis、shiftjis、iso2022jp、eucjp、eucjap 中的任意一種時為類型一(Type-I);當所述編碼字符串數(shù)據(jù)歸一化后為gb、big、aUt0Cht中的任意一種時為類型二(Type-II);當所述編碼字符串數(shù)據(jù)歸一化后為空即沒有字符時為類型三(Type-III)。步驟四、從所述網(wǎng)頁數(shù)據(jù)體中抽取一采樣文本。抽取方法為當所述編碼字符串為類型一時,抽取的采樣文本長度(verifyjength)為128字節(jié),抽取方法為從所述網(wǎng)頁數(shù)據(jù)體的第一個字符開始抽取長度為128字節(jié)的采樣文本;當所述編碼字符串為類型二時,抽取的采樣文本長度為256字節(jié),抽取方法為從所述網(wǎng)頁數(shù)據(jù)體的第一個字符開始抽取長度為128字節(jié)的采樣文本、再從所述網(wǎng)頁數(shù)據(jù)體的128字節(jié)之后的中間位置處抽取長度為128 字節(jié)的采樣文本;當所述編碼字符串為類型三時,抽取的采樣文本長度為512字節(jié),抽取方法為從所述網(wǎng)頁數(shù)據(jù)體的第一個字符開始抽取長度為256字節(jié)的采樣文本、再從所述網(wǎng)頁數(shù)據(jù)體的256字節(jié)之后的中間位置處提出長度為256字節(jié)的采樣文本。步驟五、設置初始置信值(Confidencejalue),設置方法為當所述編碼字符串為類型一時,所述初始置信值設置為0. 98 ;當所述編碼字符串為類型二時,所述初始置信值設置為0. 5 ;當所述編碼字符串為類型三時,所述初始置信值設置為0. 3。步驟六、對所述采樣文本的各字符進行字符編碼是否屬于日文編碼表的判斷,并將從第一個字符開始連續(xù)屬于日文編碼表的字符段的字符個數(shù)進行統(tǒng)計,并計算所述連續(xù)屬于日文編碼表的字符段的長度;將所述字符段的長度除以所述采樣文本的長度,得到確認比率(verify_ratio) ο步驟七、用所述初始置信值加上所述確認比率得到一網(wǎng)頁編碼置信值,當所述網(wǎng)頁編碼置信值大于1時,確定當前網(wǎng)頁的語言類型為日文;當所述網(wǎng)頁編碼置信值小于等于1時,確定當前網(wǎng)頁的語言類型不為日文。在上述步驟六中,是根據(jù)所述編碼字符串的不同類型,來分別判斷所述采樣文本各字符是否屬于日文編碼表并計算所述確認比率(Verify_rati0)。當所述編碼字符串為類型一時,步驟六中判斷所述采樣文本的各字符的字符編碼是否屬于日文編碼表的方法為, 即如圖2所示的Type-I對應verify函數(shù)系列為一、判斷所述字符的字符編碼的第一個字節(jié)是否為OxlB,若是,則所述字符共含有三個字節(jié),則判斷所述字符的字符編碼是否滿足條件所述字符的字符編碼的第二個字節(jié)為‘(’、第三個字節(jié)為‘B’、‘J’、‘I’之一,或者所述字符的字符編碼的第二個字節(jié)為‘$’、第三個字節(jié)為、‘B’之一,若滿足上述條件,則所述字符的字符編碼屬于日文編碼表且長度為三個字節(jié)。用Java語言表示為如果ρ
= = OxlB,則判斷如下函數(shù)是否成立verify_jp_jis ()
p[l] ==&&(p[2] == ‘B,I ρ[2] == ‘J,| ρ[2] == T )或p[l] == ‘$,&&(p[2] == ‘@,I I ρ [2] == ‘B,)其中所述p
為所述字符的字符編碼的第一個字節(jié)、p[l]為第二個字節(jié)、p[2]為第三個字節(jié),即此時一個字符的字符編碼的長度為三個字節(jié)。二、判斷所述字符的字符編碼的第一個字節(jié)是否大于0x7F,若是,則所述字符共含有二個字節(jié),則判斷所述字符的字符編碼是否滿足條件條件一、所述第一個字節(jié)為 0x81 0x9F、0xE0 OxEF、OxFA、OxFB,且所述第二個字節(jié)為 0x40 0x7E、0x80 OxFC ; 條件二、所述第一個字節(jié)為OxSE且所述第二個字節(jié)為OxAl OxDF,或者所述第一個字節(jié)為 OxAl OxFE且所述第二個字節(jié)為OxAl OxFE ;若滿足所述條件一、或所述條件二,則所述字符的字符編碼屬于日文編碼表且長度為二個字節(jié)。用Java語言表示為如果p
>0x7F,則判斷如下函數(shù)之一是否成立條件一的函數(shù)Verify_jp_SjiS ()的判斷條件為((ρ
> = 0x81&&p
< = 0x9F) | | (ρ
> = OxEOMp
< = OxEF) | | ρ
= =OxFA |ρ
== 0xFB)&&((p[l] >= 0x40&&p[l] <= 0x7E) | | (p[l] >= 0x80&&p[l] <=OxFC))。條件二的函數(shù)Verify_jp_euC ()判斷條件為(p
= = 0x8E)&&(p[l] > = 0χΑ1)&&(ρ[1] < = OxDF) | | ((p
> = 0xAl)&&(p
<= 0xFE)&&(p[l] >= 0xAl)&&(p[l] <=0xFE))。當所述編碼字符串為類型二時,步驟六中判斷所述采樣文本的各字符的字符編碼是否屬于日文編碼表的方法為,即如圖2所示的Type-II對應verify函數(shù)系列為,即判斷以下任一條件是否滿足—、判斷所述字符的字符編碼是否滿足條件所述字符的字符編碼的第一個字節(jié)為0xA4 0xA5,且第二個字節(jié)為OxAl 0xF6 ;若滿足,則所述字符的字符編碼屬于日文編碼表且長度為二個字節(jié)。用Java語言表示為,判斷如下函數(shù)Verify_jp_fn()是否成立((p
== 0xA4) | | (p
== 0xA5))&&(p[l] >= 0χΑ1)&&(ρ[1] <= 0xF6)。 二、判斷所述字符的字符編碼是否滿足條件所述第一個字節(jié)為0xC6且所述第二個字節(jié)為OxDB OxFE,或所述第一個字節(jié)為0xC7且所述第二個字節(jié)為0x40 0x7E、 OxAl OxFE ;若滿足,則所述字符的字符編碼屬于日文編碼表且長度為二個字節(jié)。用 Java語言表示為,判斷如下函數(shù)Verify_jp_big()是否成立:p
== 0xC6&&p[l] > = OxDBMp[1] <= OxFE)) | | (p
== 0xC7&&p[l] >= 0x40&&p[l] <= 0x7E) | | (p
= =0xC7&&p[l] >= OxAlMp [1] <= OxFE)。三、判斷所述字符的字符編碼是否滿足條件所述第一個字節(jié)為0x81 OxFE,且所述第二個字節(jié)為0x40 OxFE但不為0x7F,且所述字符的字符編碼屬于JAP_DICT1 ;若滿足,則所述字符的字符編碼屬于日文編碼表且長度為二個字節(jié)。用Java語言表示為,判斷如下函數(shù)verify_jp_gb()是否成立p
> = 0x81&&p
< = OxfeMp [1] >= 0x40&&p[l] <= OxfeMp [1] != 0x7f&&p
p[l] e JAP_DICT1。
四、判斷所述字符的字符編碼是否滿足條件所述第一個字節(jié)為0x81 OxFE,且所述第二個字節(jié)為0x40 OxFE但不為0x7F,且所述字符的字符編碼屬于JAP_DICT2 ;若滿足,則所述字符的字符編碼屬于日文編碼表,所述字符的實際長度為2各字節(jié),但是在計算所述字符段的長度時將所字符的長度計算為4個字節(jié)。用Java語言表示為,判斷如下函數(shù) verify_jp_special ()是否成立p
> = 0x81&&p
< = OxfeMp [1] >= 0x40&&p[l] <= OxfeMp [1] != 0x7f&&p
p[l] e JAP_DICT2當所述編碼字符串為類型三時,步驟六中判斷所述采樣文本的各字符的字符編碼是否屬于日文編碼表的方法為,即如圖2所示的Type-III對應verify函數(shù)系列為
一、根據(jù)所述編碼字符串為類型一時的判斷方法判斷各所述字符的字符編碼是否屬于日文編碼表,并計算出確認比率一。二、根據(jù)所述編碼字符串為類型二時的判斷方法判斷各所述字符的字符編碼是否屬于日文編碼表,并計算出確認比率二。三、比較所述確認比率一和所述確認比率二,將其中較大的值作為所述確認比率。上述JAP_DICT1和JAP_DICT2分別為兩個日文字典表,其中JAP_DICT1為日文中使用、中文中可能使用的漢字字符,JAP_DICT2為僅日文使用、中文并不使用的漢字字符, JAP_DICT1和JAP_DICT2所包含的漢字字符分別列舉如下一、JAP_DICT1 包括如下 1947 個字亜哀愛悪握圧扱安暗案衣以位依偉囲醫(yī)委威尉意慰易為異移維緯胃違遺域育一春逸芋印員因姻引飲院陰隠韻右宇羽雨運云営影映栄永泳英衛(wèi)詠銳液疫益駅悅謁越閱円園宴延援沿演炎煙猿縁遠鉛塩汚王凹央往応押橫歐毆奧桜翁黃億屋憶乙卸恩溫穏音下化仮何価佳加可夏嫁家寡科暇果架歌河火禍稼個花荷華菓課貨渦過蚊我畫芽賀雅餓介會解回塊壊快怪悔懐戒拐改械?;医缃越}開階貝劾外害慨概涯街該垣嚇各拡格核殼獲確獲覚角較郭閣隔革學岳楽額掛潟割喝括活渴滑褐轄且株刈乾冠寒刊勘勧卷喚堪完官寛干干患感慣憾換敢棺款歓汗?jié)h環(huán)甘監(jiān)看管簡緩缶肝艦観貫還鑒間閑関陥館丸含岸眼巖頑顏愿企危喜器基奇寄岐希幾忌揮機旗既期棋棄機帰気汽祈季紀規(guī)記貴起軌輝饑騎鬼偽儀宜戯技擬欺犠疑義議菊吉吃詰卻客腳虐逆丘久休及吸宮弓急救朽求泣球究窮級糾給舊牛去居巨拒拠挙虛許距漁魚享京供競共兇協(xié)叫境峽強恐恭挾教橋況狂狹矯胸脅興郷鏡響驚仰凝暁業(yè)局曲極玉勤均斤琴禁筋緊菌襟謹近金吟銀九句區(qū)苦駆具愚虞空偶遇隅屈掘靴繰桑勲君薰訓群軍郡系傾刑兄啟型契形徑恵慶憩掲攜敬景渓系経継莖蛍計警軽鶏蕓迎鯨劇撃激杰欠決潔穴結血月件儉健兼券剣圏堅嫌建憲懸検権犬獻研絹県肩見謙賢軒遣険顕験元原厳幻弦減源玄現(xiàn)言限個古呼固孤己庫弧戸故枯湖夸雇顧鼓五互午呉娛后御悟碁語誤護交侯候光公功効厚口向后坑好孔孝工巧幸?guī)诳岛慊趴咕锌毓ジ嫿楦蹨霞谆视哺寮t絞綱耕考肯航荒行衡講貢購郊酵鉱鋼降項香高剛號合拷豪克刻告國谷酷黒獄腰骨込今困墾婚恨懇昆根混紺魂佐唆左差查砂詐鎖座債催再最妻宰彩才采栽歳済災砕祭斎細菜裁載際剤在材罪財坂咲崎作削榨昨策索錯冊刷察撮擦札殺雑皿三傘參山慘散桟產算蠶賛酸暫殘士子支止氏仕史司矢使刺嗣四始姉姿市糸伺師志思指施旨枝死祉私紙紫肢脂至視詞詩試志諮資賜雌飼歯事似侍児字寺慈持時次滋治璽磁示耳自辭式識軸七執(zhí)失室濕漆疾質実芝舎寫射舍赦斜煮社者謝車遮蛇邪借勺尺爵酌釈若寂弱主取守手朱殊狩珠種趣酒首儒受壽授樹需囚収周宗就州修愁拾秀秋終習臭舟眾襲周酬集丑住充十従柔汁渋獣縦重銃叔宿淑??s粛塾熟出術述俊春瞬準循旬殉準潤盾純巡遵順処初所暑庶緒署書諸助敘女如序徐除傷償勝匠升召商唱奨宵將小少尚床彰承抄招掌升昭晶松沼消涉焼焦照癥省硝礁祥稱章笑妝紹肖沖訟證詔詳象賞鐘障上丈乗冗剰城場常情條浄狀畳蒸繩壌嬢譲醸錠囑飾植殖織職色觸食辱伸信侵唇娠寢審心慎振新森浸深申真津神紳臣薪親診身辛進針震人仁刃尋甚盡迅陣酢図吹垂帥推水炊睡粋衰遂酔錘隨髄崇數(shù)樞據(jù)杉澄寸瀬畝是井世正生成西聲制勢姓征性政整星婿晴清牲盛精圣制誠誓請逝青靜斉稅夕斥石赤昔只席惜析積籍績責跡切拙接摂折設竊節(jié)說雪絕舌仙先千占宣専川戦扇栓泉淺洗染潛旋線繊船薦踐選遷銭銑鮮前善漸然全禪繕塑措疎礎祖租粗素組訴阻僧創(chuàng)雙倉喪壯奏層想搜掃揷操早曹巣槽燥爭相窓総草荘葬藻裝走送遭霜騒像增憎臓蔵贈造促側則即息束測足速俗屬賊族続卒存孫尊損村他多太墮妥惰打駄體対耐帯待怠態(tài)替泰滯胎袋貸退逮隊代臺大第題滝卓宅択拓沢濯托濁諾但達奪脫棚谷丹単嘆擔探淡炭短端膽誕鍛団壇弾斷暖段男談値知地恥池癡稚置致遅筑畜竹蓄逐秩窒茶嫡著中仲沖宙忠抽晝柱注蟲衷鑄駐著貯丁兆帳庁吊張雕徵 懲挑朝潮町眺聴脹腸調超跳長釣頂鳥勅直朕沈珍賃鎮(zhèn)陳墜追痛通冢漬坪亭低停偵貞呈提定帝底庭廷弟抵提程締艇訂通邸泥摘敵滴的笛適哲徹撤迭鉄典天展店添転點伝殿田電吐涂徒斗渡登途都努度土奴怒倒黨冬凍刀唐塔島悼投搭東桃棟盜湯燈當痘等答筒糖統(tǒng)稲到討謄豆踏逃透陶頭騰闘働動同堂導洞童胴道銅峠匿得德特督篤毒獨読凸突屆屯豚曇鈍內南軟難二尼弍肉日乳入尿任妊忍認寧熱年念燃粘悩納能脳農濃把覇波派破婆馬俳廃拝排敗杯背肺輩配倍培媒梅買殼賠陪伯博拍泊白舶薄迫漠爆縛麥箱肌畑八缽発髪伐罰抜閥伴判半反帆搬板版犯班畔繁般藩販范煩頒飯晚番盤蠻卑否妃彼悲扉批披比泌疲皮碑秘罷肥被費避非飛備尾微美鼻匹必筆姬百表標氷漂票表評描貓病秒苗品浜貧賓頻敏瓶不付夫婦富布府怖扶敷普浮父符腐膚譜負賦赴附侮武舞部封風伏副復幅服福腹復覆払沸仏物分噴墳憤奮粉紛雰文聞丙并兵塀幣平弊柄并閉陛米壁癖別偏変片編辺返遍便勉弁歩保舗捕浦補穂募墓慕暮母簿仿俸包報奉寶峰崩抱放方法泡炮縫胞芳褒訪豊邦飽乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貿防北仆墨撲樸牧沒堀奔本翻凡盆摩磨魔麻埋妹枚每幕膜又抹末繭萬慢満漫未味魅岬密脈妙民眠務夢無矛霧娘名命明盟迷銘鳴滅免綿面模茂妄毛猛盲網(wǎng)耗木黙目戻問紋門匁夜野厄役約薬訳躍柳由油愉諭輸愈唯友有勇幽悠憂猶裕誘游郵雄融優(yōu)與予余譽預幼容庸揚搖擁曜様洋溶用窯羊葉要謠踴陽養(yǎng)抑欲浴翌翼羅裸來頼雷絡落酪亂卵欄濫覧利吏里履理痢裏離陸律率立略流留硫粒隆竜慮旅虜了僚両寮料涼獵療糧良量陵領力綠倫厘林臨輪隣塁涙累類令例冷勵禮鈴隸零霊齢麗暦歴列劣烈裂廉戀練連鍊爐路露労廊朗樓浪漏老郎六錄論和話賄惑枠灣腕鹼堺。二、DICT2包括如下196個字亜悪圧扱囲春隠営栄駅円縁塩汚応桜穏仮価菓壊懐絵拡覚楽潟渴刈勧卷寛歓観関陥帰気戯犠拠挙郷暁駆勲恵掲渓経継蛍軽鶏撃儉剣検権県険顕験厳戸呉娛碁効広鉱黒込歳済砕斎剤咲雑桟賛諮歯児実舎釈収従渋獣縦粛処奨涉焼乗剰畳繩壌壌譲醸図粋酔瀨斉摂専戦繊銭疎搜揷巣窓総荘騒蔵続馱対帯滝択沢単団弾値遅鑄庁徵町聴通鉄転伝電稲謄闘働峠德読弍悩脳廃拝殼発抜氷払仏雰変辺弁歩舗穂豊満黙戻薬訳樣頼覧裏竜両獵塁隸霊齢暦歴鍊労枠鹼堺。以上通過具體實施例對本發(fā)明進行了詳細的說明,但這些并非構成對本發(fā)明的限制。在不脫離本發(fā)明原理的情況下,本領域的技術 人員還可做出許多變形和改進,這些也應視為本發(fā)明的保護范圍。
權利要求
1.一種日文網(wǎng)頁自動判別方法,其特征在于,包括如下步驟 步驟一、獲取網(wǎng)頁數(shù)據(jù)頭和網(wǎng)頁數(shù)據(jù)體;步驟二、讀出所述網(wǎng)頁數(shù)據(jù)頭中的編碼字符串,對所述編碼字符串進行數(shù)據(jù)歸一化,數(shù)據(jù)歸一化包括步驟去除空格、將字符都轉換為小寫形式、去除所有中英文標點符號;步驟三、確定所述編碼字符串的類型當所述編碼字符串數(shù)據(jù)歸一化后為Sjis、ujis、 shiftjis、iso2022jp、eucjp、eucjap時為類型一;當所述編碼字符串數(shù)據(jù)歸一化后為gb、 big.autocht時為類型二 ;當所述編碼字符串數(shù)據(jù)歸一化后沒有字符時為類型三;步驟四、從所述網(wǎng)頁數(shù)據(jù)體中抽取一采樣文本;抽取方法為當所述編碼字符串為類型一時,抽取的采樣文本長度為128字節(jié),抽取方法為從所述網(wǎng)頁數(shù)據(jù)體的第一個字符開始抽取長度為128字節(jié)的采樣文本;當所述編碼字符串為類型二時,抽取的采樣文本長度為256字節(jié),抽取方法為從所述網(wǎng)頁數(shù)據(jù)體的第一個字符開始抽取長度為128字節(jié)的采樣文本、再從所述網(wǎng)頁數(shù)據(jù)體的 128字節(jié)之后的中間位置處抽取長度為128字節(jié)的采樣文本;當所述編碼字符串為類型三時,抽取的采樣文本長度為512字節(jié),抽取方法為從所述網(wǎng)頁數(shù)據(jù)體的第一個字符開始抽取長度為256字節(jié)的采樣文本、再從所述網(wǎng)頁數(shù)據(jù)體的 256字節(jié)之后的中間位置處提出長度為256字節(jié)的采樣文本;步驟五、設置初始置信值,設置方法為當所述編碼字符串為類型一時,所述初始置信值設置為0. 98 ;當所述編碼字符串為類型二時,所述初始置信值設置為0. 5 ;當所述編碼字符串為類型三時,所述初始置信值設置為0. 3 ;步驟六、對所述采樣文本的各字符進行字符編碼是否屬于日文編碼表的判斷,并將從第一個字符開始連續(xù)屬于日文編碼表的字符段的字符個數(shù)進行統(tǒng)計,并計算所述連續(xù)屬于日文編碼表的字符段的長度,將所述字符段的長度除以所述采樣文本的長度,得到確認比率;步驟七、用所述初始置信值加上所述確認比率得到一網(wǎng)頁編碼置信值,當所述網(wǎng)頁編碼置信值大于1時,確定當前網(wǎng)頁的語言類型為日文;當所述網(wǎng)頁編碼置信值小于等于1 時,確定當前網(wǎng)頁的語言類型不為日文。
2.如權利要求1所述日文網(wǎng)頁自動判別方法,其特征在于步驟二中讀出所述編碼字符串的方法為找出所述網(wǎng)頁數(shù)據(jù)頭中的編碼特征字符串,所述編碼特征字符串為 “encoding”或“charset” ;抽取出所述編碼特征字符串之后的“=”之后、“〉”之前的字符串作為所述編碼字符串。
3.如權利要求1所述日文網(wǎng)頁自動判別方法,其特征在于當所述編碼字符串為類型一時,步驟六中判斷所述采樣文本的各字符的字符編碼是否屬于日文編碼表的方法為一、判斷所述字符的字符編碼的第一個字節(jié)是否為OxlB,若是,則所述字符共含有三個字節(jié),則判斷所述字符的字符編碼是否滿足條件所述字符的字符編碼的第二個字節(jié)為 ‘(’、第三個字節(jié)為‘B’、‘ J’、‘ I ’之一,或者所述字符的字符編碼的第二個字節(jié)為‘$’、第三個字節(jié)為、‘B’之一,若滿足上述條件,則所述字符的字符編碼屬于日文編碼表且長度為三個字節(jié);二、判斷所述字符的字符編碼的第一個字節(jié)是否大于0x7F,若是,則所述字符共含有二個字節(jié),則判斷所述字符的字符編碼是否滿足條件條件一、所述第一個字節(jié)為0x81 0x9F、0xE0 OxEF、OxFA、OxFB,且所述第二個字節(jié)為 0x40 0x7E、0x80 OxFC ;條件二、 所述第一個字節(jié)為0x8E且所述第二個字節(jié)為OxAl OxDF,或者所述第一個字節(jié)為OxAl OxFE且所述第二個字節(jié)為OxAl OxFE ;若滿足所述條件一、或所述條件二,則所述字符的字符編碼屬于日文編碼表且長度為二個字節(jié)。
4.如權利要求1所述日文網(wǎng)頁自動判別方法,其特征在于當所述編碼字符串為類型二時,步驟六中判斷所述采樣文本的各字符的字符編碼是否屬于日文編碼表的方法為一、判斷所述字符的字符編碼是否滿足條件所述字符的字符編碼的第一個字節(jié)為 0xA4 0xA5,且第二個字節(jié)為OxAl 0xF6 ;若滿足,則所述字符的字符編碼屬于日文編碼表且長度為二個字節(jié);二、判斷所述字符的字符編碼是否滿足條件所述第一個字節(jié)為0xC6且所述第二個字節(jié)為OxDB OxFE,或所述第一個字節(jié)為0xC7且所述第二個字節(jié)為0x40 0χ7Ε、0χΑ1 OxFE ;若滿足,則所述字符的字符編碼屬于日文編碼表且長度為二個字節(jié);三、判斷所述字符的字符編碼是否滿足條件所述第一個字節(jié)為0x81 OxFE,且所述第二個字節(jié)為0x40 OxFE但不為0x7F,且所述字符的字符編碼屬于JAP_DICT1 ;若滿足, 則所述字符的字符編碼屬于日文編碼表且長度為二個字節(jié);四、判斷所述字符的字符編碼是否滿足條件所述第一個字節(jié)為0x81 OxFE,且所述第二個字節(jié)為0x40 OxFE但不為0x7F,且所述字符的字符編碼屬于JAP_DICT2 ;若滿足, 則所述字符的字符編碼屬于日文編碼表,所述字符的實際長度為2各字節(jié),但是在計算所述字符段的長度時將所字符的長度計算為4個字節(jié)。
5.如權利要求1、或3、或4所述日文網(wǎng)頁自動判別方法,其特征在于當所述編碼字符串為類型三時,步驟六中判斷所述采樣文本的各字符的字符編碼是否屬于日文編碼表并計算所述確認比率的方法為一、根據(jù)所述編碼字符串為類型一時的判斷方法判斷各所述字符的字符編碼屬于是否日文編碼表,并計算出確認比率一;二、根據(jù)所述編碼字符串為類型二時的判斷方法判斷各所述字符的字符編碼屬于是否日文編碼表,并計算出確認比率二 ;三、比較所述確認比率一和所述確認比率二,將其中較大的值作為所述確認比率。
全文摘要
本發(fā)明公開了一種日文網(wǎng)頁自動判別方法,包括步驟獲取網(wǎng)頁數(shù)據(jù)頭和網(wǎng)頁數(shù)據(jù)體;讀出網(wǎng)頁數(shù)據(jù)頭中的編碼字符串,對編碼字符串進行數(shù)據(jù)歸一化;確定編碼字符串的類型;根據(jù)編碼字符串的類型從網(wǎng)頁數(shù)據(jù)體中抽取一采樣文本;根據(jù)編碼字符串的類型設置初始置信值;判斷采樣文本的各字符的字符編碼是否屬于日文編碼表并計算連續(xù)屬于日文編碼表的字符段的長度,將字符段的長度除以采樣文本的長度,得到確認比率;用初始置信值加上確認比率得到一網(wǎng)頁編碼置信值,當網(wǎng)頁編碼置信值大于1時,確定當前網(wǎng)頁的語言類型為日文。本發(fā)明能對采用不同網(wǎng)頁編碼的日文網(wǎng)頁進行自動識別,能較好的區(qū)分中文網(wǎng)頁和日文網(wǎng)頁,能提高日文網(wǎng)頁識別的準確度。
文檔編號G06F17/30GK102375818SQ20101025157
公開日2012年3月14日 申請日期2010年8月12日 優(yōu)先權日2010年8月12日
發(fā)明者宋海濤, 陳運文, 馬飛濤 申請人:盛樂信息技術(上海)有限公司