本發(fā)明涉及自然語言處理領(lǐng)域,具體而言,涉及一種話題處理方法及裝置。
背景技術(shù):
話題檢測與跟蹤(Topic Detection&Tracing)技術(shù)是自然語言處理與信息檢索領(lǐng)域?qū)嵱眯苑浅8叩募夹g(shù),也是在大數(shù)據(jù)背景下有效地發(fā)現(xiàn)和提取有用信息實用技術(shù),意在發(fā)現(xiàn)和處理文本中出現(xiàn)的熱門話題或事件。通常情況下,熱門話題或報道的發(fā)現(xiàn)和跟蹤技術(shù)是針對特定領(lǐng)域或者特定事件,發(fā)現(xiàn)并跟蹤話題后續(xù)進(jìn)展情況的一項技術(shù)。
目前,國內(nèi)外的熱門話題檢測技術(shù)主要側(cè)重于從各類新聞報道中發(fā)現(xiàn)、過濾和跟蹤話題,執(zhí)行過程如下:1、文本獲取,即上網(wǎng)收集各類媒體的新聞報道;2、文本向量化,即將收集到的原始文本進(jìn)行向量化處理,形成向量化的文本;3、文本聚類,即將向量化的文本進(jìn)行聚類分析,并將出現(xiàn)頻率高的詞語或者處在聚類中心上的文本作為一個話題;4、在特定的時間段內(nèi),重復(fù)上述1、2、3步的操作,并使用熱度模型對第3步得到的話題進(jìn)行排序,并輸出前top-n個話題,該執(zhí)行過程雖然能夠?qū)崿F(xiàn)話題發(fā)現(xiàn)和跟蹤功能,但是存在如下缺陷:(1)線下處理,不能實時的發(fā)現(xiàn)與跟蹤新話題,進(jìn)而無法及時有效地了解新話題事件;(2)信源單一,全部信息都來源于新聞報道,不能有效利用微博,論壇等其他資源;(3)不能自適應(yīng)地發(fā)現(xiàn)文本中出現(xiàn)的新話題,現(xiàn)有的使用指定話題和聚類技術(shù),發(fā)現(xiàn)并跟蹤一系列文本中的話題,無法適用于突然出現(xiàn)的話題和發(fā)展演變出來的話題;(4)文本聚類方法是粗粒度處理方法,不能充分表示一個話題的重要元素,使得文本中有效信息的利用率不足,會使后期出現(xiàn)的話題出現(xiàn)類中心偏移。
針對上述的問題,目前尚未提出有效的解決方案。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供了一種話題處理方法及裝置,以至少解決相關(guān)技術(shù)中只能發(fā)現(xiàn)已有話題,無法發(fā)現(xiàn)新話題的技術(shù)問題。
根據(jù)本發(fā)明實施例的一個方面,提供了一種話題處理方法,包括:獲取用于描述 話題的新增文本;檢測上述新增文本所描述的話題是否是已有話題;在檢測結(jié)果為上述新增文本所描述的話題不是上述已有話題的情況下,確定上述新增文本所描述的話題為新增話題。
進(jìn)一步地,獲取用于描述話題的新增文本包括:線上獲取上述用于描述話題的新增文本。
進(jìn)一步地,獲取用于描述話題的新增文本包括:從多種信源中獲取上述用于描述話題的新增文本。
進(jìn)一步地,在確定上述新增文本所描述的話題為新增話題之后,上述方法還包括:將上述新增話題添加到上述已有話題中;或者先將上述用于描述話題的新增文本存儲在新增話題文本隊列中,在上述新增話題文本隊列中的文本數(shù)量達(dá)到預(yù)設(shè)數(shù)值和/或程序執(zhí)行時間達(dá)到預(yù)設(shè)時長后,再從上述新增話題文本隊列中提取出相應(yīng)的新增話題,并將提取出來的新增話題添加到上述已有話題中。
進(jìn)一步地,在從上述新增話題文本隊列中提取出相應(yīng)的新增話題之后,且將提取出來的新增話題添加到上述已有話題中之前,上述方法還包括:從提取出來的新增話題中過濾掉噪聲話題。
進(jìn)一步地,在將上述新增話題添加到上述已有話題中之后,上述方法還包括:從添加了上述新增話題的已有話題中找出熱門話題,其中,上述熱門話題為在添加了上述新增話題的已有話題中排名達(dá)到指定閾值的話題;輸出上述熱門話題。
進(jìn)一步地,檢測上述新增文本所描述的話題是否是已有話題包括:對上述新增文本進(jìn)行向量化處理,得到上述新增文本的文本向量;創(chuàng)建上述已有話題的話題矩陣,其中,上述話題矩陣的每一列表示一個話題,每一行表示話題中的一個詞語,每個元素表示當(dāng)前詞語在當(dāng)前話題中所占權(quán)重的大??;根據(jù)上述已有話題的話題矩陣A構(gòu)造上述新增文本的文本向量Y的函數(shù)關(guān)系式Y(jié)=AX;通過根據(jù)上述X的解確定上述新增文本所描述的話題與上述已有話題之間的隸屬關(guān)系;根據(jù)上述隸屬關(guān)系確定上述新增文本所描述的話題是否是上述已有話題。
根據(jù)本發(fā)明實施例的另一方面,還提供了一種話題處理裝置,包括:獲取單元,用于獲取用于描述話題的新增文本;檢測單元,用于檢測上述新增文本所描述的話題是否是已有話題;確定單元,用于在檢測結(jié)果為上述新增文本所描述的話題不是上述已有話題的情況下,確定上述新增文本所描述的話題為新增話題。
進(jìn)一步地,上述獲取單元還用于線上獲取上述用于描述話題的新增文本。
進(jìn)一步地,上述獲取單元還用于從多種信源中獲取上述用于描述話題的新增文本。
進(jìn)一步地,上述裝置還包括:第一添加單元,用于在確定上述新增文本所描述的話題為新增話題之后,將上述新增話題添加到上述已有話題中;或者第二添加單元,用于先將上述用于描述話題的新增文本存儲在新增話題文本隊列中,在上述新增話題文本隊列中的文本數(shù)量達(dá)到預(yù)設(shè)數(shù)值和/或程序執(zhí)行時間達(dá)到預(yù)設(shè)時長后,再從上述新增話題文本隊列中提取出相應(yīng)的新增話題,并將提取出來的新增話題添加到上述已有話題中。
進(jìn)一步地,上述裝置還包括:過濾單元,用于在從上述新增話題文本隊列中提取出相應(yīng)的新增話題之后,且將提取出來的新增話題添加到上述已有話題中之前,從提取出來的新增話題中過濾掉噪聲話題。
進(jìn)一步地,上述裝置還包括:查找單元,用于在將上述新增話題添加到上述已有話題中之后,從添加了上述新增話題的已有話題中找出熱門話題,其中,上述熱門話題為在添加了上述新增話題的已有話題中排名達(dá)到指定閾值的話題;輸出單元,用于輸出上述熱門話題。
進(jìn)一步地,上述檢測單元包括:處理模塊,用于對上述新增文本進(jìn)行向量化處理,得到上述新增文本的文本向量;創(chuàng)建模塊,用于創(chuàng)建上述已有話題的話題矩陣,其中,上述話題矩陣的每一列表示一個話題,每一行表示話題中的一個詞語,每個元素表示當(dāng)前詞語在當(dāng)前話題中所占權(quán)重的大??;構(gòu)造模塊,用于根據(jù)上述已有話題的話題矩陣A構(gòu)造上述新增文本的文本向量Y的函數(shù)關(guān)系式Y(jié)=AX;第一確定模塊,用于通過根據(jù)上述X的解確定上述新增文本所描述的話題與上述已有話題之間的隸屬關(guān)系;第二確定模塊,用于根據(jù)上述隸屬關(guān)系確定上述新增文本所描述的話題是否是上述已有話題。
在本發(fā)明實施例中,采用自適應(yīng)的發(fā)現(xiàn)新話題的方式,通過獲取用于描述話題的新增文本;檢測所述新增文本所描述的話題是否是已有話題;在檢測結(jié)果為所述新增文本所描述的話題不是所述已有話題的情況下,確定所述新增文本所描述的話題為新增話題,達(dá)到了發(fā)現(xiàn)新話題和追蹤已有話題的目的,從而實現(xiàn)了提高話題發(fā)現(xiàn)的效率和準(zhǔn)確率的技術(shù)效果,進(jìn)而解決了相關(guān)技術(shù)中只能發(fā)現(xiàn)已有話題,無法發(fā)現(xiàn)新話題的技術(shù)問題。
附圖說明
此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖 中:
圖1是根據(jù)本發(fā)明實施例的一種可選的話題處理方法的流程圖;
圖2是根據(jù)本發(fā)明實施例的一種可選的在線自適應(yīng)話題發(fā)現(xiàn)與跟蹤模型的框架圖;
圖3是根據(jù)本發(fā)明實施例的一種可選的話題處理裝置的示意圖。
具體實施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
實施例1
根據(jù)本發(fā)明實施例,提供了一種話題處理方法的方法實施例,需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機(jī)可執(zhí)行指令的計算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
圖1是根據(jù)本發(fā)明實施例的一種可選的話題處理方法的流程圖,如圖1所示,該方法包括如下步驟:
步驟S102,獲取用于描述話題的新增文本;
步驟S104,檢測新增文本所描述的話題是否是已有話題;
步驟S106,在檢測結(jié)果為新增文本所描述的話題不是已有話題的情況下,確定新增文本所描述的話題為新增話題。
實施時,需要先初始化用于流式批量處理的在線自適應(yīng)話題發(fā)現(xiàn)與跟蹤模型的各項參數(shù),再通過爬蟲技術(shù)實時監(jiān)聽各個信源中針對指定領(lǐng)域的新增加的用于描述話題的文本,并抽取該文本的話題,進(jìn)而檢測抽取的話題是否是已有話題,其中,若是,則確定新增文本所描述的話題為新增話題(即新話題),若否,則確定新增文本所描述的話題為已有話題,也即當(dāng)前沒有新增話題。另外,文本的話題(即主題)挖抽方式可以靈活選取,在此不作限定。并且已有話題可以是人為指定的,或者是由自適應(yīng)的添加新增話題得到的。使用時,可以將已有話題存儲在已有話題列表中,形成話題字典,以應(yīng)用于新增文本的話題檢測任務(wù)中。
通過上述實施例,通過使用自適應(yīng)話題發(fā)現(xiàn)技術(shù)來發(fā)現(xiàn)各個信源中出現(xiàn)的話題,可以實現(xiàn)對新話題的發(fā)現(xiàn)和現(xiàn)有話題的跟蹤,達(dá)到提高話題發(fā)現(xiàn)的效率和準(zhǔn)確率的目的。
可選地,獲取用于描述話題的新增文本包括:線上獲取用于描述話題的新增文本。具體地,可以通過爬蟲技術(shù)線上實時爬取用于描述話題的新增文本,特別是使用爬蟲技術(shù)爬取指定領(lǐng)域中的新增文本。
通過本發(fā)明實施例,采用線上文本獲取方式,可以克服相關(guān)技術(shù)中采用線下處理方式,不能實時的發(fā)現(xiàn)與跟蹤新話題,以及無法及時有效地了解新話題事件的缺陷,從而更適用于互聯(lián)網(wǎng)信息瞬息萬變的工作場景,能夠及時關(guān)注文本中的話題。
可選地,獲取用于描述話題的新增文本包括:從多種信源中獲取用于描述話題的新增文本。具體地,可以從多種信源中獲取指定領(lǐng)域的用于描述話題的新增文本。這里涉及的多種信源可以包括:論壇,新聞門戶網(wǎng)站,微博等。
通過本發(fā)明實施例,可以實現(xiàn)分領(lǐng)域(query)的話題發(fā)現(xiàn)與跟蹤目的,克服相關(guān)技術(shù)中全部信息都來源于新聞報道而導(dǎo)致信源單一,不能有效利用微博、論壇等其他有效資源的缺陷。
基于上述實施方式,可選地,在確定新增文本所描述的話題為新增話題之后,上述方法還包括:(1)將新增話題添加到已有話題中;或者,(2)先將用于描述話題的新增文本存儲在新增話題文本隊列中,在新增話題文本隊列中的文本數(shù)量達(dá)到預(yù)設(shè)數(shù)值和/或程序執(zhí)行時間達(dá)到預(yù)設(shè)時長后,再從新增話題文本隊列中提取出相應(yīng)的新增話題,并將提取出來的新增話題添加到已有話題中。
與(2)相比,(1)可以及時更新存儲已有話題的話題字典,提高自適應(yīng)發(fā)現(xiàn)和跟蹤熱門話題的能力,但是由于更新過于頻繁,可能導(dǎo)致占用較大的資源開銷;與(1)相比,(2)可以批量將新增話題更新至話題字典中,節(jié)省更新占用的資源開銷,但是 其更新比較滯后,發(fā)現(xiàn)和跟蹤話題的能力不足。
另外,在(2)中還涉及到新增話題提取操作,可以使用主題模型抽取和表示新增話題。具體地,在從新增話題文本隊列得到經(jīng)過過濾的包含新話題的文本后,可以引入主題模型來挖掘文本中所包含的話題,并根據(jù)用來表示文本的話題的不同詞語集合,構(gòu)建可以用來添加到話題發(fā)現(xiàn)模型中的表示該話題的向量。考慮到話題發(fā)現(xiàn)模型中使用的是稀疏表示框架,并且稀疏表示原本就是一個信號的分解操作,為了保持一致性,可以但不限于使用基于非負(fù)矩陣分解(NMF topic model)的主題挖掘模型。并且在不同領(lǐng)域或者不同場景中,其他的主題模型可能會更好的表示,比如LDA,RNN神經(jīng)網(wǎng)絡(luò)主題挖掘模型等都可以完成這一任務(wù)。現(xiàn)介紹非負(fù)矩陣分解的主題模型原理如下:
非負(fù)矩陣分解定義:找到非負(fù)矩陣W與H,使得V=WH,其中,V矩陣表示原始文本集合,它的每一列表示一個文本;W、H為兩個非負(fù)矩陣,其中,W矩陣的每一行表示特性項,每一列表示一個主題,并且W矩陣中每一列的意義類似于在話題字典中的元組,而H矩陣中每一列則類似于稀疏表示中的X,其中列的每一維表示當(dāng)前文本與現(xiàn)有主題詞語之間的關(guān)系。需要說明的是,在此可以限制W矩陣中所包含的潛在語義類的個數(shù),該個數(shù)即為粗聚類得到的潛在語義類的個數(shù)。
NMF矩陣求解過程簡述如下:
(1)假設(shè)噪聲矩陣為E∈Rn×m,那么有E=V-WH,求解WH的過程即為找到合適的WH使E最小的過程。
(2)假設(shè)噪聲服從高斯分布(也可以服從泊松分布),則
最大似然函數(shù)為:
目標(biāo)函數(shù)為:
(3)使用梯度下降的方法求解WH:
Wik=Wik-α1·[(VHT)ik-(WHHT)ik]
Hkj=Hkj-α2·[(WTV)kj-(WTWH)kj]
(4)最終化簡為:
當(dāng)求解W矩陣后,對其每一列可以按照主題挖掘模型中設(shè)置的詞語的重要性閾值(即權(quán)重值),自動地選擇話題中包含的詞語個數(shù),將W中每一列就會將權(quán)重值比較低的一些詞語過濾掉,只剩下權(quán)重值高的詞語,這樣保留下來的詞語便可以很好地表示一個話題。
進(jìn)一步,當(dāng)挖掘出話題后,并不是將所有話題都作為一個新增話題添加到已有話題中。例如,可以按照當(dāng)前話題中的詞語特征,先將一些話題詞語集合很小并且權(quán)重值都很小的語義類當(dāng)作噪聲話題放棄,再計算剩余的每一個語義類與已有話題的相似度,最終根據(jù)相似度的大小確定是否將新增話題加入已有話題。其中,在本發(fā)明實施例中,相似度方法可以包括多種,以下簡單介紹cos in相似度計算法:
當(dāng)相似度>0.9時,認(rèn)為當(dāng)前話題是已有話題;否則,認(rèn)為當(dāng)前話題不是已有話題,而是新增話題,需要將其作為一列添加到話題矩陣中。
通過本發(fā)明實施例,可以自適應(yīng)地發(fā)現(xiàn)新話題,并將其補(bǔ)充到話題字典中,以用于后續(xù)的話題發(fā)現(xiàn)和追蹤流程。并且主題模型作為在線自適應(yīng)學(xué)習(xí)模型,可以在檢測文本話題歸屬時發(fā)現(xiàn)新增話題,并將該新增話題添加到已有話題中,滿足話題列表的自適應(yīng)增長,不會造成新話題丟失,有效地解決了其他方法不能增量處理新話題的困難。
隨著發(fā)現(xiàn)的新增話題個數(shù)的增加,話題字典中的話題會越變越多。由于話題都是在某個時間段內(nèi)發(fā)生的,因此一個話題發(fā)生后,在之后的某個時間段內(nèi),該話題依然有效。但是在某個時間段內(nèi),話題字典中的已有話題一般不會同時發(fā)生?;诖耍谶\(yùn)算中如果仍然要操作那些并未發(fā)生的話題,則會增加資源開銷,降低運(yùn)行速度。優(yōu)選地,實施時,可以將話題字典中的話題個數(shù)限定在一個固定的常數(shù)范圍內(nèi)。這樣做, 對于一些近期不會發(fā)生的話題,可以不進(jìn)行文本話題發(fā)現(xiàn)模塊的運(yùn)算,減少不必要的冗余,而且對于一些長時間發(fā)生的話題和近期發(fā)生的話題,還能保證運(yùn)算速率和準(zhǔn)確性,進(jìn)而提高整個系統(tǒng)的運(yùn)行效率和準(zhǔn)確度。實施時,可以使用Most Recently Used調(diào)度算法,將已經(jīng)發(fā)現(xiàn)的新增話題調(diào)度到在線的處理程序中。下面介紹該調(diào)度算法的思想:
首先引入數(shù)據(jù)結(jié)構(gòu)棧,使用該結(jié)構(gòu)棧記錄當(dāng)前工作框架(即程序)中的話題以及該話題在之前某個時間段內(nèi)出現(xiàn)的次數(shù)。該棧所能容納的話題最大數(shù)為n_max,最少數(shù)為n_min。當(dāng)運(yùn)行Most Recently Used調(diào)度算法時,當(dāng)出現(xiàn)一個話題,且該話題在當(dāng)前棧中,就出該話題,并重新進(jìn)行入棧操作,這樣,最近發(fā)生的話題就在棧頂處,而那些長時間沒有出現(xiàn)的話題,就會出現(xiàn)在棧底。從棧頂?shù)綏5?,通過觀察其中的話題會發(fā)現(xiàn),話題是按照當(dāng)前時間段內(nèi)出現(xiàn)的次數(shù)從高到低的排序的。當(dāng)棧中的話題滿足一個閾值后,即棧中元素個數(shù)達(dá)到n_max后,如果再出現(xiàn)新話題,就要重新對現(xiàn)有工作框架中的話題進(jìn)行調(diào)整,即將棧中話題的個數(shù)調(diào)整為n_min,這樣可以將最近用出現(xiàn)最頻繁、持續(xù)時間最久的話題填充到棧中的空白位置。其中,調(diào)整完成后,可以更新已有話題發(fā)現(xiàn)模型。
另外,棧其實可以使用一個固定值,這樣每新增一個話題,就需要調(diào)度一次,使得調(diào)度過于頻繁,而通過使用大小為n_max-n_min的緩沖區(qū),可以自適應(yīng)地選取工作字典中的元組,并置出非工作字典中的元組,達(dá)到減少調(diào)度的次數(shù)的目的。并且工作字典和話題集合相結(jié)合,可以有效地減少運(yùn)算過程中的資源浪費(fèi)情況,使得系統(tǒng)的運(yùn)行速度更快。
進(jìn)一步地可選地,在從新增話題文本隊列中提取出相應(yīng)的新增話題之后,且將提取出來的新增話題添加到已有話題中之前,上述方法還包括:從提取出來的新增話題中過濾掉噪聲話題。
當(dāng)新增話題文本隊列中的文本數(shù)量達(dá)到可以抽取新話題的個數(shù)后,由于有些新文本可能包含新增話題,而有些文本中可能與當(dāng)前領(lǐng)域無任何關(guān)系,即隊列中可能存在噪聲文本,這些噪聲文本可以是不包含任何話題的文本,也可以是沒有實際意義的頁面廣告等。在此,可以使用粗聚類算法,預(yù)測文本中可能包含的話題個數(shù),并且將一些噪聲文本剔除,這樣可以保證話題模塊挖掘的準(zhǔn)確度,并且可以避免挖掘出無用話題。
需要說明的是,粗聚類算法可以包括多種,考慮到便于理解和噪聲文本的過濾,可以使用一個能自動確定類個數(shù)的聚類算法,如密度聚類算法DBSCAN。該算法可以根據(jù)閾值確定類個數(shù),并且可以將一些噪聲文本過濾掉,其具體流程如下:
(1)檢測數(shù)據(jù)庫中尚未檢查過的對象p,如果p未被處理(歸為某個簇或者標(biāo)記為噪聲),則檢查其鄰域,若包含的對象數(shù)不小于類中樣本的個數(shù)閾值minPts,則建立新簇C,將其中的所有點加入候選集N;
(2)對候選集N中所有尚未被處理的對象q,檢查其鄰域,若至少包含minPts個對象,則將這些對象加入N;如果q未歸入任何一個簇,則將q加入C;
(3)重復(fù)步驟(2),繼續(xù)檢查N中未處理的對象,當(dāng)前候選集N為空;
(4)重復(fù)步驟(1)-(3),直到所有對象都?xì)w入了某個簇或標(biāo)記為噪聲。
通過本發(fā)明實施例,可以將過濾后得到的新增文本作為新增話題的挖掘?qū)ο?,從而提高話題挖掘的精準(zhǔn)度。并且基于噪聲過濾方法的主題模型來發(fā)現(xiàn)文本中的新增話題時,使用主題詞集合的方式來表示話題,比使用文本內(nèi)容來表示話題更精準(zhǔn),更容易聚焦到文本中的話題上,而且不考慮文本中的噪聲信息。
基于上述實施方式,可選地,在將新增話題添加到已有話題中之后,上述方法還包括:從添加了新增話題的已有話題中找出熱門話題,其中,熱門話題為在添加了新增話題的已有話題中排名達(dá)到指定閾值的話題;輸出熱門話題。需要說明的是,在輸出熱門話題時可以考慮輸出各文本與各熱門話題之間的對應(yīng)關(guān)系。
在重復(fù)執(zhí)行文本在線處理、文本話題檢測、文本話題發(fā)現(xiàn)、聚類分析新增話題及新增話題數(shù)量、話題模型抽取及表示、話題字典更新、文本與話題歸屬標(biāo)識及存儲、選取工作字典中的元組和置出非工作字典中的元組等操作后,可以根據(jù)時間限制和熱度模型,輸出熱門話題,保存字典及話題等相關(guān)信息。
具體地,當(dāng)文本數(shù)量達(dá)到設(shè)定閾值,或者程序執(zhí)行時間達(dá)到預(yù)定時間時,可以對當(dāng)前文本中或當(dāng)前時間段內(nèi)的話題選擇適當(dāng)熱度模型進(jìn)行熱度排序。在此,熱度模型同時使用了話題的提及量,話題延續(xù)時間,以及話題的新穎度等來確定最終的熱度,并按照時間點輸出。其中,熱度計算方法如下:熱度=a*延續(xù)性+b*提及量+c*新穎度+d*其他因素。
其中,延續(xù)性意在發(fā)現(xiàn)那些在很長一段時間內(nèi)都出現(xiàn)的話題,這類話題在長時間內(nèi)以平穩(wěn)的趨勢出現(xiàn),往往其出現(xiàn)次數(shù)并不高,可能會不如近期出現(xiàn)的話題提及量大,但是考慮到其出現(xiàn)的時間較長,所以將其作為熱度計算的參數(shù)。提及量,簡單理解,便是話題在時間段內(nèi)出現(xiàn)的次數(shù)。一般情況下,近期出現(xiàn)頻率越高的話題將具有更高的熱度,比如一個話題在語料(即文本)中發(fā)生了,整個互聯(lián)網(wǎng)上會出現(xiàn)大量的報道,這樣的話題應(yīng)該具有較高的熱度,比如“天津爆炸案”,“青島天價大蝦”等話題,這些話題在出現(xiàn)后不久的一段時間內(nèi),都具有很高的提及量。另外,新出現(xiàn)的話題可能 會因為話題剛剛出現(xiàn),因而不會產(chǎn)生很大量的提及量,但是這樣的話題會有變?yōu)闊衢T話題的趨勢,為了防止忽略這樣的話題而可能造成信息缺失,引入了新穎度的概念。對于其他因素,比如考慮到一個熱門話題可能會隨著時間的推移而變得不那么熱門,類似這樣的因素可以加入到其他因素中。具體地,可以使用牛頓冷卻算法,將一個話題的熱度與其出現(xiàn)的時間建立關(guān)系,從而演變它的熱度趨勢。
通過本發(fā)明實施例,使用靈活的熱度計算模型,可以使話題的熱度排序更靈活、更簡單,并且可以根據(jù)不同應(yīng)用場景,調(diào)整不同的熱度計算方法。另外,在發(fā)現(xiàn)文本話題時,可以標(biāo)記文本與話題之間的歸屬關(guān)系并存儲之,同時保存話題字典及話題的相關(guān)信息,這樣可以在輸出熱門話題時,同時輸出支持該熱門話題的文本,以便于用戶查詢。
可選地,檢測新增文本所描述的話題是否是已有話題包括:對新增文本進(jìn)行向量化處理,得到新增文本的文本向量;創(chuàng)建已有話題的話題矩陣,其中,話題矩陣的每一列表示一個話題,每一行表示話題中的一個詞語,每個元素表示當(dāng)前詞語在當(dāng)前話題中所占權(quán)重的大??;根據(jù)已有話題的話題矩陣A構(gòu)造新增文本的文本向量Y的函數(shù)關(guān)系式Y(jié)=AX;通過根據(jù)X的解確定新增文本所描述的話題與已有話題之間的隸屬關(guān)系;根據(jù)隸屬關(guān)系確定新增文本所描述的話題是否是已有話題。
其中,新增文本的原始表示方式可以靈活選取,在此不作限制。在收集到語料以后,可以使用TFIDF模型將文本進(jìn)行向量化表示。TFIDF模型通常會使用全網(wǎng)數(shù)據(jù)統(tǒng)計詞語的詞頻以及倒排索引值,但是考慮到不同的詞語在不同的領(lǐng)域中,可能具有不同的意義,或者不同詞語在不同領(lǐng)域中,對理解話題的意思會有不相同的意義與重要性,因此可以針對于不同領(lǐng)域訓(xùn)練不同的TFIDF模型,該模型可以使用先期收集到的不同領(lǐng)域的語料進(jìn)行線下訓(xùn)練得到,且只需要訓(xùn)練一次,在以后的流程中,都可以重復(fù)使用該模型對文本進(jìn)行向量化表示。
以下介紹TFIDF模型的主要原理:如果某個詞語或短語在一篇文章(即文本)中出現(xiàn)的頻率TF較高,并且在其他文章中很少出現(xiàn),則認(rèn)為該詞語或短語具有很好的類別區(qū)分能力,適合用來分類。在本發(fā)明中,如果一個詞語或短語在一個話題中出現(xiàn)的次數(shù)較多,并且在該話題以外的話題中出現(xiàn)次數(shù)較少,則說明該詞語或短語對于當(dāng)前話題的表述有意義。需要說明的是,詞頻(term frequency,簡稱為TF)指的是某一個給定的詞語在某個文本中出現(xiàn)的頻率。這個數(shù)字是對詞數(shù)(term count)歸一化的結(jié)果,可以防止它偏向長的文件,其計算方式如下:
其中,分子表示詞j在文本i中出現(xiàn)的次數(shù),分母表示文本中所有字詞的出現(xiàn)次數(shù)之和。
倒排文本頻率(inverse document frequency,簡稱為IDF)是一個詞語普遍重要性的度量。某一特定詞語的I DF,可以由總文本數(shù)目除以包含該詞語的文本數(shù)目,再將得到的商取對數(shù)得到:
其中,分子表示語料庫中的文本總數(shù),分母表示出現(xiàn)詞語i的文本個數(shù)。TF-IDF的計算公式如下:
tfidfi,j=tfi,j×idfi
在本發(fā)明實施例中,可以訓(xùn)練當(dāng)前指定的領(lǐng)域的IDF模型,即在一個足夠大的領(lǐng)域語料集合上,統(tǒng)計詞語出現(xiàn)的文本倒排索引的值。當(dāng)該領(lǐng)域有一個新文本出現(xiàn)后,將計算該文本中的詞語的TF值,并將TF值與該詞語相應(yīng)的IDF值相乘,作為文本向量化后中的一維。
實施時,可以引入稀疏表示方法在線完成新增文本的話題處理。下面先介紹稀疏表示的基本原理:簡單來說,它其實是一種對原始信號的分解過程,該分解過程借助一個事先得到的話題字典(也稱之為過完備基,在發(fā)明中,話題字典是已有話題的量化表示),將新增文本表示為該字典的近似線性函數(shù):Y=AX,其中,A是一個話題字典對應(yīng)的矩陣,它的每一列表示一個話題,列的每一維表示該話題中的一個元素,該元素的值表示該元素所在行對應(yīng)的詞語對所在列對應(yīng)的話題的重要程度。矩陣A中每一列都是一個向量,該向量中每一維都表示一個詞語。當(dāng)一個維度的值為零,則表示該話題中不包含該詞語;如果一個維度的值為0.9,則表示該詞語對于當(dāng)前話題的重要性程度為0.9。這樣,一個話題其實由一系列的帶有權(quán)重的詞語組成,并且這些詞語量化為一個向量,并作為話題字典中的一個元組,字典矩陣中的一列出現(xiàn)。Y新增文本對應(yīng)的向量化文本。向量X是文本與話題之間的線性關(guān)系,該向量是根據(jù)稀疏求解的規(guī)范求解得到的,它的大部分元素為空,顯示時這些元素可以采用空白格顯示,其他元素表示與當(dāng)前話題的歸屬關(guān)系,可以采用不同顏色框進(jìn)表示,比如綠色框表示文本中包含某個話題。當(dāng)向量X中不為零的元素>預(yù)設(shè)閾值時,則說明該文本與最大元素 所代表的話題相關(guān),換言之,該文本屬于該話題。當(dāng)最大元素<預(yù)設(shè)閾值,或者向量X非稀疏,則說明該文本與已有話題之間沒有隸屬關(guān)系,或者該文本與所有已經(jīng)發(fā)現(xiàn)的得話題都不是那么的相似,不應(yīng)該歸屬到任何一個話題。
因為稀疏表示在學(xué)術(shù)上是一個NP-難題,不能通過直接計算或者解方程的方式獲取最優(yōu)解,因此,在這里可以使用L1-范數(shù)最小化的近似求解方式來求解X向量,也就是求解文本與話題的歸屬關(guān)系。L1-范數(shù)是指向量中各個元素絕對值之和,也有個美稱叫“稀疏規(guī)則算子”(Lasso regularization),有理論研究證明,L1-范數(shù)最優(yōu)化的基礎(chǔ)上,求得的向量也滿足稀疏性,向量中的非零元素最多,這樣求解X的方法變換為:
其中,x是要求的向量,而e則是稀疏表示的誤差。這樣做的目的在于求解得到最為相關(guān)的話題,并保證求解過程中的誤差最小。這個求解過程有很多種近似,可以使用最為常用的Lasso-工具包進(jìn)行求解。當(dāng)然其他方法也可以求解得到,在此不做限定。
在求得文本與話題的歸屬關(guān)系后,可以確定文本歸屬于哪個已有話題,進(jìn)而直接標(biāo)注歸屬關(guān)系后輸出,而對于那些未能匹配到已有話題的文本,可以將該文本放入到新增話題文本隊列,等待下一操作過程中挖掘出文本中包含的新增話題。
以下結(jié)合圖2詳細(xì)闡述文本在線處理及話題發(fā)現(xiàn)過程:
如圖2所示,具體流程如下:(1)當(dāng)在線獲取到流式文本后,將其輸入到本框架中的文本表示模型,以將原始文本表示成向量化文本;(2)通過話題發(fā)現(xiàn)模型檢測各向量化文本所描述的話題是否歸屬于當(dāng)前已經(jīng)發(fā)現(xiàn)的話題(即已有話題);(3)在各向量化文本所描述的話題歸屬于當(dāng)前已經(jīng)發(fā)現(xiàn)的話題時,則直接標(biāo)記文本與話題的歸屬關(guān)系并通過文本-話題輸出模塊輸出之;(4)在各向量化文本所描述的話題不歸屬于當(dāng)前已經(jīng)發(fā)現(xiàn)的任何話題時,表示當(dāng)前文本中包含有新增話題,此時可以將該文本加入到新增話題文本隊列中;(5)當(dāng)新增話題文本隊列中的文本數(shù)量達(dá)到一個預(yù)設(shè)閾值時,啟動新話題挖掘模塊挖掘新增話題;(6)通過字典維護(hù)模塊將新發(fā)現(xiàn)的話題添加到當(dāng)前的話題列表中,并自動更新話題字典,使其可以支持新增話題,而不需要人為修改當(dāng)前模型;另外,當(dāng)將當(dāng)前文本加入到新增話題文本隊列中后,且該隊列中的文本數(shù)量不足時,在緩存文本的同時,繼續(xù)在線并從外部接收新增加的文本進(jìn)行處理。
需要說明的是,上述框架支持在線的文本處理,當(dāng)程序啟動后,文本可以隨時來 隨時處理。并且上述話題發(fā)現(xiàn)模型可以隨著新發(fā)現(xiàn)的話題進(jìn)行更改,實現(xiàn)一種自適應(yīng)的話題增加機(jī)制。另外,執(zhí)行程序之前需要初始化上述框架,包括:加載話題發(fā)現(xiàn)模型,如果為第一次運(yùn)行程序,則將話題發(fā)現(xiàn)模型置空,如果非第一次運(yùn)行程序(即熱啟動),也即已有被發(fā)現(xiàn)的話題,則將已有話題加載到話題發(fā)現(xiàn)模型中;清空框架中的隊列內(nèi)的所有緩存;開放文本監(jiān)聽/輸入接口,等待文本輸入。
通過本發(fā)明實施例,在線的框架可以隨時處理互聯(lián)網(wǎng)上獲取的數(shù)據(jù),使系統(tǒng)更具有實時性,流式的處理流程可以更加充分的利用系統(tǒng)資源,加快數(shù)據(jù)的處理速度。
實施例2
根據(jù)本發(fā)明實施例,提供了一種話題處理裝置的裝置實施例。
圖3是根據(jù)本發(fā)明實施例的一種可選的話題處理裝置的示意圖,如圖2所示,該裝置包括:獲取單元302,用于獲取用于描述話題的新增文本;檢測單元304,用于檢測上述新增文本所描述的話題是否是已有話題;確定單元306,用于在檢測結(jié)果為上述新增文本所描述的話題不是上述已有話題的情況下,確定上述新增文本所描述的話題為新增話題。
通過上述實施例,通過使用自適應(yīng)話題發(fā)現(xiàn)技術(shù)來發(fā)現(xiàn)各個信源中出現(xiàn)的話題,可以實現(xiàn)對新話題的發(fā)現(xiàn)和現(xiàn)有話題的跟蹤,達(dá)到提高話題發(fā)現(xiàn)的效率和準(zhǔn)確率的目的。
可選地,上述獲取單元還用于線上獲取上述用于描述話題的新增文本。
通過本發(fā)明實施例,采用線上文本獲取方式,可以克服相關(guān)技術(shù)采用中線下處理方式,不能實時的發(fā)現(xiàn)與跟蹤新話題,以及無法及時有效地了解新話題事件的缺陷,從而更適用于互聯(lián)網(wǎng)信息瞬息萬變的工作場景,能夠及時關(guān)注文本中的話題。
基于上述實施例,可選地,上述獲取單元還用于從多種信源中獲取上述用于描述話題的新增文本。
通過本發(fā)明實施例,可以實現(xiàn)分領(lǐng)域(query)的話題發(fā)現(xiàn)與跟蹤目的,克服相關(guān)技術(shù)中全部信息都來源于新聞報道而導(dǎo)致信源單一,不能有效利用微博、論壇等其他有效資源的缺陷。
可選地,上述裝置還包括:第一添加單元,用于在確定上述新增文本所描述的話題為新增話題之后,將上述新增話題添加到上述已有話題中;或者,第二添加單元,用于先將上述用于描述話題的新增文本存儲在新增話題文本隊列中,在上述新增話題文本隊列中的文本數(shù)量達(dá)到預(yù)設(shè)數(shù)值和/或程序執(zhí)行時間達(dá)到預(yù)設(shè)時長后,再從上述新 增話題文本隊列中提取出相應(yīng)的新增話題,并將提取出來的新增話題添加到上述已有話題中。
與(2)相比,(1)可以及時更新存儲已有話題的話題字典,提高自適應(yīng)發(fā)現(xiàn)和跟蹤熱門話題的能力,但是由于更新過于頻繁,可能導(dǎo)致占用較大的資源開銷;與(1)相比,(2)可以批量將新增話題更新至話題字典中,節(jié)省更新占用的資源開銷,但是其更新比較滯后,發(fā)現(xiàn)和跟蹤話題的能力不足。
可選地,上述裝置還包括:過濾單元,用于在從上述新增話題文本隊列中提取出相應(yīng)的新增話題之后,且將提取出來的新增話題添加到上述已有話題中之前,從提取出來的新增話題中過濾掉噪聲話題。
通過本發(fā)明實施例,可以將過濾后得到的新增文本作為新增話題的挖掘?qū)ο?,從而提高話題挖掘的精準(zhǔn)度。并且基于噪聲過濾方法的主題模型來發(fā)現(xiàn)文本中的新增話題時,使用主題詞集合的方式來表示話題,比使用文本內(nèi)容來表示話題更精準(zhǔn),更容易聚焦到文本中的話題上,而且不考慮文本中的噪聲信息。
基于上述實施例,可選地,上述裝置還包括:查找單元,用于在將上述新增話題添加到上述已有話題中之后,從添加了上述新增話題的已有話題中找出熱門話題,其中,上述熱門話題為在添加了上述新增話題的已有話題中排名達(dá)到指定閾值的話題;輸出單元,用于輸出上述熱門話題。
通過本發(fā)明實施例,使用靈活的熱度計算模型,可以使話題的熱度排序更靈活、更簡單,并且可以根據(jù)不同應(yīng)用場景,調(diào)整不同的熱度計算方法。另外,在發(fā)現(xiàn)文本話題時,可以標(biāo)記文本與話題之間的歸屬關(guān)系并存儲之,同時保存話題字典及話題的相關(guān)信息,這樣可以在輸出熱門話題時,同時輸出支持該熱門話題的文本,以便于用戶查詢。
可選地,上述檢測單元包括:處理模塊,用于對上述新增文本進(jìn)行向量化處理,得到上述新增文本的文本向量;創(chuàng)建模塊,用于創(chuàng)建上述已有話題的話題矩陣,其中,上述話題矩陣的每一列表示一個話題,每一行表示話題中的一個詞語,每個元素表示當(dāng)前詞語在當(dāng)前話題中所占權(quán)重的大小;構(gòu)造模塊,用于根據(jù)上述已有話題的話題矩陣A構(gòu)造上述新增文本的文本向量Y的函數(shù)關(guān)系式Y(jié)=AX;第一確定模塊,用于通過根據(jù)上述X的解確定上述新增文本所描述的話題與上述已有話題之間的隸屬關(guān)系;第二確定模塊,用于根據(jù)上述隸屬關(guān)系確定上述新增文本所描述的話題是否是上述已有話題。
需要說明的是,裝置部分的具體實施方式與方法部分的具體實施方式類似,在此 不再贅述。
上述話題處理裝置包括處理器和存儲器,上述獲取單元、檢測單元、確定單元等均作為程序單元存儲在存儲器中,由處理器執(zhí)行存儲在存儲器中的上述程序單元。
處理器中包含內(nèi)核,由內(nèi)核去存儲器中調(diào)取相應(yīng)的程序單元。內(nèi)核可以設(shè)置一個或以上,通過調(diào)整內(nèi)核參數(shù)解析文本內(nèi)容。
存儲器可能包括計算機(jī)可讀介質(zhì)中的非永久性存儲器,隨機(jī)存取存儲器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲器(ROM)或閃存(flash RAM),存儲器包括至少一個存儲芯片。
本申請還提供了一種計算機(jī)程序產(chǎn)品的實施例,當(dāng)在數(shù)據(jù)處理設(shè)備上執(zhí)行時,適于執(zhí)行初始化有如下方法步驟的程序代碼:獲取用于描述話題的新增文本;檢測新增文本所描述的話題是否是已有話題;在檢測結(jié)果為新增文本所描述的話題不是已有話題的情況下,確定新增文本所描述的話題為新增話題。
上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
在本發(fā)明的上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關(guān)描述。
在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的技術(shù)內(nèi)容,可通過其它的方式實現(xiàn)。其中,以上所描述的裝置實施例僅僅是示意性的,例如所述單元的劃分,可以為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨(dú)物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時,可以存儲在一個計算機(jī)可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì) 上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機(jī)設(shè)備(可為個人計算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、只讀存儲器(ROM,Read-Only Memory)、隨機(jī)存取存儲器(RAM,Random Access Memory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。