RandomSwap 类keras_hub.layers.RandomSwap(
rate,
max_swaps=None,
skip_list=None,
skip_fn=None,
skip_py_fn=None,
seed=None,
name=None,
dtype="int32",
**kwargs
)
通过随机交换单词来增强输入。
当您需要使用 [EDA: Easy Data Augmentation Techniques for Boosting Performance on Text Classification Tasks](https://arxiv.org/pdf/1901.11196.pdf) 论文中描述的交换增强技术来生成新数据时,此层非常有用。该层期望输入已预先拆分为 token 级别。这允许控制增强的级别,您可以按字符拆分以进行字符级交换,或按单词拆分以进行单词级交换。
输入数据应作为张量、tf.RaggedTensor 或列表进行传递。对于批处理输入,输入应为列表的列表或秩为二的张量。对于未批处理的输入,每个元素都应为列表或秩为一的张量。
参数
True 或 False 作为输出。值为 True 表示不应将其视为删除的候选。与 skip_fn 参数不同,此参数不必是可跟踪的 — 它可以是任何 Python 函数。示例
单词级别用法。
>>> keras.utils.set_random_seed(1337)
>>> x = ["Hey I like", "Keras and Tensorflow"]
>>> x = list(map(lambda x: x.split(), x))
>>> augmenter = keras_hub.layers.RandomSwap(rate=0.4, seed=42)
>>> y = augmenter(x)
>>> list(map(lambda y: " ".join(y), y))
['like I Hey', 'and Keras Tensorflow']
字符级别用法。
>>> keras.utils.set_random_seed(1337)
>>> x = ["Hey Dude", "Speed Up"]
>>> x = list(map(lambda x: list(x), x))
>>> augmenter = keras_hub.layers.RandomSwap(rate=0.4, seed=42)
>>> y = augmenter(x)
>>> list(map(lambda y: "".join(y), y))
['deD yuHe', 'SUede pp']
使用 skip_list。
>>> keras.utils.set_random_seed(1337)
>>> x = ["Hey I like", "Keras and Tensorflow"]
>>> x = list(map(lambda x: x.split(), x))
>>> augmenter = keras_hub.layers.RandomSwap(rate=0.4,
... skip_list=["Keras"], seed=42)
>>> y = augmenter(x)
>>> list(map(lambda y: " ".join(y), y))
['like I Hey', 'Keras and Tensorflow']
使用 skip_fn。
>>> def skip_fn(word):
... return tf.strings.regex_full_match(word, r"[I, a].*")
>>> keras.utils.set_random_seed(1337)
>>> x = ["Hey I like", "Keras and Tensorflow"]
>>> x = list(map(lambda x: x.split(), x))
>>> augmenter = keras_hub.layers.RandomSwap(rate=0.9, max_swaps=3,
... skip_fn=skip_fn, seed=11)
>>> y = augmenter(x)
>>> list(map(lambda y: " ".join(y), y))
['like I Hey', 'Keras and Tensorflow']
使用 skip_py_fn。
>>> def skip_py_fn(word):
... return len(word) < 4
>>> keras.utils.set_random_seed(1337)
>>> x = ["He was drifting along", "With the wind"]
>>> x = list(map(lambda x: x.split(), x))
>>> augmenter = keras_hub.layers.RandomSwap(rate=0.8, max_swaps=2,
... skip_py_fn=skip_py_fn, seed=15)
>>> y = augmenter(x)
>>> list(map(lambda y: " ".join(y), y))
['He was along drifting', 'wind the With']