利用sklearn 朴素贝叶斯进行评论短语的分类

该博客介绍了如何利用Python的sklearn库和朴素贝叶斯算法对评论短语进行垃圾信息分类。通过Spyder、jieba分词和其他工具处理文本数据,训练数据包含4万条记录,测试数据2万条,最终模型在调整alpha参数为0.001时达到最优准确率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

功能:

对评论短语,比如一个文章下的评论短语进行分类通过或者删除,也就是是垃圾 、不是垃圾。

工具:

Spyder,jieba分词,numpy,joblib,sklearn

程序:

# -*- coding: utf-8 -*-
"""
Created on Mon May 14 10:12:38 2018
@author: Administrator
"""
import codecs
import jieba
from sklearn.naive_bayes import MultinomialNB
from sklearn.pipeline import Pipeline
from sklearn.feature_extraction.text import CountVectorizer,TfidfVectorizer
import numpy as np
from sklearn.externals import joblib
import matplotlib.pyplot as plt
from sklearn.metrics import roc_curve, auc 


"""
CountVectorizer:
      只考虑词汇在文本中出现的频率
      验证文件并计算令牌的出现次数并将其作为稀疏矩阵返回
TfidfVectorizer:
     除了考量某词汇在文本出现的频率,还关注包含这个词汇的所有文本的数量
     能够削减高频没有意义的词汇出现带来的影响, 挖掘更有意义的特征
     相比之下,文本条目越多,Tfid的效果会越显著
     将术语频率逆序文档频率归一化为发生次数的稀疏矩阵。 
"""

#获取停用词表
stop_words = "E:/Python/data/totalstop.txt"
stopwords = codecs.open(stop_words,'rb',encoding='utf-8').readlines()
stopwords = [ w.strip() for w in stopwords ]

train_data_path="E:/Python/data/四万.txt"
test_data_path="E:/Python/data/两万.txt"
model_save
Python的scikit-learn库中,多项式朴素贝叶斯(Polynomial Naive Bayes)是一种基于贝叶斯定理的简单概率模型,常用于文本分类任务,特别是当特征数据是词频或者转换后的多项式特征时。以下是使用多项式朴素贝叶斯进行新闻文本分类的一般步骤: 1. **数据预处理**: - 分词:将文本拆分成单词或短语。 - 特征提取:将文本转换成数值特征,如词袋模型(Bag of Words)或TF-IDF向量化,以便算法可以理解。 2. **加载和划分数据**: - 导入所需库(如`sklearn`, `pandas`, `numpy`等)。 - 加载训练集和测试集数据,通常包含文本内容和对应的类别标签。 ```python from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X_text, y_labels, test_size=0.2) ``` 3. **创建多项式朴素贝叶斯模型**: - 使用`sklearn.naive_bayes.MultinomialNB`类创建模型实例。 ```python from sklearn.naive_bayes import MultinomialNB model = MultinomialNB() ``` 4. **训练模型**: - 使用`fit()`方法对模型进行训练,输入是特征矩阵和对应标签。 ```python model.fit(X_train, y_train) ``` 5. **评估模型**: - 预测测试集并计算准确率、召回率、F1分数等性能指标。 ```python y_pred = model.predict(X_test) accuracy = accuracy_score(y_test, y_pred) ``` 6. **(可选)调整参数**: - 可以通过交叉验证(如GridSearchCV)调整多项式次数或其他超参数,以优化模型性能。 ```python from sklearn.model_selection import GridSearchCV param_grid = {'alpha': [0.1, 1.0], 'degree': [1, 2, 3]} grid_search = GridSearchCV(MultinomialNB(), param_grid, cv=5) grid_search.fit(X_train, y_train) best_params = grid_search.best_params_ ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值