本發(fā)明數(shù)據(jù)處理領(lǐng)域,尤其涉及一種數(shù)據(jù)匹配方法。
背景技術(shù):
在現(xiàn)在的網(wǎng)絡(luò)通信或數(shù)據(jù)處理過程中,常常會產(chǎn)生對兩個詞語進(jìn)行相似度匹配的需求。
現(xiàn)有技術(shù)主要采用的匹配方式為字面含義的匹配,通過相同或近似的字來判斷詞語是否匹配,例如“接近”和“靠近”,由于都具有“近”這個字,系統(tǒng)會判斷這兩個詞匹配度較高。
但是,文字的內(nèi)涵博大精深,僅僅依靠字面含義進(jìn)行匹配經(jīng)常容易出現(xiàn)錯誤,從而嚴(yán)重影響了匹配精確度。
技術(shù)實現(xiàn)要素:
本發(fā)明提供了一種數(shù)據(jù)匹配方法。
本發(fā)明提供的一種數(shù)據(jù)匹配方法,方法包括:
獲取第一詞語以及第二詞語;
對所述第一詞語進(jìn)行概念拆分得到包含若干個概念的第一概念集合,對所述第二詞語進(jìn)行概念拆分得到包含若干個概念的第二概念集合;
計算所述第一概念集合中的第一概念與所述第二概念集合中的第二概念之間的概念相似度,所述第一概念為所述第一概念集合中的任一概念,所述第二概念為所述第二概念集合中的任一概念;
將計算得到的各概念相似度中的最大值最為所述第一詞語與所述第二詞語之間的詞語相似度;
根據(jù)所述詞語相似度判斷所述第一詞語與所述第二詞語是否匹配成功。
可選地,所述計算所述第一概念集合中的第一概念與所述第二概念集合中的第二概念之間的概念相似度包括:
計算所述第一概念的第一獨(dú)立義原與第二概念的第一獨(dú)立義原之間的第一相似度;
計算所述第一概念的第二獨(dú)立義原與第二概念的第二獨(dú)立義原之間的第二相似度,所述第二獨(dú)立義原為語義表達(dá)式中除所述第一獨(dú)立義原以外的所有其他獨(dú)立義原;
計算所述第一概念的關(guān)系義原與第二概念的關(guān)系義原之間的第三相似度;
計算所述第一概念的符號義原與第二概念的符號義原之間的第四相似度;
根據(jù)所述第一相似度、第二相似度、第三相似度、第四相似度計算所述第一概念與所述第二概念之間的概念相似度。
可選地,所述計算所述第一概念的第一獨(dú)立義原與第二概念的第一獨(dú)立義原之間的第一相似度包括:
按照如下公式計算所述第一相似度sim1(v1,v2):
其中,所述(d+α)表示兩個義原,d是和在義原層次體系中的路徑長度,α為常數(shù)參數(shù)。
可選地,計算所述第一概念的第二獨(dú)立義原與第二概念的第二獨(dú)立義原之間的第二相似度包括:
1)將第一概念與第二概念的語義表達(dá)式的所有獨(dú)立義原任意配對,計算兩兩獨(dú)立義原相似度;
2)將相似度取值最大的一對歸為一組;
3)對剩余的獨(dú)立義原兩兩執(zhí)行步驟2),直至所有獨(dú)立義原都完成分組;
4)對各組的相似度計算平均值作為所述第二相似度。
可選地,所述根據(jù)所述第一相似度、第二相似度、第三相似度、第四相似度計算所述第一概念與所述第二概念之間的概念相似度包括:
按照如下公式計算所述概念相似度sim(si,tj):
本發(fā)明中,獲取第一詞語以及第二詞語;對所述第一詞語進(jìn)行概念拆分得到包含若干個概念的第一概念集合,對所述第二詞語進(jìn)行概念拆分得到包含若干個概念的第二概念集合;計算所述第一概念集合中的第一概念與所述第二概念集合中的第二概念之間的概念相似度,所述第一概念為所述第一概念集合中的任一概念,所述第二概念為所述第二概念集合中的任一概念;將計算得到的各概念相似度中的最大值最為所述第一詞語與所述第二詞語之間的詞語相似度;根據(jù)所述詞語相似度判斷所述第一詞語與所述第二詞語是否匹配成功。本發(fā)明中,在進(jìn)行數(shù)據(jù)匹配時要對詞語進(jìn)行拆分,形成概念集合,而概念集合中的概念可以最大程度的涵蓋詞語的本質(zhì)含義,所以從概念的粒度對詞語進(jìn)行匹配,可以有效的提高匹配的精確度。
附圖說明
圖1為數(shù)據(jù)匹配方法流程示意圖。
具體實施方式
為了使本領(lǐng)域的技術(shù)人員更好的理解本發(fā)明的技術(shù)方案,下面結(jié)合附圖和具體實施方式對本發(fā)明作進(jìn)一步的詳細(xì)說明。
請參閱圖1,本發(fā)明數(shù)據(jù)匹配方法流程包括:
101、獲取第一詞語以及第二詞語;
102、對所述第一詞語進(jìn)行概念拆分得到包含若干個概念的第一概念集合,對所述第二詞語進(jìn)行概念拆分得到包含若干個概念的第二概念集合;
103、計算所述第一概念集合中的第一概念與所述第二概念集合中的第二概念之間的概念相似度,所述第一概念為所述第一概念集合中的任一概念,所述第二概念為所述第二概念集合中的任一概念;
104、將計算得到的各概念相似度中的最大值最為所述第一詞語與所述第二詞語之間的詞語相似度;
105、根據(jù)所述詞語相似度判斷所述第一詞語與所述第二詞語是否匹配成功。
hownet中,對實詞的概念描述由以下三種形式的描述式組成:
(1)獨(dú)立義原描述式:由“基本義原”或“(具體詞)”表示;
(2)關(guān)系義原描述式:由“關(guān)系義原=基本義原”或“關(guān)系義原=(具體詞)”或者“(關(guān)系義原=具體詞)”來表示,其中關(guān)系義原是指包含“eventrole|動態(tài)角色”和“eventfeatures|動態(tài)屬性”這兩類的義原;
(3)符號義原描述式:由“關(guān)系符號基本義原”或者“關(guān)系符號(具體詞)”表示,其中關(guān)系符號包括“#、%、$、*、+、&、@、?、!”,其各自代表的關(guān)系不再贅述。
在實際應(yīng)用中,每一個概念由多個義原組成,義原是最基本的、不易于再分割的意義的最小單位。例如:“人”雖然是一個非常復(fù)雜的概念,它可以是多種屬性的集合體,但也可以把它看作為一個義原。
所有的概念都可以分解成各種各樣的義原。同時也應(yīng)該有一個有限的義原集合,其中的義原組合成一個無限的概念集合。中文中的字(包括單純詞)是有限的,并且它可以被用來表達(dá)各種各樣的單純的或復(fù)雜的概念,以及表達(dá)概念與概念之間、概念的屬性與屬性之間的關(guān)系。
通過對義原和概念的定義,就可以對兩個詞語的相似度進(jìn)行計算,例如對于詞語x1和詞語x2,如果x1有n個概念[s1,s2,…,sn],x2有m個概念[t1,t2,…,tm],x1和x2的相似度sim(x1,x2)為各個概念的相似度的最大值:
因此,為了計算得到x1和x2的相似度sim(x1,x2),則需要計算每兩個概念之間的相似度。
計算兩個概念之間的相似度則需要通過多個方面來綜合計算:
(1)第一獨(dú)立義原描述式:
因為所有的概念都最終歸結(jié)于用義原來表示,所以義原的相似度計算是概念相似度的基礎(chǔ)。由于所有的義原根據(jù)上下位關(guān)系構(gòu)成樹狀的義原層次體系,可以簡單的通過語義距離計算相似度。
用sim1(v1,v2)表示兩個概念的這部分相似度,具體就是兩個義原的相似度,具體計算公式如下:
其中(d+α)表示兩個義原,d是和在義原層次體系中的路徑長度。α是一個可調(diào)節(jié)的參數(shù),在基于hownet的詞匯語義相似度計算方法中可以設(shè)定α的取值,例如:α=0.5。
(2)其他獨(dú)立義原描述式:語義表達(dá)式中除第一獨(dú)立義原以外的所有其他獨(dú)立義原,用sim2(v1,v2)表示兩個概念的這部分相似度,具體計算步驟如下:
a、先把兩個表達(dá)式的所有獨(dú)立義原任意配對,計算兩兩義原相似度;
b、取值最大的一對歸為一組;
c、對剩下的獨(dú)立義原兩兩相似度執(zhí)行第b步。如此反復(fù),直到所有都完成分組。任何義原與空值的相似度定義為常數(shù)δ,例如:δ=0.2;
d、最后求平均值。
(3)關(guān)系義原描述式:語義表達(dá)式中所有的關(guān)系義原,用sim3(v1,v2)表示兩個概念的這部分相似度,把關(guān)系義原相同的表達(dá)式分為一組,計算相似度,最后求平均值。
(4)符號義原描述式:語義表達(dá)式中所有的符號義原,用sim4(v1,v2)表示兩個概念的這部分相似度,把關(guān)系符號相同的表達(dá)式分為一組,計算相似度,最后求平均值。
綜上所述,兩個概念的相似度計算方法如公式(3)所示。
以上所述,以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。