基於中文自然語言理解的農業資訊自動回答系統論文
摘 要:隨著資訊社會、知識經濟的到來,傳統的被動式知識傳授已逐步讓位於主動式知識探究。本系統主要從農業的資訊角度出發,採用中文自然語言處理技術,建立知識庫和自動分詞,進行語言理解,這樣一方面完成對使用者提問的理解;另一方面完成正確答案的生成,使農民能夠及時得到自己想要的資訊,更快捷的處理疑問,使其真正實現農業資訊化。
關鍵詞: 自然語言理解;自動回答;知識庫;自動分詞;語言理解
自然語言理解(natural language understanding,NLU),又稱自然語言處理(natural language processing, NLP),人工智慧研究的重要內容之一。自然語言理解,是指計算機對自然語言的音,形,義等資訊進行處理,即對字,詞,句子和篇章的輸入,輸出,識別,分析,理解,生成等操作和加工。就是利用電子計算機來理解自然語言,使計算機懂得人的語言,讓計算機在人的語言的指揮下,進行某些“智慧”活動。
自然語言理解是一門新興的邊緣學科,內容涉及語言學、心理學、邏輯學、聲學、數學和計算機科學,而以語言學為基礎。自然語言理解的研究,綜合應用了現代語音學、音系學語法學、語義學、語用學的知識,同時也向現代語言學提出了一系列的問題和要求。這門學科也透過長期的研究,已經形成了一整套的理論和方法,使我們加深了人類語言現象的理解,並且能解決在自然語言的應用中遇到的許多實際問題。
中文資訊處理
1. 領域知識庫構建,中文自動分詞
領域知識庫是用來儲存領域專家提供的專門知識的集合體。這種專門知識即包括領域物件的原理性知識,如有關物件的概念、事實、定理、方程、方法、模型、實驗、和操作等。一般或存在於書本或文獻中,大多數有確定的數學模型;也包括專家解決複雜的不良結果問題時得到的經驗等啟發性知識。
領域知識庫是基於知識的系統的核心部件,知識庫中的知識數量和質量直接決定著系統性能和效率。
構建領域知識庫。知識是智慧的基礎,為了使計算機具有智慧,使它能模擬人類的智慧行為,就必須使它具有知識,但是需要把人類擁有的知識採用適當的模式表示出來,才能儲存到計算機中去,這就是知識表示要解決的問題。知識表示是對知識的一種描述,或者說是一組約定,是一種計算機可以接受的、用於描述知識的資料結構,對知識進行表示就是把知識表示成便於計算機儲存和利用的某種資料結構,知識表示方法又稱為知識表示技術,其表示形式稱為知識表示模式。
目前使用較多的只是表示方法有:一階謂詞邏輯表示法,產生式表示法,框架表示法,語義網路表示法,面向物件表示法。
一個完整的知識庫非常龐大,不僅需要精密的框架設計還要錄入海量的詞彙資料,甚至還有一次多義、多詞同義等特殊情況。知識庫中需要一個詞彙集合來存放已知的詞彙資訊。在資料庫中建立詞彙表,各欄位如下:編號(id)表示本條詞語在資料庫中的編號。為整數類形,自動遞增且為主鍵,必填欄位。詞語(word)表示詞彙本身,為字元型別,必填欄位,詞性(partos)表示詞彙的詞性,為字元型別,必填欄位。近義詞(similar)表示詞彙的相近詞彙,為字元型別,可選欄位,詞義(acceptation)表示詞彙的詞義,字元型別,可選欄位。備註(remark)例如:id:1,word:大豆partos:名詞,similar:黃豆。當然基於農業領域的知識庫構建只有詞彙表是不夠的,還要有農業資訊知識庫。以大豆為例,大豆的'基礎知識,大豆的品種介紹,大豆植物學特徵,大豆生物學特徵,大豆病害,大豆蟲害,大豆草害,大豆栽培技術,大豆高產栽培技術,大豆栽培新技術,大豆市場資訊等等。所以要對各種農業資訊進行詳細入庫,並使其更高效查詢。
中文自動分詞(Chinese Word Segmentation)指的是將一個漢字序列切分成一個一個單獨的詞。中文自動分詞是文字挖掘的基礎,對於輸入的一段中文,成功的進行中文自動分詞,可以達到電腦自動識別語句含義的效果。漢語自動分詞的任務,通俗地說,就是要由機器在中文文字中詞與詞之間自動加上空格。
現有的分詞演算法可分為三大類:基於字串匹配的分詞方法、基於理解的分詞方法和基於統計的分詞方法。
(1)基於字串匹配的分詞方法:本質就是基於大規模詞庫的機械分詞方法。
(2)基於理解的分詞方法:基本思想就是在分詞的同時進行句法、語義分析,
利用句法資訊和語義資訊來處理歧義現象。通常包括3個部分:分詞子系統、句法語義子系統、總控部分。
(3) 基於統計的分詞方法:主要是利用詞是穩定的字的組合這一規律,這樣就可以透過記錄字與字相鄰共現的頻率從而利用機率統計的方法給切詞系統提供切分標準。
本系統為自動回答系統,所以要充分理解每一條使用者所提資訊,以上分詞方法作為本系統基礎分詞的方法,在對領域內的名詞用概念從屬樹組織起來,再利用格語法理論建立動詞的靜態知識庫,用靜態事實庫配合概念從屬樹的爬樹過程來完成對切詞結果的語義分析,同時對切詞結果進行歧義排除。
2. 進行語言分析,語言理解的實現
語言雖然表示成一連串的文字元號或者一串聲音流,但其內部實際上是一個層次化的結構,語言的分析和理解過程也應當是一個層次化的過程,一般分為詞法分析、句法分析、和語義分析。詞法分析的主要目的是找出詞彙的各個詞素,從中獲得語言學資訊,漢語中每個字都是一個詞素,但是切分出各個詞就不是那麼容易的。例如,我們研究所有東西,可以是“我們——研究所——有——東西“,也可以是”我們——研究——所有——東西“。句法分析是對句子和短語的結構進行分析,最直接的方法就是模式匹配,如noun+verb+noun,但自然語言有很多變化,一個句子可以表示成((pronoun∨(adj*noun))verb(pronoun∨(adj*noun))
這也可以用狀態轉移圖來表示,稱之為轉移網路(TN,transition network)。語義分析就是透過分析找出詞義、結構意義及其結合意義,從而確定語言所表達的真正含義和概念。語義分析方法主要有謂詞邏輯、語義網路、格語法、概念從屬理論等等。
語言理解的實現,農業資訊的語句結構相對簡單,句子組成遠不如日常用語那麼複雜。農業詞語根據行業特性、構成特點的差異,可以劃分為農業術語、農業語詞、農業用語三個層次。農業術語一般運用於行業典籍,農業語詞較易為行外人士理解,農業用語容易發生分化。其擴散以南北朝同類文獻為起點,到普通文獻的農業語境,然後到普通文獻的非農業語境,經過激烈競爭,部分詞語保留到了後世文獻中。專門詞語和一般詞語可以互相轉化,行業色彩輕重是決定性因素:農業術語演變為一般詞語的難度較大,演變為農業語詞的難度較小,演變為農業用語的難度最大。農業資訊提問句式以農業方面名詞開頭,並大多數以疑問句存在。下面以“大豆子葉上產生赤褐色圓形斑是什麼病,怎樣防治”。
這個句子根據上面的切詞方法,首先字元匹配可以切成“大豆/子葉/上/產生/赤褐色/圓形/斑/是/什麼/病/,/怎樣/防治”.用這種方法會產生歧義,也可以分成“大豆子/葉/上/產生/赤褐色/圓形/斑/是/什麼/病/,/怎樣/防治”。大豆和大豆子在農業上是兩種植物,所以還要進一步對這句話理解,分析其句子成分,找到主語,謂語,賓語。只要能準確分析出句子的每個成分,那麼整句的分析就有了一個良好的基礎。“(大豆子葉上產生赤褐色圓形斑)主語(是)謂語(什麼病)賓語,(怎麼)主語(防治)謂語。首先找到句子謂語(謂語一般由動詞構成的),這樣我們就可以根據分詞到指示表中找到句子中的謂語,在程式中一般掃描謂語前面的為主語,謂語後面的為賓語。找到主語和賓語到知識表中各個詞進行搜尋,搜尋引擎會把搜到的結果進行排列,降低切詞帶來的歧義性,找到使用者提出問題的最佳答案。
3. 語言自動生成。
一個基於中文自然語言理解的農業資訊自動回答系統不僅是理解了提問就算完成,最重要的是對問題的回答。語言生成就是把在計算機內部以某種形式存放的需要交流的資訊,以自然語言的形式表達出來。語言生成是自然語言理解的一個逆過程。一般包括以下兩部分:1、建立一種結構,以表達出需要交流的資訊。2、以適當的詞彙和一定的句法規則,把要交流的資訊以句子形式表達出來。同自然語言理解一樣,語言生成的處理方法有很多種,這不僅由於它們所採用的內部表達結構不同(如採用語義網路或者概念從屬等),而且由於語言生成的目的不同(如有的目的是為了對輸入文章作摘要,有的是為了作為問題回答系統的人-機介面等) 。
本系統首先要建立一種結構,以回答的形式為主,如:主語+”是”+(賓語),如果我們要回答“大豆子葉上產生赤褐色圓形斑是什麼病”這個問題,就要提出主語(大豆子葉上產生赤褐色圓形斑)+謂語(是)+賓語(來自知識庫)。知識庫中有大豆紫斑病(症狀、病原、傳播途徑和發病條件、防治方法)。程式查詢到(大豆子葉上產生赤褐色圓形斑)為大豆紫斑病的症狀裡邊的欄位,程式可得出賓語(大豆紫斑病),同時第二個問題也進行了回答。
在本問題得到完善回答後,系統後臺在程式執行前期需要進行人工稽核,如果問題回答出現偏差需要及時修改,並存入歷史資料庫。如有相同問題出現時,可直接讀取歷史資料庫進行回答。使本系統更加完善,搜尋更高效,回答更準確,更加有利於使用者使用。
結束語
本文設計了一個簡單的基於中文自然語言理解的農業資訊自動回答系統,本系統的核心技術為中文的自然語言理解技術,實現了領域知識庫的建立,中文的自動分詞和進行了語言分析、語言理解的實現,併成功對其所提出問題進行了合理回答。經過簡單的輸入測試,系統初步達到設計目的。能夠滿足一些簡單農業資訊要求。還存在不足之處待以後改進。
(1)擴充知識庫。雖然是農業領域知識庫,但其內容涉及也是十分龐大的,
所以無論在結構上或內容上都要擴充知識庫。
(2)完善分詞演算法。本系統分詞還存在歧義性,還需要長時間的對各種句子測試和改進。
(3)完善語言理解和自動回答。
自然語言的豐富程度遠遠超過這些,如何做到更高階的自動回答系統,使機器語言理解更加智慧,是一個長期且艱鉅的任務。
參考文獻:
[1]馮志偉。 國外主要自然語言理解系統概況 計算機科學 1984(2)
[2]吳 江。 中文自然語言理解技術與智慧檢索 圖書館學研究 2006(3)
[3]尹朝慶, 尹皓。人工智慧與專家系統 中國水利水電出版社 2002
[4]豐博,胡鋼偉,趙克,億珍珍。 一種自反饋漢語切詞系統的研究和實現 計算機技術與發展 2006(5)
[5]王祥濱,趙 克,程培濤,許 威。 基於領域自然語言理解的知識庫管理系統 計算機技術與發展 2009(12)
[6]蔡自興,徐光祐。人工智慧及其應用 清華大學出版社 2003
[7]化振紅。《齊民要術》農業詞語擴散的層次分析 學術論壇 2006(12)
[8]由麗萍 ,範開泰 ,劉開瑛 漢語語義分析模型研究述評 中文資訊學報 :2005(7)