fetch_20newsgroups数据集包含了20个主题的新闻文本数据
分类任务
解题步骤
-
数据导入和描述
- news.keys()查看有哪些数据字段
- 数据集大小,两种统计方法
- 每个分类的个数统计from collections import Counter
- 特征的分布情况,画图sns.histplot()
-
数据清洗和文本向量化处理
- 分割成每个单词string.split()
- 只保留文字:设置函数,对每个word. string.isalpha()
- 合并处理后的数据成列表
- 每个单词:词形还原处理from nltk.stem import WordNetLemmatizer
- 文本向量化CountVectorizer
-
分类模型
- kmeans
- 贝叶斯分类
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)}"