【3】简单粗暴MATLAB中文文本分类
最近探索了用MATLAB进行文本分类,没有涉及高级和复杂的算法公式,仅发出来和大家分享下。
数据集
数据是关于新闻分类的,总共包括财经、房产、家居、教育、科技、时尚、时政、体育、游戏、娱乐10种类型的新闻。训练集共10000行数据。
目标
使用MATLAB训练分类器,实现对新闻文本的分类。
步骤
1、使用数据导入功能将训练集导入workspace,导入类型为tabel类型,整个table命名为train,第一列为response(分类目标,categorical类型),第二列为新闻描述文本(string类型)。
2、基于第二列新闻描述文本,按单字拆开,并去重,生成字典/字库。
wenben = string(train{:,2});%table的第二列为新闻描述文本
u_c = '';%存放字典/字库for i = 1:length(wenben)c = char(wenben(i));%取出第i行字符u_c = [u_c,c];%与u_c合并u_c = unique(u_c);%去除重复字符end
3、生成特征矩阵,每一行代表一个样本,每一列代表字典/字库中该字出现的次数。
tezheng = zeros(length(wenben),length(u_c));%特征矩阵,每一行代表一个样本,每一列代表字典/字库中该字出现的次数
for i = 1:length(wenben)c = char(wenben(i));for j = 1:length(c)%如果该字c(j)属于字典/字库u_c的字,则在特征矩阵相应位置加1tezheng(i,u_c==c(j)) = tezheng(i,u_c==c(j)) + ismember(c(j),u_c);endend
4、将生成的特征矩阵和train的第一列分类目标,合成一个table,用于Classification Learner APP训练分类器。
T_train = array2table(tezheng);
leibie = train{:,1};
T_train.leibie = leibie;
5、使用Classification Learner APP进行训练。选择所有模型(show hand),发现好多模型算废了,可能是因为特征太多了吧,第一个树模型准确度74.8%,选择Export Model - Generate Code。
6、保存生成的代码为trainClassifier_xinwen.m。然后使用该代码重新训练一次,
[trainedClassifier, validationAccuracy] = trainClassifier_xinwen(T_train);
生成每个特征的重要度imp,
imp = predictorImportance(trainedClassifier.ClassificationTree);
观察imp,我们发现,多数特征的重要度为0,因此我们取出重要度大于0的特征,重新组成训练数据集T_train_select,
f_index = find(imp>0);
T_train_select = T_train(:,[f_index,5218]);
7、基于T_train_select数据,重新进行训练,
这次多数模型都得出了训练结果,其中集成树模型1.19,具有最高的准确度,为93.6%。
8、使用另外含有3000个样本的测试数据集进行测试,最高准确度87.4%。
9、剩余的模型调参、判断过拟合/欠拟合、bad case的处理等等工作,有(wo)空(hai)再(bu)聊(hui),哈哈……
【3】简单粗暴MATLAB中文文本分类相关推荐
- 【NLP】BERT 模型与中文文本分类实践
简介 2018年10月11日,Google发布的论文<Pre-training of Deep Bidirectional Transformers for Language Understan ...
- TensorFlow使用CNN实现中文文本分类
TensorFlow使用CNN实现中文文本分类 读研期间使用过TensorFlow实现过简单的CNN情感分析(分类),当然这是比较low的二分类情况,后来进行多分类情况.但之前的学习基本上都是在英文词 ...
- 万字总结Keras深度学习中文文本分类
摘要:文章将详细讲解Keras实现经典的深度学习文本分类算法,包括LSTM.BiLSTM.BiLSTM+Attention和CNN.TextCNN. 本文分享自华为云社区<Keras深度学习中文 ...
- 【NLP】中文文本分类数据增强方法:EDA 与代码实现
数据增强可以算作是做深度学习算法的一个小trick.该介绍主要出自论文:EDA: Easy Data Augmentation Techniques for Boosting Performance ...
- 中文文本分类语料库-TanCorpV1.0
转自 http://www.360doc.com/content/12/0216/21/3430376_187198503.shtml 中文文本分类语料库-TanCorpV1.0 谭松波,王月粉 1 ...
- java 知网 语义 相似度,基于知网语义相似度的中文文本分类研究 论文笔记
基于知网语义相似度的中文文本分类研究 1.传统的文本处理大部分是根据词频和逆向文档频率将文本表示成向量空间模型,实践证明这种模型确实简单高效并且得到了广泛应用,但这种模型表示缺乏对语义的理解,忽略了词 ...
- Pytorch TextCNN实现中文文本分类(附完整训练代码)
Pytorch TextCNN实现中文文本分类(附完整训练代码) 目录 Pytorch TextCNN实现中文文本分类(附完整训练代码) 一.项目介绍 二.中文文本数据集 (1)THUCNews文本数 ...
- textcnn文本词向量_基于Text-CNN模型的中文文本分类实战
1 文本分类 文本分类是自然语言处理领域最活跃的研究方向之一,目前文本分类在工业界的应用场景非常普遍,从新闻的分类.商品评论信息的情感分类到微博信息打标签辅助推荐系统,了解文本分类技术是NLP初学者比 ...
- python中文文本分析_基于CNN的中文文本分类算法(可应用于垃圾邮件过滤、情感分析等场景)...
基于cnn的中文文本分类算法 简介 参考IMPLEMENTING A CNN FOR TEXT CLASSIFICATION IN TENSORFLOW实现的一个简单的卷积神经网络,用于中文文本分类任 ...
最新文章
- SpringMVC怎么获取前台传来的数组
- Spark中Task,Partition,RDD、节点数、Executor数、core数目(线程池)、mem数
- golang管道channel的基本使用及注意事项:往管道中存取数据
- async与await封装ajax请求
- php 函数strtr 替换函数实例解析 strtr 速度比较快
- 《转》安卓P 刘海屏的适配
- 特斯拉员工入职3天就“偷”代码,悄悄备份6300多 Python 脚本
- python json库函数_Python JSON
- 经验案例:当配置为共享/静态WEP加密时,客户端无法从DHCP获取IP地址
- Kubernetes详解(五)——Kubernetes核心对象
- mysql的json使用
- 解决windows server2012 评估版本过期,系统自动关机 重启
- 入侵网络游戏服务器修改,如何入侵网络游戏服务器
- 操作系统与网络实现 之二十三(丙)
- ie11加载项启用不了 java,经常提示此网站的某个加载项无法运行(ie10/11)
- python从文件中读取数据_【Python】从文件中读取数据
- Android性能优化系列之电量优化
- 我的spfa (= =)!
- SSM框架配置文件整理
- Android Connectivity分析(1)- ConnectivityManager
热门文章
- php mysql 压力测试_MySQL的性能基线收集及压力测试
- LM2596-ADJ版本电路及布局
- 本地数据仓库项目(一) —— 本地数仓搭建详细流程
- linux音频服务器,在Ubuntu Linux上配置MPD音乐服务器
- history of program
- googleplay应用无法支付,内购应用支付窗口闪退解决办法
- mysql ocp_MySQL 5.7OCP考试经验分享。
- 软考有很多70后的人,是什么原因会参加考试呢?
- 小米手机qq或者微信分享时 不能选取双开应用。提示任何个人应用都无法打开此内容解决办法!
- Pythont tip