Keras-TextClassification
Keras-TextClassification 是一个专为中文文本处理打造的开源深度学习工具包,旨在帮助开发者轻松构建高效的文本分类模型。它主要解决了中文场景下长文本、短句子、多标签分类以及句子相似度计算等常见难题,让复杂的自然语言处理任务变得简单可控。
无论是需要快速验证想法的算法工程师,还是致力于学术研究的研究人员,都能从中受益。该工具最大的亮点在于其丰富的模型库,不仅囊括了 FastText、TextCNN、TextRNN 等经典轻量级模型,还深度集成了 BERT、XLNet、ALBERT、CapsuleNet 及 Transformer 等前沿预训练架构。用户无需从零编写繁琐的网络代码,只需通过简单的配置即可调用这些先进的字词向量嵌入层和网络结构进行训练与预测。此外,项目还提供了完整的示例代码和数据处理流程,支持自定义词向量加载,极大地降低了中文 NLP 项目的上手门槛,是进行中文文本挖掘与分析的得力助手。
使用场景
某电商内容风控团队需要每日处理数万条用户商品评论,既要识别违规内容(单标签分类),又要自动提取评论中涉及的具体问题维度如“物流”、“质量”、“售后”等(多标签分类)。
没有 Keras-TextClassification 时
- 模型选型试错成本高:面对 FastText、TextCNN、BERT 等多种算法,开发人员需从零搭建每种网络结构,验证哪种适合中文短文本或长评论,耗时数周。
- 多任务适配困难:处理单标签违规识别与多标签维度提取需编写两套完全不同的数据预处理和损失函数代码,逻辑割裂且容易出错。
- 预训练资源整合繁琐:想要利用 BERT 或 XLNet 等强大预训练模型提升准确率,需手动下载、转换词向量并调整嵌入层,环境配置极易报错。
- 长文本效果不佳:传统简单模型难以捕捉长评论中的上下文依赖,导致对隐晦违规内容的漏判率居高不下。
使用 Keras-TextClassification 后
- 一键切换主流架构:通过修改配置文件即可在 TextCNN、BERT、HAN 等十几种内置模型间快速切换,半天内完成从基线到最优模型的选型验证。
- 统一接口支持多任务:利用其内置的多标签分类模块,仅需调整标签格式为 multi-onehot,同一套代码框架即可同时支撑违规识别与维度提取任务。
- 预训练模型开箱即用:直接调用集成的中文 BERT、XLNet 及 Word2Vec 资源,自动完成嵌入层构建,大幅降低高精度模型的上手门槛。
- 复杂语义捕捉精准:启用 HAN 或 Transformer-encode 等深层网络,有效理解长评论中的语境逻辑,显著提升了针对变体违规词的召回率。
Keras-TextClassification 通过提供“积木式”的中文文本分类全栈解决方案,将原本数周的算法研发周期压缩至天级,让团队能专注于业务策略而非底层代码实现。
运行环境要求
- 未说明
- 未说明 (支持 CPU 运行随机嵌入模型
- 若使用 BERT/XLNet/ALBERT 等预训练大模型,通常建议配备 NVIDIA GPU 以加速训练,具体显存需求取决于模型大小)
未说明 (处理大规模语料或加载大型预训练模型如 BERT/XLNet 时,建议 16GB+)

