999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

使用貝葉斯分類的高考學業規劃智能問答系統①

2021-04-23 13:00:06弋,李
計算機系統應用 2021年4期
關鍵詞:分類用戶系統

孫 弋,李 直

(西安科技大學 通信與信息工程學院,西安 710054)

隨著人工智能技術的快速發展,各行各業都展開了對人工智能技術在本領域應用的探索,以求將人工智能技術應用到所屬行業.由于計算成本的迅速降低和新一代無線通訊技術等面向行業領域的廣泛應用,各行業基于網絡技術產生了大量結構化和半結構化領域知識數據,新產生的數據具有數據體量巨大、所含信息量大、整體數據蘊含應用價值巨大的特點,但對于特定領域的信息檢索,傳統的搜索引擎由于涉及面廣,搜索出來的結果過于寬泛,用戶還是需要花費額外時間進行二次查找.以高考志愿填報為例,在這種專業性較強的領域,使用傳統搜索引擎得到的結果往往會出現二義性問題,這種差錯往往會影響到考生將來的學業規劃.本文利用基于知識圖譜構建技術構建出來的垂直領域知識庫[1,2]進行智能問答系統開發,使用HanLP(Han Language Processing)中文分詞工具對用戶提出的問題進行分詞處理,提取出其中的實體關鍵信息,之后采用樸素貝葉斯分類器對提取出的關鍵信息進行分類[3],最后根據區分出的問題類別,從構建好的垂直領域知識庫進行信息檢索和答案返回,最終實現面向垂直領域的智能問答系統[4–6].

1 相關研究

知識問答通過自然語言對話的形式幫助人們從知識庫中獲取知識,不但是知識圖譜的核心應用之一,也是自然語言處理的重要研究方向.知識問答系統是一個擬人化的智能系統,通過接收使用自然語言表達的問題,理解用戶的意圖,獲取相關的知識,最終經過推理計算形成自然語言表達的答案并反饋給用戶.

早期的問答系統NLIDB (Natural Language Interface to Data Base)是伴隨著人工智能的研發逐步興起的[7],以1961年的Baseball 系統[8]和1972年的Lunar 系統[9]為代表.Baseball 系統回答了有關一年內棒球比賽的問題.Lunar在阿波羅月球任務期間提供了巖石樣本分析數據的界面.這些系統一般限定在特定領域,使用的自然語言問題詢問結構化知識庫.這些數據庫與如今的關系型數據庫不同,更像基于邏輯表達式的知識庫.這一類系統通常為領域應用定制.

基于知識庫的問答系統(Knowledg-Based Question Answering,KBQA)特指使用基于知識圖譜解答問題的問答系統.KBQA 實際上是20世紀七八十年代對NLIDB 工作的延續,其中很多技術都借鑒和沿用了以前的研究成果,其中主要的差異是采用了相對統一的基于三元組表示的知識圖譜,并且把予以理解的結果映射到知識圖譜的本體后生成查詢語句查詢解答問題.

2 相關技術

2.1 知識圖譜

知識圖譜[10]是一種用圖模型來描述知識和建模世界萬物之間的關聯聯系的技術方法.知識圖譜由節點和邊組成.節點可以是實體,如一個人、一本書等,或是抽象的概念,如人工智能、知識圖譜等.邊可以是實體的屬性,如姓名、書名,或是實體之間的關系.如朋友、配偶.知識圖譜技術是人工智能技術的重要組成部分,以結構化的方式描述客觀世界中的概念、實體及其屬性的關系.

知識圖譜根據覆蓋范圍可以分為開放領域知識圖譜和垂直領域知識圖譜[11].開放領域知識圖譜通常不被限定于特定的領域中.它包含大量的常識性知識,更追求知識的廣泛度.垂直領域知識圖譜則面向某個特定的行業領域,更追求知識的深度與準確度.高校學業規劃知識庫屬于垂直領域的知識圖譜.本項目從百科類網站、中國教育在線和高校招生網站等結構化數據源中提取出高質量的知識數據,然后將知識寫入圖數據庫進行持久化,最終構建出高考領域的知識圖譜[12].

2.2 中文分詞

