• 
    

    
    

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

      基于樸素貝葉斯的機(jī)器學(xué)習(xí)實(shí)驗(yàn)教學(xué)設(shè)計(jì)

      2021-07-01 18:09:42王敏羅婧雯劉軍劉沛澤
      中國新通信 2021年6期
      關(guān)鍵詞:文本分類

      王敏 羅婧雯 劉軍 劉沛澤

      【摘要】? ? 貝葉斯學(xué)習(xí)是機(jī)器學(xué)習(xí)理論中的重要研究方向。本文主要實(shí)現(xiàn)基于樸素貝葉斯的機(jī)器學(xué)習(xí)實(shí)驗(yàn)教學(xué)設(shè)計(jì),貝葉斯學(xué)習(xí)以貝葉斯法則為基礎(chǔ),通過已了解的數(shù)據(jù)分布的先驗(yàn)知識(shí),結(jié)合樣本訓(xùn)練數(shù)據(jù)來估算出整體數(shù)據(jù)的數(shù)學(xué)模型。貝葉斯學(xué)習(xí)的結(jié)果是獲得一組變量的聯(lián)合概率分布。貝葉斯學(xué)習(xí)由于其用概率的形式來表示不確定知識(shí),故對(duì)不確定形式的問題它有獨(dú)特的描述和計(jì)算優(yōu)勢。而樸素貝葉斯是在屬性獨(dú)立性假設(shè)的條件下進(jìn)行計(jì)算,可以大大減小計(jì)算的復(fù)雜程度。實(shí)驗(yàn)設(shè)計(jì)目的是根據(jù)樸素貝葉斯公式實(shí)現(xiàn)對(duì)文檔的分類,給學(xué)生提供一種實(shí)驗(yàn)教學(xué)案例。

      【關(guān)鍵詞】? ? 樸素貝葉斯? ? 實(shí)驗(yàn)教學(xué)設(shè)計(jì)? ? 文本分類

      一、實(shí)驗(yàn)研究背景與目的

      本實(shí)驗(yàn)設(shè)計(jì)主要基于樸素貝葉斯理論,目前是為學(xué)生提供基于貝葉斯理論的實(shí)驗(yàn)項(xiàng)目,讓學(xué)生更好地理解該理論解決實(shí)際問題。 隨著互聯(lián)網(wǎng)的飛速發(fā)展, 海量數(shù)據(jù)注入到通訊設(shè)備中。如此大量的信息就讓信息檢索和數(shù)據(jù)挖掘的重要性更加突出。文本分類作為數(shù)據(jù)挖掘的一部分也逐漸被人們重視起來。其中文本分類的主要內(nèi)容是在預(yù)先給定的類標(biāo)簽的集下, 根據(jù)文章內(nèi)容, 確定它的類別。我們接下來將要通過三個(gè)方面來介紹:文本表示, 分類器構(gòu)造和分類器評(píng)估。

      二、實(shí)驗(yàn)設(shè)計(jì)思路

      本實(shí)驗(yàn)的思路是把一部分含有女性、體育、文學(xué)出版、校園的話題用網(wǎng)絡(luò)爬蟲爬下來存在特定的文檔中,然后通過樸素貝葉斯分類算法實(shí)現(xiàn)貝葉斯分類。

      三、方案設(shè)計(jì)

      系統(tǒng)設(shè)計(jì)流程框圖如下。

      四、具體算法描述

      除去噪聲,如格式轉(zhuǎn)換,去掉符號(hào),整體規(guī)范化;遍歷的讀取一個(gè)文件下的每個(gè)文本。操作如下。

      def readFile(path):

      with open(path, 'r', errors='ignore') as file:

      content = file.read()

      return content

      def saveFile(path, result):

      with open(path, 'w', errors='ignore') as file:

      file.write(result)

      4.1 jieba分詞

      1)首先利用import調(diào)用jieba模塊、TF-IDF分詞模塊、樸素貝葉斯算法模塊;

      import jieba

      2)jieba分詞算法的基本原理是:1.基于前綴詞典實(shí)現(xiàn)高效的詞圖掃描,生成句子中漢字所有可能成詞情況所構(gòu)成的有向無環(huán)圖(DAG); 2.采用動(dòng)態(tài)規(guī)劃查找最大概率路徑,找出基于詞頻的最大切分組合; 3.對(duì)于未登錄詞,采用了基于漢字成詞能力的HMM模型,使用了Viterbi算法;

      代碼如下:

      def segText(inputPath, resultPath):

      fatherLists = os.listdir(inputPath)

      for eachDir in fatherLists:

      eachPath = inputPath + eachDir + "/"? ? ? ? ? each_resultPath = resultPath + eachDir + "/"

      if not os.path.exists(each_resultPath):

      os.makedirs(each_resultPath)

      childLists = os.listdir(eachPath)

      for eachFile in childLists:

      eachPathFile = eachPath + eachFile

      #? print(eachFile)

      content = readFile(eachPathFile)

      # content = str(content)

      result = (str(content)).replace("\r\n", "").strip()

      # result = content.replace("\r\n","").strip()

      cutResult = jieba.cut(result)

      saveFile(each_resultPath + eachFile, " ".join(cutResult))

      4.2 TF-IDF逆文本頻率指數(shù)

      1)首先調(diào)用TF-IDF向量轉(zhuǎn)換類和向量生成類。

      from sklearn.feature_extraction.text import TfidfTransformer

      from sklearn.feature_extraction.text import TfidfVectorizer

      2)TF-IDF逆文本頻率指數(shù)是一種用于信息檢索與數(shù)據(jù)挖掘的常用加權(quán)技術(shù)。是一種統(tǒng)計(jì)方法,用以評(píng)估一個(gè)詞對(duì)于一個(gè)語料庫中一份文件的重要程度。詞的重要性隨著在文件中出現(xiàn)的次數(shù)正比增加,同時(shí)隨著它在語料庫其他文件中出現(xiàn)的頻率反比下降。

      3)TF-IDF詞頻算法實(shí)現(xiàn)。一個(gè)詞在某一文檔中出現(xiàn)次數(shù)比較多,其他文檔沒有出現(xiàn),說明該詞對(duì)該文檔分類很重要。然而如果其他文檔也出現(xiàn)比較多,說明該詞的區(qū)分性不大,就用IDF來降低該詞的權(quán)重。

      TF-IDF=TF×IDF

      其中,詞頻:TF=詞在文檔中出現(xiàn)的次數(shù)/文檔中總詞數(shù);

      逆文本頻率:IDF=log(語料庫中文檔總數(shù)/包含該詞的文檔數(shù)+1)。

      def getTFIDFMat(inputPath, stopWordList, outputPath):

      bunch = readBunch(inputPath)

      tfidfspace = Bunch(target_name=bunch.target_name,label=bunch.label, filenames=bunch.filenames, tdm=[],

      vocabulary={})

      vectorizer = TfidfVectorizer(stop_words=stopWordList, sublinear_tf=True, max_df=0.5)

      transformer = TfidfTransformer()

      tfidfspace.tdm = vectorizer.fit_transform(bunch.contents)

      tfidfspace.vocabulary = vectorizer.vocabulary_

      writeBunch(outputPath, tfidfspace)

      4.3樸素貝葉斯分類法

      1)首先調(diào)用貝葉斯分類法算法模塊,這個(gè)模塊是調(diào)用已有的別人寫好的算法,下面會(huì)詳細(xì)介紹原理過程。

      from sklearn.naive_bayes import MultinomialNB

      2)樸素貝葉斯原理

      樸素貝葉斯分類器采用了“屬性條件獨(dú)立性假設(shè)” 對(duì)已知類別假設(shè)所有屬性相互獨(dú)立。換言之,假設(shè)每個(gè)屬性獨(dú)立地對(duì)分類結(jié)果發(fā)生影響。故貝葉斯公式可以重寫為

      因?yàn)榻o定樣本P(x)為已知的,故貝葉斯準(zhǔn)則就可以轉(zhuǎn)化為

      顯然,樸素貝葉斯分類器的訓(xùn)練過程就是基于訓(xùn)練集 D 來估計(jì)類先驗(yàn)概率P(c),并為每個(gè)屬性估計(jì)條件概率。

      令Dc表示訓(xùn)練集D中第c類樣本組成的集合,若有充足的獨(dú)立同分布樣本則可容易地估計(jì)出類先驗(yàn)概率。

      對(duì)離散屬性而言,令表示Dc中在第i個(gè)屬性上取值為的樣本組成的集合,則條件概率可估計(jì)為

      程序如下:

      def bayesAlgorithm(trainPath, testPath):

      trainSet = readBunch(trainPath)

      testSet = readBunch(testPath)

      clf = MultinomialNB(alpha=0.001).fit(trainSet.tdm, trainSet.label)

      #alpha:0.001 alpha 越小,迭代次數(shù)越多,精度越高

      #print(shape(trainSet.tdm))? #輸出單詞矩陣的類型

      #print(shape(testSet.tdm))

      predicted = clf.predict(testSet.tdm)

      total = len(predicted)

      rate = 0

      for flabel, fileName, expct_cate in zip(testSet.label, testSet.filenames, predicted):

      if flabel != expct_cate:

      rate += 1

      print(fileName, ":實(shí)際類別:", flabel, "-->預(yù)測類別:", expct_cate)

      print("erroe rate:", float(rate) * 100 / float(total), "%")

      五、系統(tǒng)測試情況

      下圖中data文件夾中是原始數(shù)據(jù),result文件夾是jieba分詞結(jié)果,stop是文本預(yù)處理篩掉的的停用詞。test是測試數(shù)據(jù),test_segResult是測試結(jié)果。

      其中測試數(shù)據(jù)集:女性話題有38個(gè),體育話題115個(gè),文學(xué)出版話題31個(gè),校園話題16個(gè),以下是測試出錯(cuò)的結(jié)果。其中校園話題出錯(cuò)的概率最大。

      六、小結(jié)

      此程序簡單易懂,是在貝葉斯的基礎(chǔ)上進(jìn)一步了解了樸素貝葉斯公式的原理及其運(yùn)用,介紹了jieba分詞和TF-IDF逆文本頻率指數(shù)及其應(yīng)用,在實(shí)際案例中錯(cuò)誤率僅為0.570,準(zhǔn)確率較高,可以在實(shí)驗(yàn)課程教學(xué)中使用。

      參? 考? 文? 獻(xiàn)

      [1]蘇金樹, 張博鋒, 徐昕.基于機(jī)器學(xué)習(xí)的文本分類技術(shù)研究進(jìn)展[J].軟件學(xué)報(bào), 2006, 17 (09) :1848-1859.

      [2]李學(xué)明, 李海瑞, 薛亮, 何光軍.基于信息增益與信息熵的TFIDF算法[J].計(jì)算機(jī)工程, 2012, 38 (08) :37-40.

      [3]Tom M.Mitchell著;曾華軍等譯,機(jī)器學(xué)習(xí)[M]. 機(jī)械工業(yè)出版社,2003.

      [4]陳葉旺,余金山. 一種改進(jìn)的樸素貝葉斯文本分類方法[J].? 華僑大學(xué)學(xué)報(bào)(自然科學(xué)版). 2011(04).

      猜你喜歡
      文本分類
      基于樸素貝葉斯的Web文本分類及其應(yīng)用
      基于組合分類算法的源代碼注釋質(zhì)量評(píng)估方法
      基于貝葉斯分類器的中文文本分類
      基于蟻群智能算法的研究文本分類
      基于樸素貝葉斯分類的Java課程網(wǎng)絡(luò)答疑反饋系統(tǒng)
      基于K—means算法的文本分類技術(shù)研究
      文本分類算法在山東女子學(xué)院檔案管理的應(yīng)用
      科技視界(2016年24期)2016-10-11 09:36:57
      不同情境下中文文本分類模型的表現(xiàn)及選擇
      基于內(nèi)容的英語錄音教材標(biāo)注研究與應(yīng)用
      多核SVM文本分類研究
      軟件(2015年5期)2015-08-22 08:02:45
      睢宁县| 玉树县| 台前县| 岱山县| 仙桃市| 大丰市| 绥棱县| 革吉县| 永年县| 涟水县| 丰城市| 武隆县| 鲁甸县| 噶尔县| 天等县| 淮阳县| 济阳县| 东海县| 商南县| 黔西| 墨竹工卡县| 贡嘎县| 巫溪县| 五原县| 乌鲁木齐县| 施秉县| 正阳县| 林甸县| 察隅县| 行唐县| 石台县| 安龙县| 拜城县| 新郑市| 秦皇岛市| 新宁县| 朝阳区| 东明县| 盈江县| 梨树县| 天峨县|