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

利用tf-idf对特征进行提取

TF-IDF是一种文本特征提取的方法,用于评估一个词在一组文档中的重要性。 

一、代码

from sklearn.feature_extraction.text import TfidfVectorizer
import numpy as npdef print_tfidf_words(documents):"""打印TF-IDF矩阵中每个文档中非零值对应的单词及其概率。Parameters:- documents: list,包含文档的列表Returns:- None"""# 创建TF-IDF向量化器vectorizer = TfidfVectorizer()# 对文档集合进行拟合和转换tfidf_matrix = vectorizer.fit_transform(documents)# 获取特征词列表feature_names = vectorizer.get_feature_names_out()# 将TF-IDF矩阵转换为稠密矩阵# 在TF-IDF矩阵中,每一行代表一个文档,每一列代表一个特征词# 非零值对应的列索引  就是  该文档中的非零权重对应的单词  在特征词列表中的索引# dense_tfidf_matrix 是一个 NumPy 稠密矩阵,可以使用索引操作符 [row, column] 来获取矩阵中的特定元素dense_tfidf_matrix = tfidf_matrix.todense()# 打印每个文档中非零值对应的单词及其概率for i, document in enumerate(dense_tfidf_matrix):nonzero_indices = document.nonzero()[1]dic = {idx: document[0, idx] for idx in nonzero_indices}# 根据概率进行排序sorted_dic = dict(sorted(dic.items(), key=lambda x: x[1], reverse=True))words = {feature_names[k]: v for k, v in sorted_dic.items()}print(f"文档 {i + 1} 中的非零值对应的单词及其概率:{words}")# 打印特征词对应的索引print("Feature indices:", {feature: index for index, feature in enumerate(feature_names)})# 示例文档集合
documents = ["This is the first document.","This document is the second document.","And this is the third one.","Is this the first document?"
]# 调用函数打印结果
print_tfidf_words(documents)

二、结果

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

相关文章:

  • 遇到运维故障,有没有排查和解决故障的正确流程?
  • javaWebssh汽车销售管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计
  • 基于pandoraNext使用chatgpt4
  • 12.视图
  • Leetcode69 x的平方根
  • 在Linux上安装配置Nginx高性能Web服务器
  • LeetCode 每日一题 Day 11||贪心
  • ocr表格文字识别软件怎么使用?
  • 【QT 5 调试软件+Linux下调用脚本shell-经验总结+初步调试+基础样例】
  • 使用 Goroutine 和 Channel 构建高并发程序
  • 大数据机器学习与深度学习——过拟合、欠拟合及机器学习算法分类
  • Lenovo联想拯救者Legion Y9000X 2021款(82BD)原装出厂Windows10系统
  • pytorch中的transpose用法
  • SpringBoot面试题及答案(最新50道大厂版,持续更新)
  • KUKA机器人如何隐藏程序或程序段?
  • C++ STL(1)--概述
  • unity 2d 入门 飞翔小鸟 死亡闪烁特效(十三)
  • Cannot find cache named ‘‘ for Builder Redis
  • IntelliJ IDEA的下载安装配置步骤详解
  • 光线追踪算法实现
  • 学习深度强化学习---第3部分----RL蒙特卡罗相关算法
  • linux虚拟机使用81-persistent-net.rule后接口名依然改变的问题处理
  • ARMV8 - A64 - 跳转和返回指令
  • QX320F28335,自研内核指令集,主频150MHz,自研工具链,纯国产DSP,硬件兼容TMS320F28335
  • 《使用ThinkPHP6开发项目》 - 登录接口一
  • zabbix精简模板
  • GO设计模式——14、代理模式(结构型)
  • 外贸SOHO建站怎么做?海洋建站方法策略?
  • 商城免费搭建之java鸿鹄云商 java电子商务商城 Spring Cloud+Spring Boot+mybatis+MQ+VR全景+b2b2c
  • 【淘宝网消费类电子产品销售数据可视化】