中文分类分析
方法概述
中文分类分析(Chinese Text Classification)是构建文本分类模型并对新文本进行类别预测的有监督文本挖掘方法,广泛用于新闻分类、垃圾信息识别、情感类别判定、工单自动分派等场景。
本工具提供完整的“特征提取 → 模型训练 → 模型评估 → 预测”流程:
- 特征提取方法:TF-IDF、词袋模型(BOW)、词向量平均(Word2Vec)。
- 分类算法:朴素贝叶斯、支持向量机(SVM)、逻辑回归、随机森林、XGBoost、神经网络。
- 交叉验证:5 折、10 折、留一法(LOOCV)或无交叉验证。
- 模型评估:准确率、精确率、召回率、F1 值、混淆矩阵、特征重要性。
- 可视化展示:训练曲线、混淆矩阵热力图、特征重要性条形图等。
方法原理
文本分类(Text Classification)是一种有监督学习方法,核心流程为“特征提取 → 模型训练 → 模型评估 → 预测”。其数学原理如下:
1. 文本特征提取
将原始文本转化为向量表示,本工具支持三种方式:
- TF-IDF:词语 \(w_i\) 在文档 \(d\) 中的权重为: \[ \text{TF-IDF}(w_i, d) = \text{TF}(w_i, d) \times \log\frac{N}{DF(w_i)} \] 其中 \(\text{TF}\) 为词频,\(N\) 为文档总数,\(DF(w_i)\) 为包含该词的文档数。TF-IDF 抑制高频无区分度词、突出类别判别词。
- 词袋模型(BOW):统计词语在文档中的出现频次,形成高维稀疏向量。
- 词向量平均:将词向量按词频加权平均得到文档向量,可捕捉部分语义信息。
2. 分类模型训练
对特征向量 \(X\) 与标签 \(y\),训练分类器估计条件概率 \(P(y \mid X)\)。本工具提供朴素贝叶斯、SVM、逻辑回归、随机森林、XGBoost、神经网络等多种算法,其中:
- 朴素贝叶斯:基于贝叶斯定理与特征条件独立假设,\(P(y \mid X) \propto P(y)\prod P(x_i \mid y)\)。
- 逻辑回归:通过 sigmoid 函数建模 \(P(y=1 \mid X) = \sigma(W^T X + b)\),用交叉熵损失训练。
- SVM:寻找最大间隔超平面 \(W^T X + b = 0\) 将类别分离。
- 随机森林 / XGBoost:集成多棵决策树,通过投票或梯度提升提高泛化能力。
3. 模型评估
通过将数据集按比例划分为训练集与测试集,用准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1 值评估模型性能:
\[ \text{Accuracy} = \frac{TP + TN}{TP + TN + FP + FN}, \qquad \text{F1} = \frac{2 \times \text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}} \]
结合交叉验证(K 折 / 留一法)评估泛化能力,并用混淆矩阵展示类别间误判模式。
4. 预测
利用训练好的模型对未标注文本进行类别预测,输出预测标签与概率。
使用流程
在平台左侧菜单选择“中文文本分析 → 中文分类分析”,点击“开始智算”进入工具界面:
Step 1 数据准备
- 支持 CSV、Excel、TXT 三种格式,文件大小不超过 10MB。
- CSV/Excel 文件:第一列为原始文本、第二列为分词结果(空格分隔)、第三列为类别标签。
- TXT 文件:每行一个文本段落,文本与标签用制表符分隔。
- 设置训练集比例(默认 0.7)与是否分层抽样(默认开启)。
Step 2 特征工程
- 选择特征提取方法(TF-IDF / BOW / 词向量平均)。
- 设置最大特征维度(默认 1000)、最小词频(默认 2)、最大/最小文档频率,选择是否移除停用词。
Step 3 模型配置
- 选择分类算法与交叉验证方式,设置随机种子。
- 依所选算法配置特定参数:SVM 核函数与惩罚参数、随机森林树数与深度、XGBoost 学习率与迭代、神经网络神经元与权重衰减等。
Step 4 开始分析
点击“开始分类分析”按钮进行训练与评估。
Step 5 结果查看与下载
查看分类分析原理、模型性能、混淆矩阵、特征分析与预测结果等标签页,并可下载训练好的模型与预测结果。
参数说明
| 参数 | 默认值 | 说明 |
|---|---|---|
| 训练集比例 | 0.7 | 训练样本占总样本比例(0.5-0.9) |
| 分层抽样 | 开 | 按类别比例分层划分训练/测试集 |
| 特征提取方法 | TF-IDF | TF-IDF / 词袋模型 / 词向量平均 |
| 最大特征维度 | 1000 | 特征空间规模(100-5000) |
| 最小词频 | 2 | 剔除低频词(1-10) |
| 最大/最小文档频率 | 0.8 / 0.01 | DTM 词频过滤范围 |
| 移除停用词 | 开 | 特征构建时去除停用词 |
| 分类算法 | 朴素贝叶斯 | 朴素贝叶斯 / SVM / 逻辑回归 / 随机森林 / XGBoost / 神经网络 |
| 交叉验证 | 5 折 | 无 / 5 折 / 10 折 / 留一法 |
| 随机种子 | 42 | 可复现性种子 |
| SVM 参数 | 线性核,C=1,gamma=0.1 | 核函数与惩罚参数 |
| 随机森林参数 | 树数100,特征10,深度10 | 集成规模控制 |
| XGBoost 参数 | 迭代100,lr=0.1,深度6 | 梯度提升控制 |
| 神经网络参数 | 神经元64,衰减0.01,迭代100 | MLP 结构控制 |
案例分析
案例背景:对 800 条新闻文本进行分类(体育、财经、科技、娱乐四类)。
- 数据:CSV(文本、分词、类别标签),每类 200 条。
- 参数:TF-IDF、训练比例 0.7、分层抽样、随机森林(100 棵树)、5 折交叉验证。
模型性能示例:
| 指标 | 取值 |
|---|---|
| 准确率 | 0.928 |
| 精确率(宏平均) | 0.925 |
| 召回率(宏平均) | 0.927 |
| F1 值(宏平均) | 0.926 |
混淆矩阵示例:测试集中“财经”类 10 条被误判为“科技”,其余类别误判 3~6 条,整体分类正确率高。
特征重要性示例:最高权重的特征为“赛事、联赛、股价、涨幅、芯片、算法、票房、上映”等,分别对应体育、财经、科技、娱乐四类新闻的核心词汇,符合预期。
结论:在本示例数据集上,随机森林分类器取得约 92.8% 的准确率,混淆矩阵显示类别间区分度较好,可作为新闻自动分类任务的参考方案。
常见问题
Q1: 文本分类与情感分析有何区别?
A: 情感分析通常输出正向/负向/中性;分类分析面向任意类别标签(新闻类别、工单类型等),且核心是训练一个分类模型并用其预测新样本。
Q2: 样本不均衡会导致什么问题?
A: 多数类被过度预测、少数类召回率低。建议开启“分层抽样”,或在实际应用中对少数类适当加权/过采样。
Q3: 哪种算法效果最好?
A: 没有绝对最优。小样本建议朴素贝叶斯或逻辑回归;高维特征建议线性 SVM;大数据与非线性关系可尝试随机森林、XGBoost;简单数据集亦可试神经网络。建议对多算法进行交叉验证对比。
Q4: 特征维度过高怎么办?
A: 可调低“最大特征维度”、提高“最小词频”与“最大文档频率”,去除低频与通用词,降低维度并提升训练速度与泛化能力。
Q5: 如何评估模型泛化能力?
A: 结合交叉验证(5/10 折或留一法)与“模型性能”指标(准确率、精确率、召回率、F1),同时检查混淆矩阵中类别间误判模式。
平台功能
- 数据输入:支持 CSV、Excel、TXT 格式(文本/分词/标签),文件大小限制 10MB;训练/测试集划分与分层抽样。
- 特征工程:TF-IDF / BOW / 词向量平均,特征维度与频率过滤。
- 模型配置:6 种分类算法及其专属参数,4 种交叉验证方式。
- 结果展示:
- 分类分析(模型原理与计算过程说明)
- 模型性能(准确率、精确率、召回率、F1 等指标)
- 混淆矩阵(分类误差可视化)
- 特征分析(特征重要性)
- 预测结果(测试集预测明细表)
- 结果导出:下载训练好的模型、预测结果与分析报告(HTML)。
- AI 智能分析:基于 DeepSeek 大模型对模型性能与特征重要性进行自动解读(每日限 3 次)。
使用建议
数据质量第一:确保标签无歧义、类别分布合理;文本经“中文文本分词”处理并去停用词,可提升特征质量。
算法对比:先用朴素贝叶斯与逻辑回归快速摸底,再用随机森林/XGBoost 追求精度,最后以交叉验证结果为准选择模型。
过拟合防控:特征维度过高或树模型过深时易过拟合,可通过降低最大特征维度、设置最大深度、开启交叉验证加以控制。
类别不均衡:关注少数类的召回率与 F1,勿被整体准确率误导;可调整训练比例或采用分层抽样保证测试集类别均衡。
部署应用:将训练好的模型用于新数据预测时,特征构建参数(字典、特征维度、停用词表)必须与训练阶段保持一致,否则预测将出现偏差。
平台界面

平台界面包含:数据上传区、特征工程区、模型配置区、结果展示(模型性能、混淆矩阵、特征分析、预测结果)及 AI 分析模块
参考文献:
Sebastiani, F. (2002). Machine Learning in Automated Text Categorization. ACM Computing Surveys.
Joachims, T. (1998). Text Categorization with Support Vector Machines. ECML.