欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

字符串規(guī)劃存貯索引查找技術(shù)的制作方法

文檔序號(hào):6335143閱讀:151來源:國知局
專利名稱:字符串規(guī)劃存貯索引查找技術(shù)的制作方法
技術(shù)領(lǐng)域
本發(fā)明是一種字符串存貯、索引、模糊檢索技術(shù)。首先對字符串按字符元進(jìn)行統(tǒng)計(jì)分析,并根據(jù)數(shù)據(jù)庫狀況、硬件條件、應(yīng)用范圍決定標(biāo)記方案。然后,按標(biāo)記位值Vn進(jìn)行索引,如按標(biāo)記位值Vn聚集存貯后進(jìn)行索引則更優(yōu);也可按標(biāo)記位值Vn,對數(shù)據(jù)庫重新組織存貯。檢索時(shí),先對檢索關(guān)鍵詞進(jìn)行標(biāo)記,取得位值Vt,與數(shù)據(jù)庫索引標(biāo)記位值Vn進(jìn)行位比較,再對符合位比較條件的字符串記錄,按需要,進(jìn)行W位值比較、質(zhì)數(shù)代換整除或通常的字符串模糊匹配等處理。該技術(shù)可以在位標(biāo)記字符串檢索的基礎(chǔ)上再提高一個(gè)數(shù)量級,可用于自然語言處理中快速查找參考句型,其它方面的字符串模糊檢索也可以應(yīng)用。
背景技術(shù)
字符串的模糊檢索技術(shù),最簡單的是BF算法,采用逐字符比較方式進(jìn)行。改進(jìn)后的模式匹配算法,如KMP算法,對小字符集的拼音文字來說,避免了回溯,但對字符集大、單字符頻度低的漢字字符串而言,實(shí)質(zhì)意義不大。
2004年,為解決繁難漢字的查找錄入,本人建立了GBK范圍內(nèi)21000個(gè)漢字的偏旁數(shù)據(jù)庫。由于不同用戶對偏旁的拆分有差異,理想的漢字偏旁數(shù)據(jù)庫必須包含一個(gè)漢字的任意層級偏旁,如“ ”必須分解成由艸、 、罒、廠、剡、炎、刂、火、火,才能達(dá)到以“任意層級的偏旁組合檢索任意漢字”的目的。設(shè)用戶用查找包含艸、火兩個(gè)偏旁的漢字,以sql語句查詢,計(jì)算機(jī)即用其中一個(gè)偏旁掃描數(shù)據(jù)庫全部記錄的偏旁,在包含該偏旁的記錄中,再用另一個(gè)偏旁進(jìn)行比較,得到結(jié)果集。為了提高查找速度,本人提出用400多個(gè)質(zhì)數(shù)代換漢字的400多個(gè)基本偏旁,則每個(gè)漢字有其基本偏旁的質(zhì)數(shù)乘積。若用戶查找包含n個(gè)偏旁的漢字,即用n個(gè)偏旁的質(zhì)數(shù)乘積對全部漢字的質(zhì)數(shù)乘積進(jìn)行除法運(yùn)算,若能整除,則相應(yīng)的漢字包含這n個(gè)偏旁。提出質(zhì)數(shù)代換整除檢索的出發(fā)點(diǎn),是把多個(gè)關(guān)鍵詞的“串行”搜索變成一次性的“并行”搜索,測試表明,質(zhì)數(shù)代換整除檢索能一定程度提高檢索速度。對于通常的漢字?jǐn)?shù)據(jù)庫,則用一個(gè)質(zhì)數(shù)代表多個(gè)漢字,在整除運(yùn)算篩選之后,再用模式匹配算法得到最終結(jié)果集。因此,2004年10月19日,本人申請了“質(zhì)數(shù)代換字符串檢索技術(shù)”專利,申請?zhí)?00410067258.X。
但對長字符串實(shí)施“質(zhì)數(shù)代換字符串檢索技術(shù)”,需要較多的空間存貯質(zhì)數(shù)乘積值。為了提高字符串模糊檢索的速度,并減少對存貯空間的需求,把質(zhì)數(shù)改為bit,把整除運(yùn)算改為位比較,即用一個(gè)數(shù)據(jù)的n個(gè)位(bit)來標(biāo)記字符串的組成信息,標(biāo)記后之后的數(shù)據(jù)稱該字符串的“位值”,對兩個(gè)字符串的位值進(jìn)行比較,并結(jié)合通常的逐字符比較法,實(shí)現(xiàn)字符串的模糊檢索。測試表明,速度是一般的逐字符比較模糊檢索的數(shù)倍乃至十幾倍以上,2005年1月17日,本人申請專利“位標(biāo)記字符串檢索技術(shù)”。在賽揚(yáng)800的cpu上測試,用該技術(shù)能在0.3秒內(nèi)從26.7萬條書名中找到目標(biāo)記錄。
另一方面,質(zhì)數(shù)代換整除查找結(jié)果的字符排列秩序是多樣的,這一特點(diǎn),非常適合于自然語言處理中篩選參考句型,但質(zhì)數(shù)代換音節(jié)整除響應(yīng)速度不夠,需要把位標(biāo)記字符串檢索技術(shù)同質(zhì)數(shù)代換字符串檢索技術(shù)給合起來,即用位標(biāo)記比較方法對參考句型的進(jìn)行初步篩選,再用質(zhì)數(shù)代換整除得到最終參考句型,在賽揚(yáng)800的cpu中,0.9秒約能處理100萬條記錄,速度尚不理想,但以此推算,在cpu主頻2.4G的中檔微機(jī)上,應(yīng)能在0.3秒內(nèi)從100萬條記錄中找到參考句型。
100萬個(gè)參考句型,若能支持99.7%的現(xiàn)代漢語語句,在中檔微機(jī)上,基于參考句型的語音輸入應(yīng)有現(xiàn)實(shí)可行性。當(dāng)然,參考句型越多,比如說,達(dá)到400萬個(gè),語言處理的準(zhǔn)確程度就越高。但在主頻2.4G的中檔微機(jī)上,查找400萬個(gè)句型需1秒多時(shí)間,加上語法分析、填補(bǔ)詞語等用時(shí),所用時(shí)間更多。所以進(jìn)一步地提高字符串模糊查找的速度,并提高自然語言處理的水平是有意義的。

