正在学习sklearn , 实验室项目需要实现一些文本的分类的功能。
sklearn提供了许多机器学习方面使用的到的写好的工具。其中也包括分类器。sklearn在这里不作介绍。有官网,有博客,也正在学习中
最开始是参照着这片文章:
https://segmentfault.com/a/1190000002472791
用的是朴素贝叶斯,文本向量化用的是HashingVectorizer
实现过后,效果不够好,在这个基础上改用了 TfidfVectorizer,CountVectorizer,其中TfidfVectorizer效果较好,达到了50%左右,但是对于实验来说是不够的
参照着写了使用svm来进行分类,改了数据处理的部分,按照0.65左右的比例在整个数据集随机的生成训练集与测试集来比较效果。
数据从txt读取的,格式如下:
男默女泪啊:0
自杀者永世不得为人乃铁律,!不珍惜生命:0
发达国家都能结婚了,中国人的思维还在百年前。差劲啊:0
爱不是这么样表达的,不一定需要拥有,社会这样我们改变不了什么,但是,非要死吗:0
数据本身是存在样本不均匀问题的,且文本较短。故而有些向量化工具效果不好。
代码:
# -*- coding: utf-8 -*-
from sklearn import datasets
from sklearn import svm
import random
import jieba
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.feature_extraction.text import CountVectorizer
from sklearn import metrics
import numpy
#调整了格式,一行是一条数据