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

【1】引言

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

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

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

【2】代码测试

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

python 复制代码
# 引入必要的模块
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开展了多文简单测试。

相关推荐
KaMeidebaby6 分钟前
卡梅德生物技术快报|纯化重组蛋白实操详解
人工智能·python·tcp/ip·算法·机器学习
Cloud_Shy6187 分钟前
解读《Effective Python 3rd Edition》:从练气到老魔(第五章 Item 30 - 32)
开发语言·人工智能·笔记·python·学习方法
YueTann9 分钟前
OpenRLHF设计
人工智能
云烟成雨TD11 分钟前
Spring AI 1.x 系列【52】可观测集成 SkyWalking
人工智能·spring·skywalking
云烟成雨TD11 分钟前
Spring AI 1.x 系列【57】动态工具发现:Tool Search Tool
java·人工智能·spring
AndrewHZ12 分钟前
【LLM技术全景】规模定律与模型演进:为什么模型越大越强?
人工智能·gpt·深度学习·语言模型·llm·openai·规模定律
galaxylove12 分钟前
Gartner发布创新洞察:AI SOC智能体加速通信运营商安全运营转型
大数据·人工智能·安全
甩手网软件22 分钟前
Shopee2026新规:费率重构与履约收紧下,卖家如何破局?
大数据·人工智能
数据库小学妹24 分钟前
AI时代数据库怎么选?多模融合、数据统一存储与选型实战指南
数据库·人工智能·经验分享·ai
lizhihai_9931 分钟前
股市学习心得-AI 产业链核心标的梳理清单
大数据·服务器·人工智能·科技·学习