Nvtext 替换#

替换

函数

std::unique_ptr<cudf::column> replace_tokens(cudf::strings_column_view const &input, cudf::strings_column_view const &targets, cudf::strings_column_view const &replacements, cudf::string_scalar const &delimiter = cudf::string_scalar{""}, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

用相应的替换字符串替换指定的令牌。

在每个字符串中识别令牌,如果任何令牌匹配指定的 targets 字符串,则它们将替换为相应的 replacements 字符串,使得如果找到 targets[i],则将其替换为 replacements[i]

delimiter 可以是零个或多个字符。如果 delimiter 为空,则使用空白字符(字符代码点 <= ' ')来识别令牌。此外,字符串中任何连续的分隔符都将被忽略。

Example:
s = ["this is me", "theme music"]
tgt = ["is", "me"]
rpl = ["+", "_"]
result = replace_tokens(s,tgt,rpl)
result is now ["this + _", "theme music"]

i 处的输入空元素在输出列中产生相应的行 i 处的空条目。

允许替换字符串为空字符串,但不会删除分隔符。

Example:
s = ["this is me", "theme music"]
tgt = ["me", "this"]
rpl = ["", ""]
result = replace_tokens(s,tgt,rpl)
result is now [" is ", "theme music"]

请注意,result 中的第一个字符串仍然保留空格分隔符。

除非 replacements.size()==1,否则 replacements.size() 必须等于 targets.size()。在这种情况下,所有匹配的 targets 字符串将替换为单个 replacements[0] 字符串。

抛出:
参数:
  • input – 要替换的字符串列

  • targets – 用于与在 input 中找到的令牌进行比较的字符串

  • replacementstargets 中每个字符串的替换字符串

  • delimiter – 用于将每个字符串分隔成令牌的字符。空字符串的默认值将使用空白字符来识别令牌。

  • stream – 用于设备内存操作和内核启动的 CUDA 流

  • mr – 用于分配返回列的设备内存的设备内存资源

返回:

替换字符串后的新字符串列

std::unique_ptr<cudf::column> filter_tokens(cudf::strings_column_view const &input, cudf::size_type min_token_length, cudf::string_scalar const &replacement = cudf::string_scalar{""}, cudf::string_scalar const &delimiter = cudf::string_scalar{""}, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

移除长度小于指定字符数的令牌。

从每个字符串中识别出的令牌将从相应的输出字符串中移除。通过指定 replacement 字符串,也可以用该字符串替换移除的令牌。

delimiter 可以是零个或多个字符。如果 delimiter 为空,则使用空白字符(字符代码点 <= ' ')来识别令牌。此外,字符串中任何连续的分隔符都将被忽略。

Example:
s = ["this is me", "theme music"]
result = filter_tokens(s,3)
result is now ["this  ", "theme music"]

请注意,result 中的第一个字符串仍然保留空格分隔符。

使用 replacement 字符串的示例。

Example:
s = ["this is me", "theme music"]
result = filter_tokens(s,5,"---")
result is now ["--- --- ---", "theme music"]

允许 replacement 字符串比 min_token_length 短。

抛出:

cudf::logic_error – 如果 delimiterreplacement 无效

参数:
  • input – 要替换的字符串列

  • min_token_length – 在输出字符串中保留令牌的最小字符数

  • replacement – 可选的替换字符串,用于替换已移除的令牌

  • delimiter – 用于将每个字符串分隔成令牌的字符。空字符串的默认值将使用空白字符来识别令牌。

  • stream – 用于设备内存操作和内核启动的 CUDA 流

  • mr – 用于分配返回列的设备内存的设备内存资源

返回:

过滤后的新字符串列