利用支持向量机模型对2万条新闻进行分类

一、文本预处理
1、新闻用txt文件装,每一行一个新闻,为了减轻矩阵维数,只选择包括标题在内的与新闻内容最相关的前100个字。
2、对新闻进行jieba分词,分词后每一行是一条新闻的词语,格式是一个List

二、求文本的TF-IDF矩阵
直接上代码和注释,关于矩阵原理以及应用可翻看:
点这里

# coding:utf-8
from sklearn.feature_extraction.text import CountVectorizer # 计算TF的模块
from sklearn.feature_extraction.text import TfidfTransformer # 计算TF-IDF矩阵的模块
from sklearn.svm import SVC # 支持向量机模块
import timestart=time.time() # 计时开始# 以下是读取 训练、测试集文本、对应的分类标签
train_txt=open('train_contents.txt','r',encoding='utf-8').read().split('\n')
test_txt=open('test_contents.txt','r',encoding='utf-8').read().split('\n')
all_txt=train_txt+test_txttrain_labels=open('train_labels.txt','r',encoding='utf-8').read().split('\n')
test_labels=open('test_labels.txt','r',encoding='utf-8').read().split('\n')
count_vo=CountVectorizer()  # 初始化这个对象
count_alls=count_vo.fit_transform(all_txt)  # 构造一个全部文本的TF对象
count_v1=CountVectorizer(vocabulary=count_vo.vocabulary_)
count_train=count_v1.fit_transform(train_txt) # 求得训练集的TF矩阵
count_v2=CountVectorizer(vocabulary=count_vo.vocabulary_)
test_train=count_v2.fit_transform(test_txt)  # 求得测试集TF矩阵
# 以下是根据TF矩阵 求TF-IDF矩阵
tf_idf=TfidfTransformer()
train_data=tf_idf.fit(count_train).transform(count_train)
test_data=tf_idf.fit(test_train).transform(test_train)

三、训练模型和预测

# 训练模型
svclf=SVC(kernel='linear') # 初始化SVM支持向量机模型
svclf.fit(train_data,train_labels) # 对训练集进行训练
predict=svclf.predict(test_data) # 对测试集进行预测# 求训分类准确率
num=0
for i in range(len(predict)):if predict[i]==test_labels[i]:num+=1
rat=float(num)/len(predict)
end=time.time()
print('用时:',(end-start)/60,'mins')
print(str(rat))

四、结果展示

正确率为0.844左右,还算不错,当然也可以进行优化,下次再写一篇关于专门的优化解决办法。

要文件的朋友可以私信我
私信的朋友比较多,我把数据放到云盘上了
https://pan.baidu.com/s/1gltcEoA2teXmUznggG0lmw
提取码:
d6xf