發(fā)明內(nèi)容
本發(fā)明是在“位標(biāo)記字符串檢索技術(shù)”基礎(chǔ)上提出的,關(guān)于“位標(biāo)記字符串檢索技術(shù)”的標(biāo)記重疊概率、查找選擇概率、分組標(biāo)記概率計(jì)算,以及相關(guān)的位比較邏輯代數(shù)原理,可以參見該技術(shù)申請文件。對于語言處理,本技術(shù)與位標(biāo)記字符串檢索技術(shù)、質(zhì)數(shù)代換字符串檢索技術(shù)結(jié)合起來,可形成一套完整的方案,所以本文件結(jié)合語音輸入處理說明字符串規(guī)劃存貯索引查找方法,其它方面的字符串模糊查找,可以參照實(shí)施。
1.基于參考句型的語音輸入方案綜述語音輸入、機(jī)器翻譯、搜索引擎均需進(jìn)行分詞,提高拼音串的分詞準(zhǔn)確程度已成為提升漢語語音輸入水平的關(guān)鍵。漢語拼音串自動(dòng)分詞的算法主要有最大匹配法(MM)、最少分詞詞頻選擇法(FWF)和逐詞遍歷法。這些分詞方法是基于詞匯表的方法,準(zhǔn)確率不能滿足需要,提高準(zhǔn)確率需要新的分詞方法。
如果按每個(gè)句子10個(gè)漢字計(jì)算,5000常用漢字的10次全排列是一個(gè)巨大的數(shù)字,當(dāng)然,由于語義、語法限制,不是所有漢字排列在一起即是句子,但漢語句子的總數(shù)可以說是難以窮盡的,至少就目前的技術(shù)水平而言,在普通微機(jī),不可能列出足夠數(shù)量的句子,更不可能實(shí)現(xiàn)瞬時(shí)響應(yīng),找到與拼音串完全對應(yīng)的句子。但很多語句是有共同主干的,如“他畢業(yè)五年了”,“他早就畢業(yè)了”,“他還沒畢業(yè)”,“他明年六月畢業(yè)”等句子中,“他畢業(yè)”是主干、核心,我們稱為基本句型,記為J;另外,本文件中的“基本句型”也包括詞語搭配,如套|房子,間|房子,本|書等;以及篩選入庫的詞語、詩句、格言等,如堅(jiān)忍不拔。
對于計(jì)算機(jī)語言處理來說,如果確定了一個(gè)拼音串的主干、核心,以之為基礎(chǔ),根據(jù)語法、詞頻、上下文填補(bǔ)其它詞匯,應(yīng)該是能提高處理的水平。質(zhì)數(shù)代換整除運(yùn)算篩選的結(jié)果是不考慮字符元的秩序的,非常適合用來確定一個(gè)句子的主干,就語音輸入來說,就是為拼音串查找參考句型。
設(shè)有漢語字詞搭配及基本句型數(shù)據(jù)庫,不考慮聲調(diào),用400多個(gè)質(zhì)數(shù)代表400多個(gè)漢語音節(jié),其中有基本句型“他畢業(yè)了”,該句型的拼音為“tabiyele”,代換成29*67*281*577,即315032191。如果語音轉(zhuǎn)換或者拼音輸入“tazaojiubiyele”,代換成29*349*269*67*281*577,即29575537123271。以29575537123271為被除數(shù),以數(shù)據(jù)庫全部字詞搭配及基本句型的Fn值為除數(shù),若能整除或模運(yùn)算余數(shù)為0,則該句型為可參考的基本句型或字詞搭配。29575537123271/315032191=93881,余數(shù)為0,則“他畢業(yè)了”是“tazaojiubiyele”的可參考句型,其中“畢業(yè)”為動(dòng)詞,是謂語,而詞庫中拼音為“zaojiu”的詞有“早就”“造就”“棗酒”,通過語法、語義、詞頻等其它方面能起到輔助作用,可將“tazaojiubiyele”轉(zhuǎn)換成“他早就畢業(yè)了”。
若參考句型數(shù)據(jù)庫中有“流利英語”,如果我們想要的句子是“流利的英語幫他找到一個(gè)好工作”,語音轉(zhuǎn)換或拼音輸入Liulideyingyubangtazhaodaoyigehaogongzuo;如果我們想要的句子是“這人的英語說得不流利”,語音轉(zhuǎn)換或拼音輸入zherendeyingyushuodebuliuli;如果我們想要的句子是“經(jīng)過半年英語培訓(xùn),他已經(jīng)說得流利多了”,語音轉(zhuǎn)換或拼音輸入Jingguobannianyingyupeixuntayijingshuodeliuliduole,都可以用質(zhì)數(shù)代換整除判斷確定“流利英語”是參考句型之一。對于查找到的一個(gè)拼音串的多個(gè)參考句型J,一般來說,以長“句”優(yōu)先;同樣長的參考句型,可進(jìn)行字符元跳格匹配,字符元秩序與需要處理的拼音串T的字符元秩序一致的參考句型優(yōu)先考慮;字符元秩序一致時(shí),如果拼音串T字符元之間有其它詞語,則根據(jù)參考句型語法信息G,選擇可插入其它成分的參考句型。
“質(zhì)數(shù)代換字符串檢索技術(shù)”的優(yōu)點(diǎn)是便于查找參考句型,但速度不能滿足應(yīng)用需要,在賽揚(yáng)800的cpu中,0.1秒只能進(jìn)行1-2萬個(gè)左右的長整數(shù)整除判斷。所以本人在申請?zhí)?00510023383.5的“位標(biāo)記字符串檢索技術(shù)”修改文本中,說明了以“位標(biāo)記字符串檢索技術(shù)”優(yōu)越性能進(jìn)行預(yù)選,即對拼音串按漢語的音節(jié)進(jìn)行標(biāo)記,漢語有400多個(gè)音節(jié),在對參考句型數(shù)據(jù)庫音節(jié)出現(xiàn)頻率進(jìn)行統(tǒng)計(jì)之后,按頻率均衡分組,以32個(gè)bit進(jìn)行標(biāo)記。這樣的篩選效果會(huì)最優(yōu),但結(jié)果集R1中會(huì)出現(xiàn)毫無關(guān)系的參考句型。在R1中,再按一個(gè)質(zhì)數(shù)代換一個(gè)音節(jié),用整除運(yùn)算進(jìn)行篩選,得到參考句型。兩個(gè)方法結(jié)合起來,在賽揚(yáng)800的cpu中,0.3秒約能處理26.7萬個(gè)句型,處理100萬個(gè)句型需要0.9秒,以此推算,在主頻2.4G的目前中檔微機(jī)上,0.3秒應(yīng)能處理100萬個(gè)參考句型,使基于參考句型的分詞初步有現(xiàn)實(shí)可行性。按cpu以往的發(fā)展速度,18個(gè)月提高一倍,以及目前多核技術(shù)的趨勢,能處理200萬、400萬個(gè)參考句型的微機(jī)不久應(yīng)該普遍使用。當(dāng)然,我們關(guān)心的,究竟多少句型能覆蓋99.7%的語句,以及如何進(jìn)行句型提煉。另一方面,我們也希望通過算法改進(jìn),使基于參考句型的語音輸入方法,具有當(dāng)下的普遍可行性,這是本發(fā)明提出的意義所在。
2.參考句型探討由于語言研究的不足,沒有關(guān)于漢語句型的資料,但我們可以做一個(gè)估計(jì)一個(gè)人到30歲可以認(rèn)為已經(jīng)完全掌握了母語,能很好地表達(dá)自己的思想,理解他人的語言,閱讀一般的報(bào)刊書籍。如果每天學(xué)習(xí)200個(gè)基本句型,到30歲算10000天,則共掌握2,000,000個(gè)基本句型。雖然我們的知識(shí)與日俱增,但增加的主要是詞匯,所以現(xiàn)代漢語的句型或許小于這個(gè)數(shù)字。
漢語詞語主要是動(dòng)詞、名詞、形容詞三類,搭配相應(yīng)主要有三類動(dòng)詞和名詞、動(dòng)詞和形容詞、名詞和形容詞。名詞的數(shù)量很大,但名詞中相當(dāng)多是多字詞,計(jì)算機(jī)容易識(shí)別處理。動(dòng)詞是語句的樞紐,又是語言中最靈活的詞語,有資料認(rèn)為現(xiàn)代漢語約有1200-2000個(gè)動(dòng)詞,也有認(rèn)為是6000個(gè)的,有部分動(dòng)詞的組句能力很強(qiáng);而且,一般來說,動(dòng)詞是一兩個(gè)漢字。所以,就計(jì)算機(jī)處理來說,提練參考句型重點(diǎn)是動(dòng)詞,尤其是單字動(dòng)詞與其他詞語的搭配,其次是單字名詞、單字形容詞與其他詞語的搭配。
動(dòng)詞與名詞的關(guān)系有動(dòng)賓關(guān)系、主謂關(guān)系。動(dòng)賓關(guān)系如打電話、打牌、打撲克;跺腳。主謂關(guān)系如兔子跑、敵人跑?!罢f|法語”可以形成主主謂關(guān)系“他法語說得好”;也可以形成動(dòng)賓關(guān)系“他說法語”,因?yàn)橘|(zhì)數(shù)代換整除篩選不考慮語序,參考句型數(shù)據(jù)庫中“說|法語”只需出現(xiàn)一次。本文件中用“|”表示該參考句型是非固定的,即可調(diào)換秩序,或經(jīng)常插入其它成分或詞語。
動(dòng)詞與形容詞的關(guān)系有動(dòng)補(bǔ)關(guān)系、狀謂關(guān)系。動(dòng)補(bǔ)關(guān)系如跑快“他跑得很快!”狀謂關(guān)系如“認(rèn)真學(xué)習(xí)”,而“他學(xué)習(xí)很認(rèn)真”又是動(dòng)補(bǔ)關(guān)系,“學(xué)習(xí)認(rèn)真”可以認(rèn)為是主謂關(guān)系,同樣,句型數(shù)據(jù)庫中“認(rèn)真|學(xué)習(xí)”只需出現(xiàn)一次。
名詞與形容詞的關(guān)系有修飾關(guān)系、主謂關(guān)系。如熱天,天的很熱。參考句型數(shù)據(jù)庫中“天|熱”只需出現(xiàn)一次。
不過,如果計(jì)算機(jī)處理能力足夠,我們不妨把句型定多一些。如果把“他說英語”作為一個(gè)基本句型,無疑利于計(jì)算機(jī)處理,但“主謂賓”俱全,會(huì)增加句型的數(shù)量。所以我們可以考慮,把“他說英語”切分為“他說”、“說英語”兩個(gè)基本句型,同樣的,有“我說”、“說法語”、“說阿拉伯語”等,則整體上可以減少基本句型的數(shù)量。當(dāng)然,句型數(shù)據(jù)庫中也可以有一定數(shù)量常用的“主謂賓”俱全的句子,如格言、詩句等。內(nèi)存大的主頻2.1Gcpu中檔微機(jī),利用本文件的方法,是可以處理三四百萬條參考句型的數(shù)據(jù)庫,對于低檔微機(jī),可以對參考句型分類建庫,如通用120萬、科技80萬、文史80萬、報(bào)刊80萬條。如果處理新聞文稿則使用通用120萬+報(bào)刊80萬條參考句型數(shù)據(jù)庫。
不過,本質(zhì)上是語義搭配的句型分詞不能解決所有問題,如“讀一遍”、“讀兩遍”,以至“讀五百遍”,我們可以認(rèn)為“讀|遍”是一個(gè)搭配,也可將“一遍”、“兩遍”篩選入庫,但“遍”與更多的數(shù)詞的搭配使用,不可能都入庫,得借助語法處理。
3.規(guī)劃存貯的提出一個(gè)典型的語音輸入數(shù)據(jù)庫的參考句型庫jxk包括以下信息參考句型、拼音串、位標(biāo)記值、音節(jié)代換質(zhì)數(shù)乘積值、頻率以及語法信息,而語法信息又可包括參考句型各成分的詞性、搭配之間是否可插入其它成分等。由于語言研究的不足,沒有研究單位對現(xiàn)代漢語作過分析,并提練過參考句型。根據(jù)上文估計(jì),200萬個(gè)句型應(yīng)該能較好地覆蓋,而參考句型及詞語搭配,短則2個(gè)字,多的可能7、8個(gè)漢字。所以,本人用10萬多條兩字詞與4萬多條三字詞重復(fù)交叉,搭配成4,019,576條,每條5個(gè)漢字的無意義的參考句型,建成測試數(shù)據(jù)庫,記為jxk。參考句型數(shù)據(jù)庫應(yīng)該有拼音串的字段,但拼音串的字段要占用許多空間,所以構(gòu)造的測試數(shù)據(jù)庫,對漢語的400多個(gè)音節(jié),每個(gè)音節(jié)用一個(gè)漢字代替,同時(shí)避免了漢語拼音音節(jié)切分的問題,如fangan可切分為fang+an或fan+gan。如興代表xing。下面是表的模式參考句型J音節(jié)代字D位標(biāo)記值W音節(jié)代換質(zhì)數(shù)乘積值F語法信息G不比整行字 不比正興字 5008華北軸對稱 花被周對成 5008護(hù)耳當(dāng)頭炮 胡兒當(dāng)頭炮 5008四黨浦城縣 四當(dāng)仆成仙 5008吃準(zhǔn)備用品 吃準(zhǔn)被永拼 5008必爭東北面 比正東被棉 5008固化正對面 古花正對棉 5008共識(shí)好殺戮 工是好沙盧 5123磠砂南宮市 盧沙男工是 5123華新閩南話 花心民男花 5123告示南宮市 高是男工是 5123劃入即使是 花如幾是是 5123心急比色計(jì) 心幾比色幾 5123公民熊欣欣 工民兄心心 5123歹心好比是 代心好比是 5123入睡風(fēng)化殼 如水豐花科 300032奉公自尾鹿 豐工百微盧 300032
轉(zhuǎn)告水驅(qū)比專高水區(qū)比300032高唐公開化高唐工開花300032可比唯心論科比微心倫300032從這個(gè)局部看,“位標(biāo)記字符串檢索技術(shù)”中,無論一條記錄的字符元或其位值如何,都必須用其位值與關(guān)鍵詞位值進(jìn)行一次位比較判斷。如上表所示,“如水豐花科、豐工百微盧、專高水區(qū)比、高唐工開花、科比微心倫”5條音節(jié)代字D的位值W均為300032,檢索中,需用關(guān)鍵詞位值Wt與之進(jìn)行5次位值比較判斷。如果,位值W300032的記錄有50條,則需進(jìn)行50次位值比較,這是低效的,無用的。要避免這種低效的處理,方法是按位值重新組織字符串的存貯,使每種位值與關(guān)鍵詞位值只比較一次,或少數(shù)幾次。
4.存貯組織方法拼接構(gòu)造的全部為五個(gè)音節(jié)參考句型測試數(shù)據(jù)庫,記錄條數(shù)4,019,576條。以長整數(shù)的31個(gè)bit進(jìn)行標(biāo)記,可能重疊為1、2、3、4個(gè)bit,也可能不重疊,所以位值理論上有206367種。實(shí)際統(tǒng)計(jì)為206320種,每種位值平均對應(yīng)的參考句型為19.48條。
1.雙表處理減少位值無效比較,最直接的方法是按位值對數(shù)據(jù)庫進(jìn)行聚集存貯,將位值相同的記錄存貯在相鄰的空間,同時(shí)嚴(yán)格按位值大小排列。然后按位值分組總計(jì)查詢,存為另外的表,記為syb。表中有字段“索引位值”,是從參考句型表jxk中去除重復(fù)提取出來,為區(qū)別一般的位值W,記為V,表中有字段“統(tǒng)計(jì)”是各“索引位值”V在參考句型表jxk中出現(xiàn)的次數(shù)。對表syb也進(jìn)行聚集存貯,使之按“索引位值”V大小排列。不進(jìn)行聚集存貯,將降低查找效率。
設(shè)關(guān)鍵詞音節(jié)代字Dt為“幺苗非中”,標(biāo)記后索引位值Vt=5898240,以之與syb表中全部的“索引位值”Vn進(jìn)行位比較,記所有的bit為“1”的數(shù)據(jù)為VT,得到滿足Vt→Vn=VT,或者其等價(jià)變換條件的記錄集Rv,共有28個(gè)“索引位值”滿足這個(gè)條件,見下表索引位值V 統(tǒng)計(jì)T58982403658982411758982421558982441458982481358982561258982723058983047589836814589849613589875223589926410590028811590233615590643214591462424593100816596377612616038467995392914286848 2122675456 639452672 2073007104 15140115968 21274333696 12542769152 191079640064 22對每一個(gè)滿足條件的Vn,在參考句型表jxk中位值W查找等值的Wn。如首先在參考句型表jxk查找Wn=5898240的第一個(gè)記錄,在找到第一個(gè)符合記錄后,用關(guān)鍵詞音節(jié)代字Dt“幺苗非中”與該記錄的音節(jié)代字Dn進(jìn)行模糊匹配,確定該記錄是否符合條件。在實(shí)際語音輸入處理中,可以關(guān)鍵詞的質(zhì)數(shù)乘積值Ft與該記錄的質(zhì)數(shù)Fn相除,如能整除,則該記錄之參考句型有效,否則放棄。
在找到Wn=5898240的第一個(gè)符合記錄后,可按syb.T字段確定jxk中此記錄往后需要進(jìn)行模糊匹配或整除判斷的記錄數(shù)是36條。處理后,在參考句型表jxk查找Wn=5898241的第一個(gè)記錄,該位值需要進(jìn)行模糊匹配或整除判斷的記錄是17條。這樣,直到最后的Wn=1079640064的參考句型。
因?yàn)閮杀砭次恢颠M(jìn)行聚集索引,對Rv所列的每一個(gè)值,在句型庫jxk中,只需從小到大向前查找。
2.單表處理雙表處理是一個(gè)參考句型表jxk,一個(gè)位索引表syb,實(shí)際還有一個(gè)音節(jié)信息表yjb,包含漢語拼音的400多個(gè)音節(jié)的音節(jié)代字、統(tǒng)計(jì)頻率、標(biāo)記分組、基本位值、代換質(zhì)數(shù)等信息。單表處理處理,同樣有音節(jié)信息表yjb,但將參考句型表jxk與位索引表syb合并一個(gè)表syjxb先將索引表syb擴(kuò)充,增加D1至D10十個(gè)字段,F(xiàn)1至F10十個(gè)字段,J1至J10十個(gè)字段等,即成為syjxb的架構(gòu)。然后,寫一段代碼將參考句型庫jxk中的信息讀出并寫入該表。如,對于位值V=526406的記錄,在jxk中找到位值W=526406,讀入該位值的10條記錄的句型信息,相應(yīng)地寫入各字段中。如果參考句型庫jxk中位值W=526406的記錄只有7條,則只填入D1至D7,F(xiàn)1至F7,J1至J7等字段,其余空白。如果參考句型庫jxk中位值W=526406的記錄超過10條,則在syjxb中插入另一個(gè)v=526412的記錄,寫入?yún)⒖季湫蛶靔xk中位值W=526406的記錄中其他記錄的信息,以此類推。下面是syjxb的局部


關(guān)鍵詞音節(jié)代字Dt,標(biāo)記后位值記為Vt,以之與syjxb表中全部的“索引位值”Vn進(jìn)行位比較,得到滿足Vt→Vn=VT,或者其等價(jià)變換條件的記錄集Rv,以關(guān)鍵詞音節(jié)代字Dt與字段D1至D10進(jìn)行模糊匹配,或者以關(guān)鍵詞音節(jié)質(zhì)數(shù)代換值Ft與F1至F10進(jìn)行整除,若Dn或Fn滿足條件,則以之確定Jn為參考句型。要注意的是可能同時(shí)有數(shù)個(gè)Jn符合條件,是參考句型。
5.選擇標(biāo)記存貯索引拼接構(gòu)造的全部為五個(gè)音節(jié)參考句型測試數(shù)據(jù)庫,記錄條數(shù)4,019,576條。參考句型都是5個(gè)字符元,以長整數(shù)符號(hào)位之外的31個(gè)bit進(jìn)行標(biāo)記,可能重疊為1、2、3、4個(gè)bit,也可能不重疊,所以索引位值V理論上有206367種。實(shí)際統(tǒng)計(jì)為206320種,每種位值平均對應(yīng)的參考句型為19.48條。如果參考句型是6個(gè)字,理論上索引位值V有942648種,每種位值班平均對應(yīng)4.24條句型,如果參考句型是7個(gè)字,理論上索引位值V有3572223種,每種位值班平均對應(yīng)1.12條句型。其不利之處是syb中索引位值Vn太多,以關(guān)鍵詞位值Vt與之進(jìn)行比較,不能提高效率,其次是符合條件的記錄在jxk中過于分散,如果數(shù)據(jù)庫很大,不能整體裝入內(nèi)存,檢索時(shí)需要從硬盤讀入,即使進(jìn)行聚集存貯,也無助于提高效率。
這里提供另一備選方案從400多個(gè)音節(jié)中選擇一部分高頻音節(jié),以之對參考句型數(shù)據(jù)庫進(jìn)行標(biāo)記,得到V值,按V值規(guī)劃存貯索引,查找定位后,再用完整標(biāo)記位值W進(jìn)行比較篩選,下表是進(jìn)行選擇標(biāo)記的音節(jié)信息表yjb的局部


shi這個(gè)音節(jié),代字為“是”,3.20149,是指現(xiàn)代漢語中,400多個(gè)音節(jié)中shi的頻率,是一份不太準(zhǔn)確的統(tǒng)計(jì)數(shù)據(jù),jxk中有437341條記錄包含“是”,即10.88028%的記錄包含這個(gè)音節(jié),用長整數(shù)31個(gè)bit標(biāo)記,與cha、pai、se、min、kuang、cong、guai、pang、nüe等音節(jié),對應(yīng)長整數(shù)右起第一個(gè)bit。在400個(gè)音節(jié)中,選擇其中62個(gè)音節(jié)作為控制音節(jié)K,分為31組,對應(yīng)31個(gè)bit,標(biāo)記后的位值,我們也記為V。下表是選擇標(biāo)記的jxk的局部參考句型J 音節(jié)代字D 完全標(biāo)記位值W 控制字K控制字?jǐn)?shù) 選擇標(biāo)記位值V換簽自主國 歡千字朱國 805372032 國千朱字 4 805372032換人自轉(zhuǎn)式 歡人字專是 539000961 人是字 3 2097281換傘自轉(zhuǎn)軸 歡三字專周 1610645648字 1 128換上自組織 歡上字租只 805307016 上只字 3 268435592換腎自尊心 歡身字尊心 537003200 心字 2 1152換收自作孽 歡收字左聶 541068416 收字 2 2176換手宗白華 歡收宗百花 537139200 花收 2 6144有之大法師 優(yōu)只達(dá)發(fā)是 25427977 達(dá)發(fā)是優(yōu)只 5 25427977有知大范圍 優(yōu)只達(dá)帆微 25198600 達(dá)微優(yōu)只 4 25198600臥龍反射爐 窩龍帆舌盧 2894080080 0臥鋪反射率 窩仆帆舌呂 2852459600 0臥射反射器 窩舌帆舌起 285212712 起 1 32臥式反射體 窩是帆舌踢 285278217 是 1 1參考句型J“換簽自主國”的音節(jié)代字為“歡千字朱國”,其中“歡”與“國”在完全標(biāo)記中同屬30組,而“國千朱字”均是選擇音節(jié),所以選擇標(biāo)記位值V與完全標(biāo)記位值W相同。
選擇標(biāo)記位值V=0的記錄有201774條,這些記錄不包含任何一個(gè)控制音節(jié)。
選擇標(biāo)記位值V=34234368的記錄只有2條“余典京長低”、“無低副余京”。查詢得知,統(tǒng)計(jì)T<20的V有75048種,總計(jì)324715條記錄,如果直接進(jìn)行聚集索引,不能改進(jìn)其存貯分布狀況。我們將這些V更改為2147483647,就是使所有的bit為“1”,然后對數(shù)據(jù)庫進(jìn)行聚集索引,數(shù)據(jù)庫成為V=0 201774條,不含任何控制字符元,記為V0V=1-2147483646有11873種,3,493,087條每V值平均294.2條,為VnV=2147483647 324715條,所有bit均為“1”,記為VT如檢索關(guān)鍵詞不含任何控制字符元K,因?yàn)槭悄鏅z索,所以僅需將V0范圍的音節(jié)代字的完全標(biāo)記位值Wn與關(guān)鍵詞之完全標(biāo)記位值Wt進(jìn)行位比較判斷。
設(shè)檢索關(guān)鍵詞10個(gè)音節(jié)中含j個(gè)控制音節(jié)K,其它(10-j)個(gè)為非控制字符元,j個(gè)控制字符元的選擇控制標(biāo)記值為Vt,則jxk中需與關(guān)鍵詞完全標(biāo)記位值Wt進(jìn)行位比較的位值Wn有V0及VT范圍的記錄,Vn范圍內(nèi)滿足下式或其等價(jià)變換式的記錄Vt&Vn>0,當(dāng)然也有Wt&WT>0。
62個(gè)控制音節(jié)頻率合計(jì)為Pk=53.60,其余的非控制音節(jié)頻率合計(jì)為Pf=46.40,對于檢索關(guān)鍵詞n=10個(gè)音節(jié)的語句來說,出現(xiàn)控制音節(jié)j個(gè)、r個(gè)非控制音節(jié),r+j=10的概率可按n重貝努利實(shí)驗(yàn)計(jì)算。
62個(gè)控制音節(jié)在句型數(shù)據(jù)庫中出現(xiàn)百分比為229.41%,平均百分比為0.0370。如果檢索關(guān)鍵詞n=10個(gè)音節(jié)中出現(xiàn)控制音節(jié)5個(gè)、5個(gè)非控制音節(jié)。按公式P[Ui=1nAi]=Σ1≤i≤nP(Ai)-Σ1≤i<j≤nP(AiAj)+···+(-1)n-1P(A1+A2···An)]]>Rn=4,019,576*(5*0.037-10*0.037^2+10*0.037^3-5*0.037^4+0.037^5)=690593需要進(jìn)行位比較的記錄集R=R0+RT+Rn=201774+324715+690593=1217082其中201774+324715條記錄是連續(xù)的,其余690593條記錄是保留下來的,也相對集中。當(dāng)整個(gè)數(shù)據(jù)庫不能裝入內(nèi)存,需要從硬盤讀入時(shí),可以減少硬盤尋道定位時(shí)間。
6.縮位標(biāo)記存貯索引選擇標(biāo)記存貯索引方法,如果認(rèn)真的統(tǒng)計(jì)分析后進(jìn)行,能一定程度減少逆檢索的位比較次數(shù),改善記錄的存貯分布,但并不理想,下面說明另一種標(biāo)記方案。
從位標(biāo)記檢索的篩選效果來說,數(shù)據(jù)庫字符串平均長m及關(guān)鍵詞長k一定時(shí),標(biāo)記所用bit數(shù)n越大,篩選效果越好。但從存貯索引的角度來說,標(biāo)記所用bit數(shù)n越大,位值種類越多,則有不利的方面其一,索引表值增多,定位的次數(shù)也增多。其二,需要讀入的數(shù)據(jù)存貯空間分散。在數(shù)據(jù)庫大,內(nèi)存有限的環(huán)境下,需要從外存讀入的數(shù)據(jù)越分散,硬盤尋道和定位的時(shí)間也越多。

所以,規(guī)劃存貯索引標(biāo)記的所用的bit數(shù),需要綜合考慮cup、內(nèi)存、外存、數(shù)據(jù)庫的記錄多少、每條記錄所有字段長、字符串的字符元數(shù)等方面的因素。4000000條記錄的數(shù)據(jù)庫,如果字符串平均長m為6,可以考慮用20個(gè)bit標(biāo)記,其位值也記為V,根據(jù)V對jxk聚集存貯索引,每一連續(xù)區(qū)域平均有66.16條記錄,當(dāng)然,位比較后的篩選效果會(huì)較低,所以存貯索引之外,同時(shí)進(jìn)行一次31個(gè)bit的標(biāo)記,位值記為W,在用位值V進(jìn)行索引定位后,再用位值W進(jìn)行位比較篩選。
設(shè)數(shù)據(jù)庫及關(guān)鍵詞均用“1”標(biāo)記,標(biāo)記所用位數(shù)為n,位標(biāo)記后Sn的位值Vn的“1”為m個(gè),檢索關(guān)鍵詞標(biāo)記后的“1”為k個(gè),逆檢索即查找被關(guān)鍵詞T包含的記錄J,概率計(jì)算方法為P=CkmCnm=k!m!(k-m)!n!m!(n-m)!=k!(n-m)!n!(k-m)!]]>構(gòu)造的測試數(shù)據(jù)庫字符元為5,設(shè)檢索關(guān)鍵詞的音節(jié)為10,用20個(gè)bit標(biāo)記后,因重疊,“1”的bit的平均數(shù)會(huì)略少于5、10,因計(jì)算復(fù)雜,這里認(rèn)為“1”的bit為5、10。
P20=C105C205=10!5!(10-5)!20!5!(20-5)!=0.016254]]>用Vt與Vn進(jìn)行比較后,在jxk中需要查找的區(qū)域有21699*0.016254=353,是比較理想的。
但是縮位標(biāo)記也有不足之處,按概率計(jì)算公式,當(dāng)句型長m為5時(shí),檢索關(guān)鍵詞長為k,位標(biāo)記所用bit數(shù)n不同取值時(shí)的概率

