乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Python之機(jī)器學(xué)習(xí)-樸素貝葉斯(垃圾郵件分類)

       麥可網(wǎng)絡(luò) 2021-04-16

      目錄

      • 樸素貝葉斯(垃圾郵件分類)

        • 郵箱訓(xùn)練集下載地址

        • 模塊導(dǎo)入

        • 文本預(yù)處理

        • 遍歷郵件

        • 訓(xùn)練模型

        • 測試模型

      樸素貝葉斯(垃圾郵件分類)

      參考案例http://www./article/13777

      郵箱訓(xùn)練集可以加我微信:chenyoudea

      模塊導(dǎo)入

      import re
      import os
      from jieba import cut
      from itertools import chain
      from collections import Counter
      import numpy as np
      from sklearn.naive_bayes import MultinomialNB

      文本預(yù)處理

      def get_words(filename):
          """讀取文本并過濾無效字符和長度為1的詞"""
          words = []
          with open(filename, 'r', encoding='utf-8') as fr:
              for line in fr:
                  line = line.strip()
                  # 過濾無效字符
                  line = re.sub(r'[.【】0-9、——。,!~\*]', '', line)
                  # 使用jieba.cut()方法對文本切詞處理
                  line = cut(line)
                  # 過濾長度為1的詞
                  line = filter(lambda word: len(word) > 1, line)
                  words.extend(line)
      
          return words

      遍歷郵件

      all_words = []
      
      
      def get_top_words(top_num):
          """遍歷郵件建立詞庫后返回出現(xiàn)次數(shù)最多的詞"""
          filename_list = ['郵件_files/{}.txt'.format(i) for i in range(151)]
          # 遍歷郵件建立詞庫
          for filename in filename_list:
              all_words.append(get_words(filename))
      
          # itertools.chain()把a(bǔ)ll_words內(nèi)的所有列表組合成一個列表
          # collections.Counter()統(tǒng)計(jì)詞個數(shù)
          freq = Counter(chain(*all_words))
      
          return [i[0] for i in freq.most_common(top_num)]
      
      
      top_words = get_top_words(100)
      
      # 構(gòu)建詞-個數(shù)映射表
      vector = []
      for words in all_words:
          '''
          words:
          ['國際', 'SCI', '期刊', '材料', '結(jié)構(gòu)力學(xué)', '工程', '雜志', '國際', 'SCI', '期刊', '先進(jìn)', '材料科學(xué)', 
          '材料', '工程', '雜志', '國際', 'SCI', '期刊', '圖像處理', '模式識別', '人工智能', '工程', '雜志', '國際', 
          'SCI', '期刊', '數(shù)據(jù)', '信息', '科學(xué)雜志', '國際', 'SCI', '期刊', '機(jī)器', '學(xué)習(xí)', '神經(jīng)網(wǎng)絡(luò)', '人工智能',
          '雜志', '國際', 'SCI', '期刊', '能源', '環(huán)境', '生態(tài)', '溫度', '管理', '結(jié)合', '信息學(xué)', '雜志', '期刊',
          '網(wǎng)址', '論文', '篇幅', '控制', '以上', '英文', '字?jǐn)?shù)', '以上', '文章', '撰寫', '語言', '英語', '論文', 
          '研究', '內(nèi)容', '詳實(shí)', '方法', '正確', '理論性', '實(shí)踐性', '科學(xué)性', '前沿性', '投稿', '初稿', '需要', 
          '排版', '錄用', '提供', '模版', '排版', '寫作', '要求', '正規(guī)', '期刊', '正規(guī)', '操作', '大牛', '出版社', 
          '期刊', '期刊', '質(zhì)量', '放心', '檢索', '穩(wěn)定', '邀請函', '推薦', '身邊', '老師', '朋友', '打擾', '請諒解']
          '''
          word_map = list(map(lambda word: words.count(word), top_words))
          '''
          word_map:
          [0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 
          10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 
          0, 1, 0, 0, 0, 0, 0, 0, 0, 0]
          '''
          vector.append(word_map)

      訓(xùn)練模型

      vector = np.array(vector)
      # 0-126.txt為垃圾郵件標(biāo)記為1;127-151.txt為普通郵件標(biāo)記為0
      labels = np.array([1]*127 + [0]*24)
      
      model = MultinomialNB()
      model.fit(vector, labels)

      測試模型

      def predict(filename):
          """對未知郵件分類"""
          # 構(gòu)建未知郵件的詞向量
          words = get_words(filename)
          current_vector = np.array(
              tuple(map(lambda word: words.count(word), top_words)))
      
          # 預(yù)測結(jié)果
          result = model.predict(current_vector.reshape(1, -1))
      
          return '**垃圾郵件**' if result == 1 else '普通郵件'
      
      
      print('151.txt分類情況:{}'.format(predict('郵件_files/151.txt')))
      print('152.txt分類情況:{}'.format(predict('郵件_files/152.txt')))
      print('153.txt分類情況:{}'.format(predict('郵件_files/153.txt')))
      print('154.txt分類情況:{}'.format(predict('郵件_files/154.txt')))
      print('155.txt分類情況:{}'.format(predict('郵件_files/155.txt')))

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多