資源簡介
貝葉斯應用:網絡評論預測食品安全案例測試集及源碼 :
數據為 2019 CCF大數據與計算智能大賽 提供的10000條對O2O店鋪的評論文本訓練數據,
分為與食品安全有關和與食品安全無關兩個類別。需要根據訓練集構造文本分類模型,預測2000條測試集中的評論是否與食品安全有關。
數據為 2019 CCF大數據與計算智能大賽 提供的10000條對O2O店鋪的評論文本訓練數據,
分為與食品安全有關和與食品安全無關兩個類別。需要根據訓練集構造文本分類模型,預測2000條測試集中的評論是否與食品安全有關。

代碼片段和文件信息
#!/usr/bin/env?python
#?coding:?utf-8
#?#???機器學習課程報告:?最終大作業——貝葉斯算法的應用
#?????
#?####?學???????校:西南林業大學
#?####?學???????院:大數據與智能工程學院
#?####?專???????業:信息工程(數據科學與大數據技術)
#?####?年???????級:2017級
#?####?學???????號:20171257028
#?####?姓???????名:張開富
#?####?指導老師:金運志
#?#?背景
#?
#?
#?互聯網經濟蓬勃發展的背景下食品經營模式發生了天翻地覆的變化人們的消費習慣也悄然發生了轉變。通過點擊手機APP上自己喜歡的食品
#?
#?這些食品就能按時準確送達指定的區域,這就是當下最受學生和白領喜歡的外賣。然而隨著其迅猛發展帶來了一定的食品安全隱患,食品安全
#?
#?事故的發生對消費者、外賣平臺、食品商家和社會的危害性遠遠超出想象。
#?
#?本課題旨在通過對O2O店鋪評論的監測,加強對店鋪的食品安全監管。
#?#?任務
#?
#?本課題的數據為??2019?CCF大數據與計算智能大賽?提供的10000條對O2O店鋪的評論文本訓練數據,
#?
#?分為與食品安全有關和與食品安全無關兩個類別。需要根據訓練集構造文本分類模型,預測2000條測試集中的評論是否與食品安全有關。
#?In[1]:
get_ipython().system(‘pip?install?jieba‘)
#?##?導入相關庫
#?In[2]:
import?pandas?as?pd
import?jieba
import?numpy?as?np
import?re
#?##?1.數據預處理
#?####?(1)檢查數據
#?In[5]:
datas?=?pd.read_csv(‘data/train.csv‘)
#?In[9]:
#讀取前20條數據
datas.head(20)
#?###?(2)數據處理
#?In[10]:
#獲得停用詞表
def?getStopWords():
???stopList=[]
???for?line?in?open(“data/中文停用詞表.txt“):
???????stopList.append(line[:len(line)-1])
???return?stopList;
#?In[11]:
def?loadDataSet(data):
????‘‘‘
????數據預處理,去掉特殊字符和不關鍵的字詞
????過濾評論label:??涉及食品安全:1?????非食品安全:0
????‘‘‘
????comment?=?[]
????label?=?[]
????include_list?=?getStopWords()
????character?=?‘[a-zA-Z2-9’!“#$%&\‘()*+-./:;<=>?@,。?★、…【】《》?~“”‘’!??[\\]^_‘{|}~\s]+‘
????for?line?in?data:
????????lines?=?str(line).strip().strip(“[‘‘]“)
????????#去掉特殊字符
????????lines?=?re.sub(character?““?lines)
????????#去掉非關鍵詞
????????for?key?in?include_list:
????????????lines?=?lines.replace(key‘‘)
????????lines?=?lines.split(‘\\‘)
????????if((lines[0]?is?“0“)?or?(lines[0]?is?“1“)):
????????????label.append(int(lines[0]))
????????else:
????????????label.append(0)
????????comment.append(lines[1])
????class_comment?=?[[0?for?i?in?range(0)]?for?j?in?range(len(comment))]
????#數據內容進行jieba分詞
????i?=?0
????for?line?in?comment:
????????line?=?list(jieba.cut_for_search(str(line)))
????????for?lines?in?line:
????????????class_comment[i].append(lines)
????????i=i+1
????return?class_comment?label
#獲取測試文件
def?loadTestDataSet(data):
????comment?=?[]
????include_list?=?getStopWords()
????character?=?‘[a-zA-Z2-9’!“#$%&\‘()*+-./:;<=>?@,。?★、…【】《》?~“”‘’!??[\\]^_‘{|}~\s]+‘
????for?line?in?data:
????????lines?=?str(line).strip().strip(“[‘‘]“)
????????#去掉特殊字符
????????lines?=?re.sub(character?““?lines)
????????#去掉非關鍵詞
????????for?key?in?include_list:
????????????lines?=?lines.replace(key‘‘)
????????comment.append(lines)
????class_comment?=?[[0?for?i?in?range(0)]?for?j?in?range(len(comment))]
????#數據內容進行jieba分詞
????i?=?0
????for?line?in?comment:
????????line?=?list(jieba.cut_for_search(str(line)))
????????for?lines?in?line:
????????????class_comment[i].append(lines)
????????i=i+1
????return?comment
#?##?2.貝葉斯算法
#?In[12]:
#?創建一個包含在所有文檔中出現的不重復詞的列表
def?createVocabList(dataSet):
????vocabSet?=?set([])??????#?創建一個空集
????for?document?in?dataSet:
????????vocabSet?=?vocabSet?|?set(document)???#?創建兩個集合的并集
????return?list(vocabSet)
#?將文檔詞條轉換成詞向量
def?set
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-12-02?10:26??data\.ipynb_checkpoints\
?????文件????????8294??2019-12-02?10:54??data\CommentClassificationByBayes.py
?????文件???????80008??2019-09-30?10:07??data\sample.csv
?????文件??????279545??2019-09-30?10:07??data\test_new.csv
?????文件?????1028353??2019-09-30?10:07??data\train.csv
?????文件????????5850??2019-10-08?21:54??data\中文停用詞表.txt
評論
共有 條評論