• 大小: 591KB
    文件类型: .zip
    金币: 2
    下载: 0 次
    发布日期: 2024-01-30
  • 语言: 其他
  • 标签:

资源简介

贝叶斯应用:网络评论预测食品安全案例测试集及源码 :
数据为 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

评论

共有 条评论