佟 欣
(赤峰學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)系,內(nèi)蒙古 赤峰 024000)
自動(dòng)應(yīng)答系統(tǒng)中文處理策略和算法
佟 欣
(赤峰學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)系,內(nèi)蒙古 赤峰 024000)
自動(dòng)應(yīng)答系統(tǒng)是一種對(duì)用戶用自然語(yǔ)言提出的問(wèn)題能夠做出盡可能簡(jiǎn)潔、準(zhǔn)確回答的計(jì)算機(jī)程序.在設(shè)計(jì)自動(dòng)應(yīng)答系統(tǒng)時(shí)先要解決中文分詞及字符串匹配等問(wèn)題,以便快速準(zhǔn)確地搜索到需要的答案.本文主要討論了自動(dòng)應(yīng)答系統(tǒng)中的中文處理策略和算法.
自動(dòng)應(yīng)答;分詞;匹配算法
自動(dòng)應(yīng)答系統(tǒng)是一種對(duì)用戶用自然語(yǔ)言提出的問(wèn)題能夠做出盡可能簡(jiǎn)潔、準(zhǔn)確回答的計(jì)算機(jī)程序.這樣的程序需要具備對(duì)自然語(yǔ)言進(jìn)行分析和處理的能力,它是自然語(yǔ)言處理技術(shù)的一個(gè)重要的應(yīng)用.
自動(dòng)應(yīng)答系統(tǒng)首先需要解決的問(wèn)題就是漢語(yǔ)的詞條切分,并從自然語(yǔ)言文本中抽取出能夠代表問(wèn)題的關(guān)鍵詞.而關(guān)鍵詞全文搜索的目的是查找與問(wèn)題相關(guān)的答案.為了使系統(tǒng)能最大效率地工作,必須選擇切實(shí)可行并且匹配精度較高的算法.
本文采用了三種分詞算法保證分詞的匹配度.分詞詞典與關(guān)鍵詞詞典為同一文本文件,這樣在分詞的同時(shí)就能提取出關(guān)鍵詞,自動(dòng)篩掉停止詞標(biāo)點(diǎn)符號(hào).這就簡(jiǎn)化了步驟提高了效率,也降低了錯(cuò)誤率.詞典中包括一些專業(yè)詞匯和限制條件的詞匯.當(dāng)用戶以自然語(yǔ)言進(jìn)行提出問(wèn)題,此語(yǔ)句中會(huì)包含關(guān)鍵詞、無(wú)用詞、停止詞和語(yǔ)義限定詞.為減少打開文檔的次數(shù),詞典中包含了限定詞匯,在分詞中能自動(dòng)檢索出來(lái).
例如:?jiǎn)栴}1:土地用途包括哪些種類?
分詞程序處理后:土地/種類(土地是關(guān)鍵詞,種類是語(yǔ)義詞)
問(wèn)題2:土地來(lái)源及性質(zhì)?
分詞程序處理后:土地/來(lái)源(土地是關(guān)鍵詞,來(lái)源及性質(zhì)是語(yǔ)義詞)
問(wèn)題3:土地
分詞程序處理后:土地(只含有關(guān)鍵詞)
問(wèn)題1與問(wèn)題2關(guān)鍵詞是相同的,但是語(yǔ)義詞是不同的,這樣匹配后返回的答案結(jié)果是不相同的.如果開始的時(shí)候只提出問(wèn)題3,那么系統(tǒng)會(huì)認(rèn)為知識(shí)庫(kù)中無(wú)此問(wèn)題的答案.因此,建議用戶提問(wèn)題的時(shí)候應(yīng)該加入語(yǔ)義限定詞,這樣才會(huì)返回準(zhǔn)確的答案,否則,會(huì)顯示用戶并不想要的結(jié)果.
正向減字最大匹配法切分的過(guò)程是從自然語(yǔ)言的中文語(yǔ)句中提取出設(shè)定長(zhǎng)度字串,與詞典比較,如果在詞典中,就算一個(gè)有意義的詞串,并用分隔符分隔輸出,否則縮短字串,在詞典中重新查找(詞典是預(yù)先定義好的).
算法思想:從待切分的文本D中提取,對(duì)于每個(gè)句子S1從左向右以MAXLEN為界選出候選字串W,如果W在字典中,處理下一個(gè)長(zhǎng)為MAXLEN的侯選字段;否則,將W最右邊一個(gè)字去掉,繼續(xù)與字典比較;S1切分完之后,構(gòu)成詞的字符串或者此時(shí)W已經(jīng)為單個(gè)字,用分隔符隔開輸出給S2.從S1中減去W,繼續(xù)處理后續(xù)的字串.S1處理結(jié)束,取D中的下一個(gè)句子賦給S1,重復(fù)前述的步驟,直到整篇文本D都切分完畢.
具體算法:輸入:中文詞典,待切分的文本D,D中有若干被標(biāo)點(diǎn)符號(hào)分割的句子S1,設(shè)定最大長(zhǎng)度MAXLEN(是一個(gè)經(jīng)驗(yàn)值,通常設(shè)為8個(gè)字節(jié),過(guò)小,長(zhǎng)詞會(huì)被切斷,過(guò)長(zhǎng),又會(huì)導(dǎo)致切分效率低)流程圖如圖1所示:
偽代碼:
算法分析:設(shè)文本還有句子的數(shù)目為M,句子的平均長(zhǎng)度為K,詞典的條目為N,實(shí)際中M和K遠(yuǎn)遠(yuǎn)小于N,這個(gè)算法復(fù)雜度中起決定作用的步驟在于N相關(guān)的語(yǔ)句,因此整個(gè)算法的時(shí)間復(fù)雜度為 O(MKLOGN).
實(shí)驗(yàn)表明:正向最大匹配算法的錯(cuò)誤率為1/169.
算法思想:從D中提取,依次掃描輸入串,按照從左到右的順序截取1到MAXLEN長(zhǎng)度的子串作為全部的候選詞 w1、w2、…、wi,記錄方式為該子串在輸入串中的起點(diǎn)位置i,以及子串長(zhǎng)度l(偏移量),在輸入字串中查出每個(gè)候選詞右鄰詞和左鄰詞;如果當(dāng)前詞wi在關(guān)鍵詞詞典中,則wi是分詞結(jié)果輸出,wi+1作為新的后選詞循環(huán)此過(guò)程.
假定對(duì)字串從左到右進(jìn)行掃描,可以得到w1,w2,…,wi-1,wi,…等若干候選詞,如果 wi的尾字跟wi-1的首字鄰接,就稱wi為wi-1的右鄰詞.
算法:
輸入:中文詞典,待切分的文本D,D中有若干被標(biāo)點(diǎn)符號(hào)分割的句子S1
偽代碼描述:
這種方法優(yōu)點(diǎn)主要體現(xiàn)在詞表較小,分詞速度比較快,但是要完善這個(gè)算法,關(guān)鍵是要加入一個(gè)動(dòng)態(tài)學(xué)習(xí)的過(guò)程,可以是需要人工干預(yù)的,也可以是在分詞過(guò)程中自動(dòng)豐富學(xué)習(xí)的,這樣才能有效地保證計(jì)算一個(gè)字符串是否切分為一個(gè)詞的值更準(zhǔn)確,更能識(shí)別出新詞、未登錄詞等.
筆者參與了房產(chǎn)自動(dòng)應(yīng)答系統(tǒng)的開發(fā),并將上述算法應(yīng)用于該系統(tǒng),事實(shí)證明本文所描述的算法在應(yīng)用的過(guò)程中起到了很好的分詞作用,保證了系統(tǒng)的正常高效運(yùn)行.
〔1〕余正濤,樊孝忠,康海燕.基于自然語(yǔ)言理解的受限領(lǐng)域自動(dòng)應(yīng)答系統(tǒng) [J].計(jì)算機(jī)工程,2004,18:35-37.
〔2〕張恒,楊文昭,屈景輝,盧虹冰,張亮,趙飛.基于詞典和詞頻的中文分詞方法[J].軟件時(shí)空,2008(3):239-240+232.
〔3〕朱代華.基于分詞技術(shù)的智能答疑系統(tǒng)[D].四川.重慶大學(xué),碩士學(xué)位論文,2004.
〔4〕戴華,李喬良.一種有效的多模式并行匹配算法[J].電腦知識(shí)與技術(shù)(學(xué)術(shù)交流),2007(5):1373-1375.
TP311.1
A
1673-260X(2010)02-0038-02