我正在尝试将Pandas数据帧转换为Tensorflow数据集。数据帧包括三列:
Feature1和Feature2是基于Tensorflow的TokenTextEncoder的索引列表。第一行示例如下:
目标功能1功能2 1[1,2,3,5][6,7,9,10]
目标是创建基于两个特征集的二进制分类。在
我已经尝试过将列表转换为numpy数组,但是仍然得到相同的错误。在
target = df.pop('Target')
dataset = tf.data.Dataset.from_tensor_slices((df.values, target.values))
TypeError:应为二进制或unicode字符串,得到[399、309、34、383、281]
正如@VGR所提到的,
Matcher
的实例将只搜索最初给定的字符串。如果要搜索新字符串,则必须创建Matcher
的新实例。在您的情况下,下一次搜索将从上次匹配后的索引开始。例如:如果您还没有意识到,那么您应该知道
text = text + subString
创建了一个全新的String
对象,然后将其分配给原始的text
变量。这意味着,尽管text
引用了“更新的”文本,matcher
只知道在创建matcher
时String
引用的text
对象。这就是为什么对于您的用例,您必须为每个循环创建一个新的Matcher
实例可选地,您可以考虑使用{A1},以避免每次迭代创建一个全新的字符串(Matter)的开销。不过,您仍然需要跟踪
start
索引,因为每次迭代都需要重置Matcher
对象,以便它识别StringBuilder
对象的更新/更长的内部结束索引(即附加文本)。例如:最后,一定要小心。除非您在正则表达式中有一些非常时髦的魔力(这完全是另一个问题),否则如果在文本中找到至少一个模式实例,那么这段代码将永远循环。我建议您在
while
循环上添加一个附加条件或某种计数器相关问题 更多 >
编程相关推荐