Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
一键中文数据增强包 ; NLP数据增强、bert数据增强、EDA:pip install nlpcda
| Date | Stars |
|---|---|
| 2026-07-24 | 1879 |
| 2026-07-25 | 1879 |
| 2026-07-28 | 1879 |
| 2026-07-30 | 1879 |
| 2026-08-06 | 1879 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
0.0
growth rate 0.00%/day
# NLP Chinese Data Augmentation 一键中文数据增强工具
使用:`pip install nlpcda`
开源不易,欢迎 star🌟
pypi:https://pypi.org/project/nlpcda/
---
## 介绍
一键中文数据增强工具,支持:
- [1.随机实体替换](#1随机等价实体替换)
- [2.近义词](#2随机同义词替换)
- [3.近义近音字替换](#3随机近义字替换)
- [4.随机字删除(内部细节:数字时间日期片段,内容不会删)](#4随机字删除)
- [5.NER类 `BIO` 数据增强](#5ner命名实体-数据增强)
- [6.随机置换邻近的字:**研表究明,汉字序顺并不定一影响文字的阅读理解**<<是乱序的](#6随机置换邻近的字)
- [7.中文等价字替换(1 一 壹 ①,2 二 贰 ②)](#7等价字替换)
- [8.翻译互转实现的增强](#8翻译互转实现的增强)
- [9.使用`simbert`做生成式相似句生成](#9simbert)
`经过细节特殊处理,比如不改变年月日数字,尽量保证不改变原文语义。即使改变也能被猜出来、能被猜出来、能被踩出来、能被菜粗来、被菜粗、能菜粗来`
## WIP
- 基于语音的洗文本过程(类似翻译)。`文本`转`语音`>`语音`识别回`文本`:基于fastspeech2对文本生成语音,基于wav2vec2语音识别文本
> 例子:
>
> input: 新华社北京消息 > `fastspeech2` > x.wav
>
> x.wav > `wav2vec2` > output: 新华设北京消息
>
- 数字转换工具(用于文本转换、中文语音合成需要纯中文)
> 今天是8月29日消息 > 今天是八月二十九日消息
>
> 我有1234个苹果 > 我有一千二百三十四个苹果
## 意义
- 在不改变原文语义的情况下,生成指定数量的训练语料文本
- 对NLP模型的泛化性能、对抗攻击、干扰波动,有很好的提升作用
- 参考比赛(本人用此策略+base bert拿到:50+-/1000):https://www.biendata.net/competition/2019diac/
- 基于nlpcda,本人[CCKS 2020:基于标题的大规模商品实体检索](https://www.biendata.net/competition/ccks_2020_6/final-leaderboard/)获得第9名,名字叫`nlpcda`
> ⚠️ 单纯刷准确率分数的比赛,用此包一般不会有分数提升
---
## API
### 1.随机(等价)实体替换
参数:
- base_file :缺省时使用内置(公司)实体。对公司实体进行替换
> 是文本文件路径,内容形如:\
> 实体1\
> 实体2\
> ...\
> 实体n
- create_num=3 :返回最多3个增强文本
- change_rate=0.3 : 文本改变率
- seed : 随机种子
```python
from nlpcda import Randomword
test_str = '''这是个实体:58同城;今天是2020年3月8日11:40,天气晴朗,天气很不错,空气很好,不差;这个nlpcad包,用于方便一键数据增强,可有效增强NLP模型的泛化性能、减少波动、抵抗对抗攻击'''
smw = Randomword(create_num=3, change_rate=0.3)
rs1 = smw.replace(test_str)
print('随机实体替换>>>>>>')
for s in rs1:
print(s)
'''
随机实体替换>>>>>>
这是个实体:58同城;今天是2020年3月8日11:40,天气晴朗,天气很不错,空气很好,不差;这个nlpcad包,用于方便一键数据增强,可有效增强NLP模型的泛化性能、减少波动、抵抗对抗攻击
这是个实体:长兴国际;今天是2020年3月8日11:40,天气晴朗,天气很不错,空气很好,不差;这个nlpcad包,用于方便一键数据增强,可有效增强NLP模型的泛化性能、减少波动、抵抗对抗攻击
这是个实体:浙江世宝;今天是2020年3月8日11:40,天气晴朗,天气很不错,空气很好,不差;这个nlpcad包,用于方便一键数据增强,可有效增强NLP模型的泛化性能、减少波动、抵抗对抗攻击
'''
```
### 2.随机同义词替换
参数:
- base_file :缺省时使用内置同义词表,你可以设定/自己指定更加丰富的同义词表:
> 是文本文件路径,内容形如(空格隔开):\
> Aa01A0 人类 生人 全人类\
> id2 同义词b1 同义词b2 ... 同义词bk\
> ...\
> idn 同义词n1 同义词n2\
- create_num=3 :返回最多3个增强文本
- change_rate=0.3 : 文本改变率
- seed : 随机种子
```python
from nlpcda import Similarword
test_str = '''这是个实体:58同城;今天是2020年3月8日11:40,天气晴朗,天气很不错,空气很好,不差;这个nlpcad包,用于方便一键数据增强,可有效增强NLP模型的泛化性能、减少波动、抵抗对抗攻击'''
smw = Similarword(create_num=3, change_rate=0.3)
rs1 = smw.replace(test_str)
print('随机同义词替换>>>>>>')
for s in rs1:
print(s)
'''
随机同义词替换>>>>>>
这是个实体:58同城;今天是2020年3月8日11:40,天气晴朗,天气很不错,空气很好,不差;这个nlpcad包,用于方便一键数据增强,可有效增强NLP模型的泛化性能、减少波动、抵抗对抗攻击
这是个实体:58同城;今天是2020年3月8日11:40,天气晴朗,天气很不错,空气很好,不差;这个nlpcad包,用于方便一键数量增强,可有效增强NLP模型的泛化性能、减少波动、抵抗对抗攻击
这是个实体:58同城;今天是2020年3月8日11:40,天气晴朗,天气很不错,空气很好,不差;斯nlpcad包,用于方便一键数据增强,可有效增强NLP模型的泛化性能、减少波动、抵抗对抗攻击
'''
```
### 3.随机近义字替换
参数:
- base_file :缺省时使用内置【同义同音字表】,你可以设定/自己指定更加丰富的同义同音字表:
> 是文本文件路径,内容形如(\t隔开):\
> de 的 地 得 德 嘚 徳 锝 脦 悳 淂 鍀 惪 恴 棏\
> 拼音2 字b1 字b2 ... 字bk\
> ...\
> 拼音n 字n1 字n2\
- create_num=3 :返回最多3个增强文本
- change_rate=0.3 : 文本改变率
- seed : 随机种子
```python
from nlpcda import Homophone
test_str = '''这是个实体:58同城;今天是2020年3月8日11:40,天气晴朗,天气很不错,空气很好,不差;这个nlpcad包,用于方便一键数据增强,可有效增强NLP模型的泛化性能、减少波动、抵抗对抗攻击'''
smw = Homophone(create_num=3, change_rate=0.3)
rs1 = smw.replace(test_str)
print('随机近义字替换>>>>>>')
for s in rs1:
print(s)
'''
随机近义字替换>>>>>>
这是个实体:58同城;今天是2020年3月8日11:40,天气晴朗,天气很不错,空气很好,不差;这个nlpcad包,用于方便一键数据增强,可有效增强NLP模型的泛化性能、减少波动、抵抗对抗攻击
这是个实体:58同城;今填是2020年3月8日11:40,天气晴朗,天气很不错,空气痕好,不差;这个nlpcad包,用于方便一键数据增强,可有效增强NLP模型的泛化性能、减少波动、抵抗对抗攻击
鷓是个实体:58同乘;今天是2020年3月8日11:40,天迄晴朗,天气很不错,空气很儫,不差;这个nlpcad包,用于方便一键数据增强,犐有效增牆NLP模型的橎化性能、减少波动、抵抗对抗攻击
'''
```
### 4.随机字删除
参数:
- create_num=3 :返回最多3个增强文本
- change_rate=0.3 : 文本改变率
- seed : 随机种子
```python
from nlpcda import RandomDeleteChar
test_str = '''这是个实体:58同城;今天是2020年3月8日11:40,天气晴朗,天气很不错,空气很好,不差;这个nlpcad包,用于方便一键数据增强,可有效增强NLP模型的泛化性能、减少波动、抵抗对抗攻击'''
smw = RandomDeleteChar(create_num=3, change_rate=0.3)
rs1 = smw.replace(test_str)
print('随机字删除>>>>>>')
for s in rExcerpt of 9,312 characters
Read on GitHub75
Zhiling Zhang · China
1
Xiang Long
1
Would you bet a product on this? Bounded 0–100 and slow moving.
matched fp:73ede1d765e56031, topic:data-augmentation, readme:data augmentation
matched fp:73ede1d765e56031, topic:nlp