基于支持向量机的新闻分类相关推荐

  1. Pytorch实战——基于RNN的新闻分类

    目录 一.项目介绍 二.基于RNN的新闻分类 Step1 加载数据集 Step2 分词和构建词汇表 Step3 构建数据加载器 dataloader Step4 定义神经网络模型 Step5 定义模型 ...

  2. 基于支持向量机的文本分类算法研究(二) —— 支持向量核函数介绍(stitp项目)

    2 支持向量机核函数 支持向量机的理论基础(凸二次规划)决定了它最终求得的为全局最优值而不是局部最优值,也保证了它对未知样本的良好泛化能力.支持向量机是建立在统计学习理论基础之上的新一代机器学习算法, ...

  3. 基于支持向量机的文本分类算法研究(三)—— 核函数文本分类性能评价指标(stitp项目)

    3 核函数评价指标 核函数评价指标,即准确率(P).召回率®和 F1 值,通过这几个数值,可以直观的反映核函数的性能,也使得支持向量机核函数评价科学化.准确化.本次实验函数从特征值 1000循环五十次 ...

  4. 基于支持向量机的文本分类算法研究(一) —— 支持向量机及核函数背景(stitp项目)

    1 前言 上世纪90年代,Vapnik率先提出了用于分类的支持向量机方法(也称支持向量分类算法),接下的几年中,又提出了用于回归的支持向量机方法(也称支持向量回归算法).支持向量机(SVM)是在统计学 ...

  5. 【项目实战课】NLP入门第1课,人人免费可学,基于TextCNN的新闻文本分类实战...

    欢迎大家来到我们的项目实战课,本期内容是<基于TextCNN的新闻文本分类实战>. 所谓项目课,就是以简单的原理回顾+详细的项目实战的模式,针对具体的某一个主题,进行代码级的实战讲解,可以 ...

  6. 自然语言处理(二)基于CNN的新闻文本分类

    自然语言处理(二) 1.Task1 数据集探索 1.1下载数据集 1.2数据集的描述 1.3 数据的预处理 1.4 CNN卷积神经网络 1.5 训练与验证 2.IMDB 2.1下载 IMDB 数据集 ...

  7. 基于机器学习的车牌识别系统(Python实现基于SVM支持向量机的车牌分类)

    基于机器学习的车牌识别系统(Python实现基于SVM支持向量机的车牌分类) 一.数据集说明 训练样本来自于github上的EasyPR的c++版本,包含一万三千多张数字及大写字母的图片以及三千多张中 ...

  8. 基于机器学习的新闻文本分类

    Task1-数据探索分析 数据存储 由于用pandas一次性读取20w条数据显示memoryerror,内存不够,所以想到把数据存到数据库中,随用随取比较简便.把训练集20w条数据存到了mongodb ...

  9. 基于PaddleNLP的真假新闻分类(二)Skep模型

    一.基于PaddleNLP的美国大选的新闻真假分类(二)基于SKEP模型的分类任务 0.解释 本来这个都烂尾了,看到有人问二在哪儿?只好说还没公开,自己挖的坑,含泪也要填.下次标题再也不屑一.二了,真 ...

  10. 【Pytorch基础教程36】基于Ernie预训练模型和Bert的新闻分类

    文章目录 一.新闻分类任务 1.1 中文数据集 1.2 数据特点 1.3 跑起代码 二. 预训练语言模型ERNIE 2.1 ERNIE模型结构 2.2 bert模型结构 三.项目代码 1. bert模 ...

最新文章

  1. python【力扣LeetCode算法题库】300 最长上升子序列(动态规划)
  2. 信息技术专业常用协议指什么?
  3. 在Leaflet地图上集成Echarts
  4. Thymeleaf引入公共片段方式
  5. C++:关于“error C2374: 'i' : redefinition; multiple initialization”
  6. shell 循环 read line
  7. MySQL 数据还原
  8. 【java】Java中TypeReference用法说明
  9. SDIO接口WiFi驱动浅析
  10. EndNote常见问题:更改DOI号为超链接/用URL代替DOI号等
  11. 中国推出人民币外汇货币掉期交易 规避汇率风险
  12. 实验:配置Trunk
  13. 基于TensorFlow的开源JS库的网页前端人物动作捕捉的实现
  14. 腾讯的内外社区实践及未来开源布局
  15. 深入理解Android相机体系结构之二
  16. Docker监控远程服务器
  17. WebView实现改变选中区域颜色以及添加下划线
  18. react 实现图片上传功能
  19. CF 617E 莫队
  20. flutter_downloader文件下载插件

热门文章

  1. 阵列卡直通模式和raid模式_详解磁盘阵列RAID原理、种类及性能优缺点
  2. HDU - 2586 - How far away ? (最短路)
  3. 时间序列分析 23 DTW (时序相似度度量算法) 上
  4. Shadow插件化系列(一)简单详解
  5. 两轮电动车不需要高端
  6. 第十人理论 - 大前研一 - 专业主义
  7. layui的layer弹出层和form表单
  8. 计算机sci审稿意见,【小木虫SCI秘籍】感悟之二——一个审稿意见的回复 - 论文投稿 - 小木虫 - 学术 科研 互动社区...
  9. 开启迅盘:ReadyBoost和ReadyDrive的开启方法
  10. 实际使用Windows 7中的Readyboost功能