利用朴素贝叶斯算法实现新闻敏感词的屏蔽功能

该博客介绍了如何运用朴素贝叶斯算法进行新闻敏感词的屏蔽。首先进行分词处理,然后去除无意义词汇,接着建立词库和向量表示。通过多项式模型构建稀疏矩阵,并划分训练集与测试集。最后,利用sklearn的贝叶斯接口实现算法。提供了相关代码和数据资源。
摘要由CSDN通过智能技术生成

利用朴素贝叶斯算法实现新闻敏感词的屏蔽功能

敏感词检测步骤:
1.分词:对获取的评论进行分词处理,采用的是jieba分词
2.去除无意义词:采用的是哈工大的词表,遍历每一条评论,判断是否在无用词表(这里主要包含特殊字符,标点符号,感叹词等)中,从而达到去除无意词的效果
3.通过评论建立自己的词库,采用并集处理,达到词库中词的唯一性
4.建立向量:将去除无意词后的评论装换成稀疏矩阵,采用的是多项式模型,这里考虑到评论一般都比较短小,相对来说,几乎每一个词都会影响到最终的判断,所以采用多项式模型,而没有采用伯努利模型
5.划分训练集和测试集:采用random.shuffle()函数将数据随机排序,然后再通过切片处理划分数据,为了保证每条评论与其对应的标签保持一致,采用zip()函数将评论和标签绑定在一起
6.调用sklearn里面内置的贝叶斯算法接口

材料及源代码:
链接: https://pan.baidu.com/s/1B7eULxS7VpvvTeXdfQPq4w
提取码: hsua
里面有代码需要用的评论、无意词表、、特别明显的敏感词
代码实现

#导入需要的库
import random
import numpy as np
import jieba
import pandas as pd
import math
import sys
from sklearn.naive_bayes import MultinomialNB

# 分词
def JieBa(text):
    temp_text =  ' '.join(jieba.cut(text,cut_all=False))
    return  temp_text

# 去停用词
def Delet_stopword(text):
    temp_text = ''
    # 遍历分词后评论的每个词
    for word in text:
    	# 判断是否在停用词表中,存在则删除
        if word not in stopword:
            temp_text += word
    return temp_text
# 创建词库
def CreateVocablist(contents):
    VocabSet = set([])
    fenci_list = []
    delet_list = [
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值