張 帥,魏正英,張育斌,周 瑞
(西安交通大學機械制造系統工程國家重點實驗室,西安 710054)
互聯網時代使農業灌溉知識的來源、數量和形式發生了巨大的變化,而且農業灌溉自身具有特殊的復雜性和模糊性,如何用智能化的手段獲取和處理農業灌溉知識已成為一個十分緊迫的問題。
過去農業灌溉知識的獲取通常是靠農業專家或農業生產者的長期觀察、研究、分析、驗證總結出來,然后通過知識工程師轉化為知識庫,知識工程師與領域專家之間信息交流的不對等導致了傳統知識獲取方式效率較低,因此知識獲取成為決策支持系統研究中公認的瓶頸問題[1]。隨著信息技術的發展,知識獲取方式也不斷發展,Ahmed Rafea等人[2]設計開發了一個自動獲取并驗證農業施肥領域知識庫的系統,王德吉等人[3]基于支持向量機聚類算法構建了面向農業領域的專業搜索引擎,Mannini等人[4]設計開發面向農業的灌溉系統IRRINET,Sacha等人[5]提出了一種基于可視化分析的知識獲取模型。
本文主要研究了農業灌溉領域知識的獲取方式和可視化分析技術,將數據挖掘、可視化分析等技術運用于農業灌溉,利用計算機圖形學和圖像處理技術,借助于交互式用戶界面進行分析觀察、發現和理解信息,發現隱藏在數據和信息背后的知識,同時對獲取的知識進行分析解釋,直觀地理解掌握知識,實現灌溉領域知識的自動獲取。
知識是進行領域問題求解的專家領域知識,將用于領域問題求解的專家知識從某種知識源中總結和抽象出來,轉換為計算機知識庫系統中的知識,這一處理過程就叫知識獲取[6]。
知識獲取的方法可分為手工、半自動和自動知識獲取。手工、半自動知識獲取方法主要是通過訪問領域專家獲取大量專業知識,傳統的專家系統一般依靠這種方式獲取專家知識,難以全面獲得專家知識。自動知識獲取通過領域專家直接同系統進行對話而無需知識工程師的介入,具有自學習功能的系統能夠通過用戶對求解結果的大量反饋信息自動修改和完善知識庫,并能在問題求解過程中自動積累和形成各種有用的知識。
知識獲取一般分為4個步驟[7]:問題識別和特征提取、獲取概念和關系、知識的結構化表示、知識庫的形成,如圖1所示。

圖1 知識獲取步驟Fig.1 Steps of knowledge acquisition
可視化分析是指用于創建圖形、圖像或動畫,以便交流溝通訊息的技術和方法,主要包括數據可視化、信息可視化和知識可視化。數據可視化[8]是將數據以某種視覺形式表現出來,直觀地觀察到數據之間的關系,借助圖形化手段清晰有效地傳達與溝通信息。信息可視化[9]定義為對抽象數據使用計算機支持的、交互的、可視化的表示形式以增強認知能力。知識可視化[10]指可以用來構建、傳達和表示復雜知識的圖形圖像手段,除了傳達事實信息之外,知識可視化的目標還在于傳輸人類的知識,并幫助他人正確地重構、記憶和應用知識。
與數據可視化相比,信息可視化側重于抽象數據集,如非結構化文本,側重于通過可視化圖形呈現數據中隱含的信息和規律,而知識可視化則是通過提供更豐富的知識視覺表征的方式,提高人們之間的知識創造和傳遞[11],三者關系如圖2所示。

圖2 數據、信息和知識可視化關系Fig.2 Relationships of data, information and knowledge visualization
如圖3所示,人們通過模型輸出和可視化圖表發現數據中可能存在的模式,做出適當的假設后提煉獲得知識,基于此知識采取恰當的行為得到新的模型輸出和新的可視化圖表,對模型進行調整,不斷循環驗證,最終獲得知識[5]。可視化分析幫助我們更加直觀地觀察龐大的信息空間,并以此為基礎獲取所需領域知識和支持復雜的決策。

