当前位置: 首页 > news >正文

python学智能算法(十五)|机器学习朴素贝叶斯方法进阶-CountVectorizer多文本处理

【1】引言

前序学习进程中,已经学习CountVectorizer文本处理的简单技巧,先相关文章链接为:

python学智能算法(十四)|机器学习朴素贝叶斯方法进阶-CountVectorizer文本处理简单测试-CSDN博客

此次继续深入,研究多文本的综合处理。

【2】代码测试

首先相对于单文本测试,直接将文本改成多行文本:

# 引入必要的模块
from sklearn.feature_extraction.text import CountVectorizer# 单个文档
document = ["Python programming is fun and useful for data science.","Python is a great programming language for data science.","Data science uses Python for machine learning and AI.","AI and machine learning are fun with Python.","AI is popular at this time."]# 创建向量化器
vectorizer = CountVectorizer()
print('vetorizer=', vectorizer)
# 拟合并转换文档
X = vectorizer.fit_transform(document)
print('X=', X)
# 查看词汇表
print("词汇表:\n", vectorizer.get_feature_names_out())# 查看向量表示
print("向量表示:\n", X.toarray())

 尝试运行一下:

X=   (0, 14)    1
  (0, 13)    1
  (0, 8)    1
  (0, 6)    1
  (0, 1)    1
  (0, 18)    1
  (0, 5)    1
  (0, 4)    1
  (0, 15)    1
  (1, 14)    1
  (1, 13)    1
  (1, 8)    1
  (1, 5)    1
  (1, 4)    1
  (1, 15)    1
  (1, 7)    1
  (1, 9)    1
  (2, 14)    1
  (2, 1)    1
  (2, 5)    1
  (2, 4)    1
  (2, 15)    1
  (2, 19)    1
  (2, 11)    1
  (2, 10)    1
  (2, 0)    1
  (3, 14)    1
  (3, 6)    1
  (3, 1)    1
  (3, 11)    1
  (3, 10)    1
  (3, 0)    1
  (3, 2)    1
  (3, 20)    1
  (4, 8)    1
  (4, 0)    1
  (4, 12)    1
  (4, 3)    1
  (4, 16)    1
  (4, 17)    1
词汇表:
 ['ai' 'and' 'are' 'at' 'data' 'for' 'fun' 'great' 'is' 'language'
 'learning' 'machine' 'popular' 'programming' 'python' 'science' 'this'
 'time' 'useful' 'uses' 'with']
向量表示:
 [[0 1 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 1 0 0]
 [0 0 0 0 1 1 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0]
 [1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0]
 [1 1 1 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 0 0 1]
 [1 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0]] 

最开始的X出现“(0,14),1”解读:

0表示(Python programming is fun and useful for data science.)是第0行样本,实际上从1开始计数是第1行样本;

14表示样本中的第一个词,也就是Python,在按照所有文本中所有单词首字母顺序排列后,将位于第14号位置,实际上从1开始计数是第15个,后面的1表示Python这个词在第0行样本中出现了一次。

其余数据意义类似。

输出的词汇表是将所有文本中所有单词首字母顺序排列后获得的结果。

向量表示则按照行的形式,将每一行的列数都扩充或者说是广播到所有文本中所有单词合并同类项后的数量,所有单词合并同类项后刚好是17个数据,所以每一行都有17个数据,在对应行样本中未出现的词就会自动计数0。

【3】总结

使用CountVectorizer开展了多文简单测试。

http://www.lryc.cn/news/573121.html

相关文章:

  • C++链表的虚拟头节点
  • Wire--编译时依赖注入工具
  • Java面试题025:一文深入了解数据库Redis(1)
  • 4.1 FFmpeg编译选项配置
  • 缓存与加速技术实践-Kafka消息队列
  • ARCGIS国土超级工具集1.6更新说明
  • 【RAG优化】深度解析开源项目MinerU:从PDF解析到多模态理解的工业级解决方案
  • Linux - 安装 git(sudo apt-get)
  • PostgreSQL/Hologres 外部服务器系统表 pg_foreign_server 详解
  • 基于 Flutter+Sqllite 实现大学个人课表助手 APP(期末作业)
  • 什么是RoCE网络技术
  • 飞书使用技巧 --- 飞书批量导入建群 (以导入名单的方式)
  • HTML5简介
  • 课程目录:腾讯混元3D × Unity3D全流程开发
  • word-spacing 属性
  • 文本分类与聚类:让信息“各归其位”的实用方法
  • 面试题-函数入参为interface类型进行约束
  • Python元组及字符串
  • 经典:在浏览器地址栏输入信息到最终看到网页的全过程,涉及网络协议以及前后端技术
  • SQL Server基础语句2:表连接与集合操作、子查询与CET、高级查询
  • 服务发现与动态负载均衡的结合
  • 零基础学习Redis(12) -- Java连接redis服务器
  • c++26新功能—hive容器
  • gRPC 框架面试题精选及参考答案
  • SVN上传代码
  • 力扣1546. 和为目标值且不重叠的非空子数组的最大数目
  • 【09】设计并实现一套面向 Agent 任务规划的 DSL 语言
  • 针对机器人自修复材料的具体推荐及特性分析
  • vscode搭建spring boot项目
  • Qt、C++自定义按钮、组件、事件编程开发练习,万字实战解析!!