[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-RandolphVI--Multi-Label-Text-Classification":3,"tool-RandolphVI--Multi-Label-Text-Classification":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",155373,2,"2026-04-14T11:34:08",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":78,"owner_email":79,"owner_twitter":77,"owner_website":77,"owner_url":80,"languages":81,"stars":86,"forks":87,"last_commit_at":88,"license":89,"difficulty_score":90,"env_os":91,"env_gpu":91,"env_ram":91,"env_deps":92,"category_tags":102,"github_topics":103,"view_count":32,"oss_zip_url":77,"oss_zip_packed_at":77,"status":17,"created_at":109,"updated_at":110,"faqs":111,"releases":157},7452,"RandolphVI\u002FMulti-Label-Text-Classification","Multi-Label-Text-Classification","About Muti-Label Text Classification Based on Neural Network.","Multi-Label-Text-Classification 是一个基于深度神经网络的多标签文本分类开源项目，旨在解决单篇文档同时属于多个类别的分类难题。与传统单标签分类不同，它能精准识别文本中包含的多种特征，输出如 [0, 1, 0, ..., 1] 形式的多维标签向量，特别适用于新闻归类、内容 tagging 等复杂场景。\n\n该项目非常适合人工智能开发者、算法研究人员以及希望深入理解 TensorFlow 深度学习架构的学习者使用。其核心亮点在于强大的灵活性与工程优化：不仅原生支持中文（可结合 jieba 分词）和英文处理，还允许用户加载自定义的预训练词向量。在模型架构上，它创新性地引入了 Highway Layer 和批归一化（Batch Normalization）层以提升性能，并集成了梯度裁剪、学习率指数衰减及修正的 L2 损失计算，有效防止训练过程中的梯度爆炸问题。此外，项目提供了完善的评估体系，支持 AUC 和 AUPRC 指标计算，具备通过阈值或 Top-K 策略预测标签的功能，并能利用 TensorBoard 进行嵌入可视化与训练监控，是研究多标签分类任务的优质参考","Multi-Label-Text-Classification 是一个基于深度神经网络的多标签文本分类开源项目，旨在解决单篇文档同时属于多个类别的分类难题。与传统单标签分类不同，它能精准识别文本中包含的多种特征，输出如 [0, 1, 0, ..., 1] 形式的多维标签向量，特别适用于新闻归类、内容 tagging 等复杂场景。\n\n该项目非常适合人工智能开发者、算法研究人员以及希望深入理解 TensorFlow 深度学习架构的学习者使用。其核心亮点在于强大的灵活性与工程优化：不仅原生支持中文（可结合 jieba 分词）和英文处理，还允许用户加载自定义的预训练词向量。在模型架构上，它创新性地引入了 Highway Layer 和批归一化（Batch Normalization）层以提升性能，并集成了梯度裁剪、学习率指数衰减及修正的 L2 损失计算，有效防止训练过程中的梯度爆炸问题。此外，项目提供了完善的评估体系，支持 AUC 和 AUPRC 指标计算，具备通过阈值或 Top-K 策略预测标签的功能，并能利用 TensorBoard 进行嵌入可视化与训练监控，是研究多标签分类任务的优质参考范本。","# Deep Learning for Multi-Label Text Classification\n\n[![Python Version](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flanguage-python3.6-blue.svg)](https:\u002F\u002Fwww.python.org\u002Fdownloads\u002F) [![Build Status](https:\u002F\u002Ftravis-ci.org\u002FRandolphVI\u002FMulti-Label-Text-Classification.svg?branch=master)](https:\u002F\u002Ftravis-ci.org\u002FRandolphVI\u002FMulti-Label-Text-Classification) [![Codacy Badge](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FRandolphVI_Multi-Label-Text-Classification_readme_16487703ab0c.png)](https:\u002F\u002Fwww.codacy.com\u002Fapp\u002Fchinawolfman\u002FMulti-Label-Text-Classification?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=RandolphVI\u002FMulti-Label-Text-Classification&amp;utm_campaign=Badge_Grade) [![License](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002FRandolphVI\u002FMulti-Label-Text-Classification.svg)](https:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0) [![Issues](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002FRandolphVI\u002FMulti-Label-Text-Classification.svg)](https:\u002F\u002Fgithub.com\u002FRandolphVI\u002FMulti-Label-Text-Classification\u002Fissues)\n\nThis repository is my research project, and it is also a study of TensorFlow, Deep Learning (Fasttext, CNN, LSTM, etc.).\n\nThe main objective of the project is to solve the multi-label text classification problem based on Deep Neural Networks. Thus, the format of the data label is like [0, 1, 0, ..., 1, 1] according to the characteristics of such a problem.\n\n## Requirements\n\n- Python 3.6\n- Tensorflow 1.15.0\n- Tensorboard 1.15.0\n- Sklearn 0.19.1\n- Numpy 1.16.2\n- Gensim 3.8.3\n- Tqdm 4.49.0\n\n## Project\n\nThe project structure is below:\n\n```text\n.\n├── Model\n│   ├── test_model.py\n│   ├── text_model.py\n│   └── train_model.py\n├── data\n│   ├── word2vec_100.model.* [Need Download]\n│   ├── Test_sample.json\n│   ├── Train_sample.json\n│   └── Validation_sample.json\n└── utils\n│   ├── checkmate.py\n│   ├── data_helpers.py\n│   └── param_parser.py\n├── LICENSE\n├── README.md\n└── requirements.txt\n```\n\n\n\n## Innovation\n\n### Data part\n1. Make the data support **Chinese** and English (Can use `jieba` or `nltk` ).\n2. Can use **your pre-trained word vectors** (Can use `gensim`). \n3. Add embedding visualization based on the **tensorboard** (Need to create `metadata.tsv` first).\n\n### Model part\n1. Add the correct **L2 loss** calculation operation.\n2. Add **gradients clip** operation to prevent gradient explosion.\n3. Add **learning rate decay** with exponential decay.\n4. Add a new **Highway Layer** (Which is useful according to the model performance).\n5. Add **Batch Normalization Layer**.\n\n### Code part\n1. Can choose to **train** the model directly or **restore** the model from the checkpoint in `train.py`.\n2. Can predict the labels via **threshold** and **top-K** in `train.py` and `test.py`.\n3. Can calculate the evaluation metrics --- **AUC** & **AUPRC**.\n4. Can create the prediction file which including the predicted values and predicted labels of the Testset data in `test.py`.\n5. Add other useful data preprocess functions in `data_helpers.py`.\n6. Use `logging` for helping to record the whole info (including **parameters display**, **model training info**, etc.).\n7. Provide the ability to save the best n checkpoints in `checkmate.py`, whereas the `tf.train.Saver` can only save the last n checkpoints.\n\n## Data\n\nSee data format in `\u002Fdata` folder which including the data sample files. For example:\n\n```json\n{\"testid\": \"3935745\", \"features_content\": [\"pore\", \"water\", \"pressure\", \"metering\", \"device\", \"incorporating\", \"pressure\", \"meter\", \"force\", \"meter\", \"influenced\", \"pressure\", \"meter\", \"device\", \"includes\", \"power\", \"member\", \"arranged\", \"control\", \"pressure\", \"exerted\", \"pressure\", \"meter\", \"force\", \"meter\", \"applying\", \"overriding\", \"force\", \"pressure\", \"meter\", \"stop\", \"influence\", \"force\", \"meter\", \"removing\", \"overriding\", \"force\", \"pressure\", \"meter\", \"influence\", \"force\", \"meter\", \"resumed\"], \"labels_index\": [526, 534, 411], \"labels_num\": 3}\n```\n\n- **\"testid\"**: just the id.\n- **\"features_content\"**: the word segment (after removing the stopwords)\n- **\"labels_index\"**: The label index of the data records.\n- **\"labels_num\"**: The number of labels.\n\n### Text Segment\n\n1. You can use `nltk` package if you are going to deal with the English text data.\n\n2. You can use `jieba` package if you are going to deal with the Chinese text data.\n\n### Data Format\n\nThis repository can be used in other datasets (text classification) in two ways:\n1. Modify your datasets into the same format of [the sample](https:\u002F\u002Fgithub.com\u002FRandolphVI\u002FMulti-Label-Text-Classification\u002Fblob\u002Fmaster\u002Fdata).\n2. Modify the data preprocessing code in `data_helpers.py`.\n\nAnyway, it should depend on what your data and task are.\n\n**🤔Before you open the new issue about the data format, please check the `data_sample.json` and read the other open issues first, because someone maybe ask me the same question already. For example:**\n\n- [输入文件的格式是什么样子的？](https:\u002F\u002Fgithub.com\u002FRandolphVI\u002FMulti-Label-Text-Classification\u002Fissues\u002F1)\n- [Where is the dataset for training?](https:\u002F\u002Fgithub.com\u002FRandolphVI\u002FMulti-Label-Text-Classification\u002Fissues\u002F7)\n- [在 data_helpers.py 中的 content.txt 与 metadata.tsv 是什么，具体格式是什么，能否提供一个样例？](https:\u002F\u002Fgithub.com\u002FRandolphVI\u002FMulti-Label-Text-Classification\u002Fissues\u002F12)\n\n### Pre-trained Word Vectors\n\n**You can download the [Word2vec model file](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1S33iejwuQOIaNQfXW7fA_6zBwHHClT--\u002Fview?usp=sharing) (dim=100). Make sure they are unzipped and under the `\u002Fdata` folder.**\n\nYou can pre-training your word vectors (based on your corpus) in many ways:\n- Use `gensim` package to pre-train data.\n- Use `glove` tools to pre-train data.\n- Even can use a **fasttext** network to pre-train data.\n\n## Usage\n\nSee [Usage](https:\u002F\u002Fgithub.com\u002FRandolphVI\u002FMulti-Label-Text-Classification\u002Fblob\u002Fmaster\u002FUsage.md).\n\n## Network Structure\n\n### FastText\n\n![](https:\u002F\u002Ffarm2.staticflickr.com\u002F1917\u002F45609842012_30f370a0ee_o.png)\n\nReferences:\n\n- [Bag of Tricks for Efficient Text Classification](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1607.01759.pdf)\n\n---\n\n### TextANN\n\n![](https:\u002F\u002Ffarm2.staticflickr.com\u002F1965\u002F44745949305_50f831a579_o.png)\n\nReferences:\n\n- **Personal ideas 🙃**\n\n---\n\n### TextCNN\n\n![](https:\u002F\u002Ffarm2.staticflickr.com\u002F1927\u002F44935475604_1d6b8f71a3_o.png)\n\nReferences:\n\n- [Convolutional Neural Networks for Sentence Classification](http:\u002F\u002Farxiv.org\u002Fabs\u002F1408.5882)\n- [A Sensitivity Analysis of (and Practitioners' Guide to) Convolutional Neural Networks for Sentence Classification](http:\u002F\u002Farxiv.org\u002Fabs\u002F1510.03820)\n\n---\n\n### TextRNN\n\n**Warning: Model can use but not finished yet 🤪!**\n\n![](https:\u002F\u002Ffarm2.staticflickr.com\u002F1925\u002F30719666177_6665038ea2_o.png)\n\n#### TODO\n1. Add BN-LSTM cell unit.\n2. Add attention.\n\nReferences:\n\n- [Recurrent Neural Network for Text Classification with Multi-Task Learning](http:\u002F\u002Fwww.aaai.org\u002Focs\u002Findex.php\u002FAAAI\u002FAAAI15\u002Fpaper\u002Fdownload\u002F9745\u002F9552)\n\n---\n\n### TextCRNN\n\n![](https:\u002F\u002Ffarm2.staticflickr.com\u002F1915\u002F43842346360_e4660c5921_o.png)\n\nReferences:\n\n- **Personal ideas 🙃**\n\n---\n\n### TextRCNN\n\n![](https:\u002F\u002Ffarm2.staticflickr.com\u002F1950\u002F31788031648_b5cba7bbf0_o.png)\n\nReferences:\n\n- **Personal ideas 🙃**\n\n---\n\n### TextHAN\n\nReferences:\n\n- [Hierarchical Attention Networks for Document Classification](https:\u002F\u002Fwww.cs.cmu.edu\u002F~diyiy\u002Fdocs\u002Fnaacl16.pdf)\n\n---\n\n### TextSANN\n\n**Warning: Model can use but not finished yet 🤪!**\n\n#### TODO\n1. Add attention penalization loss.\n2. Add visualization.\n\nReferences:\n\n- [A STRUCTURED SELF-ATTENTIVE SENTENCE EMBEDDING](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1703.03130.pdf)\n\n---\n\n## About Me\n\n黄威，Randolph\n\nSCU SE Bachelor; USTC CS Ph.D.\n\nEmail: chinawolfman@hotmail.com\n\nMy Blog: [randolph.pro](http:\u002F\u002Frandolph.pro)\n\nLinkedIn: [randolph's linkedin](https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Frandolph-%E9%BB%84%E5%A8%81\u002F)\n","# 基于深度学习的多标签文本分类\n\n[![Python版本](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flanguage-python3.6-blue.svg)](https:\u002F\u002Fwww.python.org\u002Fdownloads\u002F) [![构建状态](https:\u002F\u002Ftravis-ci.org\u002FRandolphVI\u002FMulti-Label-Text-Classification.svg?branch=master)](https:\u002F\u002Ftravis-ci.org\u002FRandolphVI\u002FMulti-Label-Text-Classification) [![Codacy Badge](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FRandolphVI_Multi-Label-Text-Classification_readme_16487703ab0c.png)](https:\u002F\u002Fwww.codacy.com\u002Fapp\u002Fchinawolfman\u002FMulti-Label-Text-Classification?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=RandolphVI\u002FMulti-Label-Text-Classification&amp;utm_campaign=Badge_Grade) [![许可证](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002FRandolphVI\u002FMulti-Label-Text-Classification.svg)](https:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0) [![问题](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002FRandolphVI\u002FMulti-Label-Text-Classification.svg)](https:\u002F\u002Fgithub.com\u002FRandolphVI\u002FMulti-Label-Text-Classification\u002Fissues)\n\n本仓库是我的研究项目，同时也是对 TensorFlow 和深度学习（Fasttext、CNN、LSTM 等）的学习实践。\n\n该项目的主要目标是基于深度神经网络解决多标签文本分类问题。因此，根据此类问题的特点，数据标签的格式为 [0, 1, 0, ..., 1, 1]。\n\n## 需求\n\n- Python 3.6\n- Tensorflow 1.15.0\n- Tensorboard 1.15.0\n- Sklearn 0.19.1\n- Numpy 1.16.2\n- Gensim 3.8.3\n- Tqdm 4.49.0\n\n## 项目结构\n\n项目的目录结构如下：\n\n```text\n.\n├── Model\n│   ├── test_model.py\n│   ├── text_model.py\n│   └── train_model.py\n├── data\n│   ├── word2vec_100.model.* [需要下载]\n│   ├── Test_sample.json\n│   ├── Train_sample.json\n│   └── Validation_sample.json\n└── utils\n│   ├── checkmate.py\n│   ├── data_helpers.py\n│   └── param_parser.py\n├── LICENSE\n├── README.md\n└── requirements.txt\n```\n\n\n\n## 创新点\n\n### 数据部分\n1. 支持 **中文** 和英文数据（可使用 `jieba` 或 `nltk`）。\n2. 可使用 **自定义预训练词向量**（可使用 `gensim`）。\n3. 基于 **TensorBoard** 添加嵌入可视化功能（需先创建 `metadata.tsv` 文件）。\n\n### 模型部分\n1. 添加正确的 **L2 损失** 计算操作。\n2. 添加 **梯度裁剪** 操作以防止梯度爆炸。\n3. 使用指数衰减法添加 **学习率衰减**。\n4. 引入新的 **高速公路层**（经模型性能验证有效）。\n5. 添加 **批归一化层**。\n\n### 代码部分\n1. 在 `train.py` 中可以选择直接 **训练** 模型，或从检查点 **恢复** 模型。\n2. 在 `train.py` 和 `test.py` 中可通过 **阈值** 和 **Top-K** 预测标签。\n3. 可计算评估指标 --- **AUC** 和 **AUPRC**。\n4. 在 `test.py` 中可生成包含测试集预测值和预测标签的预测文件。\n5. 在 `data_helpers.py` 中添加了其他有用的数据预处理函数。\n6. 使用 `logging` 记录整个流程信息（包括 **参数显示**、**模型训练信息** 等）。\n7. 在 `checkmate.py` 中提供了保存最佳 n 个检查点的功能，而 `tf.train.Saver` 只能保存最后 n 个检查点。\n\n## 数据\n\n数据格式请参见 `\u002Fdata` 文件夹中的示例文件。例如：\n\n```json\n{\"testid\": \"3935745\", \"features_content\": [\"毛孔\", \"水\", \"压力\", \"计量\", \"装置\", \"包含\", \"压力\", \"计数器\", \"力\", \"计数器\", \"受...影响\", \"压力\", \"计数器\", \"装置\", \"包括\", \"动力\", \"部件\", \"布置\", \"控制\", \"压力\", \"施加\", \"压力\", \"计数器\", \"力\", \"计数器\", \"应用\", \"覆盖\", \"力\", \"压力\", \"计数器\", \"停止\", \"影响\", \"力\", \"计数器\", \"移除\", \"覆盖\", \"力\", \"压力\", \"计数器\", \"影响\", \"力\", \"计数器\", \"恢复\"], \"labels_index\": [526, 534, 411], \"labels_num\": 3}\n```\n\n- **\"testid\"**: 仅作为标识符。\n- **\"features_content\"**: 分词后的内容（已去除停用词）。\n- **\"labels_index\"**: 数据记录的标签索引。\n- **\"labels_num\"**: 标签数量。\n\n### 文本分词\n\n1. 处理英文文本时，可以使用 `nltk` 包。\n\n2. 处理中文文本时，可以使用 `jieba` 包。\n\n### 数据格式\n\n本仓库可用于其他文本分类数据集，有两种方式：\n1. 将您的数据集修改为与 [示例](https:\u002F\u002Fgithub.com\u002FRandolphVI\u002FMulti-Label-Text-Classification\u002Fblob\u002Fmaster\u002Fdata) 相同的格式。\n2. 修改 `data_helpers.py` 中的数据预处理代码。\n\n具体采用哪种方式，取决于您的数据和任务需求。\n\n**🤔在提交关于数据格式的新问题之前，请先查看 `data_sample.json` 并阅读已有的相关问题，因为可能已经有人问过类似的问题。例如：**\n\n- [输入文件的格式是什么样子的？](https:\u002F\u002Fgithub.com\u002FRandolphVI\u002FMulti-Label-Text-Classification\u002Fissues\u002F1)\n- [用于训练的数据集在哪里？](https:\u002F\u002Fgithub.com\u002FRandolphVI\u002FMulti-Label-Text-Classification\u002Fissues\u002F7)\n- [在 data_helpers.py 中的 content.txt 与 metadata.tsv 是什么，具体格式是什么，能否提供一个样例？](https:\u002F\u002Fgithub.com\u002FRandolphVI\u002FMulti-Label-Text-Classification\u002Fissues\u002F12)\n\n### 预训练词向量\n\n**您可以下载 [Word2vec 模型文件](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1S33iejwuQOIaNQfXW7fA_6zBwHHClT--\u002Fview?usp=sharing)（维度=100）。请确保解压后将其放置在 `\u002Fdata` 文件夹中。**\n\n您可以通过多种方式预训练自己的词向量：\n- 使用 `gensim` 包进行预训练。\n- 使用 `glove` 工具进行预训练。\n- 甚至可以使用 **fasttext** 网络进行预训练。\n\n## 使用说明\n\n请参阅 [使用说明](https:\u002F\u002Fgithub.com\u002FRandolphVI\u002FMulti-Label-Text-Classification\u002Fblob\u002Fmaster\u002FUsage.md)。\n\n## 网络结构\n\n### FastText\n\n![](https:\u002F\u002Ffarm2.staticflickr.com\u002F1917\u002F45609842012_30f370a0ee_o.png)\n\n参考文献：\n\n- [高效文本分类技巧](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1607.01759.pdf)\n\n---\n\n### TextANN\n\n![](https:\u002F\u002Ffarm2.staticflickr.com\u002F1965\u002F44745949305_50f831a579_o.png)\n\n参考文献：\n\n- **个人想法 🙃**\n\n---\n\n### TextCNN\n\n![](https:\u002F\u002Ffarm2.staticflickr.com\u002F1927\u002F44935475604_1d6b8f71a3_o.png)\n\n参考文献：\n\n- [用于句子分类的卷积神经网络](http:\u002F\u002Farxiv.org\u002Fabs\u002F1408.5882)\n- [句子分类中卷积神经网络的敏感性分析及实践指南](http:\u002F\u002Farxiv.org\u002Fabs\u002F1510.03820)\n\n---\n\n### TextRNN\n\n**警告：该模型可用，但尚未完成 🤪！**\n\n![](https:\u002F\u002Ffarm2.staticflickr.com\u002F1925\u002F30719666177_6665038ea2_o.png)\n\n#### 待办事项\n1. 添加 BN-LSTM 单元。\n2. 添加注意力机制。\n\n参考文献：\n\n- [多任务学习下的循环神经网络文本分类](http:\u002F\u002Fwww.aaai.org\u002Focs\u002Findex.php\u002FAAAI\u002FAAAI15\u002Fpaper\u002Fdownload\u002F9745\u002F9552)\n\n---\n\n### TextCRNN\n\n![](https:\u002F\u002Ffarm2.staticflickr.com\u002F1915\u002F43842346360_e4660c5921_o.png)\n\n参考文献：\n\n- **个人想法 🙃**\n\n---\n\n### TextRCNN\n\n![](https:\u002F\u002Ffarm2.staticflickr.com\u002F1950\u002F31788031648_b5cba7bbf0_o.png)\n\n参考文献：\n\n- **个人想法 🙃**\n\n---\n\n### TextHAN\n\n参考文献：\n\n- [用于文档分类的层次化注意力网络](https:\u002F\u002Fwww.cs.cmu.edu\u002F~diyiy\u002Fdocs\u002Fnaacl16.pdf)\n\n---\n\n### TextSANN\n\n**警告：模型可以使用，但尚未完成 🤪！**\n\n#### 待办事项\n1. 添加注意力惩罚损失。\n2. 添加可视化功能。\n\n参考文献：\n\n- [一种结构化的自注意力句子嵌入](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1703.03130.pdf)\n\n---\n\n## 关于我\n\n黄威，兰道夫\n\n西南交通大学计算机科学与技术学士；中国科学技术大学计算机科学博士。\n\n邮箱：chinawolfman@hotmail.com\n\n我的博客：[randolph.pro](http:\u002F\u002Frandolph.pro)\n\nLinkedIn：[兰道夫的LinkedIn](https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Frandolph-%E9%BB%84%E5%A8%81\u002F)","# Multi-Label-Text-Classification 快速上手指南\n\n本项目是一个基于深度学习的多标签文本分类工具，支持中文和英文数据处理，内置 FastText、CNN、LSTM、Highway Network 等多种模型结构。\n\n## 1. 环境准备\n\n### 系统要求\n- **操作系统**: Linux \u002F macOS \u002F Windows\n- **Python 版本**: 3.6 (严格依赖)\n\n### 前置依赖\n请确保已安装以下核心库及其指定版本：\n- TensorFlow 1.15.0\n- Tensorboard 1.15.0\n- Scikit-learn 0.19.1\n- Numpy 1.16.2\n- Gensim 3.8.3\n- Tqdm 4.49.0\n\n> **注意**：本项目基于 TensorFlow 1.x 构建，请勿使用 TF 2.x 环境。\n\n## 2. 安装步骤\n\n### 第一步：克隆项目\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FRandolphVI\u002FMulti-Label-Text-Classification.git\ncd Multi-Label-Text-Classification\n```\n\n### 第二步：安装 Python 依赖\n建议使用国内镜像源加速安装（如清华源）：\n```bash\npip install -r requirements.txt -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n*若自动安装失败，可手动指定版本安装：*\n```bash\npip install tensorflow==1.15.0 tensorboard==1.15.0 scikit-learn==0.19.1 numpy==1.16.2 gensim==3.8.3 tqdm==4.49.0 -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n### 第三步：准备预训练词向量\n项目默认需要 `word2vec_100.model` 文件。\n1. **下载文件**：从 [Google Drive 链接](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1S33iejwuQOIaNQfXW7fA_6zBwHHClT--\u002Fview?usp=sharing) 下载预训练模型。\n2. **解压放置**：将解压后的文件放入 `\u002Fdata` 目录下，确保文件名匹配 `word2vec_100.model.*`。\n\n*或者使用 Gensim 自行训练词向量并保存至该目录。*\n\n### 第四步：准备数据\n确保 `\u002Fdata` 目录下包含符合格式的训练、验证和测试样本（`Train_sample.json`, `Validation_sample.json`, `Test_sample.json`）。\n数据格式示例：\n```json\n{\"testid\": \"3935745\", \"features_content\": [\"word1\", \"word2\"], \"labels_index\": [526, 534], \"labels_num\": 2}\n```\n- **中文处理**：需先使用 `jieba` 对文本分词并去除停用词，再填入 `features_content`。\n- **英文处理**：需先使用 `nltk` 进行分词处理。\n\n## 3. 基本使用\n\n### 训练模型\n运行 `train_model.py` 开始训练。可以通过参数选择模型类型（如 text_cnn, text_rnn 等）及是否加载断点续训。\n\n```bash\npython Model\u002Ftrain_model.py\n```\n\n*常用配置提示（需在代码或命令行参数中调整）：*\n- 设置 `restore_model=False` 从头训练。\n- 设置 `restore_model=True` 从 checkpoint 恢复训练。\n- 日志和最佳模型检查点将自动保存。\n\n### 测试与预测\n运行 `test_model.py` 在测试集上评估模型性能（计算 AUC, AUPRC 等指标）并生成预测结果文件。\n\n```bash\npython Model\u002Ftest_model.py\n```\n\n*功能说明：*\n- 支持通过 **阈值 (threshold)** 或 **Top-K** 策略预测标签。\n- 生成的预测文件将包含预测概率值及最终标签。\n- 训练过程可通过 `tensorboard --logdir=logs` 查看可视化图表（需预先创建 `metadata.tsv` 以启用嵌入可视化）。\n\n### 自定义模型\n修改 `Model\u002Ftext_model.py` 可切换或调整网络结构（支持 FastText, TextCNN, TextRNN, TextHAN 等）。","某大型专利数据库团队正面临海量技术文档自动归档的挑战，需要为每篇专利同时打上多个精准的技术领域标签。\n\n### 没有 Multi-Label-Text-Classification 时\n- **分类维度单一**：传统单标签模型强制每篇专利只能归属一个类别，导致涉及“压力传感”与“流体力学”的交叉学科专利被错误截断，丢失关键检索维度。\n- **人工成本高昂**：依赖专家手动标注多重标签，面对每日新增的数千篇文档，处理滞后严重且容易出现主观漏标。\n- **模型训练不稳定**：自研的深度学习脚本缺乏梯度裁剪和学习率衰减机制，训练深层网络时频繁出现梯度爆炸，导致模型无法收敛。\n- **效果评估缺失**：缺乏针对多标签场景的 AUC 和 AUPRC 指标计算，难以量化模型在稀疏标签下的真实表现，优化方向盲目。\n\n### 使用 Multi-Label-Text-Classification 后\n- **精准多维打标**：利用其基于神经网络的多标签输出架构（如 [0, 1, 0, ..., 1] 格式），成功识别出单篇专利中的多个核心技术点，召回率显著提升。\n- **自动化流程落地**：结合预训练的中文词向量（Word2Vec）和分词工具，实现了从原始文本到多标签预测的全自动流水线，处理效率提升数十倍。\n- **训练稳定高效**：内置的梯度裁剪、L2 损失计算及 Highway Layer 有效防止了梯度爆炸，配合指数学习率衰减，使模型在复杂数据上快速收敛至最优状态。\n- **科学量化评估**：直接输出 AUC 与 AUPRC 专业指标，并通过 TensorBoard 可视化嵌入层，让团队能清晰监控训练过程并针对性调优。\n\nMulti-Label-Text-Classification 通过引入工业级的深度学习方法论，将模糊的文本归类难题转化为可量化、高并发的智能标签服务，彻底释放了非结构化数据的价值。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FRandolphVI_Multi-Label-Text-Classification_0e5edf18.png","RandolphVI","Randolph","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FRandolphVI_5bf91857.jpg","世之落拓而无成者，皆自谓不痴者也。",null,"Guatemala","chinawolfman@hotmail.com","https:\u002F\u002Fgithub.com\u002FRandolphVI",[82],{"name":83,"color":84,"percentage":85},"Python","#3572A5",100,562,143,"2026-04-02T09:01:52","Apache-2.0",4,"未说明",{"notes":93,"python":94,"dependencies":95},"该项目基于较旧的 TensorFlow 1.15.0 版本。处理中文文本需额外安装 jieba 分词库，英文需 nltk。运行前需手动下载预训练的 Word2vec 模型文件（dim=100）并解压至 \u002Fdata 目录。部分模型（如 TextRNN, TextSANN）在 README 中标记为未完成状态。","3.6",[96,97,98,99,100,101],"tensorflow==1.15.0","tensorboard==1.15.0","scikit-learn==0.19.1","numpy==1.16.2","gensim==3.8.3","tqdm==4.49.0",[14],[104,105,106,107,108],"text-classification","python3","tensorflow","sentence-classification","multi-label-classification","2026-03-27T02:49:30.150509","2026-04-14T20:30:07.638754",[112,117,122,127,132,137,142,147,152],{"id":113,"question_zh":114,"answer_zh":115,"source_url":116},33439,"如何正确运行测试代码？是否需要先训练模型？","是的，必须先训练模型。请先使用训练代码（如 `train_cnn.py`）训练模型，生成模型文件后，再使用测试代码（如 `test_cnn.py`）加载该模型文件进行测试。运行测试脚本时，程序会提示输入模型文件名（例如：1490175368）。","https:\u002F\u002Fgithub.com\u002FRandolphVI\u002FMulti-Label-Text-Classification\u002Fissues\u002F7",{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},33440,"为什么模型的 Precision、Recall 和 F1-score 等指标非常低？","指标过低通常由以下原因导致：1. 数据标签不平衡（长尾分布），这是主要原因，建议清洗数据或设计采样策略；2. 填充序列长度（pad sequence length）或其他参数设置不理想；3. 如果是中文数据，可能是使用的 word2vec 模型不匹配或分词结果需要优化。建议检查日志文件并提供预测结果以便进一步排查。","https:\u002F\u002Fgithub.com\u002FRandolphVI\u002FMulti-Label-Text-Classification\u002Fissues\u002F19",{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},33441,"如何处理多标签分类中的长尾数据（Long Tail）问题？","长尾问题是数据本身的问题。建议采取以下措施：1. 设计特定的采样策略来重构数据集；2. 直接清洗数据，去除样本过少的类别；3. 调整序列填充长度（padding length），例如将变长的序列统一 pad 到固定长度（如 200），虽然 LSTM 效果通常优于 CNN，但在长尾数据下提升有限，核心仍在于数据处理。","https:\u002F\u002Fgithub.com\u002FRandolphVI\u002FMulti-Label-Text-Classification\u002Fissues\u002F4",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},33442,"运行时报错 'UnicodeDecodeError: ascii codec can't decode byte...' 如何解决？","这是编码问题，通常发生在读取非 ASCII 字符（如中文）时。解决方法是在预处理脚本中，将数据喂给网络之前尝试添加 `.decode('utf-8')` 进行解码。此外，如果没有验证集，可以从训练集中切分一部分作为验证集，或者在配置中跳过验证步骤。","https:\u002F\u002Fgithub.com\u002FRandolphVI\u002FMulti-Label-Text-Classification\u002Fissues\u002F23",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},33443,"提供的 word2vec 模型文件可以用于中文数据分类吗？","不可以。项目默认提供的 word2vec 文件是基于英文维基百科语料库训练的，不适用于中文。处理中文数据时，需要使用 Gensim 等工具自行训练中文语料库得到中文 word2vec 表征。注意：训练得到的 word2vec 维度需与模型输入参数保持一致，并注意 Gensim 版本的兼容性。","https:\u002F\u002Fgithub.com\u002FRandolphVI\u002FMulti-Label-Text-Classification\u002Fissues\u002F27",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},33444,"在使用 pad_sequences 进行序列填充时报错 'invalid literal for int()' 怎么办？","这是因为输入数据仍然是字符串（str）类型，而 `pad_sequences` 需要整数（int）类型的索引。在使用该函数之前，必须确保文本数据已经通过 `_token_to_index()` 函数（通常在 `data_word2vec()` 中）转换成了对应的 int 类型 index 数据。请检查数据预处理流程，确保先进行分词和索引映射，再进行填充。","https:\u002F\u002Fgithub.com\u002FRandolphVI\u002FMulti-Label-Text-Classification\u002Fissues\u002F13",{"id":143,"question_zh":144,"answer_zh":145,"source_url":146},33445,"如何将 sklearn 的 f1_score 集成到项目中以支持 macro\u002Fmicro 平均计算？","维护者已更新代码以支持使用 sklearn 进行评估。现在可以直接利用 sklearn 的接口来预测和计算评估指标，从而支持不同的 average 方式（如 macro, micro 等）来对比分析 F1 分数。请拉取最新代码并使用相应的评估脚本。","https:\u002F\u002Fgithub.com\u002FRandolphVI\u002FMulti-Label-Text-Classification\u002Fissues\u002F5",{"id":148,"question_zh":149,"answer_zh":150,"source_url":151},33446,"多标签分类是否等同于将其转换为多个二分类问题？","本质上是的。目前多标签分类最普遍的做法就是将其转换为多个二分类问题来计算平均标签损失。代码中使用的损失函数 `sigmoid_cross_entropy_with_logits()` 正是基于此原理。阈值划分（如 >0.5 记为 1）只是最终结果选取的规则，核心训练过程确实是针对每个类别独立进行的二分类预测。","https:\u002F\u002Fgithub.com\u002FRandolphVI\u002FMulti-Label-Text-Classification\u002Fissues\u002F20",{"id":153,"question_zh":154,"answer_zh":155,"source_url":156},33447,"如果不同输入文本需要的标签数量（TopK 的 K 值）不同，该如何解决？","有两种主要思路：1. 使用与阈值无关的评估指标（如 AUPRC）来衡量模型性能；2. 训练一个额外的分类器来预测每个输入样本具体的 K 值，这是一个有趣且有研究价值的方向，已有相关论文支持此做法。目前的固定 TopK 只是基础实现。","https:\u002F\u002Fgithub.com\u002FRandolphVI\u002FMulti-Label-Text-Classification\u002Fissues\u002F16",[]]