姬源,謝冬,周思明,王向東(貴州電網公司 電力調度控制中心,貴州 230039)
?
電力領域語義搜索系統的構建方法①
姬源,謝冬,周思明,王向東
(貴州電網公司 電力調度控制中心,貴州 230039)
摘 要:電力領域不斷累積大量的數據資源,包含相關標準規范、技術文檔、管理文檔、故障解決記錄等等,如何對這些文檔進行快速查詢和智能搜索,對于電網調度與故障恢復具有重要價值.傳統的電力領域搜索系統都是基于關鍵詞來實現,存在查準率和召回率低的問題,無法理解業務語言,無法支持語義推理.本文設計實現一種基于知識圖譜的電力領域語義搜索系統的構建方法,通過智能領域分詞技術對非結構化數據進行語義知識提取,組織并存儲為知識圖譜,基于知識圖譜來實現支持推理的語義搜索.介紹了領域語義搜索系統構建流程,并進行平臺實現,實驗表明該方法查準率和召回率均有較大提升.
關鍵詞:電力; 電網調度; 故障恢復; 知識圖譜; 語義搜索
電力領域不斷累積大量的數據資源,包含相關標準規范、產品和技術文檔、管理文檔、故障解決記錄等等,如何對這些文檔進行快速查詢和智能搜索,對于電力設備運行維護和故障恢復具有重要價值.傳統的搜索系統都是基于關鍵詞來實現,無法支持根據業務語言來查找準確的答案[1].
知識圖譜的概念首先由Google進行實踐并倡導,是下一代搜索引擎技術的核心.傳統的網頁搜索引擎對網頁直接建立索引,提供網頁的關鍵詞檢索.知識圖譜則將所有網頁中的知識提取出來,構成一個圖結構,圖中節點代表實體,邊代表關系.基于知識圖譜可以支持語義搜索,即支持通過關系來進行搜索.比如搜索: “中國的首都”,系統直接返回結果“北京”,而不是返回包含“中國的首都”幾個關鍵字的網頁.這樣的搜索能準確理解用戶的搜索意圖,返回精確的答案,在電網調度中可以發揮重要作用[2].
面向電力領域非結構化信息的搜索技術目前還比較落后,尚不能滿足語義搜索的需要.主要體現在以下三個方面: 其一是自然語言處理技術,包括分詞、詞性標注和實體識別,目前這些技術已在眾多搜索引擎產品中廣泛使用,然而已有的處理技術主要面向全領域,面向電力領域文本的自然語言處理技術還比較匱乏[7],主要是缺少相關詞庫和針對電力領域的算法優化; 其二是本體和知識庫構建技術,這是語義搜索的核心技術,由于本體構建需要大量的時間和精力,目前采用自動化構建本體的技術創建的本體質量不高,中文本體更是少之又少; 其三是查詢語句的語義化理解,目前國內的研究主要集中于通用搜索引擎的研究,并且仍停留在初步研究階段.
因此本文設計實現一種基于知識圖譜的電力領域語義搜索系統,通過智能領域分詞技術對非結構化數據進行分析索引,采用知識圖譜存儲管理領域知識,基于推理引擎實現語義搜索.文章介紹了系統的設計架構和關鍵模塊.
語義搜索系統的核心是知識圖譜的構建.和傳統知識庫采用邏輯理論來進行知識組織不同,知識圖譜系統將知識組成一個圖結構,圖的邊表示實體的語義關系.
知識圖譜的構建是語義搜索的基礎,計算機只有像人一樣具備一定的知識才能更好的理解用戶的意圖.首先,進行知識圖譜的建模,再從遺留下來的關系型數據庫中得到數據,將它轉換成XML文件.然后將XML文件映射成RDF文件,這樣能夠將它們導入到RDF數據存儲系統中.通過領域知識庫維護,語義擴展和語義解析來維護知識庫.知識圖譜的技術實現方案的總體設計如圖1所示.

