楊 志 林 峰 胡 牧 孟慶強 鄭浩泉
(南京南瑞集團公司/國網電力科學研究院 南京 210003)
隨著數據應用的廣度和深度的快速發展,能帶來巨大價值的數據分析挖掘得到了越來越多的企業、政府和科研機構的認可和關注[1]。作為數據知識發現的關鍵步驟[2],數據挖掘[3~5]成為了當前的研究熱點之一。文本挖掘[6~7]是數據挖掘的一個重要分支。如今,許多算法已經被提出來解決文本場景中的數據分析。然而,在電力行業故障日志中,存在相關設備多,詞典不統一,主題難以固定等問題。現有的通用的文本挖掘算法切詞不準確,很難找故障主題相關因素。因此,如何實現精確的主題挖掘成為研究熱點之一。
在文本挖掘中,文本數據以半結構化或非結構化的形式存儲在數據庫或文件中。由于隱含的語義信息難以挖掘其價值。目前,許多科研機構和團隊提出了一些有價值的挖掘算法。主要有兩種類型。第一類是文本聚類[8~13]。其中聚類分析[8]是實現文本挖掘的重要方法之一。文獻[9~10]提出了兩種基于加權特征的模糊聚類方法,利用特征權重向量反映內部結構,在監督或無監督學習過程中使用加權特征的距離函數實現數據挖掘。另一種是自動加權特征技術[11~12]。利用k-均值或FCM,特征權重向量對整個數據集顯示各個特征的重要性。此外,文獻[13]提出了結合特征加權度量為軟子空間學習框架的模糊聚類算法。在這些算法中,在特定的場景中效果較好,但由于不同關鍵詞的主題描述能力差異度較大,很難找到通用的特征向量。
另外一類是主題挖掘[14~21]。利用 PLSA(概率語義分析)模型[16~17]進行日志分析,但容易產生其過擬合。最著名的主題模型LDA(Latent Dirichlet Allocation)[17~19]。在該模型中,通過設置適當的參數,可以得到最終的多個主題和主題相關詞分布。同時,在LDA的基礎上,提出了擴展LDA模型(Twitter-LDA[20],Labeled-LDA[21],MB-LDA[15]等)。在這些算法中,可以實現主題挖掘和分析出主題相關的詞。然而,業務專家需要投入很大精力來分析哪些是主題,這些詞是否與主題相關。此外,算法的靈活性低,主題相關的詞不能隨機設定主題。
上述算法雖然可以解決很多文本挖掘問題,但不能滿足電力行業的文本挖掘需求。在電力行業文本挖掘場景中,日志數據存儲在結構化數據庫中,每條日志記錄了電網的運行維護信息(例如設備故障、維護過程、故障分析等)。在故障定位時,需要指定主題詞集合,以此分析出語義相關詞。數據的潛在價值可用于電網規劃、輔助決策等。但是,上述算法無法挖掘出準確的結果。
為了解決上述問題,我們提出了一種基于業務詞典的精準主題挖掘解決方案。該方案可準確分析出主題詞語義相關的詞語集。該算法是在主題挖掘理論的基礎上,利用自然語言語義切詞技術,計算出詞語語義相關影響因子。然后,借助于業務詞典,將準確的語義相關詞返回給業務專家。
該方案的優點主要有
1)利用語義技術搜索主題相關詞。對于給定的主題,使用語義理論,條件概率和業務詞典,準確地找出語義相關的詞。
2)用業務詞典準確地挖掘單詞。在這種情況下,避免了大量無關詞的干擾,降低了從所有的文檔集合中分析語義相關詞的時間和精力。
3)減少與主題有關的文檔/記錄數目。使用主題詞集合,排除不相關的文檔/記錄,減少分析范圍,提高效率。
在場景中給定的主題,主題挖掘目的是分析挖掘出最佳的語義相關詞。由于在實際環境中語義相關詞分布在主題詞所在的語句中,因此可用相關詞和主題的概率進行分析。在文檔/記錄中,不同的主題有不同的語義相關詞。通常,相關詞屬于一個或多個主題如圖1所示。本文將重點討論相同的詞可屬于在不同的主題。在一個語句中,詞A和詞B同時出現,分析其相關度。

