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