python—利用朴素贝叶斯分类器对文本进行分类

题目:

1.已知一个文本集合为:
[[‘my’, ‘dog’,‘has’,’false’,’problems’,’help’,’please’],
[‘maybe’,’not’,’take’,’him’,’to’,’dog’,’park’,’stupid’],
[‘my’,’dalmation’,’is’,’so’,’cute’,’I’,’love’,’him’,’my’],
[‘stop’,‘posting’,‘stupid’,‘worthless’,‘garbage’], [‘mr’,‘licks’,‘ate’,‘my’,‘steak’,‘how’,‘to’,‘stop’,‘him’],
[‘quit’,‘buying’,‘worthless’,‘dog’,‘food’,‘stupid’]]
此数据集有6个文本,其对应标签为classVec={0,1,0,1,0,1},标签为1表示此文本带有侮辱性词语,否则标签为0。要求:
(1)得到数据集的所有出现的单词构成的无重复词的词典。即为:
[‘cute’, ‘love’, ‘help’, ‘garbage’, ‘quit’, ‘I’, ‘problems’, ‘is’, ‘park’, ‘stop’, ‘flea’, ‘dalmation’, ‘licks’, ‘food’, ‘not’, ‘him’, ‘buying’, ‘posting’, ‘has’, ‘worthless’, ‘ate’, ‘to’, ‘maybe’, ‘please’, ‘dog’, ‘how’, ‘stupid’, ‘so’, ‘take’, ‘mr’, ‘steak’, ‘my’]
(2)根据词典将原始的6个文本表示成0或1数字构成的词向量形式。例如,第一个文本对应的词向量为:
[0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1]

(3)利用朴素贝叶斯分类模型。
(4)现有两个文本:[‘love’, ‘my’, ‘dalmation’], [‘stupid’, ‘garbage’],用(3)得到的朴素贝叶斯分类器对其进行分类,即给出其标签为0(非侮辱性文本)或1(侮辱性文本)。

2.在(1)-(4)的基础上,对给出的50个邮件,其中25个垃圾邮件,25个非垃圾邮件进行分类,随机选取20个垃圾邮件和20个非垃圾邮件作为训练集,剩余10个文本为测试集,用训练集文本得到朴素贝叶斯文本分类器的多项式模型或贝努力模型,然后对测试集文本进行测试,得到其accuracy值。

步骤:

代码如下:

# -*- coding: utf-8 -*-
from numpy import*     #导入所有库
def loadDataSet():      #载入数据和标签
    postingList=[
        ['my','dog','has','flea','problems','help','please'], 
        ['maybe','not','take','him','dog','part','park','stupid'], 
        ['my','dalmation','is','so','cute','I','love','him'],
        ['stop','posting','stupid','worthless','garbage'],
        ['mr','licks','ate','my','steak','how','to','stop','him'],
        ['quit','buying','worthless','dog','food','stupid']
        ]
    classVec=[0,1,0,</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Y_ni

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值