略了對(duì)公知結(jié)構(gòu)和技術(shù)的描述,以避免不必要地混淆本發(fā)明的概念。
一、計(jì)算機(jī)校驗(yàn)漢語(yǔ)同音錯(cuò)別字的方法
[0034]本發(fā)明采用編寫(xiě)計(jì)算軟件算法來(lái)實(shí)現(xiàn)對(duì)漢字錯(cuò)別字的校驗(yàn),依賴于漢語(yǔ)句子的化學(xué)分析拆分算法(其詳細(xì)介紹見(jiàn)后文描述)的計(jì)算機(jī)實(shí)現(xiàn)?!白顑?yōu)尺度”錯(cuò)別字校驗(yàn)算法流程如圖1:
1、化學(xué)句子拆分算法(詳細(xì)過(guò)程見(jiàn)后文描述)
[0035]使用漢語(yǔ)句子化學(xué)分析拆分算法。該算法能在輸入文字正確的基礎(chǔ)上,對(duì)整個(gè)句子完成正確率超過(guò)99%的完整拆分,將句子拆分成尺度為I?9的η個(gè)字組成的離子詞的序列。對(duì)于已經(jīng)成功組合成尺度2?9的詞組的字,初步認(rèn)為都是正確的字。因?yàn)殄e(cuò)別字的存在會(huì)導(dǎo)致該字無(wú)法與前后上下文中相鄰的其他字組合成詞和詞組。因此,本算法中的錯(cuò)別字校驗(yàn),只針對(duì)拆分結(jié)果為一個(gè)孤立的單字詞進(jìn)行。
2、句子尺度計(jì)算
[0036]整個(gè)句子的尺度有組成該句子的離子詞組的尺度計(jì)算而成,計(jì)算時(shí)遵照“最優(yōu)尺度”原則,即大尺度詞優(yōu)先,將詞的尺度加權(quán)求和成為句子的尺度。這里可以被不同尺度的詞設(shè)置不同的權(quán)重,可以區(qū)分不同拆分組合的優(yōu)先程度,例如:針對(duì)由10個(gè)漢字的句子,可以定義權(quán)重使其按照“4、4、2”拆分時(shí)的尺度優(yōu)于(或低于)按照“4、3、3”拆分時(shí)的尺度。
3、特殊例外處理
[0037]并非所有的單個(gè)漢字都適用于該“最優(yōu)尺度”校驗(yàn)算法,某些漢字不適合于用同音漢字替換,例如“魚(yú)和水”中的“和”不適合于用“河”來(lái)替換,盡管“魚(yú)河水”(1、2)比“魚(yú)和水”(1、1、1)擁有更優(yōu)的拆分尺度。所有需要處理眾多諸如此類(lèi)的“例外”。在漢語(yǔ)句子化學(xué)分析拆分方法中,拆分后的句子以分子詞組的形勢(shì)存在,類(lèi)似于化學(xué)分子式。因此,構(gòu)建出這些例外的分子詞組庫(kù),就可以通過(guò)對(duì)該例外庫(kù)的檢索,避免錯(cuò)別字誤判情況的發(fā)生。例外庫(kù)的校驗(yàn)可以針對(duì)字、詞的首、義以及詞性等有針對(duì)性的進(jìn)行,大大提聞錯(cuò)別字判斷的準(zhǔn)確性。
4、校驗(yàn)結(jié)果設(shè)置
[0038]如果一個(gè)漢字被同音的另一個(gè)漢字取代后,句子重新拆分所得到句子的尺度“優(yōu)于”原來(lái)的尺度,則可以認(rèn)為該漢字是一個(gè)“嫌疑”錯(cuò)別字,該同音別字認(rèn)為是一個(gè)校驗(yàn)候選字。
[0039]無(wú)同音別字的單個(gè)漢字,或者無(wú)尺度優(yōu)于該漢字的同音別字,目前可認(rèn)為是非錯(cuò)別字。對(duì)于一個(gè)錯(cuò)別字,可推薦其對(duì)應(yīng)的按照尺度排序的校驗(yàn)候選字作為更正時(shí)的參考。
二、“句子化學(xué)拆分”過(guò)程
[0040]在化學(xué)領(lǐng)域中,構(gòu)成各種元素的基本單位是原子,原子再結(jié)合成離子和分子,不同原子、離子和分子的排列組合構(gòu)成了不同的物質(zhì)。同樣,構(gòu)成句子的基本單位是字,字再組合成詞、詞又組合成短語(yǔ),不同的字、詞和短語(yǔ)的排列組合夠成了不同的句子。因此,可以將單個(gè)字比作一個(gè)化學(xué)原子,單個(gè)詞比作一個(gè)化學(xué)離子、單個(gè)短語(yǔ)比作一個(gè)化學(xué)分子,分別稱(chēng)作原子字、離子詞和分子短語(yǔ)。原子與原子間的結(jié)合靠“化學(xué)鍵”的作用,字與字、詞、短語(yǔ)間的結(jié)合同樣可稱(chēng)為“作用鍵”。因?yàn)樽衷诰渥又械某霈F(xiàn)是有先后順序的,所以字之間的作用鍵要分為“前向鍵”和“后向鍵”,類(lèi)似與化學(xué)中的“氧化性”和“還原性”。當(dāng)一個(gè)具有氧化性的原子與一個(gè)具有還原性的原子遇到一起,往往可以結(jié)合成一個(gè)分子;同樣,當(dāng)一個(gè)前向鍵的字和一個(gè)后向鍵字碰到一起,這兩個(gè)字就結(jié)合成一個(gè)“離子詞”。一個(gè)字如果已經(jīng)跟前面的字結(jié)合,但后面的字的前向鍵作用力更強(qiáng),這個(gè)字就有可能被“拉扯”過(guò)來(lái)結(jié)合成新的離子詞,原來(lái)的離子詞被打破。因此,定義了作用鍵的強(qiáng)度,就可以基本解決句子中某字前后都是合法詞時(shí)的分歧拆分問(wèn)題。
[0041]當(dāng)給出一個(gè)句子需要進(jìn)行拆分時(shí),類(lèi)似于化學(xué)領(lǐng)域中給定若干個(gè)元素符號(hào)而求解出化學(xué)分子式,針對(duì)該句子中的若干個(gè)原子字,根據(jù)作用鍵的方向和強(qiáng)度,讓這些原子字彼此化合成離子詞,再根據(jù)離子性質(zhì)進(jìn)一步化合成分子短語(yǔ),短語(yǔ)的先后排列形成了整個(gè)句子,進(jìn)而就完成了對(duì)整個(gè)句子的合理拆分。因?yàn)闈h字在句子中的出現(xiàn)順序已經(jīng)特定,所以句子拆分比求解分子式還要相對(duì)簡(jiǎn)單:在化合時(shí),每個(gè)字只可能與它前一個(gè)字或后一個(gè)相鄰的字結(jié)合,句子中的其他有間隔的字則不必考慮。
[0042]離子詞中字的個(gè)數(shù),以及分子詞組中離子詞的個(gè)數(shù),稱(chēng)為詞和詞組的“尺度”。類(lèi)似于化學(xué)中元素的“化合價(jià)”屬性,每個(gè)字、詞、短語(yǔ)也有其固有的價(jià)值屬性,即“作用價(jià)”,分另IJ稱(chēng)為“字性”、“詞性”、“語(yǔ)性”。詞中的字根據(jù)位置可以分為“首字”,“中間字”和“尾字”;短語(yǔ)中的詞根據(jù)其位置和詞性可以分為“前修身詞”、“中心詞”和“后修飾詞”。
[0043]本發(fā)明對(duì)句子拆分時(shí),與傳統(tǒng)意義上的“拆分”不同,采取的是類(lèi)似于化學(xué)反應(yīng)的“逆向化合”方法,讓字(原子)化合成詞(離子),詞(離子)再聚合成短語(yǔ)(分子)?;谝陨隙x,算法上采用“尺度優(yōu)先遍歷” + “作用鍵競(jìng)爭(zhēng)”的原則,經(jīng)過(guò)離子化合、離子詞性處理、分子短語(yǔ)聚合等步驟,完成句子一短語(yǔ)一詞一字的全面拆分。
[0044]本發(fā)明采用編寫(xiě)計(jì)算軟件來(lái)實(shí)現(xiàn)對(duì)漢語(yǔ)句子的拆分,該軟件核心分為基礎(chǔ)數(shù)據(jù)和邏輯算法兩部分: 1、離子詞庫(kù)整理(即步驟Si中建立基礎(chǔ)詞庫(kù))
[0045]如同求解化學(xué)分子式時(shí)需要已知各原子之間可形成何種組合一樣,拆分漢語(yǔ)句子,也需要已知各字之間能組合成何種詞,稱(chēng)為離子詞庫(kù)。本發(fā)明中的離子詞庫(kù)定義廣泛,可以包括現(xiàn)代漢語(yǔ)大詞典中的既有成語(yǔ)和詞語(yǔ),日常用語(yǔ)、詩(shī)詞、謗語(yǔ)、網(wǎng)絡(luò)常用語(yǔ)、特殊名稱(chēng)等等,只要認(rèn)為這些字需要組合在一起的,都可以收錄為一個(gè)離子詞。詞庫(kù)存儲(chǔ)文字的計(jì)算機(jī)代碼Unicode編碼或漢字國(guó)標(biāo)GB碼),并使用文字代碼建立哈希索引表用于快速遍歷和檢索。離子詞庫(kù)中的數(shù)據(jù)類(lèi)型包括四類(lèi):漢字詞、英文字母、數(shù)字、其他字符。
2、作用鍵值庫(kù)整理(即步驟SI中建立可以判斷單個(gè)漢字之間相互組合成詞的優(yōu)先順序原則的漢字組詞優(yōu)先原則判斷數(shù)據(jù)庫(kù))
[0046]根據(jù)日常生活中實(shí)際使用漢語(yǔ)語(yǔ)法的規(guī)則收錄、建立能夠區(qū)分漢字之間相互組合成詞時(shí)的能力強(qiáng)弱的作用鍵值庫(kù)。例如,當(dāng)一個(gè)字、詞具有雙向作用鍵時(shí),需要定義兩個(gè)作用鍵的強(qiáng)度,例如“披上衣服”中:“披上”為一個(gè)合理詞,“上衣”也為一個(gè)合理詞,“衣服”仍然為一個(gè)合理詞。原子字“上”和“衣”都存在雙向作用鍵。因此定義“服”對(duì)“衣”的作用鍵強(qiáng)于“上”對(duì)“衣”的作用鍵,確?!吧弦路比齻€(gè)字遇到一起時(shí)拆分成“上衣服”而不是“上衣服”,“上”字再去與前面的字做可能的組合。建立作用鍵值庫(kù)的技巧在于:算法采用先前字化合再后字拉扯的方式,所以庫(kù)中只建立后向作用鍵更強(qiáng)的可成功拉扯的組合即可,確保庫(kù)的數(shù)據(jù)量盡可能的少,提高拆分時(shí)遍歷掃描的效率。
3、邏輯算法
[0047]全部邏輯算法都將使用基礎(chǔ)數(shù)據(jù)庫(kù)進(jìn)行,其中離子詞庫(kù)和作用鍵值庫(kù)有特定的存儲(chǔ),邏輯判斷庫(kù)則鑲嵌于針對(duì)不同字、詞的邏輯算法中。
(1)離子化合一一尺度優(yōu)先遍歷+作用鍵競(jìng)爭(zhēng)算法(即步驟S2,將需要被拆分的漢語(yǔ)句子拆分成詞)
[0048]目前定義支持的漢字離子詞尺度為漢字個(gè)數(shù),范圍為I?9;連續(xù)的英文字母和數(shù)字串整個(gè)作為一個(gè)離子詞,尺度定義為I ;其他符號(hào)則單個(gè)字符作為一個(gè)尺度為I的離子詞。離子化合的算法入圖3所示:
[0049]經(jīng)過(guò)該算法之后,句子中的每個(gè)字符已經(jīng)彼此“化合”成若干個(gè)尺度為I?9離子
ο
(2)離子詞性處理(即步驟S3,詞性分類(lèi)處理)
[0050]本發(fā)明中