圖1 語義相關概率
在文檔集合DS中,存在多個語句S,這些語句描述了一個或多個主題。每個語句均包含多個詞語W。從上圖中可以看出,主題B有多個詞語可以描述。P(a)由多個P(ai)構成。對于主題B,可以用公式P(a|B)來表示語義相關詞和主題的相關程度。
語義相關度的集合為

上述公式中,Oi表示每個詞語和主題詞的相關度,其數據計算公式為

上述公式中,P(AiB)表示B和Ai同時在文檔集中出現的概率。P(B)表示主題B出現的概率。P(AiB)表示在主題B出現的前提下,Ai出現的概率。
語義相關度越高,則Oi就越大。如果詞語和主題詞不相關,則Oi為零。
對于指定的主題詞,可以從上面的算法獲得許多單詞。每個詞都有不同的貢獻度。所有單詞的貢獻度之和為100%。并不是所有的詞語都對日志分析有價值,因此可以設定一個閾值,這樣僅分析較少的相關度高的詞語,同時也不會損失數據隱藏的價值。本文中采用比例指數來描述。

上述公式中,numP表示滿足設定閾值的相關度詞的數量,numA表示所有相關詞的數量。該公式表示從所有相關詞中選取詞和總數的比例。
比例是定性分析指標。指標不能表明最終結果好壞程度。需要結合實際業務情況,對其進行評估。
該方案基本原則是不改變原始數據,盡量減少人為因素干擾,最大限度地挖掘數據的潛在價值。按照逐步遞進策略,方案共分三步:預處理、熱詞分析、主題詞分析。在預處理環節中一方面對文檔/記錄集進行異常數據的處理,另外一方面針對業務場景創建業務詞典。在熱詞分析環節中借助于業務詞典,利用自然語言切詞技術將文本數據拆分成詞語,同時對拆分結果進行無效詞處理,利用熱詞分析技術展現詞語熱度,并選取熱度最高的詞語作為主題詞集。在主題詞分析環節,在熱詞展現中選取關注熱詞作為主題詞集,然后利用語義相關度分析得到每個詞的影響因子指標,最后利用網絡圖顯示詞和主題詞的關聯程度。

圖2 方案過程
方案詳細過程如下:
預處理環節首先對文檔/記錄集進行無效詞處理,在保證不改變有效數據的前提下,對錯、漏、空、重復等異常數據進行處理。在處理的過程中,處理策略要結合業務場景,不能均使用刪除方法來處理。如果實際情況就是空值或者重復值,則該值是正常值,不能對其進行異常值處理。
其次,針對業務場景特點創建業務詞典。該業務詞典主要用于保證專業術語作為完整詞語被識別,沒有被拆分成多個詞語,這樣才能分析出數據潛在的最大數據價值。創建過程是由業務專家根據行業、場景,將特殊行業術語、場景術語以及一些約定俗成的術語創建成業務詞典。包含關系如圖3所示。

圖3 業務詞典構成
上圖表示業務詞典和行業術語、約定俗成術語和其他之間的關系。行業術語指行業內通用的設備、操作、事件等內容的一些名稱。場景術語指某類場景專用的一些設備、事件等的一些名詞。約定俗成術語指某地區對于某些設備名稱、操作過程等內容的簡稱。其他指行業外與場景相關設備或物體的一些名稱。
首先基于業務詞典,采用自然語言切詞技術對文檔/記錄集進行切詞,然后對切詞結果集進行熱詞分析,分析出熱度最高的詞語作為主題詞。

