PaddleNLP中文數據增強

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

【競賽報名/項目谘詢+微信:mollywei007】

上一篇

11.19大陸雅思大作文7分範文及解析:中學生選擇學術or職業課程

下一篇

西方藝術史學習參考閱讀書目

你也可能喜歡

  • 暫無相關文章!

評論已經被關(guan) 閉。

插入圖片
返回頂部