ml-20newsgroups新闻组数据集notes【详细解题步骤】

本文介绍了如何使用Python处理fetch_20newsgroups数据集,包括数据导入、描述、特征分布分析,数据清洗(去除非字母字符并进行词形还原),以及使用CountVectorizer进行文本向量化,最后尝试了KMeans聚类和贝叶斯分类(GaussianNB)进行文本分类。

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

fetch_20newsgroups数据集包含了20个主题的新闻文本数据

分类任务

解题步骤

  1. 数据导入和描述

    1. news.keys()查看有哪些数据字段
    2. 数据集大小,两种统计方法
    3. 每个分类的个数统计from collections import Counter
    4. 特征的分布情况,画图sns.histplot()
  2. 数据清洗和文本向量化处理

    1. 分割成每个单词string.split()
    2. 只保留文字:设置函数,对每个word. string.isalpha()
    3. 合并处理后的数据成列表
    4. 每个单词:词形还原处理from nltk.stem import WordNetLemmatizer
    5. 文本向量化CountVectorizer
  3. 分类模型

    1. kmeans
    2. 贝叶斯分类

1.1 数据导入和描述

  • 导入数据
import pandas as pd
import numpy as np
import pymysql
from sqlalchemy import create_engine
from sklearn.datasets import fetch_20newsgroups
# 选择部分数据,
categories = ['alt.atheism', 'talk.religion.misc','comp.graphics', 'sci.space']
news=fetch_20newsgroups(subset='all',categories=categories)
  • 查看数据
#查看数据
print(f"数据有哪些字段:{
     news.keys()}")
print(f"数据集大小:{
     len(news.data)}") #len:对list的大小判断
print(f"数据集大小:{
     np.array(news.data).shape}") #array.shape,对数组的大小判断
print(f"多少个类别特征:{
     len(news.target_names)}"
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值