<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>TextClassification | Liu chen chen CV</title><link>https://liuchenlili.github.io/tags/textclassification/</link><atom:link href="https://liuchenlili.github.io/tags/textclassification/index.xml" rel="self" type="application/rss+xml"/><description>TextClassification</description><generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Tue, 24 Oct 2023 00:00:00 +0000</lastBuildDate><image><url>https://liuchenlili.github.io/media/logo.svg</url><title>TextClassification</title><link>https://liuchenlili.github.io/tags/textclassification/</link></image><item><title>TextClassification</title><link>https://liuchenlili.github.io/projects/textclassification/</link><pubDate>Tue, 24 Oct 2023 00:00:00 +0000</pubDate><guid>https://liuchenlili.github.io/projects/textclassification/</guid><description>&lt;h1 id="中文文本分类系统"&gt;中文文本分类系统&lt;/h1&gt;
&lt;p&gt;基于深度学习的中文文本分类系统，支持多种模型算法，包括 TextCNN、LSTM 和朴素贝叶斯分类器。&lt;/p&gt;
&lt;p&gt;github地址：https://github.com/liuchenlili/TextClassification&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Bilibili演示视频demo:&lt;/strong&gt;:&lt;/p&gt;
&lt;div class="w-full h-auto aspect-video relative"&gt;
&lt;iframe src="//player.bilibili.com/player.html?bvid=BV19s421P7go&amp;page=1&amp;autoplay=0"
allow="accelerometer; clipboard-write; encrypted-media; gyroscope; fullscreen; picture-in-picture;"
class="w-full h-full"
&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id="-项目简介"&gt;📖 项目简介&lt;/h2&gt;
&lt;p&gt;本项目是一个基于深度学习的中文文本分类系统，支持多种模型算法，包括 TextCNN、LSTM 和朴素贝叶斯分类器。系统提供了完整的训练、评估和推理功能，并配备了基于 Streamlit 的 Web 界面，方便用户进行文本分类任务。&lt;/p&gt;
&lt;h2 id="-主要特性"&gt;🚀 主要特性&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;📊 支持多种深度学习模型（TextCNN、LSTM、Naive Bayes）&lt;/li&gt;
&lt;li&gt;🎯 基于 THUCNews 数据集的中文文本十分类任务&lt;/li&gt;
&lt;li&gt;🖥️ 直观的 Web 界面，支持实时文本分类&lt;/li&gt;
&lt;li&gt;📈 完整的训练日志和可视化功能&lt;/li&gt;
&lt;li&gt;🔧 模块化设计，易于扩展和维护&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="-环境要求"&gt;🛠️ 环境要求&lt;/h2&gt;
&lt;h3 id="python-版本"&gt;Python 版本&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Python 3.8+&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="依赖库"&gt;依赖库&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install torch torchvision torchaudio
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install streamlit
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install scikit-learn
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install pandas numpy
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install tqdm
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install matplotlib seaborn
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="快速安装"&gt;快速安装&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install -r requirements.txt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="-数据集说明"&gt;🎯 数据集说明&lt;/h2&gt;
&lt;h3 id="thucnews-中文新闻文本分类数据集"&gt;THUCNews 中文新闻文本分类数据集&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;分类类别&lt;/strong&gt;（共10类）：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;📈 &lt;strong&gt;财经&lt;/strong&gt; - 财经新闻&lt;/li&gt;
&lt;li&gt;🏠 &lt;strong&gt;房产&lt;/strong&gt; - 房地产相关&lt;/li&gt;
&lt;li&gt;📊 &lt;strong&gt;股票&lt;/strong&gt; - 股票市场&lt;/li&gt;
&lt;li&gt;🎓 &lt;strong&gt;教育&lt;/strong&gt; - 教育资讯&lt;/li&gt;
&lt;li&gt;💻 &lt;strong&gt;科技&lt;/strong&gt; - 科技新闻&lt;/li&gt;
&lt;li&gt;👥 &lt;strong&gt;社会&lt;/strong&gt; - 社会新闻&lt;/li&gt;
&lt;li&gt;🏛️ &lt;strong&gt;时政&lt;/strong&gt; - 时事政治&lt;/li&gt;
&lt;li&gt;⚽ &lt;strong&gt;体育&lt;/strong&gt; - 体育新闻&lt;/li&gt;
&lt;li&gt;🎮 &lt;strong&gt;游戏&lt;/strong&gt; - 游戏资讯&lt;/li&gt;
&lt;li&gt;🎬 &lt;strong&gt;娱乐&lt;/strong&gt; - 娱乐新闻&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="数据集划分"&gt;数据集划分&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;数据集&lt;/th&gt;
&lt;th&gt;数据量&lt;/th&gt;
&lt;th&gt;用途&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;训练集&lt;/td&gt;
&lt;td&gt;180,000条&lt;/td&gt;
&lt;td&gt;模型训练&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;验证集&lt;/td&gt;
&lt;td&gt;10,000条&lt;/td&gt;
&lt;td&gt;超参数调优&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;测试集&lt;/td&gt;
&lt;td&gt;10,000条&lt;/td&gt;
&lt;td&gt;模型评估&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="-快速开始"&gt;🚀 快速开始&lt;/h2&gt;
&lt;h3 id="1-启动-web-界面"&gt;1. 启动 Web 界面&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;streamlit run app.py
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;访问 &lt;code&gt;http://localhost:8501&lt;/code&gt; 即可使用 Web 界面进行文本分类。&lt;/p&gt;
&lt;h3 id="2-模型训练"&gt;2. 模型训练&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 训练 TextCNN 模型&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;python run.py --model TextCNN
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 训练 LSTM 模型 &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;python run.py --model LSTM
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 训练朴素贝叶斯模型&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;python run.py --model bayes
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="3-模型评估"&gt;3. 模型评估&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 评估指定模型&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;python train_eval.py --model TextCNN
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="-项目结构"&gt;📁 项目结构&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;TextClassification/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── 📁 models/ # 模型定义
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ ├── TextCNN.py # TextCNN 模型
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ ├── LSTM.py # LSTM 模型
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ └── bayes.py # 朴素贝叶斯模型
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── 📁 THUCNews/ # 数据集和模型文件
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ ├── data/ # 数据文件
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ ├── log/ # 训练日志
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ └── saved_dict/ # 保存的模型
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── 📄 app.py # Streamlit Web 应用
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── 📄 run.py # 训练脚本
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── 📄 train_eval.py # 评估脚本
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── 📄 utils.py # 工具函数
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;└── 📄 README.md # 项目说明
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="-模型介绍"&gt;🎨 模型介绍&lt;/h2&gt;
&lt;h3 id="textcnn"&gt;TextCNN&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;基于卷积神经网络的文本分类模型&lt;/li&gt;
&lt;li&gt;使用多个不同尺寸的卷积核捕获n-gram特征&lt;/li&gt;
&lt;li&gt;适合短文本分类任务&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="lstm"&gt;LSTM&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;长短期记忆网络，能够捕获文本的序列信息&lt;/li&gt;
&lt;li&gt;处理长文本效果较好&lt;/li&gt;
&lt;li&gt;能够学习文本的上下文依赖关系&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="naive-bayes"&gt;Naive Bayes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;经典的概率分类算法&lt;/li&gt;
&lt;li&gt;训练速度快，对小数据集友好&lt;/li&gt;
&lt;li&gt;作为基线模型进行对比&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="-性能表现"&gt;📊 性能表现&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;模型&lt;/th&gt;
&lt;th&gt;准确率&lt;/th&gt;
&lt;th&gt;训练时间&lt;/th&gt;
&lt;th&gt;推理速度&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;TextCNN&lt;/td&gt;
&lt;td&gt;91.2%&lt;/td&gt;
&lt;td&gt;快&lt;/td&gt;
&lt;td&gt;很快&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LSTM&lt;/td&gt;
&lt;td&gt;89.8%&lt;/td&gt;
&lt;td&gt;中等&lt;/td&gt;
&lt;td&gt;快&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Naive Bayes&lt;/td&gt;
&lt;td&gt;85.6%&lt;/td&gt;
&lt;td&gt;很快&lt;/td&gt;
&lt;td&gt;很快&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="-自定义配置"&gt;🔧 自定义配置&lt;/h2&gt;
&lt;p&gt;可以通过修改各模型配置文件来调整超参数：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;学习率、批次大小&lt;/li&gt;
&lt;li&gt;网络结构参数&lt;/li&gt;
&lt;li&gt;训练轮数等&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;⭐ 如果这个项目对你有帮助，请给个 Star！&lt;/p&gt;</description></item></channel></rss>