Nvtext 替换#

group nvtext_replace

函数

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() 必须等于 targets.size(),除非 replacements.size()==1。在这种情况下,所有匹配的 targets 字符串将被替换为单个 replacements[0] 字符串。

Throws:
Parameters:
  • input – 要替换的字符串列

  • targets – 要与在input中找到的标记进行比较的字符串

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

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

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

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

Returns:

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

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 短。

Throws:

cudf::logic_error – 如果 delimiterreplacement 无效

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

  • min_token_length – 输出字符串中保留标记的最小字符数

  • replacement – 可选的替换字符串,用于替换被移除的标记

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

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

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

Returns:

过滤字符串的新字符串列