nlp_xiaojiang

中文NLP一站式工具箱,开箱即用搞定相似度、NER和数据增强

nlp_xiaojiang 是一个面向中文自然语言处理的多功能工具集,由小姜机器人项目衍生而来。它集成了闲聊检索式聊天机器人、基于 BERT 和 XLNet 的句向量相似度计算、文本分类、命名实体识别(BERT+BiLSTM+CRF)、数据增强、同义句生成、句子主干提取等能力。项目旨在为中文 NLP 研究和应用提供开箱即用的模块,解决中文文本处理中常见的数据稀疏、语义相似度判断和特征工程等问题。其核心能力包括:利用预训练模型生成高质量句向量,支持多种相似度度量;提供多种数据增强策略以扩充训练数据;集成实体识别和文本分类等基础任务;并支持通过 keras-http-service 进行 HTTP 服务化部署,便于快速集成到实际系统中。整体上,该项目是一个面向中文场景的 NLP 工具箱,适合快速原型开发和教学实验。

开源 free 对话助手
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 1533
维护状态 低维护
是否开源 是
定价模式 free

项目数据

分类对话助手
开发团队yongzhuo
所属国家
官网地址
定价模式free
价格说明开源项目,MIT许可证,完全免费,可自行部署使用。
访问状态
是否开源是
开源协议MIT
主要语言Python
技术栈/模型bert,chatbot,chinese,data-augmentation,distance,enhance,feature,nlp,text-augment,text-classification,xlnet
GitHub 星标★ 1533
30天Star增速
HF 下载量
上线时间2019-04-09 00:00:00
最近更新2026-09-11 00:00:00
维护状态低维护
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数2

使用教程

难度:进阶 约 15 分钟 部署方式:命令行工具 8 步

环境要求

  • Python 环境(README 未给出具体版本,建议 Python 3)
  • Windows 10 + PyCharm 可直接运行(README 明确说明)
  • 已准备好 BERT/XLNet 预训练模型文件(用于句向量与特征提取,README 未给下载地址)
  • 已安装运行脚本所需的第三方依赖(README 未提供依赖清单)

安装与启动步骤

  1. 1获取项目代码

    从 GitHub 克隆项目到本地,之后所有脚本都在项目目录下运行。

    git clone https://github.com/yongzhuo/nlp_xiaojiang.git
  2. 2生成 tf-idf 文件

    这是执行相似度计算的前置步骤,README 明确说明跑 sentence_sim_feature.py 前必须先跑本脚本。

    python cut_td_idf.py
  3. 3计算句子相似度

    先计算预定义句子的多种相似度,随后可输入自定义句子进行测试。需先完成上一步。

    python sentence_sim_feature.py
  4. 4启动 fuzzy 检索机器人

    独立运行,基于 fuzzywuzzy 做字面匹配的检索式 ChatBot,输入句子可返回匹配问答。

    python chatbot_fuzzy.py
  5. 5启动句向量检索机器人

    独立运行,按“词”构造句向量检索问答库,可检索带同义词的句子。

    python chatbot_sentence_vec_by_word.py
  6. 6运行 EDA 数据增强

    使用同义词替换、插入、交换和删除策略扩充中文训练数据,README 称效果还行。

    python enhance_eda.py
  7. 7提取 BERT 句向量特征

    提取 BERT 句向量特征,脚本位于 FeatureProject 的 bert 子目录,README 原命令写作 run。

    python extract_keras_bert_feature.py
  8. 8测试 BERT 相似度

    用提取出的 BERT 句向量计算余弦相似度,验证句向量特征是否可用。

    python tet_bert_keras_sim.py

关键配置

配置项必填说明示例
args.py否NER(BERT+BiLSTM+CRF)模块的参数配置入口,用于调整参数python args.py

如何确认成功

运行 chatbot_fuzzy.py 或 chatbot_sentence_vec_by_word.py 后出现交互提示,输入句子能返回匹配答案即表示成功。

常见问题

Q:sentence_sim_feature.py 报错找不到 tf-idf 文件?

A:README 说明运行第 2 项前必须先运行第 1 项 python cut_td_idf.py 生成 tf-idf 文件,按顺序执行即可。

Q:缺少 Python 依赖包怎么办?

A:README 未提供依赖清单和安装命令,请按报错自行安装对应包,如 keras、fuzzywuzzy 等,并确认环境与脚本兼容。

Q:生成式 ChatBot 为什么没有对应脚本?

A:README 中生成式 ChatBot(seq2seq、GAN)标注为 todo,尚未实现,目前只能使用检索式 ChatBot。

Q:句向量特征提取脚本放在哪里运行?

A:脚本位于 FeatureProject 的 bert、xlnet 子目录,README 的 run 列表中的提取与相似度脚本需在对应子目录下执行。

注意事项

  • README 未提供 pip 依赖安装说明和预训练模型下载地址,运行前需自行准备 BERT/XLNet 模型与依赖。
  • 脚本之间存在顺序依赖,如 sentence_sim_feature.py 依赖 cut_td_idf.py 生成的文件。
  • README 第 12 项命令写作 run extract_keras_bert_feature.py,Windows 下请用 python 执行。
  • 项目 README 明确说明可在 Win10 + PyCharm 下运行。

核心亮点

  • 集成 BERT 和 XLNET 双模型句向量,相似度计算更灵活
  • 覆盖 NER、文本分类、数据增强等多个高频 NLP 任务,省去重复造轮子
  • 提供 HTTP 服务封装,可直接部署调用,降低集成门槛

不足之处

  • 文档和示例相对简略,上手需要自行摸索
  • 部分模块依赖较重的深度学习框架,部署资源要求较高

适用场景

  • 中文闲聊机器人开发,快速搭建检索式对话响应
  • 文本相似度匹配场景,如问答系统、去重、推荐
  • NLP 教学实验,快速验证 BERT/XLNET 在中文任务上的效果

替代项目

HanLP、LTP、FastText

项目介绍

nlp_xiaojiang 是开源模型领域的开源项目,由 yongzhuo 开发,2019 年首次发布。

在全站 13,090 个收录项目中,它的 GitHub 星标数(1,533)位列前 30%,在开源模型分类中处于中上游。

项目已超过三个月没有代码更新,维护节奏明显放缓,最近一次代码更新于 2026-09-11。MIT许可证,完全免费,可自行部署使用。

它主要面向的使用场景是:中文闲聊机器人开发,快速搭建检索式对话响应。同类可对比的替代方案包括 HanLP、LTP、FastText。

上一篇:ChatLM-mini-Chinese

下一篇:Ovis

同类项目推荐

Machine-Learning 开源

跟着博客笔记,边看边跑机器学习代码

All content related to machine learning from my blog

★ 115 2026-08-09
CoreML-Models 开源

下载即用的苹果端 AI 模型库,免去转换烦恼

Core ML model zoo for iOS/macOS — PyTorch models converted to ready-to-use .mlpacka···

★ 1873 2026-08-10