圖4 熱詞分析過程
在利用自然語言切詞技術進行切詞時,由于不同行業有不同的技術術語。在同一行業中,一些具體的場景在不同的情況下也有不同的術語。這些術語由于不包含在通用字典中,無法識別,隱藏在文檔中的有效信息將丟失,無法找到一些數據值。所以,為了避免有用信息的丟失,缺陷可以彌補的階段。本方案借助于業務詞典,在切詞過程中盡可能保留業務詞語。分詞環節是將文檔/記錄集切分詞語集,然后過濾出虛詞、無效數字、特殊符號等無意義詞語。保留與業務場景有關的詞語集。該詞語集是精準挖掘數據潛在價值的基礎。整體過程如下:
熱詞分析可分析出文檔/記錄集中出現頻率最高的詞語,這些詞語表明受關注程度最高,從中選取某些熱詞作為主題集。
因為詞語和主題詞出現在同一文檔/記錄中,所以詞語從不同的方面或角度描述主題詞。由于描述的角度和程度有差異,不同詞語和主題的關聯程度不同。相關性越高,詞和主題越緊密。在這種情況下,可以得到準確的關聯度。相關詞語在一定程度上反映了用戶的關注點。在本文中,影響因子是用來描述的關系。用詞頻和主題頻率的比值說明相關指標。
影響因子計算公式如下:

上述公式中,R表示相關度。WF表示詞語出現頻率。TF表示主題詞出現的頻率。
所有詞語計算影響因子后,形成一個數據矩陣,它描述了每個單詞和主題的相關性。
在數據矩陣的基礎上,利用網絡圖等方式顯示數據矩陣,將結果直觀地呈現給用戶。
方案分析:
1)通過對指定詞進行主題詞分析,用戶可以獲得與主題相關的詞。在這種情況下,主題和相關詞語之間的關系被準確地顯示出來。由于分析指定主題詞集合的相關詞,避免了無關主題詞相關詞的干擾。
2)方案中,通過熱詞分析指定主題詞集。因此,可以避免人為指定一些不具有代表性的主題詞,節省工作量,提高效率。
3)利用業務字典,保留了具體業務術語。可準確體現業務場景,分析主題詞和相關詞。在這種情況下,可重點分析與主題詞相關的詞語集。
4)利用影響因子公式,分析得到主題詞關聯度,可定量分析主題詞和相關詞之間的關聯程度,結果能有效支撐輔助決策。
上述解決方案已應用到電力生產管理系統(PMS)中。
作為SG186工程的重要應用之一的PMS是一個龐大而復雜的應用程序,是當今最先進的電力生產管理系統。系統數據量大,包括高中低壓在內的數據總量超過1500億條。在這些數據中,日志數據占其中較大比例,日志數據包括如電網操作、故障信息等數據。日志數據潛在的價值有待于進一步發掘。因此,選取PMS系統日志數據來驗證上述解決方案。
在PMS系統中選取某個省市的故障日志數據。這些數據描述了主變壓器、線路、電壓互感器、母線等設備資產的故障和缺陷。同時日志也描述了某一類故障的相關設備、現象、過程、后果和故障分析。從數據中,我們可以分析的主要因素和次要因素或者直接或間接原因。
基于上述數據,在R語言環境中,驗證上述解決方案。主要分析過程如下。
故障日志存儲在結構化數據庫中。由于許多字段與本方案無關,因此,選擇三個字段來分析算法。這三個字段如下:

