如何编写可以保存的自定义文本预处理作为模型的一部分?
假设我想有两个特征:
- 带有某些功能的自动纠错字符串输入。单词可能会改变这个操作后
- 执行字符串输入的查询扩展,这样输出文本/令牌可能包含一些额外的单词(将为此训练权重)。
像这样:
-
fl我去伦敦->Fly到伦敦的
-
飞往伦敦->飞往伦敦loc_city
→这个标记需要提前在词汇表中,这可以通过
在步骤1和/或2之后,将结果馈送到textvectorization/Embedding layer ?
有standardize
回调,但我没有看到明显的方式与现有的tf。字符串操作。
理想情况下,有一个回调函数/层接受字符串(或标记)并映射到另一个字符串(或字符串标记)。
您可以像这样获得字符串的第一个字符:
import tensorflow as tf
class StringLayer(tf.keras.layers.Layer):
def __init__(self):
super(StringLayer, self).__init__()
def call(self, inputs):
return tf.squeeze(tf.strings.bytes_split(inputs), axis=1).to_tensor()[:, 0]
s = tf.constant([['next_string'], ['some_string']])
layer = StringLayer()
print(layer(s))
# tf.Tensor([b'n' b's'], shape=(2,), dtype=string)