圖3 基于可視化的知識獲取Fig.3 Knowledge acquisition based on visualization
隨著互聯網的高速發展,農業領域的網站也不斷增加,網頁數量也隨之呈幾何數增長,其攜帶的信息不斷更新變化,因此網頁成為農業知識獲取領域中一個重要的資源寶庫。農業領域的網頁內容獲取體現在對網頁攜帶的內容進行有效信息的提取。
網頁頁面的信息屬于半結構化信息,通過網絡爬蟲到指定站點搜索相關的信息,利用網頁語義技術從原本無結構的網絡文本HTML或XML中抽取出特征向量,建立可以表述和替代原始信息的抽象模型,運用計算機技術、人工智能技術形成領域知識庫。如圖4為網頁知識獲取流程圖。

圖4 網頁知識獲取流程圖Fig.4 Flow chart of web knowledge acquisition
本文通過訪問中國節水灌溉網,借助程序代碼從普通網頁上提取結構化的內容,獲取節水灌溉最新技術,主要程序如下:
import urllib2,bs4
url='http://www.jsgg.com.cn/Index/Display.asp?NewsID=10276'
req = urllib2.Request(url)
content = urllib2.urlopen(req).read()
content=bs4.BeautifulSoup(content,from_encoding='GB18030')
title=content.findAll('td',align="center",style="font-size:18px;COLOR:#000066;FONT-WEIGHT:bolder;")
knowledge=content.findAll('span',id='General_Info')
部分解析結果如圖5所示,獲取的知識主題為水稻節水灌溉技術要點,將其保存到知識庫中,不斷自我完善,建立起性能優良、知識完善的知識庫,農業生產者可以根據這些知識提高作物灌溉效率和作物產量。
農業灌溉用水問題是高度復雜非線性問題,受到諸如土壤、氣象等因素的影響,其中氣象因素是確定作物蒸散量的關鍵,準確的氣象預報可以用于指導作物的灌溉,直接為農業灌溉生產服務。
API是一些預先定義的函數,通過API接口無需訪問源碼和理解內部工作機制的細節。本文通過API接口獲取西安市未來七天的氣象信息,主要包括未來一段時期內的陰晴雨雪、最高最低溫度、相對濕度、降水量、風速、風力、降水概率等。首先獲取API密匙,準備python開發和運行環境,安裝urllib2和json,主要程序如下所示:
import json,urllib2
url2='http://apis.baidu.com/heweather/weather/free?city=xian'
req = urllib2.Request(url2)
req.add_header("apikey","17668a3a4401dc9f888de88daf67ac12")
resp = urllib2.urlopen(req)
content = resp.read()
data=json.loads(content)
weather=data['HeWeather data service3.0'][0] ['daily_forecast']
對獲取到的氣象信息進行解析,經過處理加工后保存在數據庫中,通過友好的人機交互界面來顯示,如圖6所示為未來兩天的氣象信息。

圖6 API知識獲取Fig.6 API knowledge acquisition
隨著信息社會的發展,文本信息高速增長,傳統的閱讀理解文本獲取知識方式已經難以勝任,人類從外界獲得的信息約有80%以上來自于視覺系統[12],文本可視化可以幫助人類以可視分析的手段交互地分析海量的文本內容,洞悉文本背后隱藏的知識,在海量的文本中發現和提取知識。
如圖7所示為從txt格式文本中獲取灌溉制度知識,運用基于特征的單文檔自動摘要技術對文本進行壓縮表示而保持原有文本主題,抽取文本的主要結構和信息,獲取文本關鍵詞和摘要,快速高效地獲取文本中灌溉制度知識。

