本發(fā)明涉及信息檢索技術(shù)領(lǐng)域,特別涉及一種命名實體模糊檢索方法與系統(tǒng)。
背景技術(shù):
目前,當(dāng)用戶使用信息檢索系統(tǒng)查找信息時,一般要將自己的檢索請求描述成一個或者多個檢索詞,對于復(fù)雜的檢索請求可能還要使用AND、OR、NOT等邏輯運算符對檢索詞進行組合,才能取得較好的檢索結(jié)果。有的時候,用戶并不能使用明確的檢索詞描述檢索請求,可能是由于對自己檢索的領(lǐng)域不太了解,或者要檢索符合某一詞形模式的所有信息。例如用戶在檢索標(biāo)題中出現(xiàn)“生物交叉技術(shù)”的文檔時,由于生物交叉技術(shù)對應(yīng)的詞太多,可能會先去檢索標(biāo)題中出現(xiàn)以bio開頭單詞的文檔。為了應(yīng)對這種情況,有的信息檢索系統(tǒng)提供了模糊檢索功能,例如在檢索英文信息時允許用戶使用?表示單個字母、*表示任意個數(shù)的字母,這樣上述檢索請求可表達成bio*。
然而,有相當(dāng)一部分模糊檢索請求不能通過詞形的變化來表達。例如,用戶想檢索NASA相關(guān)的經(jīng)費信息,由于經(jīng)費在文本中往往表現(xiàn)為數(shù)值加貨幣單位組成的字符串,此時輸入任何關(guān)鍵詞或詞形變化都不能完整的匹配到經(jīng)費信息。更為一般的情況是,用戶有的時候要檢索出現(xiàn)某一類型命名實體的信息。所謂命名實體,是指文本中具有特定意義的實體,主要包括人名、地名、機構(gòu)名、日期、金額、專有名詞等。這種需求在面向領(lǐng)域的信息檢索中經(jīng)常出現(xiàn),如果不能有效解決,將導(dǎo)致用戶在檢索特定信息時漏檢或者根本無法檢索,勢必會降低用戶獲取信息的效率。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有的信息檢索技術(shù)無法對命名實體類信息進行有效、完整檢索的缺陷,從而提供一種方便用戶全面、準(zhǔn)確查找與特定類型實體相關(guān)的所有信息的檢索方法與系統(tǒng)。
為了實現(xiàn)上述目的,本發(fā)明提供了一種命名實體模糊檢索方法,包括:
數(shù)據(jù)索引步驟,該步驟用于將文本切分成索引單元,進而形成索引文件;其中,所述索引單元包括正常索引詞與實體類型詞,所述實體類型詞是用于表征命名實體類型的詞;
數(shù)據(jù)檢索步驟,該步驟基于數(shù)據(jù)索引步驟所建立的數(shù)據(jù)索引,結(jié)合用戶提供的檢索式向用戶提供檢索服務(wù)。
上述技術(shù)方案中,所述數(shù)據(jù)索引步驟包括:
命名實體標(biāo)注步驟,該步驟用于對文本中出現(xiàn)的命名實體進行標(biāo)注,標(biāo)注所得到的結(jié)果至少包括:命名實體的類型、命名實體在文本中的起始偏移量和終止偏移量;
索引單元切分步驟,該步驟用于將文本切分成包含普通詞和實體類型詞的索引單元;包括:在切分索引單元時查找命名實體,若找到命名實體,則輸出命名實體的實體類型詞、偏移量,若該命名實體所對應(yīng)的類型存在上位類,還需輸出上位命名實體類型到根節(jié)點對應(yīng)的所有實體類型詞的實體類型詞與偏移量;其中,所述實體類型詞根據(jù)命名實體的類型編碼得到;
倒排索引步驟,該步驟以索引詞為中心,將同一索引詞在不同文檔中出現(xiàn)的信息歸并存儲。
上述技術(shù)方案中,在命名實體標(biāo)注步驟中,對文本中出現(xiàn)的命名實體進行標(biāo)注采用多種方法實現(xiàn),包括:基于詞表匹配的方法、基于規(guī)則的方法、基于機器學(xué)習(xí)的方法或者混合采用上述多種方法。
上述技術(shù)方案中,文本經(jīng)命名實體標(biāo)注步驟后形成新的文本數(shù)據(jù),該新的文本數(shù)據(jù)包括頭部和正文兩個部分;頭部存儲命名實體識別的結(jié)果信息,包括命名實體的類型、在文本中的起始偏移量和終止偏移量信息;正文存儲原始文本信息。
上述技術(shù)方案中,所述索引單元切分步驟進一步包括:
首先對待處理文本的頭部進行解析,將命名實體信息按起始偏移量排序后形成命名實體數(shù)組并加以存儲;
在對正文中的原始文本進行切分的過程中,每切出一個詞都會查找命名實體數(shù)組,判斷該詞是否是某個命名實體的第一個詞,如果是的話則同時輸出包括實體類型詞、實體類型詞偏移量在內(nèi)的實體類型詞的信息,如果對應(yīng)的命名實體類型還存在上位類,則同時輸出上位命名實體類型到根節(jié)點對應(yīng)的所有實體類型詞的信息;如果在命名實體數(shù)組內(nèi)找不到,作為正常詞進行切分。
上述技術(shù)方案中,所述實體類型詞采用不在詞典中收錄的非正常詞來表示,包括使用小寫英文實體類型加后綴z來標(biāo)識實體類型詞。
上述技術(shù)方案中,所述實體類型詞偏移量等于命名實體所對應(yīng)的文本的偏移量,即實體類型詞的起始偏移量是對應(yīng)命名實體的文本第一個詞的起始偏移量,實體類型詞的終止偏移量是對應(yīng)命名實體的文本最后一個詞的終止偏移量。
上述技術(shù)方案中,所述數(shù)據(jù)檢索步驟包括:
接收檢索式步驟,該步驟用于接收用戶輸入的檢索式,所述檢索式包括正常的檢索詞,或?qū)嶓w類型詞,或兩者的組合;
檢索并呈現(xiàn)結(jié)果步驟,該步驟用于對檢索式進行解析,基于索引文件查找命中結(jié)果,并通過界面向用戶展示。
本發(fā)明還提供了一種命名實體模糊檢索系統(tǒng),包括:數(shù)據(jù)索引模塊10和數(shù)據(jù)檢索模塊20;其中,
所述數(shù)據(jù)索引模塊10用于將文本切分成索引單元,進而形成索引文件;其中,所述索引單元包括正常索引詞與實體類型詞,所述實體類型詞是用于表征命名實體類型的詞;
所述數(shù)據(jù)檢索模塊20基于所述數(shù)據(jù)索引模塊10所建立的數(shù)據(jù)索引,結(jié)合用戶提供的檢索式向用戶提供檢索服務(wù)。
上述技術(shù)方案中,所述數(shù)據(jù)索引模塊10包括命名實體標(biāo)注單元11、索引單元切分單元12、倒排索引單元13;其中,
所述命名實體標(biāo)注單元11用于對文本中出現(xiàn)的命名實體進行標(biāo)注,標(biāo)注所得到的結(jié)果至少包括:命名實體的類型、命名實體在文本中的起始偏移量和終止偏移量;
所述索引單元切分單元12用于將文本切分成包含普通詞和實體類型詞的索引單元;包括:在切分索引單元時查找命名實體,若找到命名實體,則輸出命名實體的實體類型詞、偏移量,若該命名實體所對應(yīng)的類型存在上位類,還需輸出上位命名實體類型到根節(jié)點對應(yīng)的所有實體類型詞的實體類型詞與偏移量;其中,所述實體類型詞根據(jù)命名實體的類型編碼得到;
所述倒排索引單元13以索引詞為中心,將同一索引詞在不同文檔中出現(xiàn)的信息歸并存儲。
上述技術(shù)方案中,所述數(shù)據(jù)檢索模塊20包括檢索式接收單元21、檢索與結(jié)果呈現(xiàn)單元22;其中,
所述檢索式接收單元21用于接收用戶輸入的檢索式,所述檢索式包括正常的檢索詞,或?qū)嶓w類型詞,或兩者的組合;
所述檢索與結(jié)果呈現(xiàn)單元22用于對檢索式進行解析,基于索引文件查找命中結(jié)果,并通過界面向用戶展示。
本發(fā)明的優(yōu)點在于:
本發(fā)明的檢索方法與系統(tǒng)使得用戶在檢索信息時,可按實體類型檢索信息,或者同時使用普通檢索詞和實體類型詞進行檢索,可有效提升信息檢索系統(tǒng)的查全率和查準(zhǔn)率。
附圖說明
圖1是本發(fā)明的命名實體模糊檢索方法的示意圖;
圖2是本發(fā)明的命名實體模糊檢索系統(tǒng)的示意圖。
具體實施方式
現(xiàn)結(jié)合附圖對本發(fā)明作進一步的描述。
參考圖1,本發(fā)明的檢索方法包括兩大步驟,一是將文本切分成索引單元(一般為詞),并以此為單位進行倒排,存儲成索引文件,使得數(shù)據(jù)以一種可方便、高效檢索的方式存在;二是基于數(shù)據(jù)索引為用戶提供檢索服務(wù)。下面對這兩大步驟分別加以說明。
1)、數(shù)據(jù)索引
該步驟可進一步分為命名實體標(biāo)注、索引單元切分、倒排索引三個子步驟。
1-1)、命名實體標(biāo)注步驟,該步驟主要對文本中出現(xiàn)的命名實體進行標(biāo)注。
本申請中所涉及的文本是指數(shù)據(jù)檢索時的待匹配文本,如數(shù)據(jù)庫文本型字段、網(wǎng)頁、文件等。對文本中出現(xiàn)的命名實體進行標(biāo)注可以采用多種方法進行,如基于詞表匹配的方法、基于規(guī)則的方法、基于機器學(xué)習(xí)的方法或者混合采用上述多種方法。對文本中出現(xiàn)的命名實體進行標(biāo)注的結(jié)果至少包括:命名實體的類型、在文本中的起始偏移量和終止偏移量。假設(shè)在一文本中,一命名實體為“100元”,則該命名實體的類型為“金額”;另一命名實體為“北京”,則該命名實體的類型為“地名”;命名實體在文本中的起始偏移量和終止偏移量反映了該命名實體在文本中的起止位置。
文本中所要標(biāo)注的命名實體的類型是事先確定好的,在事先確定命名實體的類型后,通過建立相應(yīng)的詞表或規(guī)則或機器學(xué)習(xí)模型,采用前述的基于詞表匹配的方法、基于規(guī)則的方法、基于機器學(xué)習(xí)的方法或者混合采用上述多種方法,即可實現(xiàn)對特定類型的命名實體的標(biāo)注。本領(lǐng)域技術(shù)人員很容易理解,若要對文本中所要標(biāo)注的命名實體的類型進行變動,需要修改相應(yīng)的詞表或規(guī)則或機器學(xué)習(xí)模型。
對文本中出現(xiàn)的命名實體進行標(biāo)注的結(jié)果可以用表格的方式存儲或輸出,所得到的表格可稱為命名實體列表,該列表的每一項存儲命名實體的類型、在文本中的起始偏移量和終止偏移量等信息。
由于目前主流的信息檢索系統(tǒng)(如Solr,ElasticSearch等)在進行索引單元切分時,只允許輸入待切分文本,不能輸入其他參數(shù)。為了兼容這些系統(tǒng),作為一種優(yōu)選實現(xiàn)方式,可將命名實體列表寫入待切分文本中,具體方法是:對文本中出現(xiàn)的命名實體進行標(biāo)注后,將會形成新的文本數(shù)據(jù),包括頭部和正文兩個部分。頭部存儲命名實體識別的結(jié)果信息,包括命名實體的類型、在文本中的起始偏移量和終止偏移量信息;正文存儲原始文本信息。頭部與正文之間用特殊符號分隔。
需要指出的是,如果待處理文本已經(jīng)標(biāo)注了命名實體,則只需要將標(biāo)注結(jié)果封裝成符合格式要求的命名實體列表即可。
1-2)、索引單元切分步驟,該步驟用于將之前已經(jīng)經(jīng)過命名實體標(biāo)注的文本切分成以詞為單位的索引單元。
本步驟在將文本切分成以詞為單位的索引單元時,不僅可以按照現(xiàn)有技術(shù)切分正常的索引詞,還可以基于識別的實體類型構(gòu)造實體類型詞。實體類型詞是表征命名實體類型的特殊詞,其構(gòu)造方法要點如下:
一是以合適的方式表示實體類型詞。為了區(qū)分實體類型詞和正常的詞,實體類型詞采用不在詞典中收錄的非正常詞來表示。在一個實施例中,本發(fā)明使用小寫英文實體類型加后綴z來標(biāo)識實體類型詞,如organizationz表示機構(gòu),personz表示人員,這些詞都不是合法的英文單詞,所以不會與文本切出的正常詞混淆。之所以使用小寫實體類型詞,是因為在很多信息檢索系統(tǒng)中為了提高英文的查全率,在索引和檢索時均將英文單詞單詞轉(zhuǎn)換成小寫形式;之所以加后綴z而不是其他字母,是因為在很多信息檢索系統(tǒng)中為了提高英文的查全率,一般會對英文單詞進行詞根化操作,即去除ing、s、ed這些通用后綴,z不出現(xiàn)在任何通用后綴中,不至于在詞根化操作中被去掉。確定了實體類型詞的表示方式以后,就可以將命名實體標(biāo)注步驟中所確定的命名實體的類型用實體類型詞來表示。
二是要正確寫入實體類型詞的偏移量。在進行索引時,一般要記錄索引詞的偏移量,這樣便于進行與位置相關(guān)的檢索,如詞組檢索、鄰接檢索。實體類型詞的偏移量等于該命名實體所對應(yīng)的文本的偏移量,即起始偏移量是對應(yīng)文本第一個詞的起始偏移量,終止偏移量是對應(yīng)文本最后一個詞的終止偏移量。例如,Lockheed Martin是一個機構(gòu)名稱,命名實體詞Lockheed的偏移量是(1002,1010),命名實體詞Martin的偏移量是(1011 1017),其實體類型詞是organizationz,則實體類型詞organizationz的偏移量是(1002 1017)。采用此種方法,在后續(xù)的檢索中確??蓪嶓w類型詞進行基于位置的檢索,并可對命中的命名實體進行高亮顯示。
三是基于實體類型層級關(guān)系構(gòu)造多個實體類型詞。命名實體的類型往往包含層級關(guān)系,如“大學(xué)”是“機構(gòu)”的子類。這一層級關(guān)系是事先設(shè)定好的。在根據(jù)實體類型層級關(guān)系構(gòu)造多個實體類型詞時,可以將實體類型看作一棵樹,通過樹遍歷的方式,在構(gòu)造實體類型詞時,如果識別出下位實體類型,除了構(gòu)造下位實體類型詞外,也應(yīng)該依次構(gòu)造上位實體類型一直到根節(jié)點的所有實體類型詞。采用此種方法,使得用戶在檢索時可使用任意粒度的實體類型詞進行檢索,提升檢索體驗。
在一個實施例中,待處理文本經(jīng)命名實體標(biāo)注后形成頭部和正文兩部分,則索引單元切分的具體步驟包括:
首先對待處理文本的頭部進行解析,將命名實體信息按起始偏移量排序后形成命名實體數(shù)組并加以存儲;
在對正文中的原始文本進行切分的過程中,每切出一個詞都會查找命名實體數(shù)組,判斷該詞是否是某個命名實體的第一個詞,如果是的話則同時輸出實體類型詞的信息(包括實體類型詞、偏移量信息),如果對應(yīng)的命名實體類型還存在上位類,則同時輸出上位命名實體類型到根節(jié)點對應(yīng)的所有實體類型詞的信息(偏移量不變);如果在命名實體數(shù)組內(nèi)找不到,作為正常詞處理。
根據(jù)上述步驟所構(gòu)造的實體類型詞的信息與切分所得到的正常索引詞的信息一起被寫入索引文件中。
步驟1-3)、倒排索引步驟,該步驟以索引詞為中心,將同一索引詞在不同文檔中出現(xiàn)的信息歸并存儲。
經(jīng)倒排索引后,所得到的索引文件的邏輯結(jié)構(gòu)如下(其中+表示1個或多個):
(索引詞,文檔頻率,(文檔出現(xiàn)信息)+)+;
其中,所述索引詞既可以是正常索引詞,也可以是實體類型詞;文檔頻率用來表示對應(yīng)的索引詞在多少篇文檔中出現(xiàn),“文檔出現(xiàn)信息”格式如下:
文檔編號,文檔內(nèi)頻率,(起始偏移量,終止偏移量)+
其中,文檔編號是文檔整數(shù)標(biāo)識,文檔內(nèi)頻率是指索引詞在該文檔中出現(xiàn)多少次。例如,以一個命名實體“Lockheed Martin公司”為例,這一公司的實體類型首先對應(yīng)公司實體類型,假定實體類型層次中公司實體類型是機構(gòu)實體類型的子類,機構(gòu)實體類型沒有上位類,則在索引文件中,Lockheed Martin會對應(yīng)四個索引詞,分別是lockheed、martin、companyz和organizationz;其中的lockheed、martin是原始文本信息中出現(xiàn)的詞,companyz、organizationz是實體類型詞。所生成的索引文件的格式如下:
companyz;15;10,3,1002,1010,1086,1094,2055,2067;……
lockheed;2;10,2,1002,1010,1086,1094;18,1,15,23;
martin;2;10;2,1011,1017,1095,1101;18,1,24,30;
organizationz;20;10,4,1002,1010,1086,1094,2055,2067,2105,2118;……
這一格式的含義為:以第2行為例,lockkheed索引詞是正常索引詞,出現(xiàn)在2篇文檔中,第一篇編號為10,出現(xiàn)2次,偏移量是(1002,1010)和(1086,1094);第二篇編號為18,出現(xiàn)1次,偏移量是(15,23)。第1行和第4行對應(yīng)的是實體類型詞,companyz對應(yīng)公司實體類型,organizationz對應(yīng)機構(gòu)實體類型,公司實體類型是機構(gòu)實體類型的子類。公司實體類型詞出現(xiàn)在15篇文檔中,第一篇就是Lockheed Martin出現(xiàn)的10號文檔,出現(xiàn)了3次,也就是說除了Lockheed Martin出現(xiàn)的2次外,該文檔還出現(xiàn)了一個公司名稱。機構(gòu)實體類型詞出現(xiàn)在20篇文檔中,也就是說除了公司子類外,機構(gòu)實體類型還有其他子類出現(xiàn)在另外5篇文檔中。
索引文件的上述格式能夠同時滿足用戶的普通檢索請求和命名實體模糊檢索請求,即用戶輸入Lockheed Martin或機構(gòu)實體類型詞時均可命中文檔。
2)、數(shù)據(jù)檢索
該步驟可進一步包括接受檢索式、檢索并呈現(xiàn)結(jié)果兩個子步驟。下面分別予以說明。
2-1)、接收檢索式步驟。
檢索式既可以是正常的檢索詞,也可以是實體類型詞,或者是兩者的組合。由于在索引時將實體類型詞的偏移量記錄成對應(yīng)命名實體涵蓋文本的偏移量,所以可正確進行基于位置的檢索。為了避免用戶輸入錯誤,可將目前支持的實體類型詞列出為用戶提示,并允許用戶通過點擊實體類型詞方式將其加入到檢索輸入框,提高檢索式輸入效率。
2-2)、檢索并呈現(xiàn)結(jié)果步驟。
在得到檢索式以后,就可以對檢索式進行解析,基于之前數(shù)據(jù)索引步驟所得到的索引文件查找命中結(jié)果,并通過界面向用戶展示。
無論檢索式中包含的是正常檢索詞還是實體類型詞,在檢索時并無本質(zhì)差別,均可采用現(xiàn)有技術(shù)實現(xiàn)。需要指出的是,在進行基于位置的信息檢索時,由于實體類型詞的偏移量對應(yīng)原始命名實體文本的偏移量,所以也可準(zhǔn)確命中。
為了直觀展示命中情況,作為一種優(yōu)選實現(xiàn)方式,可對命中結(jié)果中出現(xiàn)的檢索詞進行分顏色高亮顯示,并在結(jié)果頁面上方明示。例如使用黃色顯示普通檢索詞,用紅色顯示機構(gòu)類型實體名稱,綠色顯示人名等。需要指出的是,對于實體類型詞,高亮顯示的是命名實體的原始信息,例如用戶使用機構(gòu)實體類型詞organizationz檢索,檢索結(jié)果中NASA會被高亮顯示。
本發(fā)明還提供了與檢索方法相對應(yīng)的檢索系統(tǒng),如圖2所示,該檢索系統(tǒng)包括數(shù)據(jù)索引模塊10和數(shù)據(jù)檢索模塊20;其中,
數(shù)據(jù)索引模塊10負責(zé)對文本數(shù)據(jù)進行索引操作,輸出索引文件。該模塊包括命名實體標(biāo)注單元11、索引單元切分單元12、倒排索引單元13。
其中,命名實體標(biāo)注單元11負責(zé)對文本進行命名實體標(biāo)注。命名實體標(biāo)注單元11對文本進行命名實體標(biāo)注后,將形成新的文本數(shù)據(jù),包括頭部和正文兩個部分。頭部存儲命名實體識別的結(jié)果信息,包括實體類型、起始偏移量和終止偏移量信息;正文存儲原始文本信息。頭部與正文之間用特殊符號分隔。
索引單元切分單元12負責(zé)將文本切分成包含普通詞和實體類型詞的索引單元。首先對接收文本的頭部進行解析,將命名實體信息按起始偏移量排序后形成命名實體數(shù)組存儲在內(nèi)存中。在對原始文本進行切分的過程中,每切出一個詞,系統(tǒng)都會查找命名實體數(shù)組,判斷該詞是否是某個命名實體的第一個詞,如果是的話則同時輸出實體類型詞的信息。如果對應(yīng)的命名實體類型還存在上位類,則同時輸出上位命名實體類型到根節(jié)點對應(yīng)的所有實體類型詞的信息。如果在命名實體數(shù)組內(nèi)找不到,作為正常詞進行切分。
倒排索引單元13以索引詞為中心,將同一索引詞在不同文檔中出現(xiàn)的信息歸并存儲。
數(shù)據(jù)檢索模塊20接收用戶輸入的檢索式,基于索引文件查找命中結(jié)果,并將結(jié)果呈現(xiàn)給用戶。該模塊包括檢索式接收單元21,檢索與結(jié)果呈現(xiàn)單元22。
檢索式接收單元21負責(zé)接收用戶輸入的檢索式。為了提高用戶輸入實體類型詞的效率,接收單元在檢索輸入框附近,顯示目前支持的所有命名實體類型和對應(yīng)的實體類型詞信息,并使用Javascript(一種直譯式腳本語言)技術(shù)使得用戶在點擊某一命名實體類型時,系統(tǒng)自動將對應(yīng)的實體類型詞信息填入檢索輸入框。
檢索與結(jié)果呈現(xiàn)單元22對用戶輸入的檢索式進行解析,基于索引文件查找命中的結(jié)果,并向用戶呈現(xiàn)。為了方便用戶迅速了解檢索命中情況,使用不同顏色對命中的檢索詞進行高亮顯示,并在檢索結(jié)果頁面的上方明確標(biāo)明什么顏色對應(yīng)哪種類型的實體。
最后所應(yīng)說明的是,以上實施例僅用以說明本發(fā)明的技術(shù)方案而非限制。盡管參照實施例對本發(fā)明進行了詳細說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,對本發(fā)明的技術(shù)方案進行修改或者等同替換,都不脫離本發(fā)明技術(shù)方案的精神和范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。