사용 : pip install nlpcda
오픈 소스는 쉽지 않습니다. 스타에 오신 것을 환영합니다.
pypi : https : //pypi.org/project/nlpcda/
한 번의 클릭 중국 데이터 향상 도구, 지원 :
BIO 데이터 향상simbert 사용하여 비슷한 문장을 생성하십시오经过细节特殊处理,比如不改变年月日数字,尽量保证不改变原文语义。即使改变也能被猜出来、能被猜出来、能被踩出来、能被菜粗来、被菜粗、能菜粗来
文本to语音>语音인식文本로 다시 인식 : FastSpeech2를 기반으로 텍스트에서 음성 생성 및 WAV2VEC2를 기반으로 한 음성 인식 텍스트예:
입력 : Xinhua 뉴스 에이전시 베이징 뉴스>
fastspeech2> X.WavX.Wav>
wav2vec2> 출력 : Xinhua 설정 베이징 뉴스
오늘은 8 월 29 일 뉴스입니다> 오늘은 8 월 29 일 뉴스입니다.
나는 1234 개의 사과를 가지고 있습니다.> 1234 사과가 있습니다
nlpcda 라는 제목을 기반으로 한 대규모 제품 엔티티 검색
켈 단순히 정확도 점수를 매기는 경우 일반적 으로이 패키지로 점수가 향상되지 않습니다.
매개 변수 :
텍스트 파일 경로이며 내용은 다음과 같습니다.
엔티티 1
엔티티 2
...
엔티티 n
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模型的泛化性能、减少波动、抵抗对抗攻击
'''매개 변수 :
텍스트 파일 경로이며 내용은 다음과 같습니다 (공간별로 분리).
AA01A0 인간은 모두 인간입니다
ID2 동의어 B1 동의어 B2 ... 동의어 BK
...
idn 동의어 n1 동의어 n2
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模型的泛化性能、减少波动、抵抗对抗攻击
'''
매개 변수 :
텍스트 파일 경로이고 내용은 다음과 같습니다 ( t 분리) :
de del Dede De technet till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till till
...
Pinyin n Word N1 Word N2
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模型的橎化性能、减少波动、抵抗对抗攻击
'''매개 변수 :
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 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模型泛化性能、减少波动、抵抗对抗
'''표시된 NER 데이터 디렉토리, 향상 해야하는 표시된 파일 경로 및 향상된 수를 입력하면 한 번의 클릭으로이를 향상시킬 수 있습니다.
NER 클래스 매개 변수 :
단어 1 t 태그
북쪽 t B-loc
베이징 t i-loc
오늘 t o
하루 t o
매우 t o
뜨거운 o
. 에게
Call Function Augment () 매개 변수입니다
예:
from nlpcda import Ner
ner = Ner ( ner_dir_name = 'ner_data' ,
ignore_tag_list = [ 'O' ],
data_augument_tag_list = [ 'P' , 'LOC' , 'ORG' ],
augument_size = 3 , seed = 0 )
data_sentence_arrs , data_label_arrs = ner . augment ( file_name = '0.txt' )
# 3条增强后的句子、标签 数据,len(data_sentence_arrs)==3
# 你可以写文件输出函数,用于写出,作为后续训练等
print ( data_sentence_arrs , data_label_arrs ) from nlpcda import CharPositionExchange
ts = '''这是个实体:58同城;今天是2020年3月8日11:40,天气晴朗,天气很不错,空气很好,不差;这个nlpcad包,用于方便一键数据增强,可有效增强NLP模型的泛化性能、减少波动、抵抗对抗攻击'''
smw = CharPositionExchange ( create_num = 3 , change_rate = 0.3 , char_gram = 3 , seed = 1 )
rs = smw . replace ( ts )
for s in rs :
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模型的性化泛能、动减波少、抗抗击抵对攻
'''매개 변수 :
텍스트 파일 경로이며 내용은 다음과 같습니다 (( t) 분리) :
0 Zero
1 1 ①
...
9 Nine Nine ⑨
from nlpcda import EquivalentChar
test_str = '''今天是2020年3月8日11:40,天气晴朗,天气很不错。'''
s = EquivalentChar ( create_num = 3 , change_rate = 0.3 )
# 添加等价字
s . add_equivalent_list ([ '看' , '瞅' ])
res = s . replace ( test_str )
print ( '等价字替换>>>>>>' )
for s in res :
print ( s )
'''
等价字替换>>>>>>
今天是2020年3月8日11:40,天气晴朗,天气很不错。
今天是二〇2〇年3月八日1①:4〇,天气晴朗,天气很不错。
今天是二0贰零年3月捌日11:40,天气晴朗,天气很不错
'''사용하기 전에 사용하려면 단어 분사 효과를 추가하십시오
from nlpcda import Randomword
from nlpcda import Similarword
from nlpcda import Homophone
from nlpcda import RandomDeleteChar
from nlpcda import Ner
from nlpcda import CharPositionExchange
Randomword . add_word ( '小明' )
Randomword . add_words ([ '小明' , '小白' , '天地良心' ])
# Similarword,Homophone,RandomDeleteChar 同上1. Baidu의 중국-영어 번역 교환 구현의 향상된 메모 :
Appid, Secretkey : http://api.fanyi.baidu.com/api/trans를 신청하십시오
from nlpcda import baidu_translate
zh = '天气晴朗,天气很不错,空气很好'
# 申请你的 appid、secretKey
# 两遍洗数据法(回来的中文一般和原来不一样,要是一样,就不要了,靠运气?)
en_s = baidu_translate ( content = zh , appid = 'xxx' , secretKey = 'xxx' , t_from = 'zh' , t_to = 'en' )
zh_s = baidu_translate ( content = en_s , appid = 'xxx' , secretKey = 'xxx' , t_from = 'en' , t_to = 'zh' )
print ( zh_s )2. Google Translation Interchange 구현의 향상
PIP 패키지 : Py-Googletrans
무료 Google Translation API, 벽 차단과 불안정이 필요합니다
https://py-googletrans.readthedocs.io/en/latest
PIP GOOGLETRANS 설치
from googletrans import Translator
def googletrans ( content = '一个免费的谷歌翻译API' , t_from = 'zh-cn' , t_to = 'en' ):
translator = Translator ()
s = translator . translate ( text = content , dest = t_to , src = t_from )
return s . text출처 : https://github.com/zhuiyitechnology/pretraind-models
참조 : https://github.com/zhuiyitechnology/simbert
모델을 다운로드하여 모든 위치로 압축 해제하여 model_path 변수에 할당하십시오.
| 이름 | 교육 데이터 크기 | 어휘 크기 | 모델 크기 | 주소를 다운로드하십시오 |
|---|---|---|---|---|
| Simbert Tiny | 2,200 만 유사한 문장 그룹 | 13685 | 26MB | Baidu Netdisk (1TP7) |
| Simbert Small | 2,200 만 유사한 문장 그룹 | 13685 | 49MB | Baidu Netdisk (NU67) |
| Simbert Base | 2,200 만 유사한 문장 그룹 | 13685 | 344MB | Baidu Netdisk (6xhq) |
매개 변수 :
환경 참조 (수동 설치) :
keras==2.3.1
bert4keras==0.7.7
# tensorflow==1.13.1
tensorflow-gpu==1.13.1
from nlpcda import Simbert
config = {
'model_path' : '/xxxx/chinese_simbert_L-12_H-768_A-12' ,
'CUDA_VISIBLE_DEVICES' : '0,1' ,
'max_len' : 32 ,
'seed' : 1
}
simbert = Simbert ( config = config )
sent = '把我的一个亿存银行安全吗'
synonyms = simbert . replace ( sent = sent , create_num = 5 )
print ( synonyms )
'''
[('我的一个亿,存银行,安全吗', 0.9871675372123718),
('把一个亿存到银行里安全吗', 0.9352194666862488),
('一个亿存银行安全吗', 0.9330801367759705),
('一个亿的存款存银行安全吗', 0.92387855052948),
('我的一千万存到银行安不安全', 0.9014463424682617)]
'''