Scikit-learn Python机器学习 - 中文文本特征提取 - 词袋模型 - CountVectorizer

锋哥原创的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)和方向的量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值