import tensorflow as tf

                x_t_len = tf.strings.length(x_t)
                x_t = tf.string_split([x_t], delimiter='').values

                z_t = tf.gather(y, m)
                z_t_len = tf.strings.length(z_t)
                z_t = tf.string_split([z_t], delimiter='').values

                for i in tf.range(start=0, limit=x_t_len - self._p + 1, delta=1, dtype=None, name='range'):
                    u = tf.string_join(x_t[i:i + self._p], '')
                    vx_keys, r = tf.cond(
                        tf.greater(vx.lookup(u), -1),
                        true_fn=lambda: (vx_keys, tf.add(vx.lookup(u), 1)),
                        false_fn=lambda: (tf.concat([vx_keys, tf.reshape(u, (-1, 1))], axis=0),
                                          tf.constant(1, dtype=tf.int64, name='constant'))
                    )
                    vx.insert(u, r)
