r>[0025] 圖1是潛在狄利克雷分布模型的概率圖。
[0026] 圖2是本發(fā)明一個實施例的數(shù)據(jù)處理的方法的流程圖。
[0027] 圖3是本發(fā)明實施例的計算設備的框圖。
[0028] 圖4是本發(fā)明實施例的計算設備與外部存儲器的關系的示意圖。
【具體實施方式】
[0029] 下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā) 明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施 例,都屬于本發(fā)明保護的范圍。
[0030] 在本說明書中使用的術語"部件"、"模塊"、"系統(tǒng)"等用于表示計算機相關的實體、 硬件、固件、硬件和軟件的組合、軟件、或執(zhí)行中的軟件。例如,部件可以是但不限于,在處理 器上運行的進程、處理器、對象、可執(zhí)行文件、執(zhí)行線程、程序或計算機。通過圖示,在計算設 備上運行的應用和計算設備都可以是部件。一個或多個部件可駐留在進程或執(zhí)行線程中, 部件可位于一個計算機上或分布在兩個或更多個計算機之間。此外,這些部件可從在上面 存儲有各種數(shù)據(jù)結構的各種計算機可讀介質執(zhí)行。部件可例如根據(jù)具有一個或多個數(shù)據(jù)分 組(例如來自與本地系統(tǒng)、分布式系統(tǒng)或網(wǎng)絡間的另一部件交互的二個部件的數(shù)據(jù),例如 通過信號與其它系統(tǒng)交互的互聯(lián)網(wǎng))的信號通過本地或遠程進程來通信。
[0031] 此外,本發(fā)明的各個方面或特征可以實現(xiàn)成方法、裝置或使用標準編程或工程技 術的制品。本申請中使用的術語"制品"涵蓋可從任何計算機可讀器件、載體或介質訪問的 計算機程序。例如,計算機可讀介質可以包括,但不限于:磁盤存儲器件(例如,硬盤、軟盤 或磁帶等),光盤(例如,⑶(CompactDisk,壓縮盤)、DVD(DigitalVersatileDisk,數(shù)字通 用盤)等),智能卡和閃存器件(例如,EPROM(ErasableProgrammableRead-OnlyMemory, 可擦寫可編程只讀存儲器)、卡、棒或鑰匙驅動器等)。
[0032] 另外,本文描述的各種存儲介質可代表用于存儲信息的一個或多個設備或其它機 器可讀介質。術語"機器可讀介質"可包括但不限于,無線信道和能夠存儲、包含或承載指 令或數(shù)據(jù)的各種其它介質。
[0033] 隨著大數(shù)據(jù)的在工程、信息、教育和通信等領域的應用,對海量的文檔進行歸類、 挖掘或者單詞聚類成為要解決的重要技術問題。而在接入互聯(lián)網(wǎng)的時候,實際中可以變成 無窮的數(shù)據(jù)流(例如直接從網(wǎng)上下載文檔),因此在數(shù)據(jù)處理過程中對計算機或者服務器 等計算系統(tǒng)的內存要求越來越高。本發(fā)明實施例提出的數(shù)據(jù)處理,特別是針對主題挖掘的 處理能夠降低對計算系統(tǒng)中內存的要求。
[0034] 圖1是潛在狄利克雷分布模型的概率圖。
[0035] 圖1中的陰影圓圈表示可觀測變量\,非陰影圓圈表示潛在變量,箭頭表示兩個變 量之間的條件依賴性,方框表示重復抽樣,方框右下角的字母表示重復的次數(shù)。其中,N表 示每篇文檔平均包含的單詞數(shù),D表示文檔的總數(shù)目,K表示主題的總數(shù)目。
[0036] LDA模型是一個三級層次貝葉斯(Bayes)模型。
[0037] 其中,Wn和Zn是單詞層變量,分別代表單詞和主題。其中,Wn是可觀測變量,并且 Wn的取值是1至W的正整數(shù)。Zn =k是隱藏主題變量,并且Zn的取值是1至K的正整數(shù)。 W表示單詞表中的單詞數(shù)。
[0038] 其中,0 ,和_是文檔層變量,分別表示指定文檔所對應的主題分布和指定主題所 對應的單詞概率分布。
[0039] 其中,a和P是語料庫層的超級參數(shù),分別用于控制文檔層0JPcpk變量。通常, 超級參數(shù)ct和0被固定為a= 〇. 01,0 = 〇. 01。當然,a和0也可以是用戶定義的其 他的值。本發(fā)明對此不作限定。
[0040] 如前所述,LDA模塊中,輸入詞包矩陣Xwxd,通過自動推理算法,輸出文檔-主題矩 陣 9KXD和單詞_主題矩陣為(j)K"w。例如,期望最大化(Expectation-Maximization,EM)算 法是一種自動推理算法。
[0041] EM算法包括以下兩個重要步驟:計算期望的E步驟和最大化的M步驟。
[0042] E步驟:基于文檔-主題矩陣和單詞-主題矩陣,對詞包矩陣中的每個非零元素計 算消息向量。消息向量用線段來表示,線段的長度與單詞在該主題的可能性成正比。
[0043] M步驟:根據(jù)消息向量的值更新文檔-主題矩陣和單詞-主題矩陣。
[0044] EM算法中,E步驟和M步驟需反復循環(huán)迭代,直到達到穩(wěn)定的收斂狀態(tài)。穩(wěn)定的收 斂狀態(tài)是指文檔-主題矩陣、單詞_主題矩陣和消息向量都達到收斂。
[0045] 在達到穩(wěn)定的收斂狀態(tài)時的文檔-主題矩陣和單詞-主題矩陣,即可作為輸出的 文檔-主題矩陣和單詞-主題矩陣。
[0046] EM算法需要將所有數(shù)據(jù)以及LDA的參數(shù)矩陣即文檔-主題矩陣和單詞-主題矩陣 放到內存中計算,這對于內存資源是非常巨大的消耗。
[0047] 圖2是本發(fā)明一個實施例的數(shù)據(jù)處理的方法的流程圖,可以在個人計算機 (PersonalComputer,PC)或者具有計算功能的服務器上完成。外部存儲器中的大規(guī)模詞包 矩陣能夠分割成A個詞包矩陣,所述A個詞包矩陣中的第s個詞包矩陣表示為XsWsXDs,A和s為正整數(shù),s= 1,2,…,A,詞包矩陣的行表示單詞表索引,列表示文檔索引,圖2所示的方 法包括:
[0048] 201,處理器將所述外部存儲器中的第s= 1個詞包矩陣Xswsxds讀取至內存。
[0049] 202,根據(jù)所述第s= 1個詞包矩陣Xswsxds,隨機初始化第一消息矩陣。
[0050] 203,根據(jù)所述隨機初始化的第一消息矩陣,采用EM算法,確定第一單詞-主題矩 陣。
[0051] 204,釋放所述內存中由所述第s= 1個詞包矩陣Xswsxds、第一消息矩陣和EM算法 產生的第一文檔-主題矩陣占用的空間,保留所述第一單詞_主題矩陣并緩存在所述內存 中。
[0052] 205,依次地對s>l的第s個詞包矩陣Xswsxds,更新所述第一單詞-主題矩陣。
[0053] 其中,Ws為所述第s個詞包矩陣Xswsxds的單詞表中的單詞數(shù),Ds為所述第s個詞 包矩陣的文檔數(shù)。
[0054] 本發(fā)明實施例中,大規(guī)模詞包矩陣能夠分割成A個詞包矩陣,針對A個詞包矩陣中 的每一個詞包矩陣,采用EM算法,確定對應的單詞-主題矩陣,并且及時釋放EM算法的參 數(shù)消息矩陣、文檔_主題矩陣所占用的內存空間。這樣,在計算系統(tǒng)進行主題挖掘的過程 中,對計算系統(tǒng)中內存硬件的資源要求較低。
[0055] 應注意,本發(fā)明實施例中的外部存儲器,所謂的外部是相對于處理過程中的內存 來言,可以是硬盤、磁碟或者光盤等,或者也可以是其他類型的外部存儲器,本發(fā)明對此不 作限定。其中,硬盤可以是本地硬盤,或者可以是移動硬盤,或者也可以是網(wǎng)絡硬盤。當硬 盤是網(wǎng)絡硬盤時,可理解本方法的內存中的數(shù)據(jù)是從網(wǎng)上下載獲取的。
[0056] 本發(fā)明實施例中,外部存儲器中的大規(guī)模詞包矩陣包含的文檔數(shù)為D,單詞表的單 詞數(shù)為W??烧J為大規(guī)模詞包矩陣為Xwxd。用戶可預設置主題數(shù)K,并可初始化外部存儲器 中的單詞-主題矩陣例如,可以初始化外部存儲器中的單詞-主題矩陣
[0057] 具體地,圖2所示的方法可以是在將外部存儲器中的大規(guī)模詞包矩陣分割成A個 詞包矩陣之后,再執(zhí)行的。例如,可以是首先對外部存儲器中的大規(guī)模詞包矩陣進行分割, 確定A= 10000。進一步針對s從1至10000執(zhí)行圖2所示的方法。
[0058] 或者,也可以是在對外部存儲器中的大規(guī)模詞包矩陣進行分割的過程中,執(zhí)行圖2 所示的方法。例如,只要已經分割出第1個詞包矩陣,便可依次進行圖2中的步驟201至 204??衫斫猓趫?zhí)行圖2所示的方法時,A的大小還未確定。這樣,在步驟205中,是對s順 次加1進行主題挖掘的。也就是說,對外部存儲器中的大規(guī)模詞包矩陣分割的過程,與圖2 所示的方法是同時進行的,只要分割出了第s個詞包矩陣,即可對該第s個詞包矩陣執(zhí)行圖 2中的步驟205。
[0059] 可理解,本方法是將大規(guī)模詞包矩陣分割成A個詞包矩陣,A個詞包矩陣是以數(shù)據(jù) 流的形式被依次讀取至內存的。
[0060] 應注意,本發(fā)明實施例中,A個詞包矩陣中的每一個詞包矩陣的元素可以是離散 值,也可以是連續(xù)值。例如,第s個詞包矩陣的元素可以是正整數(shù),也可以是非整數(shù)的正數(shù)。 也就是說,本發(fā)明實施例也可以處理含連續(xù)值的大規(guī)模詞包矩陣,例如TF-IDF等。
[0061] 應注意,本發(fā)明實施例中,Ds的大小是由用戶預設置的,對于不同的s的取值,Ds 可以互不相等,也可以互相相等,本發(fā)明對此不作限定。例如,可以對不同的S,都預設置Ds=1000。一般來說,不同的s的取值,Ws的大小一般都互不相同。
[0062] 具體地,在201中,從外部存儲器將第1個詞包矩陣X1wixdi讀取至內存中。其中, 該第1個詞包矩陣X1wixdi的單詞表中的單詞數(shù)為Wl,該第1個詞包矩陣X1wixdi的文檔數(shù)為 Dl,并且該第1個詞包矩陣X1wixdi的非零元素的個數(shù)為NNZl。相應地,在202中,隨機初始 化的第一消息矩陣為UKXNNZ1。
[0063] 具體地,在203中,首先根據(jù)所述隨機初始化的第一消息矩陣,確定初始的第一文 檔-主題矩陣和初始的第一單詞-主題矩陣。該初始的第一文檔-主題矩陣和初始的第一 單詞-主題矩陣用于作為EM算法的輸入?yún)?shù)。
[0064] 可選地,假設隨機初始化的第一消息矩陣Ukxnnzi的元素表示為Us=1Wid(k),那么 初始的第一單詞-主題矩陣9kxwi的元素可以用公式a)表示:
[0065]
[0066] 其中,$為第1的詞包矩陣的元素??衫斫猓鲜街衚的取值是1至K的正整數(shù), w的取值是第1個詞包矩陣X1wixdi的單詞表中的單詞的索引,d的取值是第1個詞包矩陣X1wixdi的文檔的索引。固定k和w可確定第一單詞-主題矩陣9k、Wi的一個元素。
[0067] 其中,初始的第一文檔-主題矩陣0KXD1可以是根據(jù)第1個詞包矩陣隨機初始化 得到的。
[0068] 隨后可將初始的第一文檔-主題矩陣和初始的第一單詞_主題矩陣作為輸入?yún)?數(shù),執(zhí)行EM算法。
[0069] 所述EM算法的E步驟為:根據(jù)第一文檔-主題矩陣0KXD1和第一單詞-主題矩陣 ,更新第一消息矩陣UKXNNZ1。
[0070] 所述EM算法的M步驟為:根據(jù)第一消息矩陣Ukxnnzi,更新第一文檔-主題矩陣 9KXD1和第一單詞-主題矩陣。
[0071] 循環(huán)執(zhí)行所述E步驟和所述M步驟,直到滿足收斂條件。
[0072] 具體地,收斂條件也可以是指第一消息矩陣Ukxnnzi、第一文檔-主題矩陣0KXDjP 第一單詞-主題矩陣奶<xwi都達到收斂。
[0073] 或者,收斂條件可以是指第一消息矩陣Ukxnnzi達到收斂。這樣,能夠減少循環(huán)次 數(shù),較快地達到收斂。進而能夠提高效率。
[0074] 收斂是指當前循環(huán)的結果與前一循環(huán)的結果之差的模小于第三閾值。例如,第三 閾值可以是10 6。
[0075] 例如,在循環(huán)執(zhí)行E步驟和M步驟的過程中,若第B次循環(huán)得到的第 一消息矩陣PKXNNZ1?與第B-I次循環(huán)得到的第一消息矩陣 PKX剛Zl(BI)f兩足 IPKX剛Z1(B)_PKXNNZ1(B1) 〈10 6,則認為第一消息矩陣PKX剛Zl在B次循環(huán)后達到收斂。
[0076] 可理解,步驟203中所確定的第一單詞-主題矩陣(Pkxwl是滿足收斂條件時的第