• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      Java課程智能問答系統(tǒng)設(shè)計與實現(xiàn)

      2018-02-13 01:38張華李超
      計算機(jī)時代 2018年12期
      關(guān)鍵詞:自然語言處理

      張華 李超

      摘? 要: 針對Java課程課堂答疑不能及時響應(yīng)的問題,提出了課程智能問答系統(tǒng)模型。通過自然語言處理、信息關(guān)聯(lián)、信息檢索等技術(shù)實現(xiàn)了答疑問題的分析、轉(zhuǎn)換與處理,并通過實例驗證了模型的可行性。

      關(guān)鍵詞: Java課程; 答疑; 智能問答系統(tǒng); 自然語言處理

      中圖分類號:TP311? ? ? ? ? 文獻(xiàn)標(biāo)志碼:A? ? ? ? ?文章編號:1006-8228(2018)12-12-04

      Abstract: Aiming at the problem that the Q&A in the Java course can't respond in time, the model of intelligent question & answer system is proposed. The analysis, transformation and processing of the Q&A questions are realized through natural language processing, information correlation and information retrieval, and the feasibility of the model is verified by an example.

      Key words: Java Course; answer questions; intelligent question & answer system; natural language processing

      0 引言

      近年,云計算、大數(shù)據(jù)等高新技術(shù)也有了重大突破[1]。相比之下,Java課程答疑還是遵循傳統(tǒng)模式,即老師在上課時給出知識點及一些前沿動態(tài),而學(xué)生的大部分問題都是在課下產(chǎn)生的,又不便隨時聯(lián)系老師,所以學(xué)生的疑問往往得不到及時解答。

      本文提出一個Java課程智能問答系統(tǒng),實現(xiàn)了問題分析、問題轉(zhuǎn)化、信息檢索、答案返回四個子模塊。問題的答案在系統(tǒng)數(shù)據(jù)庫中檢索或動態(tài)解析搜索引擎頁面可以獲取,并且針對不同類別的問題,設(shè)計不同答案格式,整個問答交互的響應(yīng)時間不超過1s。

      1 智能問答系統(tǒng)現(xiàn)狀

      在自然語言處理技術(shù)的發(fā)展過程中,國外開發(fā)了一些比較成熟的英文智能問答系統(tǒng),比如Start、AskJeeves自然語言檢索系統(tǒng)、AnswerBus系統(tǒng)等[2]。國內(nèi)對于智能問答系統(tǒng)也有很多地研究并應(yīng)用到實際中,國內(nèi)普遍的實現(xiàn)方法可以分為三類。第一類是將用戶輸入的問題構(gòu)建一個同類問題集合,然后通過計算句子語義的相似度,在建立的問題集合中找到相似的問題,最后將該問題的答案返回給用戶;第二類是將問題和答案的關(guān)聯(lián)預(yù)先設(shè)定在知識庫中,通過對問題關(guān)鍵字的匹配,直接返回該問題的答案給用戶;第三類是通過對問題進(jìn)行分詞處理,在分詞結(jié)果中提取問題關(guān)鍵字,通過關(guān)鍵字再結(jié)合全文檢索引擎匹配結(jié)果返回給用戶。這三類方法主要用在開放域智能問答系統(tǒng),但對于限制域的智能問答系統(tǒng)還不能做到精準(zhǔn)返回結(jié)果[3]。

      2 需求分析

      通過對該Java課程智能問答系統(tǒng)的研究內(nèi)容進(jìn)行分析,結(jié)合目前國內(nèi)、外的技術(shù)發(fā)展的實際現(xiàn)狀,系統(tǒng)的功能性需求如下:

      ⑴ 用戶可以通過網(wǎng)頁以自然語言語句提問,并返回結(jié)果,整個過程在會話式的人機(jī)交互界面完成;

      ⑵ 在進(jìn)行結(jié)果檢索時,能夠?qū)崟r在網(wǎng)絡(luò)上獲取結(jié)果返回;

      ⑶ 在返回結(jié)果時,多條結(jié)果只顯示一條,其余信息以模態(tài)對話框的方式顯示,并且提供翻頁功能。

      3 體系結(jié)構(gòu)設(shè)計

      本系統(tǒng)采用MVC模式開發(fā),在服務(wù)器端搭建ICTCLAS運(yùn)行環(huán)境[4]。處理用戶提交的自然語言的問句,然后返回問題對應(yīng)的答案。服務(wù)器端后臺另外一個功能就是自動導(dǎo)入數(shù)據(jù)文件,然后通過實時分析維護(hù)問答數(shù)據(jù)庫,在自動處理數(shù)據(jù)的基礎(chǔ)上提供手動維護(hù)功能,系統(tǒng)體系結(jié)構(gòu)如圖1所示。

      本系統(tǒng)體系結(jié)構(gòu)主要有數(shù)據(jù)采集層、文件管理層、數(shù)據(jù)處理層、數(shù)據(jù)持久層、數(shù)據(jù)交換層、數(shù)據(jù)顯示層。數(shù)據(jù)采集層主要通過互聯(lián)網(wǎng)采集Java問答數(shù)據(jù),包括網(wǎng)頁、論壇、博客、論文等信息,并將這些信息整理后按特定結(jié)構(gòu)打包成txt文件;文件管理層主要負(fù)責(zé)將數(shù)據(jù)從采集平臺轉(zhuǎn)移到數(shù)據(jù)處理層等待處理;數(shù)據(jù)處理層則對Java問答數(shù)據(jù)進(jìn)行識別、關(guān)聯(lián)、特征提取后,將數(shù)據(jù)存儲在問答數(shù)據(jù)庫中;數(shù)據(jù)持久層是整個問答系統(tǒng)知識庫模型。數(shù)據(jù)交互層分為數(shù)據(jù)交換格式和數(shù)據(jù)傳輸協(xié)議,本系統(tǒng)數(shù)據(jù)交換格式使用JSON,數(shù)據(jù)傳輸協(xié)議采用TCP/IP;數(shù)據(jù)顯示層為用戶提供操作界面,一方面是用戶輸入問題語句的入口,另一方面則是問答服務(wù)返回結(jié)果的出口。

      4 功能結(jié)構(gòu)設(shè)計

      系統(tǒng)功能主要實現(xiàn)自動問答,而在限制域的自動問答系統(tǒng)的應(yīng)用中,主要包含問題分析、信息檢索、答案抽取、用戶點評四個步驟,本系統(tǒng)在實際需求背景下對常規(guī)問答系統(tǒng)中的自動問答功能模塊進(jìn)行重新設(shè)計,主要包括問題分析、問題轉(zhuǎn)化、信息檢索、答案返回四個模塊。系統(tǒng)功能結(jié)構(gòu)如圖2所示。

      從圖2中可以看出,問題分析模塊主要通過自然語言處理理解用戶檢索意圖,處理步驟包括問題預(yù)處理、分詞、問題分類、關(guān)鍵詞抽取;問題轉(zhuǎn)換模塊利用問題分析產(chǎn)生的中間結(jié)果生成對應(yīng)的SQL語句,對于無法生成查詢語句的問題分析結(jié)果需要生成在網(wǎng)絡(luò)獲取相關(guān)答案的接口,生成的接口將在信息檢索中調(diào)用;而信息檢索的主要功能則是執(zhí)行前述SQL語句封裝結(jié)果,特殊地對于無法在問答數(shù)據(jù)庫中查詢到答案的問題,將調(diào)用在問題轉(zhuǎn)換中生成的接口解析結(jié)果;答案返回中主要對檢索到的答案內(nèi)容進(jìn)行統(tǒng)一格式處理,其中包括用戶操作異常提示。

      5 功能模塊設(shè)計

      主要有問題分析、問題轉(zhuǎn)換、信息檢索、答案返回四個功能模塊。

      5.1 問題分析

      問題分析是理解用戶檢索意圖的核心處理步驟。主要是將用戶問句進(jìn)行分析之后,把結(jié)果封裝在Question對象中。問題分析算法的核心是自然語言處理技術(shù),在本系統(tǒng)的實現(xiàn)中主要用到的是ICTCLAS,自然語言處理技術(shù)主要應(yīng)用在中文分詞、詞性標(biāo)注、命名實體識別、用戶自定義詞典、關(guān)鍵字提取等環(huán)節(jié)。

      在分析用戶問題時,通過以下五個步驟完成。

      ⑴ 將自然語言進(jìn)行分析并轉(zhuǎn)化到數(shù)據(jù)結(jié)構(gòu)question中,同時將問題定性為統(tǒng)計或查詢。如果碰到“總共”、“一共”、“數(shù)量”、“多少”類型的詞語就說明為統(tǒng)計型類型,將question.type設(shè)為count,如果不含有這種詞語,將question.type設(shè)為query。

      ⑵ 接下來就是從問題中識別出范圍屬性,例如:知識點、熱點、崗位、視頻、薪資等等,然后分別將其存入到對應(yīng)范圍變量中,如:question.knowledge、question.hot、question.job等,然后定義用戶字典信息,添加一些特定的表示數(shù)據(jù)源的詞語包含其中,然后通過分詞確定問題所要查找的數(shù)據(jù)源,比如在用戶字典中添加“大牛”,“大牛信息”,“大牛簡介”就可以確定查找的數(shù)據(jù)源為“expert”,又比如“崗位”,“崗位信息”就可基本上確定數(shù)據(jù)源為“job”,同樣的方式確定其他類型的數(shù)據(jù)源。

      ⑶ 采用與上面的同樣的方式確定用戶查詢的字段名,比如輸入“姓名”就可以確定字段為“expert_name”,“大牛興趣”確定查詢字段為“expert_interesting”。

      ⑷ 去掉句子段落之間的冗余字段,如標(biāo)點符號、連詞等等。

      ⑸ 確定關(guān)鍵詞,查詢的關(guān)鍵詞就是字段對應(yīng)的信息,比如大牛姓名為“張三的信息”,關(guān)鍵詞就是其中的“張三”,獲取的方式也是通過關(guān)鍵字提取算法和特定的位置進(jìn)行提取。

      經(jīng)過上述處理之后,問題分析完畢,但是問題還沒有完全解答,只是得到了一個中間結(jié)果,還需要將問題進(jìn)一步分析得到最終答案。

      5.2 問題轉(zhuǎn)換

      在這個模塊中,把問題分析的結(jié)果進(jìn)行處理,將得到的中間結(jié)果組裝成可以進(jìn)行檢索的SQL語句,問題轉(zhuǎn)換的處理流程經(jīng)過以下六步處理就可以生成相應(yīng)的SQL語句。

      ⑴ 明確問題分析只是為了查找數(shù)據(jù),并不是為了增加數(shù)據(jù)和修改更新數(shù)據(jù),因而直接初始化sql為“select”。

      ⑵ 判斷問題的數(shù)據(jù)源(source)是否為null,如果為null,說明數(shù)據(jù)源不存在,這樣就超越本身數(shù)據(jù)所能查找的領(lǐng)域,就將sql初始化為null,然后返回,此時后續(xù)采用的辦法為從網(wǎng)絡(luò)中獲取需要的數(shù)據(jù)。

      ⑶ 確定查詢的屬性,如果“type”為null說明查詢屬性不存在,默認(rèn)查詢所有,確定為*,如果存在,則繼續(xù)判斷查詢類型為統(tǒng)計型還是查詢型,如果為統(tǒng)計型,就確定為“select count”,同時判定attr屬性是否為空,如果不為null,就確定sql語句為“select count(attr)”,如果不存在,就確定為“select count(*)”,同時如果不是統(tǒng)計型,就確定為“select attr”。

      ⑷ 確定數(shù)據(jù)源,由于數(shù)據(jù)源前面已經(jīng)進(jìn)行了判空運(yùn)算,所以直接確定sql語句為“select XXXX from source”。

      ⑸ 判定是否需要與數(shù)據(jù)表進(jìn)行連接運(yùn)算,判斷屬性不為null就與相應(yīng)數(shù)據(jù)表進(jìn)行連接運(yùn)算。

      ⑹ 判斷是否有where條件,如果屬性信息有兩個不為空,則增加where條件,完成question向sql語句的轉(zhuǎn)化。

      5.3 信息檢索

      5.3.1 一般問題答案

      對于一般問題答案,可以在專家數(shù)據(jù)庫中檢索到,因此只需將答案內(nèi)容封裝成JSON對象即可。

      5.3.2 網(wǎng)絡(luò)答案獲取

      對于網(wǎng)絡(luò)答案,需要經(jīng)過以下五步處理。

      ⑴ 經(jīng)過問題分析之后得到特定數(shù)據(jù)結(jié)果question,接著判斷問題為何種類型,如果為解釋型,則采用解釋型問題分析流程,如果是概念型或者其他類型,就采用概念型流程。由于此兩種流程基本上相似,因此下文只對其中的一套流程進(jìn)行說明,若有不同之處再詳細(xì)說明。

      ⑵ 獲取關(guān)鍵字的主題信息,然后對其進(jìn)行編碼,此處編碼的作用是將漢語進(jìn)行編碼,因為在百度百科和百度知道中抓取信息候傳入?yún)?shù)是經(jīng)過編碼的,因而此處必須對檢索信息進(jìn)行編碼。

      ⑶ 經(jīng)過編碼之后就將百度百科或百度知道的鏈接與當(dāng)前編碼之后的參數(shù)值進(jìn)行組合,組合的鏈接將作為獲取數(shù)據(jù)的URL地址。

      ⑷ 通過該URL地址獲取文檔對象,獲取時有可能拋出異常,這里又有三種不同的情況:0代表網(wǎng)絡(luò)錯誤,1表示網(wǎng)絡(luò)正常且正確獲取數(shù)據(jù),2代表網(wǎng)絡(luò)正常但無答案,這里兩套流程請求的URL地址不同,解釋型請求的是百度知道,其他兩種類型請求的是百度百科。

      ⑸ 對獲取的文檔對象進(jìn)行格式分析,之后獲取指定問題的答案并返回。

      5.4 答案返回

      將信息檢索結(jié)果和問題分析中的問題分類結(jié)果返回給用戶,在返回給用戶之前將答案內(nèi)容進(jìn)行統(tǒng)一格式化處理。特別地,錯誤信息直接當(dāng)作字符串答案類型處理,具體錯誤描述即為字符串內(nèi)容。

      6 系統(tǒng)實現(xiàn)

      主界面用于用戶提問和觀察返回結(jié)果。界面布局類似QQ、微信的聊天界面,上部是所有功能的導(dǎo)航欄,下部為自動問答系統(tǒng)的交互界面。如圖3所示。

      7 結(jié)束語

      本文通過對Java課程答疑現(xiàn)狀的分析,結(jié)合筆者及所在團(tuán)隊的教學(xué)實踐,提出了Java課程智能問答系統(tǒng),然后以分詞技術(shù)為基礎(chǔ),將系統(tǒng)劃分為問題分析、問題轉(zhuǎn)換、信息檢索、答案返回四個模塊,最終通過答疑知識庫返回預(yù)期結(jié)果,響應(yīng)時間在1s內(nèi),實際使用效果良好。

      參考文獻(xiàn)(References):

      [1] 羅軍舟,吳文甲,楊明.移動互聯(lián)網(wǎng):終端、網(wǎng)絡(luò)與服務(wù)[J].計算機(jī)學(xué)報,2011.34(11):2029-2051

      [2] A Bordes,S Chopra. Question Answering with SubgraphEmbeddings[J]. Computer Science,2014.

      [3] 王正華,韓永國.自動問答系統(tǒng)設(shè)計與實現(xiàn)[J].軟件導(dǎo)刊,2014.9:111-113

      [4] 毛先領(lǐng),李曉明.問答系統(tǒng)研究綜述[J].計算機(jī)科學(xué)與探索,2012.6(3):193-207

      猜你喜歡
      自然語言處理
      基于LSTM自動編碼機(jī)的短文本聚類方法
      自然語言處理與司法案例
      國外基于知識庫的問答系統(tǒng)相關(guān)研究進(jìn)展及其啟示
      基于依存句法的實體關(guān)系抽取
      基于組合分類算法的源代碼注釋質(zhì)量評估方法
      面向機(jī)器人導(dǎo)航的漢語路徑自然語言組塊分析方法研究
      詞向量的語義學(xué)規(guī)范化
      漢哈機(jī)器翻譯中的文字轉(zhuǎn)換技術(shù)研究
      HowNet在自然語言處理領(lǐng)域的研究現(xiàn)狀與分析
      青岛市| 绵竹市| 蒲江县| 南丹县| 讷河市| 霍林郭勒市| 盈江县| 息烽县| 靖江市| 东乡族自治县| 临漳县| 福鼎市| 辛集市| 百色市| 赤壁市| 垣曲县| 赣榆县| 镇巴县| 嘉禾县| 鄂托克旗| 肇东市| 太谷县| 蓬溪县| 沽源县| 新龙县| 南靖县| 资源县| 阿克苏市| 宜川县| 渭源县| 望奎县| 洛浦县| 郎溪县| 望城县| 安顺市| 容城县| 石城县| 东明县| 富宁县| 建水县| 冕宁县|