圖1 系統總體架構
知識庫的建模是將領域知識映射到一個抽象的模型當中去,以課題中的知識建模為例,需要將電力設備維護記錄中所用到的知識抽象出來,映射到知識模型中.在知識采集抽取階段,首先利用從數據庫和文檔中抽取到的詞庫,對抽取對象的非結構化信息進行分詞,識別命名實體.利用知識模型和實體的上下文關系,識別實體的類型.實體抽取出來以后會存儲到實體庫中去.整個知識抽取的過程是一個基于模板的過程,針對不同的格式,和不同的數據源需要不同的知識抽取模板.在語義標簽知識的生成階段,用戶可以定制編輯搜索實體的各個屬性以及各個屬性之間的邏輯規則關系.然后在后臺執行SPARQL,自動的生成語義標簽,方便用戶搜索一些熱門標簽.知識維護包括,允許對現有的類,實體和屬性進行編輯.知識管理維護工具用于向用戶提供領域知識維護的接口.電力領域專家可以通過知識管理工具添加領域知識,維護管理知識庫.
知識圖譜是一種技術理念,并沒有統一的表示形式.不過目前主流的技術是采用本體框架來進行知識的組織管理,采用圖數據庫進行數據的存儲.為了構建知識圖譜,首要的任務是對該領域的核心概念進行建模,形成一個本體的基礎框架,為知識的獲取如導入做好準備.
本體是共享概念模型的明確的形式化規范說明,提供相關領域的知識、概念定義和概念之間的關系,在本文中為對搜索引擎中領域信息的規范說明.根據現有的本體構建方法,結合實際的領域應用,采用Protégé本體構建工具的構建領域本體的過程如下[4,5]:
(1)領域概念和關系以及相關的領域知識
對于某個特定的領域,需要明確該領域的概念和關系.比如概念“變壓器”,按作用可以包含子概念“升壓變壓器”和“降壓變壓器”概念之間的基本關系主要有繼承關系、部分整體、實例、屬性等關系.
(2)類的定義
首先定義各個基本類,通過父類和子類來定義類層次; 然后將所有的細化類進行合并.一個類片段的定義如下:

其中“升壓變壓器“是“變壓器”的一個子類,同時“變壓器 “也是“變電站設備”的一個子類.
(3)屬性的定義和約束
屬性的定義包括對象屬性(ObjectProperty)和數據類型屬性(DatatypeProperty),對象屬性把對象之間進行連接,數據類型屬性將數據與對象類型值關聯.下面兩個具體例子:

(4)實例的創建
以變壓器的創建為例,其實例片段的OWL描述如下:

如圖2所示為創建的電力領域知識圖譜的一個片段.將電力故障恢復記錄,以知識圖的結構表示.這樣就可以通過關系來進行語義搜索.
構建的知識圖譜可以涵蓋電網調度各個方面的知識,知識的來源主要有兩類,即關系數據庫和非關系型文本,后者又包含企業內部的文檔材料和互聯網網頁.下面分別介紹兩類數據的知識獲取方法.

