中文分詞看似簡(jiǎn)單,但其實(shí)不是一個(gè)小課題,我想在中文分詞上研究的絕不是一個(gè)兩個(gè)人就可以搞定的事情,不過因時(shí)置地的開發(fā)適合自己用的分詞也是不錯(cuò)的打算。不過能夠借用別人的研究結(jié)果而最大化的達(dá)到效果則也是一種辦法。
如果非要投入到中文分詞的研究中,就不能單純的在分詞中分詞.如很多時(shí)候我們自己讀一篇難以歧義的句子,都是通過上下文來判斷的,估計(jì)那個(gè)時(shí)候的分詞則是人工智能的領(lǐng)域.
下面全面介紹下其中文分類的細(xì)節(jié)
1. 如何進(jìn)行分詞?
最容易想到的辦法是,用一個(gè)大詞典,把所有的詞都存入詞典中,掃描輸入的文本,查找所有可能的詞,然后看哪個(gè)詞可以做為輸出。例如:
輸入文本: 我是學(xué)生
詞: 我/是/學(xué)生
其實(shí)這樣做了以后,可以解決60%的問題。總結(jié)起來,分詞的算法分為:
1. 基于字符串匹配的分詞方法
2. 基于理解的分詞方法
3. 基于統(tǒng)計(jì)的分詞方法
關(guān)于這3種算法的詳細(xì)介紹,可以查看中文分詞技術(shù).
2.分詞的問題
1.通用詞表和切分規(guī)范
信息處理中分詞單位的定義比傳統(tǒng)意義上的詞更寬泛些。分詞系統(tǒng)可以面向解決實(shí)際問題的需求和真實(shí)語(yǔ)料中使用的頻繁程度來規(guī)定“分詞單位”。而傳統(tǒng)詞語(yǔ)是可能不包含所有的詞語(yǔ)的,例如,一些人名、地名、機(jī)構(gòu)名、外國(guó)人譯名,應(yīng)予以識(shí)別和切分。一些動(dòng)詞和形容詞重疊結(jié)構(gòu),如“高高大大”、“甜甜蜜蜜”等;一些附加詞,如后綴,“親和性”、“熱敏性”等;都可以作為分詞單位予以識(shí)別和切分。故對(duì)于一個(gè)分詞系統(tǒng)而言,制定一個(gè)一致性的分詞單位切分規(guī)范是需要考慮的.
2.歧義切分字段
文本中歧義切分字段的判別。漢語(yǔ)中歧義切分字段最基本有兩種類型:
交集型歧義字段,如:“中國(guó)/人”,“中/國(guó)人”兩種切分結(jié)果。 組合型歧義。如:“有/才能/”。“他/才/能/告訴/你”
3.未登錄詞識(shí)別(新詞)
語(yǔ)言的發(fā)展和變化,以及詞的衍生現(xiàn)象非常普遍,不可能都收入辭典中。特別是人名、地名等專有名詞,在文本中有非常高的使用頻度和比例。
3.中文分詞解決方法
a.處理新詞。
如:2003年之前,沒有人知道"非典
"。"非典"剛出現(xiàn)的時(shí)候,這就是新詞。還有"超女",
"三個(gè)代表","芙蓉姐姐"。識(shí)別新詞的能力是評(píng)估一個(gè)分詞系統(tǒng)的重要指標(biāo)。在國(guó)際上每年進(jìn)行的分詞大賽中,識(shí)別新詞的比賽也單獨(dú)提出。2006年
SIGHAN的分詞大賽中,就增添了對(duì)于機(jī)構(gòu)名識(shí)別的比賽。
識(shí)別新詞是最近幾年分詞技術(shù)研究的重點(diǎn)。總結(jié)起來,無非分成兩種:
1. 基于規(guī)則的方法。
2. 基于統(tǒng)計(jì)、機(jī)器學(xué)習(xí)。
拿人名識(shí)別為例。你不可能把所有的人名都放入詞典中,這決定了人名注定會(huì)是新詞。從人名構(gòu)造來說,很有規(guī)律:姓+名。張王劉李陳、天下一半人。也就是說可
能有一半的人,是這五個(gè)姓。名也有一定規(guī)律:建華/建國(guó)/志強(qiáng).....等有許多經(jīng)常用于名字中的漢字;對(duì)于地名識(shí)別也可以找出很多規(guī)則,省/縣/村/鎮(zhèn)
/灣/河等,都是很常用的后綴,如果他們出現(xiàn),之前出現(xiàn)地名的可能性比較大。如果把這些規(guī)律轉(zhuǎn)化成計(jì)算機(jī)能識(shí)別的算法,就是基于規(guī)則的算法。這種基于規(guī)則
的算法簡(jiǎn)單有效,而且發(fā)現(xiàn)規(guī)則可很方便加入。
規(guī)則總會(huì)有例外,規(guī)則過多以后,如何去權(quán)衡這些規(guī)則,會(huì)是十分頭疼的問題。人們?cè)囍嬖V計(jì)算機(jī)目標(biāo),讓計(jì)算機(jī)自己去嘗試各種方法組合這些規(guī)則并得到最優(yōu)參
數(shù),這就機(jī)器學(xué)習(xí)。隨著Machine
Learning(機(jī)器學(xué)習(xí))技術(shù)的不斷進(jìn)步,其應(yīng)用范圍也越來越廣,中文分詞算法也從中受益。ANN(人工神經(jīng)網(wǎng)絡(luò)), 最大熵模型,
HMM(隱馬爾可夫模型)等算法都在新詞識(shí)別中有應(yīng)用。
通過機(jī)器學(xué)習(xí)識(shí)別新詞的原理并不復(fù)雜。一般都是先定義一些特征,然后利用訓(xùn)練語(yǔ)料進(jìn)行學(xué)習(xí),建立模
型。還是以人名識(shí)別為例,可以定義姓名前面的字、姓、名、姓名后面的字做為特征,通過利用標(biāo)注好姓名的語(yǔ)料庫(kù)進(jìn)行學(xué)習(xí)訓(xùn)練。
機(jī)器學(xué)習(xí)識(shí)別新詞的好處在于自動(dòng)尋找一些識(shí)別新詞的特征,其準(zhǔn)確度和召回率都能達(dá)到比較高的水平。但機(jī)器學(xué)習(xí)算法需要有足夠多的訓(xùn)練語(yǔ)料,人工準(zhǔn)備準(zhǔn)確的
大規(guī)模的訓(xùn)練語(yǔ)料也會(huì)十分困難。另外,機(jī)器學(xué)習(xí)算法一般速度會(huì)比較慢,優(yōu)化速度,使之用于海量數(shù)據(jù)處理,也是使用機(jī)器學(xué)習(xí)的一個(gè)關(guān)鍵點(diǎn)。
4.目前分詞廣泛的方法
1.基于詞表的分詞-最大匹配(MM)
這是一種有著廣泛應(yīng)用的機(jī)械分詞方法,該方法依據(jù)一個(gè)分詞詞表和一個(gè)基本的切分評(píng)估原則,即“長(zhǎng)詞優(yōu)先”原則,來進(jìn)行分詞。這種評(píng)估原則雖然在大多數(shù)情況下是合理的,但也會(huì)引發(fā)一些切分錯(cuò)誤。根據(jù)我們小規(guī)模測(cè)試的結(jié)果,其正確率為95.422%,速度為65,000字/分鐘。
這種切分方法,需要最少的語(yǔ)言資源(僅需一個(gè)詞表,不需要任何詞法、句法、語(yǔ)義知識(shí)),程序?qū)崿F(xiàn)簡(jiǎn)單,開發(fā)周期短,是一個(gè)簡(jiǎn)單實(shí)用的方法。
2.基于統(tǒng)計(jì)的分詞
這種方法首先切分出與詞表匹配的所有可能的詞,這種切分方法稱為“全切分”,運(yùn)用統(tǒng)計(jì)語(yǔ)言模型和決策算法決定最優(yōu)的切分結(jié)果。
這種方法的優(yōu)點(diǎn)是可以發(fā)現(xiàn)所有的切分歧義,但是解決歧義的方法很大程度上取決于統(tǒng)計(jì)語(yǔ)言模型的精度和決策算法。需要大量的標(biāo)注語(yǔ)料,并且分詞速度也因搜索空間的增大而有所緩慢。根據(jù)我們小規(guī)模測(cè)試的結(jié)果,其正確率為96.252%。分詞速度為:40,000字/分鐘。
3.基于規(guī)則和基于統(tǒng)計(jì)相結(jié)合
這種方法首先運(yùn)用最大匹配作為一種初步切分,再對(duì)切分的邊界處進(jìn)行歧義探測(cè),發(fā)現(xiàn)歧義。再運(yùn)用統(tǒng)計(jì)和規(guī)則結(jié)合的方法來判別正確的切分,運(yùn)用不同的規(guī)則解決人名、地名、機(jī)構(gòu)名識(shí)別,運(yùn)用詞法結(jié)構(gòu)規(guī)則來生成復(fù)合詞和衍生詞。
這段話來自微軟開發(fā)分詞的一段.