中文分詞[13],即 Chinese word segmentation,即將一個漢字序列進行切分,得到一個個單獨的詞.中文分詞與英文分詞有很大的不同,對英文而言,一個單詞就是一個詞,而漢語是以字為基本的書寫單位,詞語之間沒有明顯的區分標記,需要進行分詞處理,將句子轉化為詞的表示.主要的困難在于分詞歧義,此外,像未登錄詞、分詞粒度都是影響分詞效果的重要因素[14].眾多分詞方法主要可以分為基于規則的分詞和基于統計的分詞兩種.

1)基于規則的分詞

規則分詞是最早興起的方法,簡單高效.主要是通過維護詞典,在切分語句時,將語句的每個字符串與詞表中的詞進行逐一匹配,找到則切分.按照匹配切分方式,主要分為正向最大匹配法、逆向最大匹配法以及雙向最大匹配法.

2)基于統計的分詞

把每個詞看作是由各個字組成,如果相連的字在不同的文本中出現的次數越多,就證明這個相連的字很可能就是一個詞.因此我們就可以利用字與字相鄰出現的頻率來反映成詞的可靠度,當組合頻度高于某個臨界值時,我們便可以認為這些字會構成一個詞語.

隨著NLP 技術的日益成熟,中文分詞工具越來越多,常見的有中科院計算所 NLPIR、哈工大 LTP、清華大學 THULAC、斯坦福分詞器、HanLP 分詞器、jieba 分詞等.本文選擇采用基于深度學習的中文分詞工具包HanLP 來進行分詞.

2.3 貝葉斯分類器

貝葉斯分類是一類分類算法的總稱,這類算法均以貝葉斯定理為基礎,故統稱為貝葉斯分類[15].貝葉斯分類器主要有4 種,分別是:naive Bayes (樸素貝葉斯)、TAN、BAN和GBN,本文涉及的主要是naive Bayes.Naive Bayes 分類器在很多真實的分類問題,例如文檔分類、垃圾郵件過濾,效果很理想.它只需要少量的訓練數據去估計必要的參數,而且,相比其它復雜的方法,naive Bayes 分類器執行非常快.

樸素貝葉斯分類是一種十分簡單的分類算法[16],其基礎思想為:對于給出的待分類項,求解在此項出現的條件下各個類別出現的概率,哪個概率最大,就認為此待分類項屬于哪個類別.樸素貝葉斯分類的定義如下:

(1)設x={x1,x2,···,xm}為一個待分類項,其中每個x都為一個特征屬性.

(2)有類別集合C={y1,y2,···,yn}.

(3)計算P(y1|x),P(y2|x),···,P(yn|x).

(4)若P(yk|x)=max{P(y1|x),P(y2|x),···,P(yn|x)},則x∈yk.

其中,第(3)步中各個條件概率的計算步驟如下:

(1)找到一個已知分類的待分類項集合,將這個集合作為訓練樣本集.

(2)統計得到在各類別下各個特征屬性的條件概率估計:

(3)如果各個特征屬性是條件獨立的,則根據貝葉斯定理有如下推導:

根據全概率公式,可以進一步地分解上式中的分母,得到:

因為分母對于所有的類別為常數,只要將分子最大化即可,又因為各特征屬性是條件獨立的,所以有:

然后將式(3)帶入到式(2)中,得到:

于是樸素貝葉斯分類器可表示為:

因為對所有的yk,上式中的分母的值都是一樣的,所以可以忽略分母部分,樸素貝葉斯分類器最終表示為:

本文中利用樸素貝葉斯分類器,首先對分詞及抽象化后的句子進行分類,然后對用戶輸入的問題與本地的匹配模板進行匹配,將最終的匹配結果對應到相應的問題模板,最后根據問題模板去知識庫進行查詢,得到最終的問題答案并返回給用戶.

3 系統設計

本文將針對高考學業規劃中出現的一系列用戶可能提出來的問題,構建面向高考學業規劃的智能問答系統.首先構建出基于高考學業規劃領域的知識圖譜,然后利用HanLP中文分詞工具對用戶提出的這一領域的問題進行分詞處理,提取出其中的實體關鍵信息,并將實體進行抽象化處理,之后采用樸素貝葉斯分類器對抽象化后的問題進行分類,最后根據區分出的問題類別,從構建好的垂直領域知識庫進行信息檢索和答案返回,最終實現面向高考志愿規劃領域的智能問答系統.