表1 分析字段
在選定的日志數據中,異常值數據有空值和重復值兩類,處置策略如下:
1)對于空值,因為空值對分析結果沒有影響。所以,刪除掉所有的空值記錄。
2)對于重復值,由于重復值是真實反映現場故障情況的,故不能刪除,需要保留。
在故障分析場景中,將電力行業術語、故障場景術語、約定俗稱的術語和其他一些術語有業務專家創建成業務詞典。部分詞典數據如下:
{“接地”,“被淹”,“爆熔”,“跳閘”,“單刀漲碎”,“車輛”,“令克”,“線夾斷裂”,“雷擊”,“電纜”,“植物”,“風”,“樹枝”,“絕緣瓷瓶損壞”,“設備老化”,“松鼠”,“雨水”,…}。
利用自然語言切詞技術對記錄集進行切詞,在分詞結果中,存在許多無效詞,比如形式詞、單個字母和數字等,如下列所示。
{一,從,零,避,國,查,蒼,串,A,C,B,Q,30,23,64,5,7,17,…}。
處置策略是刪除這些無效詞,保留有效詞語,這樣便于提高分析效率。
如果沒有業務詞典,業務詞語被打散,其隱藏的信息被破壞了,不能發現其潛在價值。但由于分詞后有大量的單詞,其中大部分詞語出現頻率較低,對熱詞分析結果沒有影響,且詞語數據量過大直接影響熱詞分析效率。因此,選擇一些頻率較高的詞來表示詞頻圖。在此場景中選取了排名前150的單詞(150名之后的詞語影響很小)。為了體現業務詞典的價值,將在切詞階段是否使用業務的熱詞分析效果展現出來,對比圖如圖5所示。

圖5 熱詞對比圖
圖5 (a)表示沒有業務詞典的情況的切詞結果的熱詞分析,圖5(b)是基于業務詞典的切詞結果的熱詞分析。圖5(a)無法直觀展現故障相關詞語,不能判斷哪些情況出現的概率高低。從圖5(b)中可以直觀看出與場景相關的詞頻率情況。詞語顯示越大表示該詞出現的頻率越高,收到的關注度越高,從中可以得出主要因素為{開關跳閘,相故障,雷擊}。
用上述式(4),逐一對所涉及的詞進行分析。可以計算出每個詞的影響因子。設定的閾值為90%。借助評價準則公式,我們發現前10名的比例大于90%。因此,前10名選擇分析。例如,本課題開關跳閘結果如下。

圖6 開關跳閘主題相關詞關聯度
從圖中,我們可以看到,“重合不成”詞語頻率最接近的話題開關跳閘。基于分析結果,用igraph包算法顯示結果。其結果如下。
在圖中,較大的圓圈是主題,較小的圓圈是相關詞。大圈與小圓之間的連接線表示相關詞和主題的關系。連線的寬度表示關聯程度。

圖7 主題詞和相關詞的網絡圖
業務專業人員可以從中分析真正的影響因素。例如,通過分析與開關跳閘主題相關的幾個詞,可以得到幾條線路的故障均是由開關跳閘引發的。
驗證分析:
1)利用主題詞分析可以得到與主題詞和相關詞之間的關聯關系。借助于這種關系,業務人員可以準確分析主要因素和次要因素。
2)熱詞分析過程中選取出現頻率較高的前N項進行分析。可在保證分析結果準確的基礎上提高分析效率。
3)基于業務詞典的切詞。利用業務詞典,可以在切詞結果中保留更多的業務術語和潛在信息。專業人士可以基于此準確地分析相關詞。
4)利用影響因子指標,將定性分析轉化為定量分析。借助于這些詞語的影響因子,可以準確地描述相關度。
由于通用分析算法從日志數據中很難準確地分析出主題相關詞,本文提出了基于業務字典的精確主題挖掘解決方案。在該方案中,首先,預處理原始記錄集,保留有效的記錄集。借助于業務詞典,文檔被切詞成多個詞語,然后,刪除無效的單詞。最后,利用影響因子,可以計算出每個單詞的相關性。定性分析轉化為定量分析。該方案已應用到PMS。驗證結果表明,可以準確地分析主題的主要相關因素。
雖然該算法能夠很好地解決日志數據的分析問題,但在創建業務字典時,需要業務專家。業務詞典的質量受制于業務專家的能力。此外,如何在分布式環境中提高算法的效率是今后的研究方向之一。