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:
cudf::logic_error – 如果
targets.size() != replacements.size()并且如果replacements.size() != 1cudf::logic_error – 如果目标或替换包含空值
cudf::logic_error – 如果分隔符无效
- Parameters:
input – 要替换的字符串列
targets – 要与在
input中找到的标记进行比较的字符串replacements –
targets中每个字符串的替换字符串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 – 如果
delimiter或replacement无效- Parameters:
input – 要替换的字符串列
min_token_length – 输出字符串中保留标记的最小字符数
replacement – 可选的替换字符串,用于替换被移除的标记
delimiter – 用于将每个字符串分隔成标记的字符。默认的空字符串将使用空白字符来识别标记。
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源
- Returns:
过滤字符串的新字符串列
-
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())#