亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        使用貝葉斯分類的高考學業(yè)規(guī)劃智能問答系統(tǒng)①

        2021-04-23 13:00:06弋,李
        計算機系統(tǒng)應(yīng)用 2021年4期
        關(guān)鍵詞:訓練樣本分詞貝葉斯

        孫 弋,李 直

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

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

        1 相關(guān)研究

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

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

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

        2 相關(guān)技術(shù)

        2.1 知識圖譜

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

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

        2.2 中文分詞

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

        1)基于規(guī)則的分詞

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

        2)基于統(tǒng)計的分詞

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

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

        2.3 貝葉斯分類器

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

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

        (1)設(shè)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)統(tǒng)計得到在各類別下各個特征屬性的條件概率估計:

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

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

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

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

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

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

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

        3 系統(tǒng)設(shè)計

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

        3.1 系統(tǒng)架構(gòu)設(shè)計

        基于以上所介紹的相關(guān)技術(shù)研究,本文將基于高考學業(yè)規(guī)劃的相關(guān)領(lǐng)域設(shè)計并開發(fā)智能問答系統(tǒng),其系統(tǒng)架構(gòu)如圖1所示.

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

        圖1 問答系統(tǒng)架構(gòu)

        3.2 分詞模塊

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

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

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

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

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

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

        電子科學與技術(shù)/pr 專業(yè)/n是/vshi 學/v 什么/ry的/ude1? /w

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

        句子抽象化結(jié)果:pr是學什么的?

        圖2 文本分詞流程

        3.3 確定問題訓練樣本

        本系統(tǒng)采用Java 語言調(diào)用Spark 引擎來實現(xiàn)貝葉斯分類器.

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

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

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

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

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

        ?代碼2.設(shè)定問題訓練樣本示例代碼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 貝葉斯分類模塊

        本系統(tǒng)采用Java 語言調(diào)用Spark 引擎來實現(xiàn)貝葉斯分類器.

        根據(jù)上述敲定的訓練樣本集合由SparkContext實例創(chuàng)建出一個可以被并行操作的分布式數(shù)據(jù)集JavaRDD,再然后將JavaRDD 類型轉(zhuǎn)換為RDD 數(shù)據(jù)并交給貝葉斯分類器進行訓練.示例代碼如代碼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());/** 關(guān)閉資源*/sc.close();/** 返回貝葉斯分類器*/return nb_model;}

        貝葉斯分類器用測試數(shù)據(jù)樣本跟訓練的數(shù)據(jù)進行概率預(yù)測,最終返回我們定義的類別編號.示例代碼如代碼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

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

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

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

        4 系統(tǒng)實現(xiàn)與測試

        本文根據(jù)前文第3 節(jié)的技術(shù)路線和方法,使用Java作為開發(fā)語言,采用Spring Boot 作為系統(tǒng)框架,使用Spark 通用計算引擎處理數(shù)據(jù)集并實現(xiàn)貝葉斯分類算法,最終完成高考學業(yè)規(guī)劃智能問答系統(tǒng)的設(shè)計與開發(fā).

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

        圖3 智能問答系統(tǒng)問答界面

        5 總結(jié)

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

        猜你喜歡
        訓練樣本分詞貝葉斯
        人工智能
        結(jié)巴分詞在詞云中的應(yīng)用
        智富時代(2019年6期)2019-07-24 10:33:16
        貝葉斯公式及其應(yīng)用
        寬帶光譜成像系統(tǒng)最優(yōu)訓練樣本選擇方法研究
        值得重視的分詞的特殊用法
        融合原始樣本和虛擬樣本的人臉識別算法
        基于稀疏重構(gòu)的機載雷達訓練樣本挑選方法
        基于貝葉斯估計的軌道占用識別方法
        一種基于貝葉斯壓縮感知的說話人識別方法
        電子器件(2015年5期)2015-12-29 08:43:15
        IIRCT下負二項分布參數(shù)多變點的貝葉斯估計
        色偷偷av一区二区三区| 亚洲av中文无码字幕色本草| 18禁止进入1000部高潮网站| 人人做人人爽人人爱| 国产熟妇按摩3p高潮大叫| 国产一区二区三区在线观看免费| 国模私拍福利一区二区| 天堂无码人妻精品av一区| 亚洲成人日韩| 亚洲日日噜噜噜夜夜爽爽| 91九色国产在线观看| 亚洲熟妇av一区二区在线观看| 免费无码专区毛片高潮喷水| 亚洲中文久久精品无码| 在线成人福利| 91在线无码精品秘 入口九色十| 91热久久免费频精品99| 粉嫩av最新在线高清观看| 含紧一点h边做边走动免费视频| 国产特级毛片aaaaaaa高清| 成人性生交片无码免费看| 亚洲制服无码一区二区三区| 成年女人18毛片毛片免费| 国产精品女主播在线播放| 精品亚洲麻豆1区2区3区| 99精品国产高清一区二区麻豆| 国产在线精品一区二区在线看| 成在线人免费无码高潮喷水| 国产精品毛片毛片av一区二区| 国产自拍视频免费在线| 久久久亚洲精品无码| 精品香蕉久久久午夜福利| 久久中国国产Av秘 入口| 精品一区二区三区女同免费| 一本久久精品久久综合| 又黄又爽又无遮挡免费的网站| 婷婷五月综合丁香在线| 亚洲国产成人精品福利在线观看| 中文字幕精品永久在线| 中文字幕女同系列在线看一 | 国产精品国产三级国产专播|