服務(wù)熱線
153 8323 9821
搜索引擎技術(shù)的研究,國(guó)外比中國(guó)要早近十年,從最早的Archie,到后來的Excite,以及altvista、overture、google等搜索引擎面世,搜索引擎發(fā)展至今,已經(jīng)有十幾年的歷史,而國(guó)內(nèi)開始研究搜索引擎是在上世紀(jì)末本世紀(jì)初。在許多領(lǐng)域,都是國(guó)外的產(chǎn)品和技術(shù)一統(tǒng)天下,特別是當(dāng)某種技術(shù)在國(guó)外研究多年而國(guó)內(nèi)才開始的情況下。例如操作系統(tǒng)、字處理軟件、瀏覽器等等,但搜索引擎卻是個(gè)例外。雖然在國(guó)外搜索引擎技術(shù)早就開始研究,但在國(guó)內(nèi)還是陸續(xù)涌現(xiàn)出優(yōu)秀的搜索引擎,像百度(http://www.baidu.com)、中搜(http://www.zhongsou.com)等。目前在中文搜索引擎領(lǐng)域,國(guó)內(nèi)的搜索引擎已經(jīng)和國(guó)外的搜索引擎效果上相差不遠(yuǎn)。之所以能形成這樣的局面,有一個(gè)重要的原因就在于中文和英文兩種語(yǔ)言自身的書寫方式不同,這其中對(duì)于計(jì)算機(jī)涉及的技術(shù)就是中文分詞。
什么是中文分詞
眾所周知,英文是以詞為單位的,詞和詞之間是靠空格隔開,而中文是以字為單位,句子中所有的字連起來才能描述一個(gè)意思。例如,英文句子I am a student,用中文則為:“我是一個(gè)學(xué)生”。計(jì)算機(jī)可以很簡(jiǎn)單通過空格知道student是一個(gè)單詞,但是不能很容易明白“學(xué)”、“生”兩個(gè)字合起來才表示一個(gè)詞。把中文的漢字序列切分成有意義的詞,就是中文分詞,有些人也稱為切詞。我是一個(gè)學(xué)生,分詞的結(jié)果是:我 是 一個(gè) 學(xué)生。
中文分詞和搜索引擎
中文分詞到底對(duì)搜索引擎有多大影響?對(duì)于搜索引擎來說,最重要的并不是找到所有結(jié)果,因?yàn)樵谏习賰|的網(wǎng)頁(yè)中找到所有結(jié)果沒有太多的意義,沒有人能看得完,最重要的是把最相關(guān)的結(jié)果排在最前面,這也稱為相關(guān)度排序。中文分詞的準(zhǔn)確與否,常常直接影響到對(duì)搜索結(jié)果的相關(guān)度排序。筆者最近替朋友找一些關(guān)于日本和服的資料,在搜索引擎上輸入“和服”,得到的結(jié)果就發(fā)現(xiàn)了很多問題。下面就以這個(gè)例子來說明分詞對(duì)搜索結(jié)果的影響,在現(xiàn)有三個(gè)中文搜索引擎上做測(cè)試,測(cè)試方法是直接在Google(http://www.google.com)、百度(http://www.baidu.com)、中搜(http://www.zhongsou.com)上以“和服”為關(guān)鍵詞進(jìn)行搜索:
在Google上輸入“和服”搜索所有中文簡(jiǎn)體網(wǎng)頁(yè),總共結(jié)果507,000條,前20條結(jié)果中有14條與和服一點(diǎn)關(guān)系都沒有。在第一頁(yè)就有以下錯(cuò)誤:
“通信信息報(bào):瑞星以技術(shù)和服務(wù)開拓網(wǎng)絡(luò)安全市場(chǎng)”
“使用純HTML的通用數(shù)據(jù)管理和服務(wù)- 開發(fā)者- ZDNet ...”
“陳慧琳《心口不一》化妝和服裝自己包辦”
“::外交部:中國(guó)境外領(lǐng)事保護(hù)和服務(wù)指南(2003年版) ...”
“產(chǎn)品和服務(wù)”
等等。第一頁(yè)只有三篇是真正在講“和服”的結(jié)果。
在百度上輸入“和服”搜索網(wǎng)頁(yè),總共結(jié)果為287,000條,前20條結(jié)果中有6條與和服一點(diǎn)關(guān)系都沒有。在第一頁(yè)有以下錯(cuò)誤:
“福建省晉江市恒和服裝有限公司系獨(dú)資企業(yè)”
“關(guān)于商品和服務(wù)實(shí)行明碼標(biāo)價(jià)的規(guī)定”
“青島東和服裝設(shè)備”
在中搜上輸入“和服”搜索網(wǎng)頁(yè),總共結(jié)果為26,917條,前20條結(jié)果都是與和服相關(guān)的網(wǎng)頁(yè)。
這次搜索引擎結(jié)果中的錯(cuò)誤,就是由于分詞的不準(zhǔn)確所造成的。通過筆者的了解,Google的中文分詞技術(shù)采用的是美國(guó)一家名叫Basis Technology(http://www.basistech.com)的公司提供的中文分詞技術(shù),百度使用的是自己公司開發(fā)的分詞技術(shù),中搜使用的是國(guó)內(nèi)海量科技(http://www.hylanda.com)提供的分詞技術(shù)。由此可見,中文分詞的準(zhǔn)確度,對(duì)搜索引擎結(jié)果相關(guān)性和準(zhǔn)確性有相當(dāng)大的關(guān)系。
中文分詞技術(shù)
中文分詞技術(shù)屬于自然語(yǔ)言處理技術(shù)范疇,對(duì)于一句話,人可以通過自己的知識(shí)來明白哪些是詞,哪些不是詞,但如何讓計(jì)算機(jī)也能理解?其處理過程就是分詞算法。
現(xiàn)有的分詞算法可分為三大類:基于字符串匹配的分詞方法、基于理解的分詞方法和基于統(tǒng)計(jì)的分詞方法。
1、基于字符串匹配的分詞方法
這種方法又叫做機(jī)械分詞方法,它是按照一定的策略將待分析的漢字串與一個(gè)“充分大的”機(jī)器詞典中的詞條進(jìn)行配,若在詞典中找到某個(gè)字符串,則匹配成功(識(shí)別出一個(gè)詞)。按照掃描方向的不同,串匹配分詞方法可以分為正向匹配和逆向匹配;按照不同長(zhǎng)度優(yōu)先匹配的情況,可以分為最大(最長(zhǎng))匹配和最小(最短)匹配;按照是否與詞性標(biāo)注過程相結(jié)合,又可以分為單純分詞方法和分詞與標(biāo)注相結(jié)合的一體化方法。常用的幾種機(jī)械分詞方法如下:
1)正向最大匹配法(由左到右的方向);
2)逆向最大匹配法(由右到左的方向);
3)最少切分(使每一句中切出的詞數(shù)最小)。
還可以將上述各種方法相互組合,例如,可以將正向最大匹配方法和逆向最大匹配方法結(jié)合起來構(gòu)成雙向匹配法。由于漢語(yǔ)單字成詞的特點(diǎn),正向最小匹配和逆向最小匹配一般很少使用。一般說來,逆向匹配的切分精度略高于正向匹配,遇到的歧義現(xiàn)象也較少。統(tǒng)計(jì)結(jié)果表明,單純使用正向最大匹配的錯(cuò)誤率為1/169,單純使用逆向最大匹配的錯(cuò)誤率為1/245。但這種精度還遠(yuǎn)遠(yuǎn)不能滿足實(shí)際的需要。實(shí)際使用的分詞系統(tǒng),都是把機(jī)械分詞作為一種初分手段,還需通過利用各種其它的語(yǔ)言信息來進(jìn)一步提高切分的準(zhǔn)確率。
一種方法是改進(jìn)掃描方式,稱為特征掃描或標(biāo)志切分,優(yōu)先在待分析字符串中識(shí)別和切分出一些帶有明顯特征的詞,以這些詞作為斷點(diǎn),可將原字符串分為較小的串再來進(jìn)機(jī)械分詞,從而減少匹配的錯(cuò)誤率。另一種方法是將分詞和詞類標(biāo)注結(jié)合起來,利用豐富的詞類信息對(duì)分詞決策提供幫助,并且在標(biāo)注過程中又反過來對(duì)分詞結(jié)果進(jìn)行檢驗(yàn)、調(diào)整,從而極大地提高切分的準(zhǔn)確率。
對(duì)于機(jī)械分詞方法,可以建立一個(gè)一般的模型,在這方面有專業(yè)的學(xué)術(shù)論文,這里不做詳細(xì)論述。
2、基于理解的分詞方法
這種分詞方法是通過讓計(jì)算機(jī)模擬人對(duì)句子的理解,達(dá)到識(shí)別詞的效果。其基本思想就是在分詞的同時(shí)進(jìn)行句法、語(yǔ)義分析,利用句法信息和語(yǔ)義信息來處理歧義現(xiàn)象。它通常包括三個(gè)部分:分詞子系統(tǒng)、句法語(yǔ)義子系統(tǒng)、總控部分。在總控部分的協(xié)調(diào)下,分詞子系統(tǒng)可以獲得有關(guān)詞、句子等的句法和語(yǔ)義信息來對(duì)分詞歧義進(jìn)行判斷,即它模擬了人對(duì)句子的理解過程。這種分詞方法需要使用大量的語(yǔ)言知識(shí)和信息。由于漢語(yǔ)語(yǔ)言知識(shí)的籠統(tǒng)、復(fù)雜性,難以將各種語(yǔ)言信息組織成機(jī)器可直接讀取的形式,因此目前基于理解的分詞系統(tǒng)還處在試驗(yàn)階段。
3、基于統(tǒng)計(jì)的分詞方法
從形式上看,詞是穩(wěn)定的字的組合,因此在上下文中,相鄰的字同時(shí)出現(xiàn)的次數(shù)越多,就越有可能構(gòu)成一個(gè)詞。因此字與字相鄰共現(xiàn)的頻率或概率能夠較好的反映成詞的可信度。可以對(duì)語(yǔ)料中相鄰共現(xiàn)的各個(gè)字的組合的頻度進(jìn)行統(tǒng)計(jì),計(jì)算它們的互現(xiàn)信息。定義兩個(gè)字的互現(xiàn)信息,計(jì)算兩個(gè)漢字X、Y的相鄰共現(xiàn)概率。互現(xiàn)信息體現(xiàn)了漢字之間結(jié)合關(guān)系的緊密程度。當(dāng)緊密程度高于某一個(gè)閾值時(shí),便可認(rèn)為此字組可能構(gòu)成了一個(gè)詞。這種方法只需對(duì)語(yǔ)料中的字組頻度進(jìn)行統(tǒng)計(jì),不需要切分詞典,因而又叫做無(wú)詞典分詞法或統(tǒng)計(jì)取詞方法。但這種方法也有一定的局限性,會(huì)經(jīng)常抽出一些共現(xiàn)頻度高、但并不是詞的常用字組,例如“這一”、“之一”、“有的”、“我的”、“許多的”等,并且對(duì)常用詞的識(shí)別精度差,時(shí)空開銷大。實(shí)際應(yīng)用的統(tǒng)計(jì)分詞系統(tǒng)都要使用一部基本的分詞詞典(常用詞詞典)進(jìn)行串匹配分詞,同時(shí)使用統(tǒng)計(jì)方法識(shí)別一些新的詞,即將串頻統(tǒng)計(jì)和串匹配