3.1 系統架構設計

基于以上所介紹的相關技術研究,本文將基于高考學業規劃的相關領域設計并開發智能問答系統,其系統架構如圖1所示.

系統的整體架構分為前端用戶界面、后端處理系統和數據層.前端用戶界面獲得用戶輸入的問題和最終結果展示,后端處理部分通過對問題進行分詞、句子抽象、問題分類、模板匹配和答案檢索等步驟獲得最終答案并輸出到前端.系統所用數據包括分詞表、分類模板、搜索模板和高校信息知識圖譜等.本文主要關注于系統后端處理這一部分,下文將會詳細論述后端處理部分的分詞模塊以及問題分類模塊的實現方法.

圖1 問答系統架構

3.2 分詞模塊

HanLP是由一系列模型與算法組成的Java 工具包,目標是促進自然語言處理在生產環境中的應用,HanLP 具備功能完善、性能高效、架構清晰、語料時新、可自定義的特點.HanLP 提供的中文分詞包括最短路分詞、N-最短路分詞、CRF 分詞、索引分詞、極速詞典分詞、用戶自定義詞典等方法,在提供豐富功能的同時,HanLP 內部模塊堅持低耦合、模型堅持惰性加載、服務堅持靜態提供、詞典堅持明文發布,使用非常方便,同時自帶一些語料處理工具,幫助用戶訓練自己的語料.

HanLP 分詞工具進行分詞的工作流程如圖2所示.首先將詞典加載到HanLP 分詞模塊,然后把待分詞的句子進行分詞輸出分詞結果,之后用標注詞性對句子進行抽象化,最后輸出最終抽象化后的句子以供分類器進行分類.

本系統針對高考志愿規劃領域使用HanLP 對用戶輸入的問題進行分詞,并且額外添加了自定義的高校及專業信息詞典數據集,中文分詞示例代碼如下代碼1.

代碼1.HamLP中文分詞示例代碼public void TestA(){String lineStr="電子科學與技術是學什么的? ";try{Segment segment=HanLP.newSegment();segment.enableCustomDictionary(true);

CustomDictionary.add("電子科學與技術","pr 0");Listseg=segment.seg(lineStr);for (Term term:seg){System.out.println(term.toString());}}catch(Exception ex){}}

執行這段代碼將“電子科學與技術是學什么的? ”這句話進行分詞,得到的結果如下:

電子科學與技術/pr 專業/n是/vshi 學/v 什么/ry的/ude1? /w

pr,n,vshi,v,ry,ude1,w 分別代表了當前詞的詞性,其中pr為我們自定義的詞性.分詞完成后對原句子進行抽象,將其中的專業名稱用pr 替換并抽象句子.

句子抽象化結果:pr是學什么的?

圖2 文本分詞流程

3.3 確定問題訓練樣本

本系統采用Java 語言調用Spark 引擎來實現貝葉斯分類器.

首先生成訓練樣本集,使用爬蟲技術從今日頭條、分答以及百度貼吧等網站爬取到針對高考學業規劃的相關問題,共計5000 多條,然后通過人工進行標注以及預處理,總共將這些問題分為了16 大類,例如,詢問專業介紹,其樣本語料庫如下(其中“pr”為上文提到的自定義的分詞詞性):

{pr;pr的簡介;pr的介紹;pr 專業怎么樣;pr是;pr是什么專業;pr的詳細信息;pr的信息;pr是干什么的;…}

語料庫中的數據是對詢問專業情況的一些可能會出現的問題的集合,其余問題的訓練樣本集也類似,對樣本集進行編號,并統一匯總,將樣本數據構造成LabelPoint類型,即double 數組構成的稠密/稀疏向量.然后再生成測試數據樣本,同樣將樣本數據構造成LabelPoint 類型.

