【文本分类】基于改进TF-IDF特征的中文文本分类系统

简介: 【文本分类】基于改进TF-IDF特征的中文文本分类系统

摘要:改进TFIDF,提出相似度因子,提高了文本分类准确率。

参考文献:[1]但唐朋,许天成,张姝涵.基于改进TF-IDF特征的中文文本分类系统[J].计算机与数字工程,2020,48(03):556-560.

   😮 最近看了许多有关机器学习的文本分类改进,有一部分论文写的非常差劲,文不知所以,论文中的公式站不住脚,根本无法代码实现,一度使我怀疑是不是自己出了问题。现在已经往基于深度学习的文本分类上转了。

一、引言


  采用 one-hot模型进行文本向量化操作,并利用TF-IDF策略进行向量维度的权重计算。其后对传统TF-IDF策略进行改进并联合基于SVM模型机器学习算法完成自动化文本分类系统的设计。

二、基础算法


2.1、TF-IDF算法【词频-逆文档频】


  可以参考上一篇博客【文本分类】基于类信息的TF-IDF权重分析与改进

2.2、改进算法


  传统的TF-IDF算法忽略了相似词对文本分类的影响。[例如,经过训练得到特征词"自然语言处理"对标签"文本分类"有很大贡献度,那么"NLP"作为与"自然语言处理"在某种关系R下的相似词,也应该对标签"文本分类"有很大贡献度]。

 论文提出了对于两个特征词x、y,计算它们的相似度的方法:

image.png

其中x、y的shape为(1,n),n为数据集中文本数量。x[i]的含义是特征词x在第i篇文档的频数。

  得到每个特征之间的相似度关系之后,计算相似度因子:

image.png

其中,P表示特征词t在某一个文本d中的频数,Q表示在文本d中与特征词t相似的各个特征的频数和,U是文本d中所有特征的频数和。

  最终,改进的TFIDF的公式为:

image.png

三、代码实验


3.1、实验思路


  改进TFIDF算法中存在的参数为:【特征维数相似度大小

  通过调整实验参数,来观察改进TFIDF算法与普通TFIDF算法文本分类准确率之差

3.2、数据集


  数据来源于 https://github.com/cystanford/text_classification 。数据集共包含四个类别,分别为“女性”,“体育”,“文学”,“校园”,原始数据集已经划分了测试集和训练集,并给出了停用词文档。

3.3、实验结果


  5折交叉检验:

image.png

image.png

image.png

image.png

相关文章
|
机器学习/深度学习 算法 数据可视化
可解释性机器学习:基于随机森林和Ceteris-paribus的乳腺癌早期诊断研究
可解释性机器学习:基于随机森林和Ceteris-paribus的乳腺癌早期诊断研究
670 1
|
机器学习/深度学习 数据采集 算法
探索LightGBM:类别特征与数据处理
探索LightGBM:类别特征与数据处理
1100 5
|
传感器 数据采集 监控
上千个完整设计的单片机、8086、STM32制作教程和资料-转发分享
在网上收集了接近上千个完整设计的单片机、8086、STM32制作教程和资料-转发分享(涵盖了大部分的毕设课设题目),学习单片机的最好教程,也可以作为帮助大家在做电子课设毕设时有利的帮助,可以从以下百度网盘下载(按照编号下载)。
2839 0
上千个完整设计的单片机、8086、STM32制作教程和资料-转发分享
|
SQL XML Java
mybatis Mapper的概念与实战
MyBatis 是一个流行的 Java 持久层框架,它提供了对象关系映射(ORM)的功能,使得Java对象和数据库中的表之间的映射变得简单。在MyBatis中,Mapper是一个核心的概念,它定义了映射到数据库操作的接口。简而言之,Mapper 是一个接口,MyBatis 通过这个接口与XML映射文件或者注解绑定,以实现对数据库的操作。
529 1
|
算法 数据安全/隐私保护
CTF — MP3文件隐写
CTF — MP3文件隐写
463 0
|
机器学习/深度学习 TensorFlow 算法框架/工具
【大作业-02】水果蔬菜识别系统-基于tensorflow2.3开发
2021年6月18日,TensorFlow 2.3物体分类代码已修复并更新。本项目支持自定义数据集训练,包括基于CNN和Mobilenet的模型,后者准确率高达97%。提供了详细的CSDN教程、B站教学视频及数据集下载链接,帮助用户快速上手。项目还包括PyQt5构建的图形界面,方便用户上传图片进行果蔬识别。更多详情与代码可在Gitee获取。
442 0
【大作业-02】水果蔬菜识别系统-基于tensorflow2.3开发
|
存储 C语言
C语言-重点知识总结-建议收藏(完结)
C语言-重点知识总结-建议收藏(完结)
314 0
|
自然语言处理 算法 搜索推荐
|
机器学习/深度学习 数据采集 监控
Scikit-learn机器学习
【5月更文挑战第3天】Scikit-learn是一个基于NumPy、SciPy和Matplotlib的Python机器学习库,提供数据预处理到模型评估的全套工具。支持监督学习、无监督学习和降维等任务。要安装Scikit-learn,运行`pip install scikit-learn`。流程包括:数据准备(如加载鸢尾花数据集并划分训练测试集)、选择模型(如SVM分类器)、模型训练、模型评估(计算准确度)、特征工程和数据预处理(如特征缩放)、超参数调优(如Grid Search CV)、模型可视化(如混淆矩阵)和部署。
|
数据采集 数据可视化 数据挖掘
时间序列分析:用Python解锁金融市场数据的潜在价值
【4月更文挑战第12天】本文介绍了使用Python进行时间序列分析以挖掘金融市场数据价值的方法。金融市场数据具有时间性、不稳定性、非平稳性和相关性等特点。Python中的Pandas和Statsmodels库是进行时间序列分析的常用工具。基本流程包括数据导入、预处理、探索、模型选择(如ARIMA)、模型评估和优化。通过学习和实践,可以有效利用这些工具分析金融市场数据。
386 1