圖2 知識圖譜局部圖
3.1關系型數據庫到RDF數據庫
關系型數據庫可以直接與RDF進行映射,通過自動化的方式轉換為本體數據,映射關系如圖3所示.數據庫中的表對應RDF中的類,表中的每一條記錄對應著RDF中該類下的一個實例,表中的每個字段是該實例的屬性[1].
第一步: 首先,從原有的關系型數據庫中提取有用信息,例如等等.再將這些信息轉換成XML文件.然后會對XML文件中的一些非結構化的信息,例如“故障描述”進行分詞.
第二步: 根據上面設計的本體中的類、實體和屬性,XML文件通過遞歸算法轉換成RDF文件.如果XML文件中的節點有子節點,該節點就會生成對象屬性和實體,然后依次遞歸的遍歷子節點.否者,只是創建一個數據屬性.這個過程是采用的Jena API實現,輸出的RDF文件.
當將關系型數據庫轉換成的RDF文件,可以將其導入到RDF數據庫,即本文采用的知識存儲系統.
3.2非結構化知識提取
還有些知識隱含在非結構化數據中,需要對非結構化的數據進行自然語言處理才能提取到知識.首先需要對非結構化的數據進行分詞,然后再提取相應的實體,類和屬性.采用的方法是基于領域知識和模式的分詞技術[8].
傳統的分詞一般是分為基于詞典的分詞和基于機器學習的分詞方法.基于詞典的分詞準確率過于依賴詞典.對于一些有歧義的詞不能正確的劃分,舉個簡單的例子.例如,有一個句子是“北京天真好”.詞典里有“天真”,這樣句子就被錯誤的劃分成了“北京/天真/好”.這是因為通用詞典是跨領域的,沒有對詞典進行分類,準確率得不到保證.基于機器學習的分詞方法缺少領域知識,準確性波動較大.因此,本文結合領域知識和模式的方式來進行分詞[3].

圖3 關系型數據到RDF模型轉換
首先,需要由用戶指定非結構化短語的模式.例如,對于大量技術人員的工作履歷進行知識提取,識別不同人員的專業經驗,履歷里存在這一的短語“***某一年在工作單位任**職務”.需要將其分為三段“省市/公司名/職務”,這就是提前確定好的模式.得到模式之后,可以借助于現有的領域知識.這個例子的初始情況能得到完整的現有“省市”知識庫,不夠完整的“公司名”和“職務名”的知識庫.根據這三個知識庫就可以將非結構化的信息分成三個詞,獲取的知識也可以反寫到這三個知識庫.

圖4 基于模式和領域知識的分詞技術
3.3知識訪問與維護管理
知識庫是動態更新的,所以允許編輯類、實體和屬性.當一個新的類被創建時,往往需要導入一類實體,而新導入的實體和原有的實體之間的歧義性需要消除.維護領域知識庫的流程如圖5所示,如果新添類中的實體和新類的所有父類的實體相匹配,這個已經存在的實體就會直接添加到這個新類中.如果沒有匹配上,就需要為這個新類創建一個實體.

圖5 知識庫維護
本文介紹的知識圖譜系統存儲于RDF數據庫,因此語義搜索采用SPARQL語言來表達.

比如這個簡單的語句,可以搜索所有變壓器相關的故障記錄,包含各種類型變壓器相關的故障都會展現.SPARQL執行時自動進行了推理,即擴展“變壓器”的概念到其子概念.和關鍵詞搜索不同,語義搜索可以查詢所有語義相近的結果.
對返回的多個結果進行排序,需要語義度量來計算和查詢術語語義上最相關的結果.語義度量是指對不同的概念的語義距離進行計算,得出不同的概念之間的相似度.相似度取值范圍為(0,1),相似度取值越大,相似度越高.
一些基本數據的定義:
Dist(C1,C2):概念C1,C2的語義距離;
depth(C): 概念C在樹的結構層次中的節點深度;
weight(C): 概念C的權值;
Sim(C1,C2): 概念C1,C2的相似度,Sim(C1,C2)(0,1).
概念C的權值計算公式表示為: weight( C)= 1/ Wid ( C)*aDep( C),a≥2


