PaddleNLP介绍
PaddleNLP
是飞桨自然语言处理开发库,具备 易用的文本领域API,多场景的应用示例、和 高性能分布式训练 三大特点,旨在提升飞桨开发者文本领域建模效率,旨在提升开发者在文本领域的开发效率,并提供丰富的NLP应用示例。
PaddleNLP
数据增强原始文档:
https://paddlenlp.readthedocs.io/zh/latest/dataaug.html
我们首先导入Paddle
和PaddleNLP
:
import paddle
import paddlenlp
print('paddle version: ', paddle.__version__)
print('paddlenlp version: ', paddlenlp.__version__)
paddle version: 2.3.2
paddlenlp version: 2.4.3
方法1:词替换
单词替换的原理是将原始句子中的单词替换为其他单词,替换方法有:
同义词替换:使用词典中含义相近的单词进行替换,需要有额外的中文词典。 同音词替换:使用词典中同音相近的单词进行替换,需要有额外的中文词典。 上下文替换:使用预训练模型结合上下文进行预测。 自定义替换:自定义替换的规则。 随机替换:使用词典中任意单词替换。 组合替换:组合上述所有的替换。
同义词替换
aug = WordSubstitute('synonym', create_n=1, aug_n=1)
augmented = aug.augment(s1)
print("原始:", s1)
print("augmented:", augmented[0])
原始: 人类语言是抽象的信息符号,其中蕴含着丰富的语义信息,人类可以很轻松地理解其中的含义。
augmented: 人类语言是无意义的信息符号,其中蕴含着丰富的语义信息,人类可以很轻松地理解其中的含义。
同音(形)异义词替换
aug = WordSubstitute('homonym', create_n=1, aug_n=1)
augmented = aug.augment(s1)
print("原始:", s1)
print("替换:", augmented[0])
100%|██████████| 196959/196959 [00:03<00:00, 65644.73it/s]
原始: 人类语言是抽象的信息符号,其中蕴含着丰富的语义信息,人类可以很轻松地理解其中的含义。
augmented: 人类语嫣是抽象的信息符号,其中蕴含着丰富的语义信息,人类可以很轻松地理解其中的含义。
自定义词表替换
定义json:
!echo {\"人类\":[\"人\", \"人种\"], \"抽象\":[\"abstract\",\"具象\"]} > custom.json
custom_file_path = "custom.json"
aug = WordSubstitute('custom', custom_file_path=custom_file_path, create_n=1, aug_n=1)
augmented = aug.augment(s1)
print("原始:", s1)
print("替换:", augmented[0])
原始: 人类语言是抽象的信息符号,其中蕴含着丰富的语义信息,人类可以很轻松地理解其中的含义。
augmented: 人类语言是abstract的信息符号,其中蕴含着丰富的语义信息,人类可以很轻松地理解其中的含义。
组合替换
custom_file_path = "custom.json"
aug = WordSubstitute(['custom','synonym'], custom_file_path=custom_file_path, create_n=1, aug_n=1)
augmented = aug.augment(s1)
print("原始:", s1)
print("替换:", augmented[0])
原始: 人类语言是抽象的信息符号,其中蕴含着丰富的语义信息,人类可以很轻松地理解其中的含义。
替换: 人类语言是抽象的信息符号,其中蕴含着丰富的语义消息,人类可以很轻松地理解其中的含义。
上下文替换
aug = WordSubstitute('mlm', create_n=1)
augmented = aug.augment(s1)
print("原始:", s1)
print("替换:", augmented[0])
原始: 人类语言是抽象的信息符号,其中蕴含着丰富的语义信息,人类可以很轻松地理解其中的含义。
增强: 人类语言是抽象的语字符号,其中蕴含着丰富的语义信息,人类可以很轻松地理解其中的含义。
方法2:词插入
单词插入的原理是插入与原始句子中的相关的单词,替换方法有:
同义词插入:使用词典中含义相近的单词进行插入,需要有额外的中文词典。 同音词插入:使用词典中同音相近的单词进行插入,需要有额外的中文词典。 上下文插入:使用预训练模型结合上下文进行插入。 自定义插入:自定义替换的插入。 随机插入:使用词典中任意单词插入。 组合插入:组合上述所有的插入。
同义词插入
aug = WordInsert('synonym', create_n=1, aug_n=1)
augmented = aug.augment(s1)
print("原始:", s1)
print("增强:", augmented[0])
原始: 人类语言是抽象的信息符号,其中蕴含着丰富的语义信息,人类可以很轻松地理解其中的含义。
增强: 人类语言是抽象的信息符号,其中蕴含着丰富的语义音息信息,人类可以很轻松地理解其中的含义。
同音(形)异义词插入
aug = WordInsert('homonym', create_n=1, aug_n=3)
augmented = aug.augment(s1)
print("原始:", s1)
print("增强:", augmented[0])
原始: 人类语言是抽象的信息符号,其中蕴含着丰富的语义信息,人类可以很轻松地理解其中的含义。
增强: 人类语言是抽象抽像的信息符号,其中蕴含着丰富的语义御医信息,人类可以很轻松地理解李杰其中的含义。
自定义词表插入
!echo {\"人类\":[\"人累\", \"扔雷\"], \"抽象\":[\"丑相\"]} > custom.json
custom_file_path = "custom.json"
aug = WordInsert('custom', custom_file_path=custom_file_path, create_n=1, aug_n=1)
augmented = aug.augment(s1)
print("原始:", s1)
print("增强:", augmented[0])
原始: 人类语言是抽象的信息符号,其中蕴含着丰富的语义信息,人类可以很轻松地理解其中的含义。
增强: 人类语言是抽象的信息符号,其中蕴含着丰富的语义信息,人类扔雷可以很轻松地理解其中的含义。
组合插入
custom_file_path = "custom.json"
aug = WordInsert(['custom','synonym'], custom_file_path=custom_file_path, create_n=1, aug_n=1)
augmented = aug.augment(s1)
print("原始:", s1)
print("增强:", augmented[0])
原始: 人类语言是抽象的信息符号,其中蕴含着丰富的语义信息,人类可以很轻松地理解其中的含义。
增强: 人类语言是抽象的信息符号,其中蕴含着丰富的语义信息,人类可以很轻松地理解其中的含义意思。
随机插入
aug = WordInsert('random', create_n=1, aug_n=1)
augmented = aug.augment(s1)
print("原始:", s1)
print("增强:", augmented[0])
原始: 人类语言是抽象的信息符号,其中蕴含着丰富的语义信息,人类可以很轻松地理解其中的含义。
增强: 人类语言是抽象的信息符号,其中蕴含着丰富的语义信息马婶,人类可以很轻松地理解其中的含义。
上下文插入
aug = WordInsert('mlm', create_n=1)
augmented = aug.augment(s1)
print("原始:", s1)
print("增强:", augmented[0])
原始: 人类语言是抽象的信息符号,其中蕴含着丰富的语义信息,人类可以很轻松地理解其中的含义。
增强: 人类语言是抽象的信息符号,其中蕴含着丰富的语义语言信息,人类可以很轻松地理解其中的含义。
方法3:词删除
随机删除原始句子中的部分单词。
aug = WordDelete(create_n=1, aug_n=1)
augmented = aug.augment(s1)
print("原始:", s1)
print("增强:", augmented[0])
原始: 人类语言是抽象的信息符号,其中蕴含着丰富的语义信息,人类可以很轻松地理解其中的含义。
增强: 人类语言是抽象的信息符号,其中蕴含着丰富的语义,人类可以很轻松地理解其中的含义。
方法4:词交换
随机交换句子中的单词顺序。
aug = WordSwap(create_n=1, aug_n=1)
augmented = aug.augment(s1)
print("原始:", s1)
print("替换:", augmented[0])
原始: 人类语言是抽象的信息符号,其中蕴含着丰富的语义信息,人类可以很轻松地理解其中的含义。
替换: 语言人类是抽象的信息符号,其中蕴含着丰富的语义信息,人类可以很轻松地理解其中的含义。
运行代码👇:
https://aistudio.baidu.com/aistudio/projectdetail/5072002# 竞赛交流群 邀请函 #
△长按添加竞赛小助手
添加Coggle小助手微信领取代码(ID : coggle666)每天Kaggle算法竞赛、干货资讯汇总
与 28000+来自竞赛爱好者一起交流~
文章转载自Coggle数据科学,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。






