锋哥原创的Scikit-learn Python机器学习视频教程:
2026版 Scikit-learn Python机器学习 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili
课程介绍
本课程主要讲解基于Scikit-learn的Python机器学习知识,包括机器学习概述,特征工程(数据集,特征抽取,特征预处理,特征降维等),分类算法(K-临近算法,朴素贝叶斯算法,决策树等),回归与聚类算法(线性回归,欠拟合,逻辑回归与二分类,K-means算法)等。
Scikit-learn Python机器学习 - 中文文本特征提取 - 词袋模型 - CountVectorizer
如果进行中文文本特征提取,我们首先要做的是中文分词,我们使用jieba库。
pip install jieba -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
先对语料库进行中文分词处理,然后再进行文本提取。注意我们这里的停用词,是开源网站主流的停用词库-stopWords.txt,里面包含了所有不需要,不重要的中英文词语包括符号。
我们看一个示例:
import jieba
from sklearn.feature_extraction.text import CountVectorizer
# 示例文本数据
corpus = [
'A股国产软件概念股全线大涨,开普云、正元智慧、君逸数码等好多强势大涨,另有好多只概念股大涨。消息面上,全新一代中国操作系统——银河麒麟操作系统在“2025中国操作系统产业大会”正式发布。',
'上海壹号院五批次好多开盘,数套房源1小时开盘售罄,劲销好多。至此好多,上海壹号院今年好多累计好多开盘总销售金额超,好多继续保持全国单盘销冠位置。',
'当日,在江苏南京举行的2025江苏省城市足球联赛好多第九轮比赛中,南京队对阵盐城队。南京市在部分商场、街区等地设置好多观赛“第二现场”,使用大屏幕同步直播赛事,同时好多设有游戏互动区、烟火市集区,让球迷们度过欢乐时光。'
]
def cut_word(text):
"""
jieba中文分词
:return:
"""
new_text = " ".join(list(jieba.cut(text)))
return new_text
# 普通写法
new_corpus = []
for c in corpus:
new_corpus.append(cut_word(c))
print(new_corpus)
# 高手写法 推导式 一句话搞定
# new_corpus = [' '.join(list(jieba.cut(x))) for x in corpus]
# print(new_corpus)
# 初始化 CountVectorizer
# min_df: 忽略文档频率低于此值的词
# stop_words: 移除停用词
vectorizer = CountVectorizer(min_df=1,
stop_words=[line.strip() for line in open('stopWords.txt', encoding='UTF-8').readlines()])
# 学习词汇字典并转换文本数据
X = vectorizer.fit_transform(new_corpus)
# 查看生成的词汇表
print("词汇表(特征名):")
print(vectorizer.get_feature_names_out())
# 查看稠密矩阵(实际应用中矩阵通常非常稀疏,用.toarray()查看,但用X直接计算)
print("\n特征向量矩阵:")
print(X.toarray())
print("\n稀疏矩阵:")
print(X)
运行结果:比如'每天'这个词,属于停用词里面的,所以不作为特征。
['A股 国产软件 概念股 全线 大涨 , 开普云 、 正 元 智慧 、 君逸 数码 等 好多 强势 大涨 , 另有 好多 只 概念股 大涨 。 消息 面上 , 全新 一代 中国 操作系统 — — 银河 麒麟 操作系统 在 “ 2025 中国 操作系统 产业 大会 ” 正式 发布 。', '上海 壹号 院五 批次 好多 开盘 , 数 套房 源 1 小时 开盘 售罄 , 劲销 好多 。 至此 好多 , 上海 壹号 院 今年 好多 累计 好多 开盘 总 销售 金额 超 , 好多 继续 保持 全国 单盘 销冠 位置 。', '当日 , 在 江苏 南京 举行 的 2025 江苏省 城市 足球联赛 好多 第九轮 比赛 中 , 南京队 对阵 盐城 队 。 南京市 在 部分 商场 、 街区 等 地 设置 好多 观赛 “ 第二 现场 ” , 使用 大屏幕 同步 直播 赛事 , 同时 好多 设有 游戏 互动 区 、 烟火 市集 区 , 让 球迷 们 度过 欢乐 时光 。']
词汇表(特征名):
['2025' 'a股' '一代' '上海' '中国' '互动' '产业' '位置' '全国' '全新' '全线' '劲销' '单盘' '南京'
'南京市' '南京队' '发布' '另有' '同步' '君逸' '售罄' '商场' '国产软件' '城市' '壹号' '大会' '大屏幕'
'大涨' '套房' '好多' '对阵' '小时' '市集' '度过' '开普云' '开盘' '强势' '当日' '批次' '操作系统' '数码'
'时光' '智慧' '概念股' '欢乐' '正式' '比赛' '江苏' '江苏省' '消息' '游戏' '烟火' '现场' '球迷' '盐城'
'直播' '第九轮' '累计' '至此' '街区' '观赛' '设有' '设置' '赛事' '足球联赛' '金额' '银河' '销冠' '销售'
'院五' '面上' '麒麟']
特征向量矩阵:
[[1 1 1 0 2 0 1 0 0 1 1 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 3 0 2 0 0 0 0 1 0
1 0 0 3 1 0 1 2 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1]
[0 0 0 2 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 2 0 0 0 1 6 0 1 0 0 0 3
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 1 1 0 0]
[1 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 1 0 1 0 0 1 0 0 3 1 0 1 1 0 0
0 1 0 0 0 1 0 0 1 0 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0]]
稀疏矩阵:
<Compressed Sparse Row sparse matrix of dtype 'int64'
with 75 stored elements and shape (3, 72)>
Coords Values
(0, 1) 1
(0, 22) 1
(0, 43) 2
(0, 10) 1
(0, 27) 3
(0, 34) 1
(0, 42) 1
(0, 19) 1
(0, 40) 1
(0, 29) 2
(0, 36) 1
(0, 17) 1
(0, 49) 1
(0, 70) 1
(0, 9) 1
(0, 2) 1
(0, 4) 2
(0, 39) 3
(0, 66) 1
(0, 71) 1
(0, 0) 1
(0, 6) 1
(0, 25) 1
(0, 45) 1
(0, 16) 1
: :
(2, 64) 1
(2, 56) 1
(2, 46) 1
(2, 15) 1
(2, 30) 1
(2, 54) 1
(2, 14) 1
(2, 21) 1
(2, 59) 1
(2, 62) 1
(2, 60) 1
(2, 52) 1
(2, 26) 1
(2, 18) 1
(2, 55) 1
(2, 63) 1
(2, 61) 1
(2, 50) 1
(2, 5) 1
(2, 51) 1
(2, 32) 1
(2, 53) 1
(2, 33) 1
(2, 44) 1
(2, 41) 1
向量的定义:
在数学中,向量(也称为欧几里得向量、几何向量),指具有大小(magnitude)和方向的量