本發(fā)明屬于信息技術(shù)領(lǐng)域,具體涉及一種面向領(lǐng)域的本體知識(shí)庫(kù)文本檢索方法。
背景技術(shù):
知識(shí)庫(kù)是針對(duì)特定領(lǐng)域的問(wèn)題,將知識(shí)片段相互聯(lián)系并求解問(wèn)題的相對(duì)獨(dú)立的程序?qū)嶓w。在此之上,本體知識(shí)庫(kù)利用本體的特點(diǎn)來(lái)描述知識(shí)之間的內(nèi)在聯(lián)系,解決了信息共享時(shí)的語(yǔ)義問(wèn)題,使得計(jì)算機(jī)可以理解和利用知識(shí),來(lái)提供語(yǔ)義級(jí)別的知識(shí)服務(wù)。
雖然本體知識(shí)庫(kù)能很好的表示知識(shí),但如何理解用戶的需求并提供相應(yīng)的知識(shí)服務(wù)卻是一個(gè)問(wèn)題?,F(xiàn)有的技術(shù)通常根據(jù)用戶輸入的關(guān)鍵字,在知識(shí)庫(kù)中匹配相關(guān)內(nèi)容并返回,這種情況往往要求用戶對(duì)自身需求進(jìn)行明確分析并抽象出相應(yīng)的關(guān)鍵字,而無(wú)法直接針對(duì)描述用戶需求的文本進(jìn)行直接檢索,因此檢索質(zhì)量較差。
技術(shù)實(shí)現(xiàn)要素:
鑒于上述,本發(fā)明提供了一種面向領(lǐng)域的本體知識(shí)庫(kù)文本檢索方法,用以解決現(xiàn)有技術(shù)中直接對(duì)文本檢索質(zhì)量較差的問(wèn)題。
一種面向領(lǐng)域的本體知識(shí)庫(kù)文本檢索方法,包括如下步驟:
(1)對(duì)于任一領(lǐng)域,根據(jù)該領(lǐng)域的本體知識(shí)庫(kù)以及該領(lǐng)域所涉及的專業(yè)術(shù)語(yǔ)建立領(lǐng)域詞庫(kù);
(2)采用中文字典樹(shù)對(duì)所述領(lǐng)域詞庫(kù)進(jìn)行索引;
(3)獲取用戶輸入的查詢文本,根據(jù)領(lǐng)域詞庫(kù)對(duì)查詢文本進(jìn)行分詞和過(guò)濾,得到查詢核心;
(4)對(duì)查詢核心中的模糊詞進(jìn)行替換,進(jìn)而在所述本體知識(shí)庫(kù)中檢索出與知識(shí)需求中各詞語(yǔ)對(duì)應(yīng)的知識(shí)信息,并展現(xiàn)提供給用戶。
所述步驟(1)中建立領(lǐng)域詞庫(kù)的過(guò)程如下:
1.1對(duì)該領(lǐng)域本體知識(shí)庫(kù)中包含的所有知識(shí)信息進(jìn)行詞匯抽取,得到該領(lǐng)域的知識(shí)詞庫(kù);
1.2采集該領(lǐng)域所涉及的專業(yè)術(shù)語(yǔ),得到該領(lǐng)域的術(shù)語(yǔ)詞庫(kù);
1.3獲取已開(kāi)源的至少一個(gè)公共詞庫(kù);
1.4集成所述的知識(shí)詞庫(kù)、術(shù)語(yǔ)詞庫(kù)和公共詞庫(kù)并去除重復(fù)部分,得到所述的領(lǐng)域詞庫(kù)。
所述步驟(2)中對(duì)領(lǐng)域詞庫(kù)進(jìn)行索引,即先要建立中文字典樹(shù),進(jìn)而通過(guò)中文字典樹(shù)的索引結(jié)構(gòu)映射至領(lǐng)域詞庫(kù)的物理存儲(chǔ)地址。
建立中文字典樹(shù)即采用傳統(tǒng)字典樹(shù)的構(gòu)建方式,區(qū)別在于:需預(yù)先設(shè)定一個(gè)存儲(chǔ)閾值,在創(chuàng)建節(jié)點(diǎn)時(shí)對(duì)應(yīng)建立容量為所述存儲(chǔ)閾值的索引數(shù)組;當(dāng)節(jié)點(diǎn)的鏈接數(shù)大于存儲(chǔ)閾值時(shí),則將所述索引數(shù)組替換為關(guān)聯(lián)數(shù)組,并復(fù)制索引數(shù)組中的內(nèi)容至所述關(guān)聯(lián)數(shù)組中。
所述索引數(shù)組中內(nèi)容的查找采用折半查找法,所述關(guān)聯(lián)數(shù)組中內(nèi)容的查找采用映射法。
所述步驟(3)中對(duì)查詢文本進(jìn)行分詞和過(guò)濾,具體過(guò)程如下:
3.1初始查找起始位置和查找終止位置均為查詢文本的第一個(gè)字;
3.2執(zhí)行一次擴(kuò)展查找:移動(dòng)所述查找終止位置至當(dāng)前位置的下一個(gè)字,將查找起始位置至查找終止位置之間的詞語(yǔ)與中文字典樹(shù)進(jìn)行配對(duì),若配對(duì)成功則將該詞語(yǔ)加入至分詞備選集,并再次執(zhí)行擴(kuò)展查找;若配對(duì)失敗則執(zhí)行步驟3.3;
3.3移動(dòng)所述查找起始位置至當(dāng)前位置的下一個(gè)字,重置所述查找終止位置為當(dāng)前的查找起始位置,并返回執(zhí)行步驟3.2,直至查找起始位置移動(dòng)到查詢文本的最后一個(gè)字;
3.4根據(jù)在知識(shí)詞庫(kù)中的出現(xiàn)頻次、詞長(zhǎng)以及詞長(zhǎng)與分詞備選集平均詞長(zhǎng)的差值大小,對(duì)分詞備選集中的所有詞語(yǔ)進(jìn)行三級(jí)過(guò)濾,得到所述查詢核心。
所述步驟3.4的具體實(shí)現(xiàn)方法為:根據(jù)以下公式計(jì)算分詞備選集中每個(gè)詞語(yǔ)的綜合指標(biāo)Q,取綜合指標(biāo)Q最高的若干詞語(yǔ)組成所述查詢核心;
Q=α1F+α2D-α3ΔD
其中,對(duì)于分詞備選集中的任一詞語(yǔ),F(xiàn)為該詞語(yǔ)在知識(shí)詞庫(kù)中的出現(xiàn)頻次,D為該詞語(yǔ)的詞長(zhǎng),ΔD為該詞語(yǔ)詞長(zhǎng)與分詞備選集平均詞長(zhǎng)的差值大小,α1~α3均為預(yù)設(shè)的權(quán)重系數(shù)。
所述步驟(4)中對(duì)查詢核心中的模糊詞進(jìn)行替換的具體方法為:對(duì)于查詢核心中的任一模糊詞,計(jì)算該模糊詞與知識(shí)詞庫(kù)中每個(gè)詞的匹配度,使知識(shí)詞庫(kù)中與該模糊詞匹配度最高的詞替換掉該模糊詞;所述的模糊詞為屬于查詢核心中的詞語(yǔ)但不屬于知識(shí)詞庫(kù)中的詞。
所述匹配度的計(jì)算公式如下:
其中:c表示知識(shí)詞庫(kù)中的任一個(gè)詞,k表示查詢核心中的任一模糊詞,Match(c,k)為c與k的匹配度,ComLen(c,k)為c與k的最長(zhǎng)公共連續(xù)子串所包含的字符個(gè)數(shù),Len(c)為c包含的字符個(gè)數(shù),Len(k)為k包含的字符個(gè)數(shù)。
本發(fā)明文本檢索方法通過(guò)為對(duì)應(yīng)領(lǐng)域知識(shí)信息建立一個(gè)領(lǐng)域詞庫(kù),根據(jù)這個(gè)領(lǐng)域詞庫(kù)和一系列算法對(duì)用戶所描述的文本進(jìn)行解析,從而得到的用戶的知識(shí)需求,并在本體知識(shí)庫(kù)中獲取相應(yīng)知識(shí)信息,提高了檢索質(zhì)量。
附圖說(shuō)明
圖1為本發(fā)明文本檢索方法的步驟流程示意圖。
圖2為本發(fā)明文本檢索方法中的領(lǐng)域詞庫(kù)的構(gòu)建流程示意圖。
圖3為本發(fā)明文本檢索方法實(shí)現(xiàn)裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了更為具體地描述本發(fā)明,下面結(jié)合附圖及具體實(shí)施方式對(duì)本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說(shuō)明。
本發(fā)明本體知識(shí)庫(kù)文本檢索方法的主要流程涉及用戶與系統(tǒng)之間的交互,其中系統(tǒng)部分主要提供對(duì)應(yīng)領(lǐng)域的本體知識(shí)庫(kù)和文本檢索方法,并向外部提供訪問(wèn)入口,用戶可以通過(guò)任意能訪問(wèn)系統(tǒng)的設(shè)備進(jìn)行連接并檢索。如圖1所示,該文本檢索方法的具體流程包括:
(1)輸入查詢內(nèi)容,用戶通過(guò)設(shè)備連接系統(tǒng)并輸入描述知識(shí)需求的文本后向系統(tǒng)提交檢索請(qǐng)求。
(2)文本分詞,在領(lǐng)域詞庫(kù)所映射的字典樹(shù)中,對(duì)查詢文本的所有子串逐個(gè)匹配,得到分詞備選集,其中包括完全匹配結(jié)果與部分匹配結(jié)果,完全匹配結(jié)果中的每個(gè)詞都能映射到領(lǐng)域詞庫(kù)中的某個(gè)詞,部分匹配結(jié)果中的每個(gè)詞都能映射到領(lǐng)域詞庫(kù)中某個(gè)詞的子串。
(3)分詞結(jié)果過(guò)濾,根據(jù)在本體知識(shí)庫(kù)中出現(xiàn)的頻次,詞自身路徑跨度大小和詞長(zhǎng)與平均詞長(zhǎng)的差值大小,對(duì)分詞備選集中的所有詞進(jìn)行三級(jí)過(guò)濾,得到查詢核心。
(4)關(guān)鍵詞轉(zhuǎn)換,把模糊詞與本體知識(shí)庫(kù)中的每個(gè)詞兩兩計(jì)算匹配度,選取匹配度最高的詞替換模糊詞,模糊詞為在查詢核心中出現(xiàn)但是沒(méi)有在本體知識(shí)庫(kù)中出現(xiàn)的詞,把處理后的查詢核心包含的所有詞作為知識(shí)需求,知識(shí)需求中的每個(gè)詞都能映射到對(duì)應(yīng)領(lǐng)域的本體知識(shí)庫(kù)中的一個(gè)本體、實(shí)例或?qū)傩浴?/p>
(5)信息查詢,根據(jù)知識(shí)需求,在本體知識(shí)庫(kù)中檢索對(duì)應(yīng)的知識(shí)信息。
(6)展示結(jié)果,向用戶返回檢索出的相關(guān)知識(shí)信息,并詢問(wèn)用戶是否需要繼續(xù)查詢,如果需要繼續(xù)查詢則重復(fù)上述步驟,否則完成所有檢索步驟并斷開(kāi)連接。
在用戶訪問(wèn)系統(tǒng)之前,系統(tǒng)管理員應(yīng)當(dāng)啟動(dòng)系統(tǒng),讓系統(tǒng)載入已構(gòu)建的領(lǐng)域詞庫(kù)并建立一個(gè)中文字典樹(shù)對(duì)領(lǐng)域詞庫(kù)進(jìn)行索引。
圖2為領(lǐng)域詞庫(kù)建立流程,該流程主要涉及系統(tǒng)管理員對(duì)領(lǐng)域詞庫(kù)的建立以或更新,具體包括:
1.載入開(kāi)源詞庫(kù),如果系統(tǒng)管理員選擇創(chuàng)建領(lǐng)域詞庫(kù),系統(tǒng)首先會(huì)載入預(yù)收集的開(kāi)源詞庫(kù)。
2.提取知識(shí)庫(kù)關(guān)鍵字,如果當(dāng)前系統(tǒng)不存在知識(shí)詞庫(kù),系統(tǒng)會(huì)首先訪問(wèn)本體知識(shí)庫(kù)并把其中的本體、實(shí)例和屬性的關(guān)鍵詞提取出來(lái),并生成知識(shí)詞庫(kù)。
3.載入知識(shí)詞庫(kù),系統(tǒng)載入已生成的知識(shí)詞庫(kù)。
4.載入術(shù)語(yǔ)詞庫(kù),系統(tǒng)載入預(yù)收集的對(duì)應(yīng)領(lǐng)域的專業(yè)術(shù)語(yǔ)詞庫(kù)。
5.生成領(lǐng)域詞庫(kù),系統(tǒng)集成開(kāi)源詞庫(kù)、知識(shí)詞庫(kù)和術(shù)語(yǔ)詞庫(kù),過(guò)濾重復(fù)單詞后形成領(lǐng)域詞庫(kù)。
6.更新本體知識(shí)庫(kù),如果系統(tǒng)管理員選擇更新詞庫(kù),系統(tǒng)首先根據(jù)新提供的本體知識(shí)庫(kù)替換已有的本體知識(shí)庫(kù),然后再次執(zhí)行提取知識(shí)庫(kù)關(guān)鍵字以及后續(xù)步驟。
結(jié)合圖1和圖2的詳細(xì)流程,本實(shí)施例提供了面向高血壓診斷預(yù)防領(lǐng)域本體知識(shí)庫(kù)文本檢索方法的實(shí)現(xiàn)裝置,通過(guò)為高血壓診斷預(yù)防領(lǐng)域知識(shí)信息建立一個(gè)領(lǐng)域詞庫(kù),根據(jù)這個(gè)領(lǐng)域詞庫(kù)和一系列算法對(duì)用戶所描述的文本進(jìn)行解析,從而得到的用戶的知識(shí)需求,并在本體知識(shí)庫(kù)中獲取相應(yīng)知識(shí)信息,提高了檢索質(zhì)量。該領(lǐng)域本體知識(shí)庫(kù)包括:血壓分級(jí)概念中的本體對(duì)血壓概念中的多個(gè)本體的關(guān)聯(lián)關(guān)系、危險(xiǎn)因素概念中的本體對(duì)個(gè)人狀態(tài)概念中的多個(gè)本體的關(guān)聯(lián)關(guān)系、干預(yù)措施概念中的本體對(duì)膳食推薦概念或生活習(xí)慣概念中的多個(gè)本體的關(guān)聯(lián)關(guān)系。如圖3所示,該實(shí)現(xiàn)裝置具體包括:本體構(gòu)建模塊、概念關(guān)聯(lián)模塊、詞庫(kù)模塊、獲取模塊、分詞模塊、查詢模塊,其中:
本體構(gòu)建模塊用于創(chuàng)建對(duì)應(yīng)領(lǐng)域中的基本概念、基本屬性和實(shí)例,對(duì)應(yīng)領(lǐng)域中的基本概念包括多個(gè)本體,基本屬性包括對(duì)象屬性和數(shù)據(jù)屬性。
概念關(guān)聯(lián)模塊用于根據(jù)基本屬性,構(gòu)建本體之間和本體與實(shí)例之間的關(guān)聯(lián)關(guān)系。
詞庫(kù)模塊用于根據(jù)對(duì)應(yīng)領(lǐng)域所涉及的專業(yè)術(shù)語(yǔ)建立一個(gè)領(lǐng)域詞庫(kù);具體的,對(duì)本體知識(shí)庫(kù)中包含的所有知識(shí)信息進(jìn)行抽取,得到對(duì)應(yīng)領(lǐng)域的知識(shí)詞庫(kù);采集對(duì)應(yīng)領(lǐng)域所涉及的專業(yè)術(shù)語(yǔ),得到對(duì)應(yīng)領(lǐng)域的術(shù)語(yǔ)詞庫(kù);采集已開(kāi)源的公共詞庫(kù),公共詞庫(kù)的數(shù)量至少為一個(gè);集成知識(shí)詞庫(kù)、術(shù)語(yǔ)詞庫(kù)和公共詞庫(kù)并去除重復(fù)部分,得到領(lǐng)域詞庫(kù)。
索引模塊用于對(duì)領(lǐng)域詞庫(kù)采用中文字典樹(shù)的結(jié)構(gòu)進(jìn)行索引;具體的,通過(guò)中文字典樹(shù)的索引結(jié)構(gòu)映射到領(lǐng)域詞庫(kù)的物理存儲(chǔ)地址,加快檢索過(guò)程;為中文字典樹(shù)設(shè)定一個(gè)節(jié)點(diǎn)存儲(chǔ)閾值,中文字典樹(shù)在創(chuàng)建節(jié)點(diǎn)時(shí)建立一個(gè)容量為節(jié)點(diǎn)存儲(chǔ)閾值的索引數(shù)組,當(dāng)節(jié)點(diǎn)的鏈接數(shù)大于節(jié)點(diǎn)存儲(chǔ)閾值時(shí),索引數(shù)組被替換為關(guān)聯(lián)數(shù)組,并復(fù)制索引數(shù)組的內(nèi)容到關(guān)聯(lián)數(shù)組中,剩余構(gòu)建過(guò)程采用傳統(tǒng)字典樹(shù)的構(gòu)建方式,索引數(shù)組中元素的查找采用折半查找法,關(guān)聯(lián)數(shù)組中元素的查找采用映射法。
獲取模塊用于獲取用戶輸入的查詢文本,查詢文本包括關(guān)鍵詞、語(yǔ)句和任意形式的文本。
分詞模塊用于根據(jù)領(lǐng)域詞庫(kù),對(duì)查詢文本進(jìn)行分詞和過(guò)濾,得到查詢核心;具體的,建立查找起始位置和查找終止位置,查找起始位置和查找終止位置的初始值均為查詢文本的第一個(gè)字;執(zhí)行一次擴(kuò)展查找,每次擴(kuò)展查找為移動(dòng)查找終止位置至當(dāng)前位置的下一個(gè)字,將查找起始位置到查找終止位置之間的語(yǔ)句與中文字典樹(shù)配對(duì),把配對(duì)成功的語(yǔ)句加入分詞備選集,重復(fù)這一過(guò)程直至配對(duì)第一次失?。灰苿?dòng)查找起始位置至當(dāng)前位置的下一個(gè)字,重置查找終止位置為當(dāng)前查找起始位置,執(zhí)行一次擴(kuò)展查找,重復(fù)這一過(guò)程直至查找起始位置移動(dòng)到查詢文本的最后一個(gè)字;分詞備選集包含完全匹配結(jié)果與部分匹配結(jié)果,完全匹配結(jié)果中的每個(gè)詞都能映射到領(lǐng)域詞庫(kù)中的某個(gè)詞,部分匹配結(jié)果中的每個(gè)詞都能映射到領(lǐng)域詞庫(kù)中某個(gè)詞的子串;根據(jù)在知識(shí)詞庫(kù)中出現(xiàn)的頻次,詞自身路徑跨度大小和詞長(zhǎng)與平均詞長(zhǎng)的差值大小,對(duì)分詞備選集中的所有詞進(jìn)行三級(jí)過(guò)濾,得到查詢核心。
轉(zhuǎn)換模塊用于根據(jù)本體知識(shí)庫(kù),對(duì)查詢核心進(jìn)行關(guān)鍵詞轉(zhuǎn)換,得到知識(shí)需求;具體的,關(guān)鍵詞轉(zhuǎn)換是把模糊詞與知識(shí)詞庫(kù)中的每個(gè)詞兩兩計(jì)算匹配度,選取匹配度最高的詞替換模糊詞,模糊詞為在查詢核心中出現(xiàn)但是沒(méi)有在知識(shí)詞庫(kù)中出現(xiàn)的詞;匹配度的計(jì)算公式為其中c為知識(shí)詞庫(kù)中的某個(gè)詞,k為模糊詞,ComLen(c,k)為c和k的最長(zhǎng)公共子串所包含字符的個(gè)數(shù),Len(c)為c包含字符的個(gè)數(shù),Len(k)為k包含字符的個(gè)數(shù),Max函數(shù)的輸出為兩個(gè)實(shí)數(shù)的較大者;把處理后的查詢核心包含的所有詞添加到知識(shí)需求,知識(shí)需求中的每個(gè)詞都能映射到對(duì)應(yīng)領(lǐng)域的本體知識(shí)庫(kù)中的一個(gè)本體、實(shí)例或?qū)傩浴?/p>
查詢模塊用于根據(jù)知識(shí)需求,在本體知識(shí)庫(kù)中檢索對(duì)應(yīng)的知識(shí)信息。
在上述模塊中,本體構(gòu)建模塊和概念關(guān)聯(lián)模塊可以組成一個(gè)獨(dú)立的子模塊,其作用為生成一個(gè)對(duì)應(yīng)領(lǐng)域的本體知識(shí)庫(kù),作為后續(xù)模塊的輸入;該子模塊為所提供的裝置中不可缺少的一部分,但后續(xù)模塊的輸入也可以用已有的本體知識(shí)庫(kù)替換。
上述對(duì)實(shí)施例的描述是為便于本技術(shù)領(lǐng)域的普通技術(shù)人員能理解和應(yīng)用本發(fā)明。熟悉本領(lǐng)域技術(shù)的人員顯然可以容易地對(duì)上述實(shí)施例做出各種修改,并把在此說(shuō)明的一般原理應(yīng)用到其他實(shí)施例中而不必經(jīng)過(guò)創(chuàng)造性的勞動(dòng)。因此,本發(fā)明不限于上述實(shí)施例,本領(lǐng)域技術(shù)人員根據(jù)本發(fā)明的揭示,對(duì)于本發(fā)明做出的改進(jìn)和修改都應(yīng)該在本發(fā)明的保護(hù)范圍之內(nèi)。