任务背景
存在一堆视频,每个视频有多个标签tag,如预告、电影、加勒比海盗、ted之类,然后需要根据tag对视频进行自动分类。(有一些历史数据作为测试和训练集)。 这个模型可以拓展成文章分类,只需要把tag改为根据词频统计的词组就行了。
选用方案
由于以前用过sklearn,所以直接用sklearn作为分类工具。用法很简单,定义一个由特征提取和分类器组合成的Pipeline,然后训练训练数据,测试正确率,最后拿模型去预测目标数据即可。
Pipeline
SVC_pipeline = Pipeline([
('tfidf', TfidfVectorizer(min_df=3,max_df=0.9,ngram_range=(1,2))),
('clf', OneVsRestClassifier(LinearSVC(), n_jobs=1)),
])
参考代码
# -*- coding: utf-8 -*-
"""
File Name: demo
Description :
Author : meng_zhihao
mail : 312141830@qq.com
date: 2020/3/17
"""
from sklearn.metrics import accuracy_score
from sklearn.metrics import f1_score
from sklearn.metrics import roc_auc_score
from sklearn.metrics import average_precision_score
from sklearn.metrics import recall_score
from ast import literal_eval
from sklearn.pipeline import Pipeline
from sklearn.feature_extraction.text import CountVectorizer
from scipy import sparse as sp_sparse
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.preprocessing import MultiLabelBinarizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.multiclass import OneVsRestClassifier