對于上面提到的將樣本數據構造成LabelPoint 類型,即double 數組構成的稠密/稀疏向量,比如訓練樣本數據:“pr是學什么的? ”,需要提取訓練樣本數據里面的關鍵詞,如:“學”、“什么”,即前面第2.3 節提到的待分類特征屬性.

對于關鍵詞的提取采用HanLP 進行分詞提取,構建向量時跟詞匯數據集進行比對,其中詞匯數據集也使用HanLP 分詞工具,將所有的語料樣本進行分詞,提取出其中所有非實體詞匯的詞語構建出一個詞匯數據集;構建向量時首先根據得到的詞匯表大小對向量進行初始化,然后將分詞后訓練樣本與詞匯表進行比對,如果匹配命中就將此項置為1,否則默認為0.示例代碼如代碼2.

?代碼2.設定問題訓練樣本示例代碼public double[] sentenceToArrays(String sentence){double[] vector=new double[vocabuary.size()];/**模板對照詞匯表的大小進行初始化,全部為0.0*/for(int i=0;iterms=segment.seg(sentence);for(Term term:terms){String word=term.word;if(vocabulary.containsKey(word)){int index=vocabulary.get(word);vector[index]=1;}}return vector;}

3.4 貝葉斯分類模塊

本系統采用Java 語言調用Spark 引擎來實現貝葉斯分類器.

根據上述敲定的訓練樣本集合由SparkContext實例創建出一個可以被并行操作的分布式數據集JavaRDD,再然后將JavaRDD 類型轉換為RDD 數據并交給貝葉斯分類器進行訓練.示例代碼如代碼3.

代碼3.貝葉斯分類器示例代碼public NaiveBayesModel loadClassifierModel()throws Exception {SparkConf conf=new SparkConf().setAppName("NaiveBayesTest").setMaster("local[*]");JavaSparkContext sc=new JavaSparkContext(conf);

Listtrain_list=new LinkedList<>();String[] sentences;MapseqWithSamples=loadQuestionSamples("question");if(seqWithSamples==null ||seqWithSamples.size()==0){throw new Exception("缺少問題訓練樣本,請檢查! ");}for(Map.Entryentry:seqWithSamples.entrySet()){Double seq=entry.getKey();String sampleContent=entry.getValue();sentences=sampleContent.split("`");for (String sentence:sentences){double[] array=sentenceToArrays(sentence);LabeledPoint train=new LabeledPoint(seq,Vectors.dense(array));train_list.add(train);}}JavaRDDtrainingRDD=sc.parallelize(train_list);/**開始訓練樣本*/NaiveBayesModel nb_model=NaiveBayes.train(trainingRDD.rdd());/** 關閉資源*/sc.close();/** 返回貝葉斯分類器*/return nb_model;}

貝葉斯分類器用測試數據樣本跟訓練的數據進行概率預測,最終返回我們定義的類別編號.示例代碼如代碼4.

代碼4.問題分類示例代碼public String queryClassify(String sentence)throws Exception {double[] testArray=sentenceToArrays(sentence);Vector v=Vectors.dense(testArray);double index=nbModel.predict(v);modelIndex=(int)index;System.out.println("the model index is " + index);Vector vRes=nbModel.predictProbabilities(v);double[] probabilities=vRes.toArray();System.out.println("============問題模板分類概率=============");for (int i=0;i

通過上面的分詞模塊和貝葉斯分類模塊,我們最終得到了用戶輸入問題的類別編號以及問題的主要實體,然后利用圖數據庫查詢語言在構建好的知識庫中進行查詢.本系統采用的Neo4j 數據庫使用的查詢語言是Cypher 查詢語句,以前文中“電子科學與技術專業是學什么的”問題為例,經過貝葉斯分類器得到其在“專業介紹”這個問題類型的概率為65.7%,則其對應的查詢語句如下:

MATCH (n:Profession)WHERE n.name=‘電子科學與技術’ RETURN n.description

最終返回問題中所提到的專業的基本介紹.

4 系統實現與測試

本文根據前文第3 節的技術路線和方法,使用Java作為開發語言,采用Spring Boot 作為系統框架,使用Spark 通用計算引擎處理數據集并實現貝葉斯分類算法,最終完成高考學業規劃智能問答系統的設計與開發.

本系統測試運行的硬件環境為Intel Core i5-8400處理器,16 GB 內存,操作系統為Windows.經測試,本系統能夠在以上運行環境下正常運行并實現所設計的主要功能,響應延時在正常范圍之內,用戶體驗良好.能夠針對高考學業規劃中涉及的普遍問題,較準確的返回考生用戶所需要的信息,后期根據用戶使用次數的增多,針對這幾種情況之外的問題需要繼續完善訓練樣本,以增加更多問題類別,實現對更多問題的解答.系統的運行效果如圖3所示.

圖3 智能問答系統問答界面

5 總結

隨著互聯網和人工智能技術在各行業領域應用的進一步深入,知識圖譜中的知識獲取與知識推理使自動問答技術能夠在細分垂直領域為人們提供更多、更準確的服務.在本文所設計的高考學業規劃領域,自動問答系統可以在一定范圍為考生用戶提供更精確、詳盡、專業的服務.但目前還有以下兩個方面有待提升:一是對于知識庫和語料庫內容的逐步完善,以求使知識的完整性以及準確性得到進一步的提升;二是需要通過應用分類更加準確的分類算法,使分類匹配的精確度得到增強,以求更快速得到更加精準的答案,并進一步改善用戶的體驗.

猜你喜歡
分類用戶系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
分類算一算
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
分類討論求坐標
數據分析中的分類討論
教你一招:數的分類
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
主站蜘蛛池模板: 国产又色又刺激高潮免费看| 在线精品自拍| 亚洲美女视频一区| 国产99精品久久| 在线永久免费观看的毛片| 日本午夜在线视频| 亚洲清纯自偷自拍另类专区| 亚洲精品无码抽插日韩| 91青草视频| 日本欧美中文字幕精品亚洲| 久久国产免费观看| 亚洲欧美天堂网| 国产老女人精品免费视频| 日韩欧美国产综合| a免费毛片在线播放| 亚洲高清中文字幕在线看不卡| 最新国产成人剧情在线播放 | 内射人妻无套中出无码| 色九九视频| 成年免费在线观看| 无码AV动漫| 永久在线精品免费视频观看| 欧美国产菊爆免费观看| 欧美色香蕉| 人妻丰满熟妇av五码区| 国产麻豆永久视频| 亚洲三级色| 99久久精品视香蕉蕉| 日韩高清无码免费| 新SSS无码手机在线观看| 成人91在线| 国产又黄又硬又粗| 国产福利免费观看| 99热国产在线精品99| 久久综合色视频| 欧美午夜视频| 国产色婷婷视频在线观看| 亚洲第一视频免费在线| 91精品日韩人妻无码久久| 精品视频一区二区观看| 亚洲一区二区精品无码久久久| 亚洲无码91视频| 日韩在线第三页| 亚洲精品日产精品乱码不卡| 免费三A级毛片视频| 国产SUV精品一区二区6| 久久无码av三级| 国产玖玖视频| 激情综合婷婷丁香五月尤物| 久久精品无码一区二区国产区| 色AV色 综合网站| 免费黄色国产视频| 午夜精品久久久久久久99热下载| 精品一区二区三区波多野结衣| 日本手机在线视频| 国产青榴视频在线观看网站| 日韩大片免费观看视频播放| 久青草网站| 欧美人在线一区二区三区| 在线无码av一区二区三区| 99精品在线看| 日韩在线永久免费播放| 黄色网页在线观看| 久久综合亚洲鲁鲁九月天| 国产精品手机在线观看你懂的| 色亚洲成人| 伊在人亚洲香蕉精品播放| 欧美一区二区人人喊爽| 另类欧美日韩| 亚洲AV无码精品无码久久蜜桃| 亚洲,国产,日韩,综合一区| 欧美精品v欧洲精品| 性欧美在线| 五月婷婷丁香综合| 色妞永久免费视频| 久草青青在线视频| 亚洲色无码专线精品观看| 欧美日本在线播放| 欧美在线黄| 国产拍揄自揄精品视频网站| 国产成人1024精品| 亚洲一区二区三区国产精品|