如何将标记化应用于 TensorFlow 数据集?

Nad*_*ger 5 tokenize python-3.x tensorflow tensorflow-datasets

我正在使用cnn_dailymail数据集,它是TensorFlow Datasets 的一部分。我的目标是在对其应用一些文本预处理步骤后对数据集进行标记。

我访问和预处理数据集如下:

!pip install tensorflow-gpu==2.0.0-alpha0
import tensorflow as tf
import tensorflow_datasets as tfds

data, info = tfds.load('cnn_dailymail', with_info=True)
train_data, test_data = data['train'], data['test']

def map_fn(x, start=tf.constant('<start>'), end=tf.constant('<end>')):
   strings = [start, x['highlights'], end]
   x['highlights'] = tf.strings.join(strings, separator=' ')
   return x

train_data_preproc = train_data.map(map_fn)
elem, = train_data_preproc.take(1)
elem['highlights'].numpy()
# b'<start> mother announced as imedeen ambassador . ...
Run Code Online (Sandbox Code Playgroud)

为了标记数据集,我遇到了tfds.features.text.Tokenizer函数(另请参见此处)。但是,这并不像我希望的那样:

tokenizer = tfds.features.text.Tokenizer(alphanum_only=False, reserved_tokens=['<start>', '<end>'])
tokenizer.tokenize(elem['highlights'].numpy())
# ['<start>', ' ', 'mother', ' ', 'announced', ' ', 'as', ' ', 'imedeen', ' ', 'ambassador', ' . ',...]
Run Code Online (Sandbox Code Playgroud)

我希望标记器简单地拆分空格而不是将空格视为单独的标记。有没有办法实现这一目标?如果我创建自己的分词器函数,然后使用该dataset.map()函数应用它,那会是最好的吗?谢谢!

小智 -1

对于点击此链接的读者...

请找到我的要点,这可能有助于 Tensorlfow 中的标记化。

链接:https://gist.github.com/Mageswaran1989/70fd26af52ca4afb86e611f84ac83e97#file-text_preprocessing-ipynb

有不同的选项可供选择: