亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種面向家庭數(shù)據(jù)庫的模糊查詢方法與流程

文檔序號:12121360閱讀:450來源:國知局
一種面向家庭數(shù)據(jù)庫的模糊查詢方法與流程

本發(fā)明涉及計算機技術領域,特別涉及數(shù)據(jù)庫模糊查詢方法。



背景技術:

在計算機信息管理系統(tǒng)中,以家庭為單位的數(shù)據(jù)庫很常見,如用于水電燃氣供應、有線電視服務、計劃生育、房產(chǎn)登記、義務教育等領域的管理信息系統(tǒng)。這類數(shù)據(jù)庫通常開有丈夫姓名和妻子姓名兩個字段,而實際建庫時開始沒要求錄入雙方姓名或只須錄入任意一方,完整的夫妻姓名后來逐步補錄,所以數(shù)據(jù)庫中經(jīng)常只錄入其中一個字段,或者丈夫(妻子)姓名誤填入妻子(丈夫)字段。對單個姓名來講,又有可能缺姓、兩字對調(diào)、名的第一字含糊、地域性的姓氏簡寫、簡稱錄入和異體字寫法,比如“潘明曉”,建庫時可能簡單填寫或錯誤填寫成“明曉”、“潘曉明”、“泮明曉”、“阿曉”。通過此類面向家庭數(shù)據(jù)庫辦理事務時需要通過用戶輸入的夫妻雙方姓名查詢登記記錄,所以根據(jù)姓名模糊查詢面向家庭數(shù)據(jù)庫有其實際需求。

姓名作為一種字符串有其特殊性,因為編輯距離對字序調(diào)換、姓名語義缺乏識別能力,對姓和名中的不同字符的不同地位不加區(qū)別,用通常的編輯距離模糊查詢往往效果不佳。



技術實現(xiàn)要素:

為了解決面向家庭數(shù)據(jù)庫根據(jù)雙方姓名的查詢問題,尤其是夫婦字段缺項、姓名不完整、錯位、對調(diào)等信息缺陷情形下的模糊查詢問題,本發(fā)明采取如下方案。

一種面向家庭數(shù)據(jù)庫的模糊查詢方法,其特征在于,包含以下步驟:

(1)讀取要查詢的丈夫姓名和妻子姓名;

(2)按丈夫姓名和妻子姓名均精確匹配的方式查詢,得記錄集A;

(3)按丈夫姓名模糊匹配、妻子姓名精確匹配的方式查詢,得記錄集B;

(4)按丈夫姓名精確匹配、妻子姓名模糊匹配的方式查詢,得記錄集C;

(5)按丈夫姓名和妻子姓名均模糊匹配的方式查詢,得記錄集D;

(6)將丈夫姓名和妻子姓名對調(diào);

(7)重復步驟(2)~(5),分別得第二批記錄集A~D;

(8)合并步驟(2)~(5)得到的兩批記錄集,作為查詢結(jié)果返回。

步驟(3)~(5)中的模糊匹配方法有多種,比如編輯距離、集合并交比、或者退化為精確匹配。優(yōu)選的,所述模糊匹配包含以下步驟:

(11)去姓,再以“含有”方式查詢;

(12)調(diào)換名的兩個字,再以“相等”方式查詢;

(13)去姓并調(diào)換名的兩個字,再以“含有”方式查詢;

(14刪除名的第一字,再以“相等”方式查詢;

(15)刪空姓名,再以“相等”方式查詢;

(16)取簡稱姓名,再以“相等”方式查詢。

完整的姓名必然含有去姓的姓名,所以步驟(11)的模糊匹配包含精確匹配。步驟(15)即查找姓名空白未錄入的記錄。步驟(16)的簡稱姓名有多種,如“老王”、“阿亮”。

進一步的,執(zhí)行所述查詢的同時計算記錄的相似度,相似度的計算方法是,查詢所得記錄的相似度等于執(zhí)行該查詢所經(jīng)歷的下列步驟的相似度因子的乘積:步驟(2)的相似度因子為1,步驟(3)和(4)的相似度因子為p,步驟(5)的相似度因子為p2;步驟(6)的相似度因子為q;步驟(11)的相似度因子為r,步驟(12)的相似度因子為s,步驟(13)的相似度因子為rs;步驟(14)的相似度因子為t;步驟(15)的相似度因子為u;步驟(16)的相似度因子為v;參數(shù)p、q、r、s、t、u、v取值為0與1之間的實數(shù)。

執(zhí)行所述合并記錄集時,若同一記錄多次被查詢到,按照相似度就高原則擇一進入查詢結(jié)果,最后按相似度從大到小的順序返回查詢結(jié)果。

本發(fā)明的技術效果:解決了字段空白、缺姓、名的兩字對調(diào)、名的第一字錯漏、以簡稱錄入、姓名錯填字段等中國人姓名信息常見缺陷情形下的模糊查詢問題,實現(xiàn)的查詢是字段含義、姓名結(jié)構等語義層次意義下的模糊查詢,而非普通字符串匹配或通用相似度(如編輯距離)意義下的模糊查詢,從而使得采用本發(fā)明的查詢方法和系統(tǒng)能夠更加全面、準確地發(fā)現(xiàn)數(shù)據(jù)庫中的待查家庭記錄的真正所在。

附圖說明

圖1是本發(fā)明較佳實施例的總體流程圖。

圖2是本發(fā)明較佳實施例中的模糊查詢流程圖。

圖3是本發(fā)明較佳實施例中的姓名模糊匹配流程圖。

具體實施方式

為了使本發(fā)明更加清晰易懂,下面結(jié)合附圖對本發(fā)明作進一步的詳細說明。

參照附圖1,示出了本發(fā)明較佳實施例的總體流程圖,該流程圖表明實施例按如下順序執(zhí)行數(shù)據(jù)庫模糊查詢:

步驟1:讀取要查詢的丈夫姓名和妻子姓名;

步驟2:運行一次丈夫姓名和妻子姓名的模糊查詢;

步驟3:對調(diào)丈夫姓名和妻子姓名,再重復一次步驟2;

步驟4:合并兩次步驟2查詢所得的數(shù)據(jù)庫記錄集。

步驟1讀取的雙方姓名由用戶輸入,允許一方為空,但不會雙方均空,雙方均空則不啟動本模糊查詢程序。

步驟2的模糊查詢?yōu)檎煞蛐彰?、妻子姓名按一定?guī)則去匹配數(shù)據(jù)庫中記錄的查詢,這些規(guī)則可以是雙方姓名均模糊匹配,也可以是一方模糊匹配,另一方精確匹配,也可以退化為雙方均精確匹配,還可以是以上匹配中兩種或多種匹配的組合。本實施例將采用如下四種匹配的組合(如附圖2):丈夫姓名精確匹配妻子姓名精確匹配、丈夫姓名模糊匹配妻子姓名精確匹配、丈夫姓名精確匹配妻子姓名模糊匹配和丈夫姓名模糊匹配妻子姓名模糊匹配。查詢結(jié)果是若干個記錄集,一般需要緩存空間保存這些記錄集。

步驟4所做的合并為數(shù)學集合意義上的并集運算,即同一元素重復存在時在合并結(jié)果中只取一次。

參照附圖2,示出了較佳實施例中的模糊查詢流程圖。模糊查詢按照四個并行過程執(zhí)行。

過程A1是執(zhí)行丈夫姓名精確匹配步驟21、妻子姓名精確匹配步驟21,然后執(zhí)行查詢步驟22,得記錄集A;

過程A2是執(zhí)行丈夫姓名模糊匹配步驟23、妻子姓名精確匹配步驟21,然后執(zhí)行查詢步驟22,得記錄集B;

過程A3是執(zhí)行丈夫姓名精確匹配步驟21、妻子姓名模糊匹配步驟23,然后執(zhí)行查詢步驟22,得記錄集C;

過程A4是執(zhí)行丈夫姓名模糊匹配步驟23、妻子姓名模糊匹配步驟23,然后執(zhí)行查詢步驟22,得記錄集D。

假設要查詢的丈夫姓名為h,妻子姓名為w,數(shù)據(jù)庫中丈夫姓名和妻子姓名的字段名分別Husband和Wife,并假設用SQL語句進行數(shù)據(jù)庫查詢,那么過程A1的兩個姓名精確匹配步驟21,分別是構造SQL語句的“Husband=h”子句和“Wife=w”子句。實際實施時這兩步姓名精確匹配步驟21可合并為“Husband=h AND Wife=w”子句。

查詢步驟22即調(diào)用ExecuteSQL函數(shù)(C語言實施時)。

姓名模糊匹配步驟23的方法有多種,如SQL的各種LIKE子句,或者d(Wife,w)<=1(d為編輯距離函數(shù)),或者是基于漢字筆劃的模糊匹配,或者退化為SQL的相等子句Wife=w。本實施例則是去姓、對調(diào)名的兩個字、去姓且對調(diào)名的兩個字、刪去名的第一字、姓名刪空、簡稱姓名的模糊匹配方法(如附圖3)。一般來講運用模糊匹配方法查詢的結(jié)果也包含精確匹配的結(jié)果,精確匹配作為模糊匹配的一種特例而其查詢結(jié)果出現(xiàn)在模糊匹配記錄集中。

假設讀入的丈夫姓名為空,則并行過程中的丈夫姓名精確匹配21和丈夫姓名模糊匹配23均不執(zhí)行,只剩下妻子姓名的匹配,所以四個并行過程實際只剩下兩種并行過程。實施時可以考慮此類優(yōu)化,只執(zhí)行兩個并行過程。當讀入的妻子姓名為空,情形類似。

并行過程的執(zhí)行可以通過SQL的OR邏輯運算變成一步執(zhí)行。

例如:若姓名模糊匹配采用前部匹配,模糊查詢的SQL語句形如:

...WHERE(Husband=h AND Wife=w)OR(Husband LIKE h% AND Wife=w)OR(Husband=h AND Wife LIKE w%)OR(Husband LIKE h% AND Wife LIKE w%)

上面語句其實等價于優(yōu)化的WHERE(Husband LIKE h% AND Wife LIKE w%),此例僅為清晰說明起見。此外當模糊匹配采用另外的方式或者查詢的同時需要計算相似度,不一定能做類似優(yōu)化。

參照附圖3,示出了較佳實施例中的姓名模糊匹配流程圖。此姓名模糊匹配按照六個并行過程執(zhí)行。

過程B1是執(zhí)行去姓步驟231,再指定查詢方式為“含有”方式;

過程B2是執(zhí)行對調(diào)名的兩個字步驟232,再指定查詢方式為“相等”方式;

過程B3是執(zhí)行去姓步驟231和對調(diào)名的兩個字步驟232,再指定查詢方式為“含有”方式;

過程B4是執(zhí)行刪除名的第一字步驟233,再指定查詢方式為“相等”方式;

過程B5是執(zhí)行刪空姓名步驟234,再指定查詢方式為“相等”方式;

過程B6是執(zhí)行取姓名簡稱步驟235,再指定查詢方式為“相等”方式。

假設要查詢的姓名為n,數(shù)據(jù)庫中姓名的字段名為Name,并假設使用SQL語句。去姓步驟231是生成一個新姓名newn1,即姓名兩個字或三個字的,刪去第一字,姓名四個字的,刪去前兩字。對調(diào)名的兩個字步驟232是生成一個新姓名newn2,即姓名三個字的,調(diào)換第二字與第三字,姓名四個字的,調(diào)換第三字與第四字。生成的既去姓又對調(diào)名的兩個字的新姓名為newn3。刪除名的第一字步驟233是生成一個新姓名newn4,即姓名三個字的,刪除第二字,姓名四個字的,刪除第三字。取姓名簡稱步驟235是生成三個新姓名newn5,newn6,newn7,其中newn5=“老”+姓名第一字,newn6=“小”+姓名第一字,newn7=“阿”+姓名最后一字,分別如“老王”、“小王”和“阿亮”(以n=“王明亮”為例)。由于姓名n為字符串常量,具體實施時可以用一個預處理程序先生成上述新姓名newn1~newn7。于是,過程B1采用SQL子句“Name LIKE %newn1%”,過程B2采用SQL子句“Name=newn2”,過程B3采用SQL子句“Name LIKE %newn3%”,過程B4采用SQL子句“Name=newn4”,過程B5采用SQL子句“Name=””,過程B6采用SQL子句“Name IN(newn5,newn6,newn7)”。具體實施時也可以將B1~B6并行過程合并成如下單個SQL子句:“Name LIKE %newn1% OR Name LIKE %newn3% OR Name IN(newn2,newn4,″,newn5,newn6,newn7)”。

執(zhí)行查詢的同時還可計算記錄的相似度,相似度的計算方法是,查詢所得記錄的相似度等于執(zhí)行該查詢所經(jīng)歷的下列步驟的相似度因子的乘積:

“按丈夫姓名和妻子姓名均精確匹配的方式查詢,得記錄集A”的相似度因子為1;

“按丈夫姓名模糊匹配、妻子姓名精確匹配的方式查詢,得記錄集B”和“按丈夫姓名精確匹配、妻子姓名模糊匹配的方式查詢,得記錄集C”的相似度因子為p;

“按丈夫姓名和妻子姓名均模糊匹配的方式查詢,得記錄集D”的相似度因子為p2;

“將丈夫姓名和妻子姓名對調(diào)”的相似度因子為q;

“去姓,再以‘含有’方式查詢”的相似度因子為r;

“調(diào)換名的兩個字,再以‘相等’方式查詢”的相似度因子為s;

“去姓并調(diào)換名的兩個字,再以‘含有’方式查詢”的相似度因子為rs;

“刪除名的第一字,再以‘相等’方式查詢”的相似度因子為t;

“刪空姓名,再以‘相等’方式查詢”的相似度因子為u;

“取姓名簡稱,再以‘相等’方式查詢”的相似度因子為v。

其中參數(shù)p、q、r、s、t、u、v取值為0與1之間的實數(shù),一種優(yōu)選取值為:p=0.75,q=0.7,r=0.8,s=0.6,t=0.6,u=0.4,v=0.5。

參照附圖1、附圖2和附圖3,為計算上述步驟的相似度因子,只需將計算工作歸約為下列原子步驟的相似度因子:

對調(diào)夫婦姓名步驟3的相似度因子為q;

丈夫或妻子姓名精確匹配步驟21的相似度因子為1;

丈夫或妻子姓名模糊匹配步驟23的相似度因子為p;

去姓步驟231的相似度因子為r;

對調(diào)名的兩個字步驟232的相似度因子為s;

刪除名的第一字步驟233的相似度因子為t;

刪空姓名步驟234的相似度因子為u;

取姓名簡稱步驟235的相似度因子為v。

有了以上原子步驟的相似度因子,步驟“按丈夫姓名和妻子姓名均模糊匹配的方式查詢,得記錄集D”因含兩個原子步驟23,其相似度因子為p*p=p2;步驟“去姓并調(diào)換名的兩個字,再以‘含有’方式查詢”因含有一個原子步驟231和一個原子步驟232,其相似度因子為r*s=rs。

相似度計算的實施方法是在原子步驟中增加適當?shù)恼Z句:設置一個實數(shù)型變量k,初值置為1.0(可在附圖1步驟1中加入語句“k=1.0”),在附圖1步驟3加入語句“k=q”(注意不是“k=k*q”,因為對調(diào)夫婦姓名后視為重新啟動第二輪模糊查詢),在附圖2步驟23加入語句“k=k*p”。如果附圖2的步驟23(模糊匹配)按照更加詳細的附圖3的步驟實施,則附圖2步驟23不需加入語句“k=k*p”,而代之以:在附圖3步驟231中加入語句“k=k*r”,步驟232中加入語句“k=k*s”,步驟233中加入語句“k=k*t”,步驟234中加入語句“k=k*u”,步驟235中加入語句“k=k*v”。

執(zhí)行合并記錄集時,若同一記錄多次被查詢到,按照相似度就高原則擇一進入查詢結(jié)果,最后按相似度從大到小的順序返回查詢結(jié)果。

下面通過三組具體的查詢實例進一步說明本發(fā)明的查詢過程及其相似度計算方法。假設輸入要查詢的夫婦姓名是h=″張佳偉″、w=″韋小英″,并設數(shù)據(jù)庫中存在如下5條記錄:

1號記錄:{Husband=″張佳偉″,Wife=″韋小英″}

2號記錄:{Husband=″韋小英″,Wife=″張佳偉″}

3號記錄:{Husband=″張佳偉″,Wife=″″}

4號記錄:{Husband=″張偉佳″,Wife=″韋英″}

5號記錄:{Husband=″小英″,Wife=″陳偉佳″}

例1:假設僅按照附圖1、附圖2實施,且模糊匹配結(jié)果包含精確匹配結(jié)果,并假設模糊匹配模塊有能力查到″張佳偉″的模糊記錄″張偉佳″,但沒能力查到″陳偉佳″,有能力查到″韋小英″的模糊記錄″″(空串),但沒能力查到″韋英″和″小英″。查詢結(jié)果及相似度如下:

對1號記錄,附圖2過程A1~A4均能查詢到該記錄,而且相似度分別是1、p、p、p2,對調(diào)夫婦姓名后附圖2過程A1~A4不能查到該記錄。最后該記錄的相似度為1。

對2號記錄,附圖2過程A1~A4均不能查詢到該記錄,但在經(jīng)過對調(diào)夫婦姓名后進行第二次模糊查詢時,附圖2過程A1~A4均能查到,而且相似度分別是q、qp、qp、qp2。最后該記錄的相似度為q。

對3號記錄,附圖2過程A3、A4能查詢到該記錄,而且相似度分別為p、p2,對調(diào)夫婦姓名后附圖2過程A1~A4不能查到。最后該記錄的相似度為p。

對4號記錄,附圖2過程A1~A4均不能查詢到該記錄。對調(diào)夫婦姓名后更不能查到。

對5號記錄,附圖2過程A1~A4均不能查詢到該記錄,對調(diào)夫婦姓名后附圖2過程A1~A4仍然不能查到。

例2:假設僅按照附圖1、附圖2實施,且模糊匹配結(jié)果包含精確匹配結(jié)果,并假設模糊匹配模塊有能力查到″張佳偉″的模糊記錄″張偉佳″,但沒能力查到″陳偉佳″。輸入要查詢的妻子姓名不輸入,即h=″張佳偉″、w=″″,由于w為空,附圖2過程A1~A4優(yōu)化后只剩兩種并行過程,不妨只取過程A1和A2,對調(diào)夫婦姓名后只取過程A1和A3,于是:

對1號記錄,附圖2過程A1和A2均能查詢到該記錄,而且相似度分別是1、p,對調(diào)夫婦姓名后附圖2過程A1和A3不能查到該記錄。最后該記錄的相似度為1。

對2號記錄,附圖2過程A1和A2均不能查詢到該記錄,但在對調(diào)夫婦姓名后進行第二次模糊查詢時,附圖2過程A1和A3均能查到,而且相似度分別是q、qp。最后該記錄的相似度為q。

對3號記錄,附圖2過程A1和A2能查詢到該記錄,而且相似度分別為1、p,對調(diào)夫婦姓名后附圖2過程A1和A3均不能查到。最后該記錄的相似度為1。

對4號記錄,附圖2過程A2能查詢到該記錄,相似度為p,對調(diào)夫婦姓名后不能查到。最后該記錄的相似度為p。

對5號記錄,附圖2過程A1和A2均不能查詢到該記錄,對調(diào)夫婦姓名后,附圖2過程A1和A3仍然不能查到。

例3:假設按照附圖1、附圖2、附圖3實施,注意到此時模糊匹配模塊有能力查到″張佳偉″的模糊記錄″張偉佳″、″陳偉佳″等,也有能力查到″韋小英″的模糊記錄″″、″韋英″、″小英″等。查詢結(jié)果及相似度如下:

對1號記錄,附圖2過程A1~A4均能查詢到該記錄,而且相似度分別是1、p、p、p2,對調(diào)夫婦姓名后附圖2過程A1~A4不能查到該記錄。最后該記錄的相似度為1。

對2號記錄,附圖2過程A1~A4均不能查詢到該記錄,但在對調(diào)夫婦姓名后進行第二次模糊查詢時,附圖2過程A1~A4均能查到,而且相似度分別是q、qp、qp、qp2。最后該記錄的相似度為q。

對3號記錄,附圖2過程A3和A4能查詢到該記錄,而且相似度分別為u、ru,其中在妻子姓名模糊匹配時只有附圖3過程B5能查詢到(因為Wife=″″),丈夫姓名模糊匹配時只有附圖3過程B1能查詢到(因為Husband含有″佳偉″)。對調(diào)夫婦姓名后附圖2過程A1~A4均不能查到。最后該記錄的相似度為u。

對4號記錄,附圖2過程A4能查詢到該記錄,相似度為st,其中在丈夫姓名模糊匹配時附圖3過程B2和B3能查詢到(因為Husband=″張偉佳″,Husband含有″偉佳″,貢獻相似度因子max(s,rs)=s),妻子姓名模糊匹配時只有附圖3過程B4能查詢到(因為Wife=″韋英″,貢獻相似度因子t)。對調(diào)夫婦姓名后附圖2過程A1~A4均不能查到。最后該記錄的相似度為st。

對5號記錄,附圖2過程A1~A4均不能查詢到該記錄,但在經(jīng)過對調(diào)夫婦姓名后進行第二次模糊查詢時,附圖2過程A4能查到,相似度為qr2s,其中丈夫姓名模糊匹配時只有附圖3過程B1能查到(因為Husband含有″小英″,貢獻相似度因子r),妻子姓名模糊匹配時只有附圖3過程B3能查詢到(因為Wife含有″偉佳″,貢獻相似度因子rs)。最后該記錄的相似度為qr2s。

以上對本發(fā)明的模糊查詢方法進行了詳細介紹,通過具體的實施例闡述了本發(fā)明技術路線的核心思想和典型實現(xiàn)方法。由于計算機程序設計的代碼組織、函數(shù)設計、優(yōu)化方式變化多樣,在實現(xiàn)細節(jié)上均會有改變之處,但只要未脫離發(fā)明人在本發(fā)明權利要求書中主張的步驟限定,都屬于本發(fā)明的實施方案。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1