本發(fā)明屬于計(jì)算機(jī)對(duì)自然語言處理的技術(shù)領(lǐng)域,涉及一種基于編碼和機(jī)器學(xué)習(xí)的多語種識(shí)別方法。
背景技術(shù):
隨著全球化進(jìn)程的推進(jìn)以及互聯(lián)網(wǎng)信息業(yè)務(wù)的飛速發(fā)展,人們?cè)絹碓较M梢酝黄普Z言障礙進(jìn)行交流,使得自動(dòng)語言識(shí)別技術(shù)越來越受到人們的重視,越來越多的企業(yè)正在尋找一種更強(qiáng)大的語種識(shí)別工具,這種工具能夠快速、高效的對(duì)不同種類的語言片段進(jìn)行準(zhǔn)確地判別。自動(dòng)語種識(shí)別,顧名思義,就是用計(jì)算機(jī)自動(dòng)識(shí)別出任意一段文本片段所屬語言類別的過程。語種識(shí)別在信息檢索和軍事領(lǐng)域都有很重要的應(yīng)用,只要是語言理解相關(guān)的領(lǐng)域,都是需要用到自動(dòng)語種識(shí)別技術(shù)的。因此對(duì)于語種識(shí)別技術(shù)的研究,對(duì)于計(jì)算機(jī)的發(fā)展有著至關(guān)重要的作用。
在現(xiàn)有的語種識(shí)別技術(shù)中,大體上可以分為兩種語種識(shí)別方法,一種是根據(jù)不同語種使用的字母差異,通過判斷文本每個(gè)字符的Unicode編碼,判斷文本中含有的字符語種類別,但是對(duì)于一些字母,既可能出現(xiàn)在一個(gè)語種文本中,又可能出現(xiàn)在其他的語種文本中,因此,通過編碼方式就很難判斷出其所屬語種,例如德語與法語,兩種語言所用的字母相同,無法通過Unicode編碼來進(jìn)行精確的語種判斷。現(xiàn)有很多提供語種識(shí)別功能的網(wǎng)站,比如google翻譯,langid等,都采用另一種基于機(jī)器學(xué)習(xí)的方法,即通過對(duì)語料庫(kù)的訓(xùn)練,將不同語言的單詞、字符訓(xùn)練成一個(gè)語種識(shí)別模型,對(duì)于待識(shí)別的文本,只需進(jìn)行簡(jiǎn)單的匹配就可以識(shí)別出該文本的語種類型,但是該方法的缺陷同樣明顯,即識(shí)別準(zhǔn)確度和訓(xùn)練樣本集都有很大的限制,而且當(dāng)輸入文本較短時(shí),與模型匹配時(shí)不會(huì)得到很好的效果,經(jīng)常適得其反,畢竟全世界的語言中單詞字符不計(jì)其數(shù),難以收錄全。google翻譯更是僅能識(shí)別52種語言,而且,由于機(jī)器學(xué)習(xí)方法的局限,使得混合文本預(yù)測(cè)結(jié)果只能為單一語種,導(dǎo)致語種識(shí)別錯(cuò)誤。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供了一種基于編碼和機(jī)器學(xué)習(xí)的多語種識(shí)別方法,克服了只能對(duì)單一語種或個(gè)別語種進(jìn)行語種識(shí)別的局限,
本發(fā)明提供的基于編碼和機(jī)器學(xué)習(xí)的多語種識(shí)別方法,實(shí)現(xiàn)步驟如下:
第一步,通過機(jī)器學(xué)習(xí)單元對(duì)文本進(jìn)行語種識(shí)別;
將ISO語言代碼作為語言特征庫(kù),對(duì)各語種文本語料庫(kù)進(jìn)行訓(xùn)練,通過樸素貝葉斯方法和N-gram模型訓(xùn)練識(shí)別97種語言的語種識(shí)別模型。
第二步,通過編碼識(shí)別單元對(duì)文本進(jìn)行處理,具體是:采用Unicode編碼識(shí)別文本中含有的字符語種類別,對(duì)各語種的單詞量進(jìn)行統(tǒng)計(jì)。
第三步,進(jìn)行混合語種判斷,輸出最終語種識(shí)別結(jié)果。
設(shè)機(jī)器學(xué)習(xí)單元識(shí)別的語種為第一語言,當(dāng)編碼識(shí)別單元識(shí)別的語言與第一語言一致時(shí),輸出最終語種識(shí)別結(jié)果為第一語言;在編碼識(shí)別單元識(shí)別到包含第一語言的多種語言時(shí),進(jìn)行混合語言規(guī)則判斷,輸出混合語言或單一語種。
可判斷第二語言在文本中的單詞量比例是否達(dá)到設(shè)定的比例,若達(dá)到,判定為文本為混合語言,否則,判定文本為單一語種。
進(jìn)行混合語言規(guī)則判斷,包括如下情況:
(1)機(jī)器學(xué)習(xí)單元識(shí)別為中文,編碼識(shí)別單元識(shí)別包含中文和藏文和/或維文,判斷藏文或維文在文本中的單詞量比例是否大于10%,若是則判定為混合語種,輸出中文和藏文和/或維文在文本中的單詞量比例,否則,判定為中文;
(2)機(jī)器學(xué)習(xí)單元識(shí)別為日文,編碼識(shí)別單元識(shí)別結(jié)果包含中文和日文,判斷日文在文本中的單詞量比例是否少于30%,若是判定為混合語言,輸出中文和日文分別在文本中的單詞量比例;否則,判定為日文;
(3)機(jī)器學(xué)習(xí)單元識(shí)別為中文,編碼識(shí)別單元識(shí)別結(jié)果包含中文和英文,判斷英文在文本中的單詞量比例是否大于60%,若是,修正輸出結(jié)果為主語言為英文,并輸出中文和英文分別在文本中的單詞量比例,否則,判定為中文;
(4)編碼識(shí)別單元識(shí)別結(jié)果包含俄文和/或蒙文和/或韓文,判斷俄文、蒙文或韓文在文本中的單詞量比例是否小于40%,若是,判定為混合語言,輸出俄文和/或蒙文和/或韓文分別在文本中的單詞量比例,否則,直接輸出機(jī)器學(xué)習(xí)單元的識(shí)別結(jié)果;
(5)機(jī)器學(xué)習(xí)單元識(shí)別為法文,判斷文本中是否含有法文專有字母/單詞,若沒有,修正識(shí)別語言為英文,否則輸出法文;
(6)機(jī)器學(xué)習(xí)單元識(shí)別為中文,但文本為亂碼,編碼識(shí)別單元未識(shí)別到任何漢字時(shí),輸出“unknown language”。
為了支持大批量文本的語種識(shí)別,本發(fā)明對(duì)于長(zhǎng)文本,先進(jìn)行采樣,然后對(duì)采樣得到的子文本進(jìn)行本發(fā)明的多語種識(shí)別,對(duì)子文本的語種識(shí)別結(jié)果就是長(zhǎng)文本的語種識(shí)別結(jié)果。
本發(fā)明提出的基于編碼和機(jī)器學(xué)習(xí)的多語種識(shí)別方法,其優(yōu)點(diǎn)和積極效果在于:
(1)本發(fā)明通過使用N-gram和樸素貝葉斯算法基于機(jī)器學(xué)習(xí)識(shí)別語種,與基于文本編碼識(shí)別語種的混合方式進(jìn)行語種識(shí)別,將兩種識(shí)別方式揚(yáng)長(zhǎng)避短,能夠準(zhǔn)確、高效地實(shí)現(xiàn)中文簡(jiǎn)繁體、日、法、英等97種語言的語種識(shí)別,同時(shí)支持混合語種文本識(shí)別。
(2)本發(fā)明還通過隨機(jī)采樣的方式大幅提升程序速度而同時(shí)僅下降些許識(shí)別準(zhǔn)確度,通過本發(fā)明方法可以進(jìn)行大規(guī)模文本數(shù)據(jù)的語種識(shí)別,在海量數(shù)據(jù)分析以及輿情監(jiān)控中具有廣泛的應(yīng)用前景。
附圖說明
圖1為本發(fā)明的基于編碼和機(jī)器學(xué)習(xí)的多語種識(shí)別方法的流程示意圖;
圖2為本發(fā)明識(shí)別方法中混合語言的判斷規(guī)則流程圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖,對(duì)本發(fā)明的技術(shù)方案進(jìn)一步詳細(xì)說明。
本發(fā)明采用機(jī)器學(xué)習(xí)算法,利用ISO語言列表,ISO標(biāo)準(zhǔn)的代碼名稱為:ISO 639-1,選定各語種的特征詞集合,對(duì)含有97個(gè)語種的文本語料庫(kù)進(jìn)行訓(xùn)練,通過不同語種含有的特征詞的不同組合來進(jìn)行單語種文本識(shí)別;在此基礎(chǔ)上,為了支持簡(jiǎn)繁體中文識(shí)別、提高識(shí)別準(zhǔn)確度、豐富識(shí)別語言數(shù)量以及支持混合語言文本識(shí)別,本發(fā)明提出將編碼方法與機(jī)器學(xué)習(xí)方法相結(jié)合,利用不同語種在Unicode中對(duì)應(yīng)不同的編碼區(qū)間來達(dá)到識(shí)別更多語種,監(jiān)督已支持語種,判斷文本是否為混合語言的目的。
對(duì)于有不少數(shù)量的文本,并不是使用單一的語種語言,而是多種語言混合使用,最常見的就是中英混合的方式,即便是論文中也會(huì)含有大概一頁(yè)篇幅的英文摘要,而本發(fā)明采用基于編碼和機(jī)器學(xué)習(xí)的多語種識(shí)別方法,能夠準(zhǔn)確地實(shí)現(xiàn)混合語種文本的識(shí)別。其核心思想是采用編碼來識(shí)別、統(tǒng)計(jì)各語種單詞個(gè)數(shù),對(duì)于一些多語種混合文本,在采用編碼識(shí)別的同時(shí),也獲取了除識(shí)別結(jié)果外其他語種在文本中所占的比例,編碼識(shí)別的結(jié)果通過與機(jī)器學(xué)習(xí)的識(shí)別結(jié)果作比較來驗(yàn)證準(zhǔn)確性,對(duì)于比例中的第二語言,如果其達(dá)到了文章總詞數(shù)的一定比例,則在最終輸出識(shí)別結(jié)果時(shí)給出“混合文本”。這在單獨(dú)采用編碼識(shí)別和單獨(dú)采用機(jī)器學(xué)習(xí)方法都是無法做到的,前者無法保證準(zhǔn)確率,后者原則上無法輸出兩種識(shí)別結(jié)果,本發(fā)明完美的實(shí)現(xiàn)了這一點(diǎn)。
本發(fā)明提供的基于編碼和機(jī)器學(xué)習(xí)的多語種識(shí)別方法,其所應(yīng)用的處理框架中主要包括編碼識(shí)別單元和機(jī)器學(xué)習(xí)單元。整體識(shí)別流程如圖1所示。在對(duì)輸入的文本進(jìn)行預(yù)處理之后分別輸入到編碼識(shí)別單元和機(jī)器學(xué)習(xí)單元中處理。對(duì)文本預(yù)處理一般是指字符串編碼識(shí)別,例如屬于UTF-8還是UTF-16,進(jìn)行亂碼處理等。
第一方面,在機(jī)器學(xué)習(xí)單元中對(duì)文本進(jìn)行語種識(shí)別。
機(jī)器學(xué)習(xí)單元,主要處理基于語料庫(kù)訓(xùn)練好的所有語種,通過不同語種含有不同的詞匯集這一特點(diǎn),作為語種識(shí)別處理手段。
本發(fā)明的機(jī)器學(xué)習(xí)單元中,將ISO語言代碼作為97種語言的語言特征庫(kù),對(duì)大量的各語種文本語料庫(kù)進(jìn)行訓(xùn)練,通過樸素貝葉斯方法和N-gram模型訓(xùn)練得到能夠識(shí)別97種語言的語種識(shí)別模型。
該語種識(shí)別模型能夠識(shí)別出Unicode編碼中含有的大多數(shù)語言,但是對(duì)于某些如藏語、繁體中文等語言特征較為特別的語言,機(jī)器學(xué)習(xí)訓(xùn)練方法很難得到一個(gè)能夠準(zhǔn)確將其識(shí)別的模型。然而由于繁體中文和藏語字母不會(huì)在其他語種中出現(xiàn)的這一唯一性特點(diǎn),本發(fā)明采用編碼識(shí)別的方式對(duì)機(jī)器學(xué)習(xí)方法進(jìn)行優(yōu)化。這樣,本發(fā)明識(shí)別方法就能夠?qū)崿F(xiàn)包含中文簡(jiǎn)繁體、藏語等97種不同語言的語種識(shí)別功能。
第二方面,在編碼識(shí)別單元中對(duì)文本進(jìn)行處理。
編碼識(shí)別單元,采用Unicode編碼對(duì)文本中含有的字符語種類別進(jìn)行識(shí)別,同時(shí)對(duì)各語種的詞匯量進(jìn)行統(tǒng)計(jì)。進(jìn)行詞匯量統(tǒng)計(jì)的主要包含中、日、韓、藏等在Unicode編碼中含有明顯編碼區(qū)間的語種。對(duì)于文本中的中文基于繁體字庫(kù)識(shí)別繁簡(jiǎn)體。
第三方面,結(jié)合編碼識(shí)別單元和機(jī)器學(xué)習(xí)單元的識(shí)別結(jié)果,判斷輸出最終結(jié)果。
對(duì)于語法規(guī)則、單詞等均比較相似的語言,如中文與日文、英文與法文等,單單通過機(jī)器學(xué)習(xí)對(duì)語料庫(kù)進(jìn)行訓(xùn)練,并不能夠較好地識(shí)別出文本所包含的語種類型,單獨(dú)使用編碼識(shí)別方法,也很難將編碼相似的兩種或多種語種進(jìn)行準(zhǔn)確地區(qū)分,同樣無法達(dá)到預(yù)期的結(jié)果。針對(duì)這個(gè)問題,本發(fā)明提出了使用編碼識(shí)別輔助機(jī)器學(xué)習(xí)的方法,根據(jù)Unicode編碼以及少許停用詞來輔助機(jī)器學(xué)習(xí)方法識(shí)別。
本發(fā)明根據(jù)機(jī)器學(xué)習(xí)單元識(shí)別的語種結(jié)果和編碼識(shí)別單元的識(shí)別結(jié)果及詞匯量的統(tǒng)計(jì),進(jìn)行語種識(shí)別規(guī)則判斷。如圖2所示,首先判斷機(jī)器學(xué)習(xí)單元的識(shí)別結(jié)果是否在編碼識(shí)別單元的判定區(qū)間內(nèi),即判斷機(jī)器學(xué)習(xí)單元的語種識(shí)別結(jié)果是否包含在編碼識(shí)別單元的識(shí)別結(jié)果中。若在,則進(jìn)一步判斷機(jī)器學(xué)習(xí)單元的識(shí)別結(jié)果與編碼識(shí)別單元的識(shí)別結(jié)果是否一致,若一致,輸出機(jī)器學(xué)習(xí)單元的識(shí)別結(jié)果,若不一致,進(jìn)行混合語言規(guī)則判斷,若滿足混合語言條件,則判定文本為混合語言,輸出混合語種識(shí)別結(jié)果,否則,滿足單一語言條件,判斷文本為單一語言,輸出語種識(shí)別結(jié)果。若機(jī)器學(xué)習(xí)單元的識(shí)別結(jié)果不在編碼判斷的區(qū)間內(nèi),直接輸出機(jī)器學(xué)習(xí)單元的識(shí)別結(jié)果。
例如,對(duì)于英文與法文,一旦編碼識(shí)別發(fā)現(xiàn)該文本中法文的單詞數(shù)量滿足條件而機(jī)器學(xué)習(xí)識(shí)別結(jié)果為英文,則對(duì)結(jié)果進(jìn)行及時(shí)地修正。在實(shí)際的測(cè)試中,英法混合的情況,準(zhǔn)確率由30%多上升為70%多,效果顯著,目前本發(fā)明準(zhǔn)確率達(dá)到97%以上,相對(duì)google翻譯、langid等語種識(shí)別來說更高。
本發(fā)明第三方面對(duì)于識(shí)別偽裝成罕見語種的敏感信息識(shí)別、其他語種的關(guān)鍵信息等具有重大意義。目前僅針對(duì)中文與其他語言混合的情況重點(diǎn)判斷,本發(fā)明進(jìn)行混合語言規(guī)則判斷的邏輯具體如下說明。
(1)機(jī)器學(xué)習(xí)單元識(shí)別為中文,編碼識(shí)別單元識(shí)別包含中文和藏文和/或維文,判斷藏文或維文在文本中的單詞量比例是否大于10%,若是則判定為混合語種,輸出中文和藏文和/或維文在文本中的單詞量比例,否則,判定為中文。
若編碼識(shí)別單元的識(shí)別結(jié)果不包含中文,則輸出藏文和/或維文及其他語種在文本中的單詞量比例。
(2)機(jī)器學(xué)習(xí)單元識(shí)別為日文,編碼識(shí)別單元識(shí)別結(jié)果包含中文和日文,判斷日文在文本中的單詞量比例是否少于30%,若是判定為混合語言,輸出中文和日文分別在文本中的單詞量比例;否則,判定為日文。
(3)機(jī)器學(xué)習(xí)單元識(shí)別為中文,編碼識(shí)別單元識(shí)別結(jié)果包含中文和英文,判斷英文在文本中的單詞量比例是否大于60%,若是,修正輸出結(jié)果為主語言為英文,并輸出中文和英文分別在文本中的單詞量比例,否則,判定為中文。機(jī)器學(xué)習(xí)單元識(shí)別為英文,且編碼識(shí)別單元統(tǒng)計(jì)的英文在文本中的單詞量比例大于60%,直接判定文本語種為英文。
(4)機(jī)器學(xué)習(xí)單元識(shí)別為俄文、蒙文或韓文,編碼識(shí)別單元識(shí)別結(jié)果包含俄文和/或蒙文和/或韓文,判斷俄文、蒙文或韓文在文本中的單詞量比例是否小于40%,若是,判定為混合語言,輸出俄文和/或蒙文和/或韓文分別在文本中的單詞量比例,否則,直接輸出機(jī)器學(xué)習(xí)單元的識(shí)別結(jié)果。
(5)機(jī)器學(xué)習(xí)單元識(shí)別為法文,判斷文本中是否含有法文專有字母/單詞,若沒有,修正識(shí)別語言為英文,否則輸出法文;
(6)機(jī)器學(xué)習(xí)單元識(shí)別為中文,但文本為亂碼,編碼識(shí)別單元未識(shí)別到任何漢字時(shí),輸出“unknown language”,即無法識(shí)別的語言。
為了支持大批量文本的語種識(shí)別,傳統(tǒng)的全文本識(shí)別僅有7MB/s的速度顯然是不夠的。本發(fā)明提出了采用基于文本采樣的方法實(shí)現(xiàn)語種識(shí)別。對(duì)于長(zhǎng)文本,可以先對(duì)長(zhǎng)文本進(jìn)行采樣,使用采樣得到的結(jié)果子文本再通過機(jī)器學(xué)習(xí)識(shí)別和編碼單元識(shí)別,進(jìn)行混合語言規(guī)則判斷。采樣的子文本的語種識(shí)別結(jié)果即為實(shí)際長(zhǎng)文本的語種識(shí)別結(jié)果。通過采樣策略,在不大幅度降低識(shí)別準(zhǔn)確率的情況下大大提升了編碼識(shí)別的效率,通過設(shè)置文本采樣隨機(jī)點(diǎn)的個(gè)數(shù)及采樣樣本的長(zhǎng)度兩個(gè)參數(shù),合理的設(shè)定文本采樣方案,在最大僅取500字進(jìn)行識(shí)別的情況下,準(zhǔn)確率達(dá)到96%接近97%,識(shí)別準(zhǔn)確率下降不到1%。本發(fā)明采用隨機(jī)采樣的方法對(duì)待識(shí)別語種的文本進(jìn)行采樣,可以通過用戶的合理設(shè)置,在不大幅度降低準(zhǔn)確率的情況下完成多語種的識(shí)別功能。可以看出,本發(fā)明采用基于編碼與機(jī)器學(xué)習(xí)相結(jié)合的算法,能夠高效、準(zhǔn)確的實(shí)現(xiàn)對(duì)語種混合文本的語種識(shí)別。
本發(fā)明實(shí)現(xiàn)多語種識(shí)別的一個(gè)API接口如下所示:
構(gòu)造函數(shù)
方法
輸出類型
LangDetector表示語種識(shí)別類。
應(yīng)該注意到并理解,在不脫離后附的權(quán)利要求所要求的本發(fā)明的精神和范圍的情況下,能夠?qū)ι鲜鲈敿?xì)描述的本發(fā)明做出各種修改和改進(jìn)。因此,要求保護(hù)的技術(shù)方案的范圍不受所給出的任何特定示范教導(dǎo)的限制。