專利名稱:來自一組搜索引擎的搜索結果的聚合的制作方法
技術領域:
本發(fā)明涉及智能的基于事件的數據挖掘,更具體地,涉及從非結構化源收集信息以創(chuàng)建并維持知識庫,該知識庫可幫助用戶快速確定并解決問題。
背景技術:
問題確定涉及利用對發(fā)生在環(huán)境中的事件的分析來診斷問題并向用戶提供合適的解決方案或提供自動解決方案。對這些任務中的任一個來說(即,提供解決方案或自動恢復),很好地了解系統及其運作是必需的前提。這通常通過使用用于問題原因及其解決方案的癥狀數據庫或其他存儲源來完成,且每當問題發(fā)生時,針對該源執(zhí)行分析以確定解決方案。但是,考慮到實際場景,實時環(huán)境將包括一起工作的、來自很多不同廠商的很多不同運用程序。例如,顧客可能有部署在IBM的Websphere應用服務器上的商業(yè)合作伙伴的web應用,而使用Oracle作為數據庫(IBM和Websphere是國際商業(yè)機器公司的注冊商標)。這種場景具有來個三個不同廠商的三個不同的組件(應用)=Websphere應用服務器 (IBM)、web應用(IBM的商業(yè)合作伙伴)和數據庫(Oracle)??紤]到這種場景,將理解,對于這樣的系統的完美的問題確定分析來說,需要對所有三個組件有深入了解。實際上,對于任何一個廠商來說,不可能提供并維持關于一些其他廠商(例如Oracle)的應用的解決方案和智能(intelligence),盡管這些應用會與其產品一起使用。這導致了信息“黑盒”,其中技術支持工程師沒有在環(huán)境中運行的一些應用的足夠信息和知識。從以上例子,如果IBM想要提供Oracle數據庫具有的問題的解決方案,考慮到商業(yè)伙伴將提供用于其應用的信息和癥狀/解決方案的細節(jié),很容易想象這所需的努力。這將涉及讓一組專家創(chuàng)建并維護用于Oracle的解決方案數據庫。如果不這么做,在對該環(huán)境執(zhí)行問題確定分析時將導致黑盒,即,在系統中發(fā)生的任何問題,當且僅當它和數據庫無關時,才能被診斷,并且任何與數據庫相關的問題將不得不在SME/專門管理員的幫助下解決。
發(fā)明內容
在一個實施例中,本公開提供了一種用于智能的基于事件的數據挖掘的方法、系統和計算機程序產品。該方法包括從應用接收事件,所述事件具有一組屬性,為所述屬性中的每個分配各自的屬性權重,基于屬性權重從所述屬性建立查詢,并且為一組搜索引擎中的每個分配各自的搜索引擎權重。該方法還包括基于搜索引擎權重來選擇至少一些搜索引擎,將查詢發(fā)送到選中的搜索引擎,從選中的搜索引擎接收查詢結果,在知識庫中存儲查詢結果,并基于查詢結果來調整屬性權重和搜索引擎權重。本發(fā)明的實施例可以被用來消除問題確定分析時的上述黑盒,并為分析提供關于問題的信息,并管理解決方案信息數據庫,該解決方案信息數據庫可被用于問題確定。這是低成本的解決方案,其在運行時地從線上(online)源收集相關信息,該相關信息是在任意時間點的最為當前和有效的信息?;ヂ摼W是最大和最全面的信息源之一。本發(fā)明利用互聯網上可用的信息來向用戶提供問題確定解決方案。通過從非結構化源例如博客、論壇等收集信息,本發(fā)明可以創(chuàng)建并維護幫助用戶快速確定和解決問題的知識庫。在理想的問題確定/解決場景下,每個技術支持工程師根據經驗知道如何解決各種應用中的問題。但是,很多時候解決方案不是馬上可獲得的;它可能涉及咨詢專家或向上反映(escalate)問題或甚至在已知位置例如問題跟蹤網站或論壇上進行手動搜索。本發(fā)明中使用的策略是在非結構化信息上執(zhí)行分析以找到解決方案,而用戶很少或不用干涉。當事件形式的問題產生時,使用該事件的各個域(消息id、消息文本、組件名稱等)來執(zhí)行搜索。該搜索可以在任何信息源例如通用互聯網搜索、博客、維基百科頁面或論壇上進行。搜索結果被處理以確定相關性、被格式化并被展示給用戶。使用相關性值和被使用的查詢,系統可以知道哪些查詢以及哪些搜索源返回最好和最相關的信息源。在后續(xù)運行中,系統知道哪些屬性和搜索源提供不同產品的最佳信息。解決上述問題的另一種方法是雇傭主題專家或專門的管理員來處理廠商應用。該方法的一個問題是雇傭專家所涉及的成本。作為一個專家,他/她自然將能夠提供對環(huán)境中的特定組件的支持,(在該例子中是Oracle數據庫)。然后專家將會空閑,直到相關的問題出現,即,只有他/她專門處理的問題出現。該情形的關鍵問題是當專家離開組織時,知識也丟失了。專家根據經驗具有并使用的所有解決方案和知識都丟失了。相反,使用本發(fā)明的自動解決方案,每當一個新的問題解決方案被找到時,該解決方案被存儲在知識庫中。 這意味著知識被保留在組織內,允許新的技術支持工程師能夠提供解決方案并可能消除對雇傭專家的需求。技術支持工程師現在能夠處理更廣范圍內的問題。
本發(fā)明的更多益處和優(yōu)勢將考慮參考附圖的下列詳細說明而變得更明顯,所述附圖指定并示出了本發(fā)明的優(yōu)選實施例。圖1示出了根據本發(fā)明的用于智能的基于事件的數據挖掘系統的示例架構。圖2示出了圖1中的系統的總體操作。圖3示出了用于對圖1中的系統所獲得的搜索結果進行分級的示例過程。圖4示出了用于更新數據挖掘系統的知識庫的示例過程。圖5示出了用于更新圖1的系統中使用的屬性和搜索引擎權重的示例過程。圖6示出了可以被用來實現本發(fā)明的示例性計算系統。
具體實施例方式本領域的技術人員將理解,本發(fā)明的方面可以實現為系統、方法或計算機程序產品。因此,本發(fā)明的各方面可以采取完全硬件實施例、完全軟件實施例(包括固件、駐留軟件、微代碼等)或組合了軟件和硬件方面的實施例的形式,所有這些軟件和硬件方面在此通常被稱為“電路”、“模塊”或“系統”。此外,本發(fā)明可采取體現在任意有形表現介質中實現的計算機程序產品,在該介質中實現了計算機可用的程序代碼。
可以使用一個或多個計算機可讀介質的任意組合。所述計算機可用或計算機可讀介質可以是,例如,包括但不限于,電、磁、光、電磁、紅外線或半導體系統、裝置、設備或傳播媒介。計算機可讀介質的更具體的示例(非窮舉列表)將包括下列具有一條或多條線的電連接、便攜式計算機軟盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦除可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式光盤只讀存儲器(CD-ROM)、光存儲設備、傳輸媒介例如支持互聯網或內部網的傳輸媒介、或磁存儲設備。在本文檔的上下文中,計算機可讀存儲介質可以是任何能夠包含或存儲由指令執(zhí)行系統、裝置或設備使用或與所述指令執(zhí)行系統、裝置或設備結合的程序的有形介質。注意,計算機可用或計算機可讀介質甚至可以是紙張或另一合適的、其上打印有程序的介質,因為程序可被電子地捕獲,例如通過對紙張或其它介質進行光掃描,然后在必要時被編譯、解釋、或者以其它合適的方式被處理,然后被存儲在計算機存儲器中。在本文檔的上下文中,計算機可用或可讀存儲介質可以是任何能夠包含、存儲、通信、傳播或發(fā)送程序的介質,該程序被指令執(zhí)行系統、裝置或設備使用或與之結合使用。計算機可用介質可以包括其中包含計算機可讀程序代碼(例如,在基帶中或作為載波的一部分)的傳播數據信號??梢允褂萌魏芜m當的介質,包括但不限于無線、線纜、光纜、RF等,來傳輸計算機可用程序代碼。用于執(zhí)行本發(fā)明的方面的操作的計算機程序代碼可以使用一種或多種編程語言的任意組合來編寫,所述編程語言包括諸如Java、Smalltalk, C++或類似語言之類的面向對象的編程語言或者諸如“C”編程語言或類似的編程語言之類的常規(guī)過程編程語言。所述程序代碼可以完全地在用戶計算機上執(zhí)行,部分地在用戶計算機上執(zhí)行,作為獨立的軟件包執(zhí)行,部分地在用戶計算機上并部分地在遠程計算機上執(zhí)行,或者完全地在遠程計算機或服務器上執(zhí)行。在后者的情況中,所述遠程計算機可以通過包括局域網(LAN)或廣域網 (WAN)的任何類型網絡與用戶的計算機相連,也可以與外部計算機進行連接(例如,使用因特網服務提供商通過因特網連接)。下面參考根據本發(fā)明的實施例的方法、裝置(系統)和計算機程序產品的流程圖和/或方塊圖對本發(fā)明的方面進行描述。將理解,所述流程圖和/或方塊圖的每個方塊以及所述流程圖和/或方塊圖中的方塊的組合可以由計算機程序指令來實現。這些計算機程序指令可以被提供給通用計算機、專用計算機或其他可編程數據處理裝置的處理器以產生機器,以便通過所述計算機或其他可編程數據處理裝置的處理器執(zhí)行的所述指令產生用于實現在一個或多個流程圖和/或方塊圖方塊中指定的功能/操作的裝置。這些計算機程序指令也可以被存儲在引導計算機、其他可編程數據處理裝置或其他設備以特定方式執(zhí)行功能的計算機可讀介質中,以便存儲在所述計算機可讀介質中的所述指令產生一件包括實現在所述一個或多個流程圖和/或方塊圖方塊中指定的功能/操作的指令的制品。所述計算機程序指令還可被加載到計算機或其他可編程數據處理裝置,以導致在所述計算機或其他可編程裝置上執(zhí)行一系列操作步驟以產生計算機實現的過程,從而在所述計算機或其他可編程裝置上執(zhí)行的指令提供用于實現在流程圖和/或方塊圖方塊中指定的功能/操作的過程。參考圖1和圖2,在步驟202中,搜索管理器102從應用接收CBE事件并開始對其進行處理。使用CBE的不同屬性,創(chuàng)建用于搜索的查詢。這些查詢是根據被分配給特定產品的屬性的重要性或權重來創(chuàng)建的。例如,用于DB2問題以消息id來搜索將比用消息內容來搜索產生更好的結果,而對于Oracle來說可能是相反的。為適應該情況,屬性權重需要按每個產品來存儲。初始地,在第一次運行前,默認的權重被分配給屬性。對問題確定具有一些經驗的用戶或技術支持工程師分配這些權重。即,足夠的經驗來將高權重分配給有價值的屬性(例如消息id)并將低或零權重分配給不重要的屬性(例如創(chuàng)建時間)。示例產品屬性權重DB2_messageId = 90DB2_messageText = 50DB2_severity = 10DB2_creationTime = 0這些權重提供了對重要性的分級,意味著用具有較高值的屬性來搜索返回更好的結果。在該例子中,在搜索該問題的解決方案時,用消息Id來搜索時給出最佳結果,而(CBE 事件的)創(chuàng)建時間永遠不應該被使用。首先,創(chuàng)建集合P來表示要被用來為搜索引擎建立查詢的屬性。選擇在為搜索創(chuàng)建查詢時考慮哪些屬性,是通過根據權重分級并計算屬性的百分比來實現的。在步驟202 中,給定百分比(例如百分之50)或以上的屬性被用于查詢。在上述DB2的例子中,使用百分之50將給出“消息Id”和“消息文本”屬性。以這樣的方式選擇最相關的屬性,并創(chuàng)建查詢。每個查詢包含屬性值和組件的名稱(例如,用于DB2通用數據庫的“DB2UDB”)。在步驟206中,搜索查詢被發(fā)送到以類似方式選擇的搜索引擎104。可用的搜索引擎104按每個產品給出分級,這事實上是說在搜索關于特定產品的信息時,哪些搜索引擎(按順序)返回最佳結果。初始地,所有搜索引擎被分配100的“產品到搜索引擎”的權重,因此,所有搜索引擎將被用來執(zhí)行搜索。在后續(xù)運行中,該值將被更新,來反應搜索引擎對于返回特定產品的相關結果的可能性。類似于產品屬性權重,在步驟 204,通過采用那些給定百分比或以上的搜索引擎,選擇要使用的搜索引擎的集合S。示例產品-搜索引擎權重DB2_ibmDB2InformationCenter = 90DB2_google = 50DB2_yahoo = 10DB2_ask. com = 0使用搜索引擎權重的上述例子,如果百分比截止點(cutoff)是5,則查詢將被發(fā)送到前三個搜索引擎(IBM DB2信息中心、谷歌和雅虎)。一旦查詢被準備好,它們可以以產品-搜索引擎權重降序的順序被發(fā)送到搜索引擎。該搜索可以在106中示出的任意信息源上進行,所述信息源例如,通用互聯網搜索、博客、維基百科頁面或論壇。搜索結果被相關性引擎112來處理以確定相關性、被格式化并被顯示給用戶,如114所示。此外,在步驟 210中,從每個搜索引擎接收到的結果根據與P中的事件屬性的相關性被分級,并被分配一個評分。計算搜索結果與查詢的相關性圖3示出了對搜索結果分級的過程。為了計算搜索結果與被用來產生該結果的查詢的相關性,在步驟310中,獲取搜索結果的文本內容,并且找到它和查詢文本之間最長共同子字符串。該過程被重復運行,從查詢中移除已匹配的子字符串,直到不能找到更多的匹配。例如,如果搜索結果的文本內容為Exception occurred while the JNDI NamingManager was processing a javax. naming. Reference objectRoot exception is java. lang. reflect. Invocation TargetExceptionat sun. reflect. NativeMethodAccessorImpl. invokeO(Native Method)at sun. reflect. NativeMethodAccessorImpl. invoke (NativeMethod Accessorlmpl. java- :85)at sun. reflect. NativeMethodAccessorImpl. invoke (NativeMethod Accessorlm-pl. java :58)at sun.reflect.DelegatingMethodAccessorImpl. invoke (Delegating MethodAccessorl-mpl. java(Compiled Code))at java. lang. reflect. Method, invoke (Method, java (Compiled Code))且(從消息文本屬性創(chuàng)建的)查詢如下Exception occurred in the JNDI NamingManager while processing a javax. naming. Reference object則重復運行最長公共子字符串會給出processing a javax. naming. Reference objectthe JNDI NamingManagerException occurredwhile使用這些子字符串,在步驟320中,可以計算結果與屬性的相關性。首先,從匹配的字符串和查詢中去除與產品或問題無關的普通英文單詞。在上述例子中,最后一個匹配 (while)與當前上下文完全無關,因此應當被移除。從所有匹配的字符串和查詢中移除這些單詞(例如 the、at、in、is、for)。例如,如果我們從查詢和匹配的字符串中移除單詞{ "in","the","while","a"}, 這留下查詢Exception occurred JNDI NamingManager processing javax. naming. Reference object匹配的字符串processing javax. naming. Reference objectJNDI NamingManagerException occurred現在,使用裁剪過的查詢和匹配字符串,計算相關性。取M= { “processing javax. naming. Reference object,,,"Exception occurred,,,"JNDI NamingManager,,}作為
匹配子字符串的集合,使用下列公式,計算結果相關性。
權利要求
1.一種用于智能的基于事件的數據挖掘的方法,包括從應用接收事件,所述事件具有一組屬性;為所述屬性中的每個分配各自的屬性權重;基于屬性權重從所述屬性建立查詢;為一組搜索引擎中的每個分配各自的搜索引擎權重;基于搜索引擎權重來選擇至少一些搜索引擎;將查詢發(fā)送到選中的搜索引擎;從選中的搜索引擎接收查詢結果;在知識庫中存儲查詢結果;以及基于查詢結果來調整屬性權重和搜索引擎權重。
2.如權利要求1所述的方法,其中,基于屬性權重從所述屬性建立查詢包括 選擇具有高于規(guī)定值的屬性權重的每個屬性;以及從選中的屬性建立查詢。
3.如權利要求1或權利要求2所述的方法,其中,基于搜索引擎權重來選擇至少一些搜索引擎包括選擇具有高于規(guī)定值的搜索引擎權重的每個搜索引擎的步驟。
4.如前面任意權利要求所述的方法,其中,調整屬性權重和搜索引擎權重包括 為每個查詢結果計算搜索結果相關性;以及使用所述搜索結果相關性來調整屬性權重和搜索引擎權重。
5.如權利要求4所述的方法,其中為每個查詢結果計算搜索結果相關性包括,對每個查詢結果識別在查詢和所述每個查詢結果中都存在的公共文本子字符串的數量; 使用所述公共文本子字符串的數量來為每個查詢結果計算搜索結果相關性。
6.如權利要求5所述的方法,其中,識別在查詢和所述每個查詢結果中都存在的公共文本子字符串的數量包括識別在查詢和所述每個查詢結果中都有的最長公共子字符串; 從查詢中移除所述最長公共子字符串來得到修改的查詢;以及識別在被修改的查詢和所述查詢結果中都有的最長公共子字符串。
7.如權利要求6所述的方法,其中,識別在查詢和所述每個查詢結果中都出現的公共文本子字符串的數量包括形成所述公共文本子字符串的集合;以及從所述集合中移除給定文本子字符串集合中的任一文本子字符串的每次出現,以形成公共子字符串的被裁剪的集合。
8.如權利要求7所述的方法,其中使用所述公共文本子字符串的數量為所述每個查詢結果計算搜索結果相關性包括使用下列等式來計算結果相關性\ 2 、nJ X100 =結果相關性 (Nxn)其中mn是第η個匹配中的單詞的數量N是查詢中的單詞的數量 η是匹配的子序列的數量。
9.如權利要求5所述的方法,其中,調整屬性權重和搜索引擎權重包括累加每個查詢的搜索結果相關性來獲得總體相關性得分。
10.如權利要求5所述的方法,其中,調整屬性權重和搜索引擎權重包括計算每個被選中的屬性對每個查詢結果的貢獻。
11.一種智能的基于事件的數據挖掘的裝置,包括 用于從應用接收事件的裝置,所述事件具有一組屬性; 用于為所述屬性中的每個分配各自的屬性權重的裝置; 用于基于屬性權重從所述屬性建立查詢的裝置;用于為一組搜索引擎中的每個分配各自的搜索引擎權重的裝置; 用于基于搜索引擎權重來選擇至少一些搜索引擎的裝置; 用于將查詢發(fā)送到選中的搜索引擎的裝置; 用于從選中的搜索引擎接收查詢結果的裝置; 用于在知識庫中存儲查詢結果的裝置;以及用于基于查詢結果來調整屬性權重和搜索引擎權重的裝置。
12.如權利要求11所述的設備,其中,用于建立查詢的裝置包括 用于選擇具有高于規(guī)定值的屬性權重的每個屬性的裝置;以及用于從選中的屬性建立查詢的裝置。
13.如權利要求11或權利要求12所述的設備,其中,用于選擇至少一些搜索引擎的裝置包括用于選擇具有高于規(guī)定值的搜索引擎權重的每個搜索引擎的裝置。
14.如權利要求11到13中任一個所述的設備,其中,用于調整屬性權重和搜索引擎權重的裝置包括用于為每個查詢結果計算搜索結果相關性的裝置;以及用于使用所述搜索結果相關性來調整屬性權重和搜索引擎權重的裝置。
15.如權利要求14所述的設備,其中用于為每個查詢結果計算搜索結果相關性的裝置包括,對每個查詢結果用于識別在查詢和所述每個查詢結果中都存在的公共文本子字符串的數量的裝置; 用于使用所述公共文本子字符串的數量來為所述每個查詢結果計算搜索結果相關性的裝置。
16.如權利要求15所述的設備,其中,用于識別在查詢和所述每個查詢結果中都存在的公共文本子字符串的數量的裝置包括用于識別在查詢和所述每個查詢結果中都有的最長公共子字符串的裝置; 用于從查詢中移除所述最長公共子字符串來得到修改的查詢的裝置;以及用于識別在被修改的查詢和所述查詢結果中都有的最長公共子字符串的裝置。
17.如權利要求16所述的設備,其中,用于識別在查詢和所述每個查詢結果中都出現的公共文本子字符串的數量的裝置包括用于形成所述公共文本子字符串的集合的裝置;以及用于從所述集合中移除給定文本子字符串集合中的任一文本子字符串的每次出現、以形成公共子字符串的被裁剪的集合的裝置。
18.如權利要求17所述的設備,其中用于使用所述公共文本子字符串的數量來為所述每個查詢結果計算搜索結果相關性的裝置包括用于使用下列等式來計算結果相關性的裝置
19.如權利要求15所述的設備,其中,用于調整屬性權重和搜索引擎權重的裝置包括 用于累加每個查詢的搜索結果相關性來獲得總體相關性得分的裝置。
20.如權利要求15所述的設備,其中,用于調整屬性權重和搜索引擎權重的裝置包括 用于計算每個被選中的屬性對每個查詢結果的貢獻的裝置。
21.一種計算機程序,包括在計算機可讀介質上存儲的計算機程序代碼,所述計算機程序代碼在被載入到計算機系統并在其上執(zhí)行時,使得所述計算機系統執(zhí)行根據權利要求1 到10中的任一個的方法中的所有步驟。
全文摘要
公開了一種用于智能數據挖掘的方法、系統和計算機程序產品。該方法包括從應用接收事件、將屬性權重分配給事件的屬性、以及基于屬性權重從這些屬性建立查詢。該方法還包括將搜索引擎權重分配給一組搜索引擎,基于搜索引擎權重來選擇至少一些搜索引擎,以及將建立的查詢發(fā)送到選中的搜索引擎。來自被選中的搜索引擎的結果被存儲在知識庫中,并被用來調整屬性權重和搜索引擎權重。本發(fā)明可以被用來提供關于問題的信息的分析,并用來管理可以用于問題確定的解決方案數據庫。本發(fā)明提供了用于從線上源收集相關信息的低成本的解決方案。
文檔編號G06F17/30GK102576364SQ201080043768
公開日2012年7月11日 申請日期2010年8月31日 優(yōu)先權日2009年10月1日
發(fā)明者A·拉馬克里施南, H·L·納拉亞南, K·沙斯特里, R·舍提 申請人:國際商業(yè)機器公司