設(shè)用20個(gè)bit標(biāo)記,如果語句包含12音節(jié),位值比較后篩選概率為0.051084,14音節(jié)則0.129128,增加得很快。雖然漢語語句平均長在10音節(jié)左右,但語言處理中會(huì)有較長的句子,所以逆檢索中,縮位過度是不可取的。
7.長檢索關(guān)鍵詞的切分處理漢語句式本來比較短,所以本文多以檢索關(guān)鍵詞含10個(gè)音節(jié)分析,也就是認(rèn)為句子的長度是10個(gè)漢字,但現(xiàn)代書面文體,有長達(dá)15、16個(gè)漢字乃至20多個(gè)漢字的語句,如中國經(jīng)濟(jì)的持續(xù)快速增長一直是西方經(jīng)濟(jì)學(xué)界所津津樂道的迷團(tuán)。
Zhongguojingjidechixukuaisuzengzhangyizhishixifangjingjixuejiesuojinjinledaodemituan.
該句有28個(gè)漢字,其拼音串有28個(gè)音節(jié),對于32位的cpu,直接對該句進(jìn)行質(zhì)數(shù)代換檢索,整除運(yùn)算的處理是困難的,進(jìn)行位標(biāo)記檢索篩選,概率篩選的效果是不佳的,縮位標(biāo)記索引可能無法進(jìn)行,所以對長句有必要進(jìn)行切分處理。自然,計(jì)算機(jī)并不知道對拼音串按意群進(jìn)行合理切分,可能將一個(gè)屬于詞語的音節(jié)分為兩半,我們可以這樣處理ZhongguojingjidechixukuaisuzengzhangZengzhangyizhishixifangjingjixuejiexuejiesuojinjinledaodemituan.
也就是第一次切分0-11共11個(gè)音節(jié),第二次切分10-20共11個(gè)音節(jié),第三次切分19以后的音節(jié)。對這樣切分出來的3個(gè)片段,分別進(jìn)行處理,得出初步結(jié)果。初步結(jié)果中,“津津樂道”、“西方經(jīng)濟(jì)學(xué)界”“經(jīng)濟(jì)增長”“持續(xù)快速增長”是計(jì)算機(jī)能判斷轉(zhuǎn)換的部分,句子處理為
Zhongguo經(jīng)濟(jì)de持續(xù)快速增長yizhishi西方經(jīng)濟(jì)學(xué)界suo津津樂道demituan.
下一步,將已轉(zhuǎn)換的部分去除,得到下面拼音串Zhongguodeyizhishisuodemituan如果jxk中有“中國是”“是迷團(tuán)”“一直是”等搭配,則可處理為中國de一直是suode謎團(tuán)再合并被去除的已判斷的部分中國經(jīng)濟(jì)de持續(xù)快速增長一直是西方經(jīng)濟(jì)學(xué)界suo津津樂道de迷團(tuán)。
借助語法、詞頻、字頻、前后漢字之間的“聯(lián)想”,可將句子轉(zhuǎn)換為中國經(jīng)濟(jì)的持續(xù)快速增長一直是西方經(jīng)濟(jì)學(xué)界所津津樂道的迷團(tuán)。
上面說明了漢語語音處理中,字符串規(guī)劃存貯索引查找的方法。把其它語言的標(biāo)音符號(hào)視為漢語拼音,即可用該方法處理其它語言。機(jī)器翻譯、搜索引擎中的查找參考句型,也不難組織實(shí)施。對于一般的字符串模糊檢索,同樣可以進(jìn)行字符串規(guī)劃存貯索引,提高查找速度。
另外,本文件說明的是以位標(biāo)記為基礎(chǔ)進(jìn)行規(guī)劃存貯索引,當(dāng)然,按照這個(gè)原理,也可以用質(zhì)數(shù)代換方法實(shí)施規(guī)劃存貯索引,但占用空間較多而查詢速度會(huì)較慢。
具體實(shí)施例方式
本文件說明了多種標(biāo)記存貯方案,應(yīng)用中可根據(jù)數(shù)據(jù)庫的特點(diǎn)以及硬件環(huán)境選擇實(shí)施,下面用sql server 2000和vb6.0具體說明單表實(shí)施的方法。由于測試硬件水平低,僅對syjxb中每個(gè)位值Vn從jxk中讀入10條音節(jié)代字D,忽略其他字段和多余的記錄,所以實(shí)際轉(zhuǎn)換進(jìn)入syjxb的音節(jié)代字是2035454條,共10,177,270個(gè)漢字。
1.測試代碼Dim V As LongDim Vlin As LongDim T As StringDim Dlin as StringDim x As IntegerDim shijian As SingleV=0Vlin=0T=Text1.TextFor x=1 To Len(T)Dlin=Mid(T,x,1)yjbrs.MoveFirstyjbrs.Find″D=&Dlin&″‘從音節(jié)信息表yjb中找到檢索關(guān)鍵詞每個(gè)音節(jié)的基本位值。
With yjbrsVlin=.Fields(″W″)End With
V=V Or Vlin‘對檢索關(guān)鍵詞的每個(gè)音節(jié)的位值進(jìn)行位的“或”運(yùn)算,得到關(guān)鍵詞關(guān)鍵詞的位值V。
Nextshijian=TimerstrQuery=″SELECT V,D=case when D1LIKE′%″&T&″%′then D1when D2LIKE′%″&T&″%′then D2when D3LIKE′%″&T&″%′then D3when D4LIKE′%″&T&″%′then D4when D5LIKE′%″&T&″%′then D5when D6LIKE′%″&T&″%′then D6when D7LIKE′%″&T&″%′then D7when D8LIKE′%″&T&″%′then D8when D9LIKE′%″&T&″%′then D9when D10LIKE′%″&T&″%′then D10End FROM(SELECT*from syjxbWHERE((syjxb.V&″&V&″)=″&V&″))DERIVEDTBL WHERE((D1LIKE′%″&T&″%′)or(D2LIKE′%″&T&″%′)or(D3LIKE′%″&T&″%′)or(D4LIKE%″&T&″%′)or(D5LIKE′%″&T&″%′)or(D6LIKE′%″&T&″%′)or(D7LIKE′%″&T&″%′)or(D8LIKE′%″&T&″%′)or(D9LIKE′%″&T&″%′)or(D10LIKE′%″&T&″%′))″‘內(nèi)部查詢進(jìn)行位值比較SELECT*from syjxb WHERE(syjxb.V&″&V&″)=″&V&″),外部查詢的where字句,以檢索關(guān)鍵詞T與D1至D10進(jìn)行模式匹配,任一字段包含檢索關(guān)鍵詞,該記錄入選。D=case when……End,通過判斷篩選顯示字段。如果D1至D10中,有兩個(gè)字符串符合,用這個(gè)方法,是不能完全顯示的,如果獨(dú)立編寫自然語言處理程序,查找參考句型,這個(gè)問題容易解決。
Adodc1.RecordSource=strQueryAdodc1.Refresh
DataList1.ListField=″D″DataList1.ReFillshijian=Timer-shijianBeepMsgBox(CStr(shijian)+″秒?!?2.測試結(jié)果編程語言為VB,操作系統(tǒng)為Windowxp,CPU賽揚(yáng)800Hz,內(nèi)存256M,810主板,硬盤40G。由于內(nèi)存數(shù)量限制,數(shù)據(jù)庫不能全部讀入內(nèi)存,對于每個(gè)關(guān)鍵詞,必須從硬盤讀入數(shù)據(jù),第一次響應(yīng)時(shí)間為0.9秒,第二次以后,由于數(shù)據(jù)已讀入內(nèi)存,響應(yīng)時(shí)間為0.14至0.18秒。如果不用規(guī)劃存貯,僅用位標(biāo)記檢索,用時(shí)約為1.7-1.8秒。考慮到字符串多達(dá)2035454條,計(jì)10,177,270個(gè)漢字,硬件水平的狀況,可以說性能的良好的。
其它數(shù)據(jù)庫字符串模糊查找可參照實(shí)行。
權(quán)利要求
1.一種字符串存貯、索引、模糊檢索技術(shù),其特征在于,包括以下步驟a.對數(shù)據(jù)庫字符串按字符元進(jìn)行統(tǒng)計(jì)分析,按一定方案進(jìn)行位標(biāo)記,得到每條字符串的位值Vn。b.按標(biāo)記位值Vn建立索引表,若按標(biāo)記位值Vn對數(shù)據(jù)庫進(jìn)行聚集存貯后,再按Vn建立索引表,則性能更優(yōu),稱為雙表處理;或是將數(shù)據(jù)庫按標(biāo)記位值Vn重新組織,稱為單表處理。c.檢索時(shí),先對檢索關(guān)鍵詞進(jìn)行標(biāo)記,取得位值Vt后雙表處理,以Vt與索引表中的標(biāo)記位值Vn進(jìn)行位比較,按符合位比較條件的標(biāo)記位值Vn,在句型數(shù)據(jù)庫中查找Vn,或Wn,對查找到的記錄,按需要,與檢索關(guān)鍵詞進(jìn)行W位值比較、質(zhì)數(shù)代換整除或通常的字符串模糊匹配等處理,得到結(jié)果;單表處理,以Vt與表中的標(biāo)記位值Vn進(jìn)行位比較,對符合位比較條件的Vn的各字符串字段Dn或其對應(yīng)的信息字段Fn、Wn,按需要,與檢索關(guān)鍵詞進(jìn)行通常的字符串模糊匹配、質(zhì)數(shù)代換整除、W位值比較等處理,得到結(jié)果。
全文摘要
本發(fā)明是一種字符串存貯、索引、模糊檢索技術(shù)。首先對數(shù)據(jù)庫字符串按字符元進(jìn)行統(tǒng)計(jì)分析,并根據(jù)數(shù)據(jù)庫狀況決定標(biāo)記方案。按標(biāo)記位值V
文檔編號(hào)G06F17/30GK1983249SQ20051011137
公開日2007年6月20日 申請日期2005年12月12日 優(yōu)先權(quán)日2005年12月12日
發(fā)明者徐文新 申請人:徐文新
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
乌鲁木齐县| 文水县| 仪征市| 宾阳县| 驻马店市| 茶陵县| 松江区| 治县。| 若尔盖县| 澄迈县| 涡阳县| 赤峰市| 大同市| 绿春县| 巴彦淖尔市| 天气| 井冈山市| 贡觉县| 元阳县| 唐河县| 凌云县| 海兴县| 宣恩县| 都匀市| 绥滨县| 昔阳县| 义乌市| 油尖旺区| 江安县| 东乡族自治县| 芒康县| 新晃| 裕民县| 苏尼特左旗| 乌兰察布市| 绥滨县| 手游| 米林县| 红桥区| 鹿邑县| 如东县|