文章目錄[隱藏]
PaddleNLP介紹
PaddleNLP是飛槳自然語言處理開發庫,具備 易用的文本領域API,多場景的應用示例、和 高性能分布式訓練 三大特點,旨在提升飛槳開發者文本領域建模效率,旨在提升開發者在文本領域的開發效率,並提供豐(feng) 富的NLP應用示例。
PaddleNLP數據增強原始文檔:
https://paddlenlp.readthedocs.io/zh/latest/dataaug.html
我們(men) 首先導入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:詞替換
單詞替換的原理是將原始句子中的單詞替換為(wei) 其他單詞,替換方法有:
- 同義詞替換:使用詞典中含義相近的單詞進行替換,需要有額外的中文詞典。
- 同音詞替換:使用詞典中同音相近的單詞進行替換,需要有額外的中文詞典。
- 上下文替換:使用預訓練模型結合上下文進行預測。
- 自定義替換:自定義替換的規則。
- 隨機替換:使用詞典中任意單詞替換。
- 組合替換:組合上述所有的替換。
同義詞替換
aug = WordSubstitute('synonym', create_n=1, aug_n=1) augmented = aug.augment(s1) print("原始:", s1) print("augmented:", augmented[0])
原始: 人類語言是抽象的信息符號,其中蘊含著豐(feng) 富的語義(yi) 信息,人類可以很輕鬆地理解其中的含義(yi) 。
augmented: 人類語言是無意義(yi) 的信息符號,其中蘊含著豐(feng) 富的語義(yi) 信息,人類可以很輕鬆地理解其中的含義(yi) 。
同音(形)異義(yi) 詞替換
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]
原始: 人類語言是抽象的信息符號,其中蘊含著豐(feng) 富的語義(yi) 信息,人類可以很輕鬆地理解其中的含義(yi) 。
augmented: 人類語嫣是抽象的信息符號,其中蘊含著豐(feng) 富的語義(yi) 信息,人類可以很輕鬆地理解其中的含義(yi) 。
自定義詞表替換
定義(yi) 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])
原始: 人類語言是抽象的信息符號,其中蘊含著豐(feng) 富的語義(yi) 信息,人類可以很輕鬆地理解其中的含義(yi) 。
augmented: 人類語言是abstract的信息符號,其中蘊含著豐(feng) 富的語義(yi) 信息,人類可以很輕鬆地理解其中的含義(yi) 。
組合替換
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])
原始: 人類語言是抽象的信息符號,其中蘊含著豐(feng) 富的語義(yi) 信息,人類可以很輕鬆地理解其中的含義(yi) 。
替換: 人類語言是抽象的信息符號,其中蘊含著豐(feng) 富的語義(yi) 消息,人類可以很輕鬆地理解其中的含義(yi) 。
上下文替換
aug = WordSubstitute('mlm', create_n=1)
augmented = aug.augment(s1)
print("原始:", s1)
print("替換:", augmented[0])
原始: 人類語言是抽象的信息符號,其中蘊含著豐(feng) 富的語義(yi) 信息,人類可以很輕鬆地理解其中的含義(yi) 。
增強: 人類語言是抽象的語字符號,其中蘊含著豐(feng) 富的語義(yi) 信息,人類可以很輕鬆地理解其中的含義(yi) 。
方法2:詞插入
單詞插入的原理是插入與(yu) 原始句子中的相關(guan) 的單詞,替換方法有:
- 同義詞插入:使用詞典中含義相近的單詞進行插入,需要有額外的中文詞典。
- 同音詞插入:使用詞典中同音相近的單詞進行插入,需要有額外的中文詞典。
- 上下文插入:使用預訓練模型結合上下文進行插入。
- 自定義插入:自定義替換的插入。
- 隨機插入:使用詞典中任意單詞插入。
- 組合插入:組合上述所有的插入。
同義詞插入
aug = WordInsert('synonym', create_n=1, aug_n=1) augmented = aug.augment(s1) print("原始:", s1) print("增強:", augmented[0])
原始: 人類語言是抽象的信息符號,其中蘊含著豐(feng) 富的語義(yi) 信息,人類可以很輕鬆地理解其中的含義(yi) 。
增強: 人類語言是抽象的信息符號,其中蘊含著豐(feng) 富的語義(yi) 音息信息,人類可以很輕鬆地理解其中的含義(yi) 。
同音(形)異義(yi) 詞插入
aug = WordInsert('homonym', create_n=1, aug_n=3)
augmented = aug.augment(s1)
print("原始:", s1)
print("增強:", augmented[0])
原始: 人類語言是抽象的信息符號,其中蘊含著豐(feng) 富的語義(yi) 信息,人類可以很輕鬆地理解其中的含義(yi) 。
增強: 人類語言是抽象抽像的信息符號,其中蘊含著豐(feng) 富的語義(yi) 禦醫信息,人類可以很輕鬆地理解李傑其中的含義(yi) 。
自定義(yi) 詞表插入
!echo {"人類":["人累", "扔雷"], "抽象":["醜(chou) 相"]} > 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])
原始: 人類語言是抽象的信息符號,其中蘊含著豐(feng) 富的語義(yi) 信息,人類可以很輕鬆地理解其中的含義(yi) 。
增強: 人類語言是抽象的信息符號,其中蘊含著豐(feng) 富的語義(yi) 信息,人類扔雷可以很輕鬆地理解其中的含義(yi) 。
組合插入
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])
原始: 人類語言是抽象的信息符號,其中蘊含著豐(feng) 富的語義(yi) 信息,人類可以很輕鬆地理解其中的含義(yi) 。
增強: 人類語言是抽象的信息符號,其中蘊含著豐(feng) 富的語義(yi) 信息,人類可以很輕鬆地理解其中的含義(yi) 意思。
隨機插入
aug = WordInsert('random', create_n=1, aug_n=1)
augmented = aug.augment(s1)
print("原始:", s1)
print("增強:", augmented[0])
原始: 人類語言是抽象的信息符號,其中蘊含著豐(feng) 富的語義(yi) 信息,人類可以很輕鬆地理解其中的含義(yi) 。
增強: 人類語言是抽象的信息符號,其中蘊含著豐(feng) 富的語義(yi) 信息馬嬸,人類可以很輕鬆地理解其中的含義(yi) 。
上下文插入
aug = WordInsert('mlm', create_n=1)
augmented = aug.augment(s1)
print("原始:", s1)
print("增強:", augmented[0])
原始: 人類語言是抽象的信息符號,其中蘊含著豐(feng) 富的語義(yi) 信息,人類可以很輕鬆地理解其中的含義(yi) 。
增強: 人類語言是抽象的信息符號,其中蘊含著豐(feng) 富的語義(yi) 語言信息,人類可以很輕鬆地理解其中的含義(yi) 。
方法3:詞刪除
隨機刪除原始句子中的部分單詞。
aug = WordDelete(create_n=1, aug_n=1) augmented = aug.augment(s1) print("原始:", s1) print("增強:", augmented[0])
原始: 人類語言是抽象的信息符號,其中蘊含著豐(feng) 富的語義(yi) 信息,人類可以很輕鬆地理解其中的含義(yi) 。
增強: 人類語言是抽象的信息符號,其中蘊含著豐(feng) 富的語義(yi) ,人類可以很輕鬆地理解其中的含義(yi) 。
方法4:詞交換
隨機交換句子中的單詞順序。
aug = WordSwap(create_n=1, aug_n=1) augmented = aug.augment(s1) print("原始:", s1) print("替換:", augmented[0])
原始: 人類語言是抽象的信息符號,其中蘊含著豐(feng) 富的語義(yi) 信息,人類可以很輕鬆地理解其中的含義(yi) 。
替換: 語言人類是抽象的信息符號,其中蘊含著豐(feng) 富的語義(yi) 信息,人類可以很輕鬆地理解其中的含義(yi) 。
運行代碼?:https://aistudio.baidu***.com/aistudio/projectdetail/5072002
評論已經被關(guan) 閉。