圖7 文本知識獲取Fig.7 Text knowledge acquisition
本文的數據是從中國氣象數據共享服務網獲得的西安市氣象數據,數據包括從2000-2015年的氣象數據。數據包含日期、平均溫度、日最高溫度、日最低溫度、平均相對濕度、日照時長和風速。部分數據列在表1。
圖8為西安市2015年參照作物蒸散量變化趨勢圖和四分位圖,從圖8可以看出,參照作物蒸散量在4-10月變化較大,超出平均值。
圖9為西安市2015年各個氣象參數變化趨勢圖,圖10為運用數據挖掘方法得出的氣象參數重要程度。從圖9可以直觀地看出平均溫度、日最高氣溫和日最低氣溫與參照作物蒸散量的變化規律一致,與圖10相比結果一致,溫度對于參照作物蒸散量具有重要的參考意義,對作物需水量預測有重要的影響。

表1 部分輸入樣本數據Tab.1 Part of the sample data

圖8 ET0數據可視化Fig.8. Data visualization of ET0

圖9 氣象因子可視化Fig.9 Meteorological parameter visualization

圖10 特征權重Fig.10 Feature importances
知識可視化是指應用視覺表征手段促進群體知識的傳播和創新,是知識工程在農業領域的應用方向之一。決策樹是一種廣泛使用的分類器,使用二分類式的if-else條件作為分界條件,可以高效的對未知的數據進行預測。本文通過形如表1中的訓練數據構建決策樹模型預測作物蒸散量,并且對生成的模型進行可視化分析,如圖11為生成的決策樹模型,模型直觀易于理解,可通過進一步表示成If-Then形式,便于計算機編程更新知識庫。

圖11 知識可視化Fig.11 Knowledge visualization
本文通過自動知識獲取方式獲取灌溉領域知識,結合可視化技術生成豐富的圖表和圖像,充分表達文字和數據分析得到的結果,并以更加易于理解和接受的方式展現出來,將可視化技術用于構建知識發現過程,極大地提高了對數據的理解程度,更加準確有效地指導了建模過程。
自動知識獲取不僅可以直接從領域原始信息總學習到知識,還能從系統自身的運行實踐中總結、歸納出新的知識。隨著知識獲取技術研究的日益深入,自動知識獲取正成為決策支持系統獲取知識的強有力工具。計算機沒有人類的創造性思維,而人依賴計算機即時有效地大數據處理能力,可視化技術可以顯示數據或信息的特性,直觀理解和提取知識,從而更好地實現知識的自動獲取。
[1] EA Feigenbaum.Expert systems in the 1980s[R]. State of the Art Report on Machine intelligence,1981.
[2] Ahmed Rafea,Hesham Hassen,Maryam Hazman.Automatic knowledge acquisition tool for irrigation and fertilization expert systems[J]. Expert Systems with Application,2003,24:49-57.
[3] Wang Deji, Li Mincheng, Xiong Fanlun. Web information clustering by personal search engine based on SVM[J]. Asian Journal of Information Technology, 2006,5(3):312-316.
[4] Mannini P, Genovesi R, Letterio T. IRRINET: large scale DSS application for on-farm irrigation scheduling[J]. Procedia Env. Sci., 2013,19:823-829.
[5] 何欽銘,王申康. 機器學習和知識獲取[M]. 杭州:浙江大學出版社,1997:215-287.
[6] Dominik Sacha, Andreas Stoffel, Florian Stoffel, et al. Knowledge generation model for visual analytics[C]∥ IEEE Transactions on Visualization and Computer Graphics, 2014.
[7] Frederick Hayes-Roth,Donald A Waterman Douglas, B Lenat. Building expert system[Z]. Addison-Wesley Publishing Company,Inc.,1983.
[8] Michael Friendly. Milestones in the history of thematic cartography, statistical graphics, and data visualization,2008[Z].
[9] Card SK, Mackinlay JD, Shneiderman B. Readings in information visualization: using vision to think[M]. San Francisco: Morgan-Kaufmann Publishers, 1999.
[10] Eppler M J, Burkard R A. Knowledge visualization, towards a new discipline and its fields of Application, ICA Working Paper#2/2004[R]. Lugano: University of Lugano, 2004.
[11] 趙國慶.知識可視化2004定義的分析與修訂[J].電化教育研究,2009,(3):15-18.
[12] Ren L. Research on interaction techniques in information visualization[D]. Beijing: The Chinese Academy of Sciences,2009.