本文使用的python版本为3.4。
使用前需要安装numpy、matplotlib、scipy和scikitlearn,建议直接下载后安装,下载地址为:python包,选择相应的版本下载,注意不要使用最新的python3.5版本,其对scipy的兼容性不稳定,安装容易失败。
此外还用到了结巴分词、joblib等python包,可以直接通过pip安装。
本文源代码及文本数据集下载地址:https://yunpan.cn/cBNAWRhmttart (提取码:d41a)
python源码及处理逻辑如下:
# -*- coding:utf-8 -*-
'''
Created on 2016年6月25日
@author: lenovo
'''
from sklearn.naive_bayes import MultinomialNB
from sklearn.feature_extraction.text import TfidfVectorizer
import os
import re
import random
import jieba
import joblib
from tokenize import Ignore
class NBclassifier():
def __init__(self,clf_path=None,vec_path=None):
'''
创建对象时完成的初始化工作,判断分类器与vector路径是否为空,
若为空则创建新的分类器与vector,否则直接加载已经持久化的分类器与vector。
'''
if (clf_path==None or vec_path==