通過計算語義度量值,可以對查詢結果進行排序返回結果.
為了評估構建的電力領域語義搜索系統的效率,在貴州電網公司內部進行部署測試.采樣測試數據包含電網設備、電網工作人員、電網故障恢復記錄、電網站點信息等總記錄數5萬條,相關文檔資料1千篇.分別通過關鍵詞搜索和語義搜索來實現一些典型查詢,進行案例的比較分析.
通過幾個典型的案例來進行分析比較關鍵詞搜索和語義搜索各自適用的場景,并對比二者的搜索的查準率和召回率.查準率指返回的結果中正確結果的占比.召回率指返回的正確結果與實際存在的正確結果的占比.下面給出的8個查詢條件是采用自然語言描述的,在測試時,語義搜索將轉換為RDF的SPARQL語言來查詢,關鍵詞搜索將轉換為包含Like關鍵詞的SQL語句來查詢,采用支持全文搜索的數據庫可以將Like關鍵詞執行全文索引搜索.雖然僅給出了8個測試條件,但是都是有針對性選擇的,同類別的查詢都可以達到類似的效果.
總體來看語義搜索可以滿足更多用戶的搜索需求,且達到更高的查準率,可以結合領域來進行復雜查詢條件的定制分析.舉例說明.問題1,關鍵詞返回5個結果,其中3個為錯誤,材料中出現“雷擊”和“故障”兩次,但相互沒有關系.語義搜索返回6個結果均為正確結果,還查詢出材料中未出現“設備”兩字,但包含“電壓互感器”.問題2,兩個搜索結果一樣,因為所有變壓器名字都包含“變壓器”關鍵詞,所以可以找到5個.如果存在設備父類、子類名字無重復詞語的情況,語義搜索仍然可以正常找到所有實例.問題7 和8,這種類型的搜索關鍵詞無法找到結果,因為可以對所有人員信息提前進行語義分析,添加語義標簽,因此可以支持此類型語義搜索.這種類型關鍵詞搜索無返回結果,因此查找率為100%.

表1 測試查詢條件

圖6 查準率

圖7 召回率
本文針對現有搜索技術在電力領域存在的準確性和召回率問題,提出一種基于知識圖譜的領域語義搜索系統框架,給出電力領域數據資源采集、知識提取、知識圖譜構建,到支持領域語言的語義搜索的整個流程.通過搭建實驗平臺,并采用真實數據進行評估,該框架在搜索的查全率查準率都有較大提高.
構建領域知識圖譜是一項復雜工程,在各環節還存在很多技術挑戰,本文只是給出了一些初步的思路和方法.如果要實現知識高效準確的自動提取,還需要結合自然語言理解、深度學習等相關技術,也是本文未來的研究方向.
參考文獻
1王珊,張俊,彭朝暉,等.基于本體的關系數據庫語義檢索.計算機科學與探索,2007,(1):59–78.
2蘇明明,宋文,基于本體的語義搜索引擎解決方案研究新進展.現代圖書情報技術,2008,(11):24–28.
3ICTCLAS漢語分詞系統.http://ictclas.org/.[2010-07-10].
4RDF model and syntax specification.1999.http://www.w3.org/TR/1999/REC-rdf-syntax-19990222/.
5SPARQL,http://www.w3.org/TR/rdf-sparql-query/.
6陶濤,王棟.電網調度運行管理中存在的問題及解決措施分析.電子技術與軟件工程,2014,21:179.
7吳克河,何霞,李廷順.基于Lucene構建電力企業搜索引擎分析器.電力行業信息化年會,2008.
8車海燕,馮鐵,張家晨,陳偉,李大利.面向中文自然語言文檔的自動知識抽取方法.計算機研究與發展,2013,4:834–842.
Construction Method of Semantic Search System in Power Domain
JI Yuan,XIE Dong,ZHOU Si-Ming,WANG Xiang-Dong
(Guizhou Electric Power Grid Dispatching and Control Center,Guiyang 550002,China)
Abstract:Large amounts of data resources including relevant standards,products and technical documents,document management,fault recover records,etc.in the power domain continue to accumulate.How to fast query and search of these documents has important value for grid scheduling and fault recovery.The traditional search system is based on the key words matching,which cannot find accurate answers for query business terms.This paper designs a semantic search system for power domain.We research on word segmentation technology,knowledge graph and inference engine.The design architecture and key modules of the system are introduced,and the effectiveness of the method is evaluated by experiments.Key words: power; grid schedule; fault recovery; knowledge graph; semantic search
收稿時間:①2015-07-27;收到修改稿時間:2015-10-19