簡俊 王衡 孫正 吳冠霖 蘇欣 陳三君
摘? 要:通過人工智能領(lǐng)域中的自然語言工具將不直觀的專業(yè)海上風(fēng)速預(yù)報數(shù)據(jù)轉(zhuǎn)化為友好易懂的分析文本,提高氣象預(yù)報服務(wù)的時效性和合理性。首先提取中國海洋石油公司南海東部四個海上區(qū)塊的原始預(yù)報數(shù)據(jù),利用神經(jīng)網(wǎng)絡(luò)對數(shù)據(jù)進(jìn)行回歸擬合,得到一條顯示未來風(fēng)速上升下降的單調(diào)區(qū)間、極值點和增減幅度的光滑曲線,再利用自然語言處理基于規(guī)則和基于統(tǒng)計相結(jié)合的方法自動生成預(yù)報文本。該方法可將現(xiàn)行需要人工45—60 分鐘才能完成的預(yù)報報文減少到2—4 分鐘內(nèi)完成,大大提高了海洋氣象預(yù)報的工作效率。
關(guān)鍵詞:海上大風(fēng)預(yù)報;自動生成;自然語言處理;神經(jīng)網(wǎng)絡(luò)擬合
中圖分類號:TP39? ? ?文獻(xiàn)標(biāo)識碼:A
文章編號:2096-1472(2021)-09-09-04
Abstract: This paper proposes to apply Artificial Intelligence-Natural Language tool to transform professional and non-intuitive meteorological data into understandable and user-friendly texts, thus improving the speed and rationality of meteorological services. The raw meteorological forecast data of the CNOOC's four offshore blocks in Eastern South China Sea is retrieved firstly, and the neural network is applied to perform regression fitting on the data, so to generate a smooth curve showing the monotonic interval, extreme points, and increase/decrease range of future wind speed. Then, Natural Language tool is applied to process the forecast texts which are automatically generated based on a combination of rules and statistics. Using the proposed method, the current 45-60 minutes manual forecasting work could be completed within 2-4 minutes, which greatly improves the efficiency of sea weather forecasting.
Keywords: sea wind forecast; automatic generation; natural language processing; neural network fitting
1? ?引言(Introduction)
海洋氣象預(yù)報是針對海上或近岸作業(yè)單位所處的海洋環(huán)境的氣象情報,用以保證海洋作業(yè)的安全及在可能的條件下提高海上作業(yè)的效率。提高航運安全保障技術(shù)中的一個重要內(nèi)容是精細(xì)化的海上風(fēng)力預(yù)報與災(zāi)害性大風(fēng)浪預(yù)警,精細(xì)化既包括面向?qū)ο?,也包括?zhǔn)確性和時效性[1]。近年來,海洋經(jīng)濟(jì)的高速發(fā)展對海洋氣象工作的全面融入提出了新的更高的要求,因此基于傳統(tǒng)的天氣學(xué)和統(tǒng)計學(xué)的預(yù)報方法較難適應(yīng)海洋氣象預(yù)報發(fā)展的現(xiàn)狀,當(dāng)前的海洋氣象預(yù)報準(zhǔn)確率和眾多的預(yù)報要素及預(yù)報的內(nèi)容需求越來越依賴于數(shù)值模式技術(shù)的發(fā)展。同樣是基于氣象數(shù)據(jù),傳統(tǒng)人工分析預(yù)報要耗費大量的預(yù)報人力和物力,準(zhǔn)確性和精確性亦有待提高。而在大數(shù)據(jù)時代,使用全球大氣環(huán)流模式產(chǎn)品和人工智能中的自然語言生成算法進(jìn)行氣象水文自動預(yù)測和臺風(fēng)預(yù)報已成為當(dāng)今海洋氣象預(yù)報發(fā)展的需求[2]。
2? ?數(shù)據(jù)處理(Data processing)
2.1? ?氣象水文預(yù)報數(shù)據(jù)及人工分析報文
從歐洲中期天氣預(yù)報中心(European Centre for Medium—Range Weather Forecast, ECMWF)的數(shù)值預(yù)報產(chǎn)品提取中國南海東部四個海上油氣作業(yè)區(qū)塊陸豐、流花、西江、恩平(下文分別用LF、LH、XJ、EP代替)未來10 天的原始預(yù)報數(shù)據(jù),包括起報時間、目標(biāo)時間、預(yù)報提前量、風(fēng)速、風(fēng)向、平均浪高和單次最大浪高等。
在專業(yè)教師的指導(dǎo)下,航海氣象小組成員每天基于上面的預(yù)報數(shù)據(jù)和近期西風(fēng)帶槽脊變化等大尺度大氣環(huán)流形勢進(jìn)行分析,寫出自己的氣象預(yù)報報文,并利用Excel軟件做出風(fēng)浪變化趨勢圖,再把結(jié)果發(fā)給南海東部四個區(qū)塊的海上平臺作業(yè)人員及陸上協(xié)調(diào)管理人員。此工作自2019 年初開始共持續(xù)600余天,每天堅持工作45—60 分鐘生成一份預(yù)報報文,有效地協(xié)助我國相關(guān)企業(yè)安排海上作業(yè)時間窗口,規(guī)避惡劣天氣造成的經(jīng)濟(jì)損失,但在產(chǎn)生較大經(jīng)濟(jì)效益的同時,也耗費了大量人工。
2.2? ?郵件收發(fā)
由于船舶及海洋平臺上的通訊條件有限,通過Inmarsat海事衛(wèi)星通信系統(tǒng)[3]雖然可以接入互聯(lián)網(wǎng),但費用高、帶寬小,管理級人員大多數(shù)時候以收發(fā)電子郵件獲取信息為主,不能像在陸地上那樣比較方便地使用其他網(wǎng)絡(luò)終端[4]。因此從方便用戶及節(jié)省費用角度出發(fā),設(shè)計采用云端服務(wù)及電子郵件交互的方法訪問、接收、處理、發(fā)送各類數(shù)據(jù)信息,即大多數(shù)工作在校園內(nèi)的服務(wù)器上自動進(jìn)行,包括把原始預(yù)報數(shù)據(jù)下載到本地,通過編程語言處理后,再將最終報文結(jié)果發(fā)給海上用戶等,全程無人工干預(yù)。
在服務(wù)器端自動收取郵件最常用的程序工具是POP3[5]協(xié)議和Python語言中的Zmail模塊,經(jīng)過試驗對兩種方法的優(yōu)劣對比如表1所示。
Python標(biāo)準(zhǔn)庫提供了smtp模塊,用于實現(xiàn)SMTP協(xié)議,發(fā)送郵件,但SMTP協(xié)議存在與POP3協(xié)議同樣的問題。而Zmail模塊具有郵件發(fā)送功能,且代碼簡單不易出錯,故郵件收發(fā)皆使用Zmail模塊實現(xiàn)。
2.3? ?熵值法綜合處理多源氣象信息
以2020 年9 月7 日的工作為例,首先對通過Zmail模塊獲取的南海東部LF、LH、XJ、EP四個區(qū)塊2019 年1 月4 日—2020 年9 月6 日的600多封郵件進(jìn)行分析,轉(zhuǎn)化為DataFrame格式,并對當(dāng)天的原始起報數(shù)據(jù)進(jìn)行清洗,刪除異常值和空缺值,得到表2中的數(shù)值。表2中數(shù)據(jù)從左到右分別代表(北京時間)年、月、日、時、風(fēng)速(m/s)、風(fēng)向(度)、平均浪高(m)、單次最大浪高(m),從上到下第二行開始為每隔6 小時步長的預(yù)報結(jié)果。
在信息論中,熵是對不確定性的一種度量。信息量越大,不確定性就越小,熵也就越小;信息量越小,不確定性越大,熵也越大。根據(jù)熵的特性,可以通過計算熵值來判斷一個事件的隨機性及無序程度,也可以用熵值來判斷某個指標(biāo)的離散程度,指標(biāo)的離散程度越大,該指標(biāo)對綜合評價的影響越大[6]。假設(shè)數(shù)據(jù)中有個樣本個指標(biāo),其中表示第個樣本第個指標(biāo)()。熵權(quán)法賦權(quán)步驟如下:
步驟1:通過公式(1)計算出數(shù)據(jù)標(biāo)準(zhǔn)化值。通常應(yīng)用最大最小標(biāo)準(zhǔn)化方法對數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化的操作,將各指標(biāo)由絕對值變?yōu)橄鄬χ登蚁烤V對結(jié)果的影響。
步驟2:通過公式(2)和公式(3)計算出各指標(biāo)的信息熵。
步驟3:通過公式(4)確定各指標(biāo)權(quán)重,根據(jù)信息熵的計算公式計算出各個指標(biāo)的信息熵為,通過信息熵計算各指標(biāo)的權(quán)重。
因此,當(dāng)判斷出海上不同點位的風(fēng)速平均值、方差、中位數(shù)時,熵值法可以依據(jù)這幾個特征把氣象數(shù)據(jù)綜合起來,計算得到四個區(qū)塊(LF、LH、XJ、EP)對應(yīng)的權(quán)重,如表3所示。
2.4? ?神經(jīng)網(wǎng)絡(luò)擬合
嘗試使用隨機森林[7]、神經(jīng)網(wǎng)絡(luò)[8]及支持向量機回歸擬合所得風(fēng)速數(shù)據(jù)。由于支持向量機回歸數(shù)據(jù)過多會泛擬合,隨機森林特征較少,都不適用于該數(shù)據(jù),而神經(jīng)網(wǎng)絡(luò)可以用作小樣本和大樣本,且結(jié)果與特征數(shù)目無關(guān),最終選擇sklearn中神經(jīng)網(wǎng)絡(luò)的MLPRegressor[9](多層感知器)進(jìn)行回歸擬合,激勵函數(shù)使用“Relu”(整流后的線性單位函數(shù)),返回。然后選取最新一封郵件,利用熵值法算出四個海上作業(yè)區(qū)塊9 月7 日到9 月17 日的平均數(shù)據(jù),便于之后的MLPRegressor進(jìn)行處理,得到如圖1所示的南海東部未來10 天風(fēng)速預(yù)報圖(虛線曲線表示熵值法,實線曲線表示神經(jīng)網(wǎng)絡(luò)擬合)。
3? 基于規(guī)則的自然語言文本生成(Rule-based natural language text generation)
3.1? ?基本原理
自然語言有意義的基本單元是詞,按照一定的句法規(guī)則將詞組織在一起就成為句子,再由句子組成段落,由段落構(gòu)成篇章。自然語言處理的基礎(chǔ)研究主要包括詞法分析、句法分析、語義分析、語用語境與篇章分析等。
自然語言生成(Natural Language Generation, NLG)是自然語言處理領(lǐng)域一個重要的組成部分,實現(xiàn)高質(zhì)量的自然語言生成也是人工智能邁向認(rèn)知智能的重要標(biāo)志。作為人工智能和計算語言學(xué)的子領(lǐng)域,自然語言生成從抽象的概念層次開始來生成文本[10]。按照輸入信息的類型劃分,自然語言生成可以分為三類:文本到文本生成、數(shù)據(jù)到文本生成和圖像到文本生成[11]。
3.2? ?中文分詞技術(shù)
隨著NLG技術(shù)的日益成熟,開源實現(xiàn)的分析工具越來越多,如Ansj、盤古分詞等。分詞工具選擇了基于規(guī)則和基于統(tǒng)計的Jieba分詞用于分詞和關(guān)鍵詞提取[12]。Jieba分詞提供了精確模式、全模式和搜索引擎模式三種分詞模式,例如Sample=‘根據(jù)最新氣象數(shù)據(jù)顯示,南海東部各平臺風(fēng)力等級波動不大!運行結(jié)果如下:
全模式:根據(jù)/最新/新氣象/氣象/數(shù)據(jù)/顯示/,/南海/
海東/東部/各/平臺/臺風(fēng)/風(fēng)力/等級/波動/不大/!
精確模式:根據(jù)/最新/氣象/數(shù)據(jù)/顯示/,/南海/東部/
各/平臺/風(fēng)力/等級/波動/不/大/!
搜索引擎模式:根據(jù)/最新/氣象/數(shù)據(jù)/顯示/,/南海/東部/各/平臺/風(fēng)力/等級/波動/不/大/!
3.3? ?關(guān)鍵詞提取
關(guān)鍵詞是代表文章重要內(nèi)容的一組詞,將已經(jīng)向南海海上作業(yè)平臺發(fā)送的600多份由氣象小組成員編輯的氣象分析報文作為語料庫,提取出10 個關(guān)鍵詞。關(guān)鍵詞提取算法步驟為:加載數(shù)據(jù)集→加載停用詞表→數(shù)據(jù)集分詞→過濾干擾詞→訓(xùn)練算法[13]。關(guān)鍵詞提取算法常用的有TF-IDF、TextRank、LSI和LDA四種,分別對四種算法進(jìn)行訓(xùn)練,結(jié)果如下:
TF-IDF模型結(jié)果:
氣象/風(fēng)力/平臺/冷空氣/逐漸/迅速/西南/臺風(fēng)/趨勢/風(fēng)速/
TextRank模型結(jié)果:
風(fēng)力/氣象/平臺/臺風(fēng)/風(fēng)速/增大/逐漸/中心/西南/增強/
LSI模型結(jié)果:
陣風(fēng)/臺風(fēng)/風(fēng)力/平臺/海區(qū)/天氣/風(fēng)速/迅速/南海/陣雨/
LDA模型結(jié)果:
隨后/最大風(fēng)速/季風(fēng)/海浪/條件/逐漸/氣壓/百帕/速度/陣風(fēng)/
3.4? ?整體規(guī)則
根據(jù)人工氣象預(yù)報文本格式,結(jié)合語料庫提取的關(guān)鍵詞制定預(yù)報文本模板。以熵值法曲線表示未來10 天風(fēng)速總體增降趨勢,以神經(jīng)網(wǎng)絡(luò)擬合曲線表示單調(diào)區(qū)間、極值點。標(biāo)注7 級及以上大風(fēng)為特殊點,需要特別關(guān)注,6 級及6 級以下風(fēng)力僅一般性關(guān)注。氣象預(yù)報文本生成流程如圖2所示。
3.5? ?文本生成
根據(jù)以上規(guī)則生成的南海東部LF、LH、XJ、EP各區(qū)塊在2020 年9 月7 日生成的未來10 天內(nèi)(最遠(yuǎn)覆蓋到17 日)的預(yù)報文本如下:
“根據(jù)最新氣象數(shù)據(jù)顯示,未來10 天南海東部各區(qū)塊風(fēng)速有減弱的趨勢,最大風(fēng)力5 級,在8 日達(dá)到最大風(fēng)速8.56 m/s。各區(qū)塊風(fēng)力等級都在6 級以下且波動較小,無7 級大風(fēng),有利于海上平臺作業(yè)。
請關(guān)注最新氣象預(yù)報!”
最后,利用Zmail模塊將自動生成的氣象預(yù)報文本通過電子郵件自動發(fā)送到南海東部的LF、LH、XJ、EP各平臺應(yīng)急管理負(fù)責(zé)人。經(jīng)檢驗,全部工作可以在2—4 分鐘內(nèi)自動完成。
4? ?結(jié)論(Conclusion)
人工智能-自然語言生成工具已經(jīng)廣泛地應(yīng)用到各行各業(yè),產(chǎn)生了很大效益,氣象報文的生成也不例外。從手工處理氣象數(shù)據(jù)到預(yù)報文本的自動生成,具有很大的研究意義,同時實用性很強。目前該方法還有一些明顯不足,如對四個區(qū)塊只給出統(tǒng)一的報文文本及變化曲線,語言略生硬,偶爾出現(xiàn)遺漏或過度警報的問題,仍需要人工檢查和糾正等。未來應(yīng)當(dāng)更新完善氣象語料庫,制定愈加人性化的文本生成規(guī)則,為提高海上氣象預(yù)報技巧和效率做出貢獻(xiàn)。
參考文獻(xiàn)(References)
[1] 丁建軍,羅兵,趙光平,等.精細(xì)化預(yù)報訂正平臺設(shè)計[J].氣象,2008(11):89-95.
[2] 簡俊,WEBSTER P J,朱大海.一種定量化的海面定點風(fēng)速自動預(yù)報系統(tǒng)[J].航海技術(shù),2012(05):9-11.
[3] 駱樂,包少彬,高恒偉,等.寬帶海事衛(wèi)星通信系統(tǒng)的技術(shù)分析[J].集成電路應(yīng)用,2021,38(02):128-129.
[4] 徐丹.基于衛(wèi)星網(wǎng)絡(luò)的海事郵件通信系統(tǒng)架構(gòu)設(shè)計[J].數(shù)字通信世界,2019(07):4-7.
[5] BELING H. Python使用POP3獲取郵件信息[EB/OL].(2020-01-01)[2021-06-19]. https://blog.csdn.net/Beking17113/article/details/103797133.
[6] 王卓,高叢.基于信息論的熵值法的算法改進(jìn)——以陜西省環(huán)境規(guī)制強度評價為例[J].西安石油大學(xué)學(xué)報(社會科學(xué)版),2016,25(01):22-26.
[7] PATIL D, RAJ R, SHINGADE P, et al. Feature selection and classification employing hybrid ant colony optimization/random forest methodology[J]. Combinatorial Chemistry & High Throughput Screening, 2009, 12(5):507-513.
[8] 呂硯山,趙正琦.BP神經(jīng)網(wǎng)絡(luò)的優(yōu)化及應(yīng)用研究[J].北京化工大學(xué)學(xué)報(自然科學(xué)版),2001(01):67-69.
[9] GIULIANO A. Using phidelta diagrams to discover relevant patterns in multilayer perceptrons[J]. Scientific Reports, 2020, 10(1):21334-21334.
[10] REITER E. Building natural-language generation systems[J]. Computational Lingus, 1996, 27(2):298-300.
[11] 李雪晴,王石,王朱君,等.自然語言生成綜述[J].計算機應(yīng)用,2021,41(05):1227-1235.
[12] 余洋.基于關(guān)鍵詞的自動短文生成[D].武漢:華中師范大學(xué),2020.
[13] 涂銘,劉祥,劉樹春,等.Python自然語言處理實戰(zhàn):核心技術(shù)與算法[M].北京:機械工業(yè)出版社,2018:53-55.
作者簡介:
簡? ? ?。?976-),男,博士,副教授.研究領(lǐng)域:海洋氣象災(zāi)害預(yù)報,安全與保障.
王? ? 衡(1993-),男,碩士生.研究領(lǐng)域:海上風(fēng)浪趨勢預(yù)報.
孫? ? 正(1998-),男,碩士生.研究領(lǐng)域:風(fēng)浪信息自動讀取.
吳冠霖(1999-),男,本科生.研究領(lǐng)域:自然語言生成.
蘇? ? 欣(2000-),女,本科生.研究領(lǐng)域:交通信息安全.
陳三君(1983-),男,本科,高級工程師.研究領(lǐng)域:海洋石油海上生產(chǎn)與應(yīng)急管理.