快速开始
Keras-TextClassification
安装
pip install Keras-TextClassification
步骤2:下载并解压‘data.rar’文件,地址:链接:https://pan.baidu.com/s/1pIDzGaGXCZ7cjng1XU_kPA 提取码:w6ps 压缩包密码: 2022
将data目录覆盖到anaconda中,例如:'/anaconda/3.5.1/envs/tensorflow13/Lib/site-packages/keras_textclassification/data'
步骤3:前往 # 训练与使用 和 预测与使用
keras_textclassification(代码主体,未完待续...)
- Electra-fineture(todo)
- Albert-fineture
- Xlnet-fineture
- Bert-fineture
- FastText
- TextCNN
- charCNN
- TextRNN
- TextRCNN
- TextDCNN
- TextDPCNN
- TextVDCNN
- TextCRNN
- DeepMoji
- SelfAttention
- HAN
- CapsuleNet
- Transformer-encode
- SWEM
- LEAM
- TextGCN(todo)
运行(以FastText为例)
- 1. 进入keras_textclassification/m01_FastText目录,
- 2. 训练:运行 train.py,例如:python train.py
- 3. 预测:运行 predict.py,例如:python predict.py
- 说明:默认不带预训练的随机嵌入,训练和验证语料只有100条,完整语料移步下面data查看下载
运行(多标签分类/Embedding/test/sample实例)
- bert、word2vec、random样例在test/目录下,注意word2vec(char或word)、random-word、bert(chinese_L-12_H-768_A-12)未全部加载,需要下载
- multi_multi_class/目录下以text-cnn为例进行多标签分类实例,转化为multi-onehot标签类别,分类则取一定阀值的类
- sentence_similarity/目录下以bert为例进行两个句子文本相似度计算,数据格式如data/sim_webank/目录下所示
- predict_bert_text_cnn.py
- tet_char_bert_embedding.py
- tet_char_bert_embedding.py
- tet_char_xlnet_embedding.py
- tet_char_random_embedding.py
- tet_char_word2vec_embedding.py
- tet_word_random_embedding.py
- tet_word_word2vec_embedding.py
keras_textclassification/data
- 数据下载
** github项目中只是上传部分数据,需要的前往链接:https://pan.baidu.com/s/1I3vydhmFEQ9nuPG2fDou8Q 提取码: rket
- baidu_qa_2019(百度qa问答语料,只取title作为分类样本,17个类,有一个是空'',已经压缩上传)
- baike_qa_train.csv
- baike_qa_valid.csv
- byte_multi_news(今日头条2018新闻标题多标签语料,1070个标签,fate233爬取,地址为:[byte_multi_news](https://github.com/fate233/toutiao-multilevel-text-classfication-dataset))
- labels.csv
- train.csv
- valid.csv
- embeddings
- chinese_L-12_H-768_A-12/(取谷歌预训练好点的模型,已经压缩上传,
keras-bert还可以加载百度版ernie(需转换,[https://github.com/ArthurRizar/tensorflow_ernie](https://github.com/ArthurRizar/tensorflow_ernie)),
哈工大版bert-wwm(tf框架,[https://github.com/ymcui/Chinese-BERT-wwm](https://github.com/ymcui/Chinese-BERT-wwm))
- albert_base_zh/(brightmart训练的albert,地址为https://github.com/brightmart/albert_zh)
- chinese_xlnet_base_L-12_H-768_A-12/(哈工大预训练的中文xlnet模型[https://github.com/ymcui/Chinese-PreTrained-XLNet],12层)
- term_char.txt(已经上传,项目中已全,wiki字典,还可用新华字典等)
- term_word.txt(未上传,项目中只有部分,可参考词向量的)
- w2v_model_merge_short.vec(未上传,项目中只有部分,词向量,可以用自己的)
- w2v_model_wiki_char.vec(已上传百度网盘,项目中只有部分,自己训练的维基百科字向量,可以用自己的)
- model
- fast_text/预训练模型存放地址
项目说明
- 构建了base基类(网络(graph)、向量嵌入(词、字、句子embedding)),后边的具体模型继承它们,代码简单
- keras_layers存放一些常用的layer,conf存放项目数据、模型的地址,data存放数据和语料,data_preprocess为数据预处理模块,
模型与论文paper题与地址
- FastText: Bag of Tricks for Efficient Text Classification
- TextCNN: Convolutional Neural Networks for Sentence Classification
- charCNN-kim: Character-Aware Neural Language Models
- charCNN-zhang: Character-level Convolutional Networks for Text Classification
- TextRNN: Recurrent Neural Network for Text Classification with Multi-Task Learning
- RCNN: Recurrent Convolutional Neural Networks for Text Classification
- DCNN: A Convolutional Neural Network for Modelling Sentences
- DPCNN: Deep Pyramid Convolutional Neural Networks for Text Categorization
- VDCNN: Very Deep Convolutional Networks
- CRNN: A C-LSTM Neural Network for Text Classification
- DeepMoji: Using millions of emojio ccurrences to learn any-domain represent ations for detecting sentiment, emotion and sarcasm
- SelfAttention: Attention Is All You Need
- HAN: Hierarchical Attention Networks for Document Classification
- CapsuleNet: Dynamic Routing Between Capsules
- Transformer(encode或decode):Attention Is All You Need
- Bert: BERT: Pre-trainingofDeepBidirectionalTransformersfor LanguageUnderstanding
- Xlnet: XLNet: Generalized Autoregressive Pretraining for Language Understanding
- Albert: ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS
- RoBERTa: RoBERTa: A Robustly Optimized BERT Pretraining Approach
- ELECTRA: ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators
- TextGCN: Graph Convolutional Networks for Text Classification
参考/感谢
- 文本分类项目: https://github.com/mosu027/TextClassification
- 文本分类看山杯: https://github.com/brightmart/text_classification
- Kashgari项目: https://github.com/BrikerMan/Kashgari
- 文本分类Ipty : https://github.com/lpty/classifier
- keras文本分类: https://github.com/ShawnyXiao/TextClassification-Keras
- keras文本分类: https://github.com/AlexYangLi/TextClassification
- CapsuleNet模型: https://github.com/bojone/Capsule
- transformer模型: https://github.com/CyberZHG/keras-transformer
- keras_albert_model: https://github.com/TinkerMob/keras_albert_model
训练简单调用:
from keras_textclassification import train
train(graph='TextCNN', # 必填, 算法名, 可选"ALBERT","BERT","XLNET","FASTTEXT","TEXTCNN","CHARCNN",
# "TEXTRNN","RCNN","DCNN","DPCNN","VDCNN","CRNN","DEEPMOJI",
# "SELFATTENTION", "HAN","CAPSULE","TRANSFORMER"
label=17, # 必填, 类别数, 训练集和测试集合必须一样
path_train_data=None, # 必填, 训练数据文件, csv格式, 必须含'label,ques'头文件, 详见keras_textclassification/data
path_dev_data=None, # 必填, 测试数据文件, csv格式, 必须含'label,ques'头文件, 详见keras_textclassification/data
rate=1, # 可填, 训练数据选取比例
hyper_parameters=None) # 可填, json格式, 超参数, 默认embedding为'char','random'
参考文献
如需引用本项目,可参考以下 BibTeX 格式:
@misc{Keras-TextClassification,
howpublished = {\url{https://github.com/yongzhuo/Keras-TextClassification}},
title = {Keras-TextClassification},
author = {Yongzhuo Mo},
publisher = {GitHub},
year = {2019}
}
*希望对你有所帮助!
版本历史
v0.1.72020/12/19常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备