Nvtext 编辑距离#
- group nvtext_edit_distance
函数
-
std::unique_ptr<cudf::column> edit_distance(cudf::strings_column_view const &input, cudf::strings_column_view const &targets, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
计算两个字符串列中各个字符串之间的编辑距离。
output[i]是input[i]和targets[i]之间的编辑距离。此编辑距离计算使用 Levenshtein 算法,如文档所述:https://www.cuelogic.com/blog/the-levenshtein-algorithmExample: s = ["hello", "", "world"] t = ["hallo", "goodbye", "world"] d = edit_distance(s, t) d is now [1, 7, 0]
对于
input或targets中的任何空值条目将被忽略,编辑距离的计算将视空值条目为空字符串。targets.size()必须等于input.size(),除非targets.size()==1。在这种情况下,所有的input都将与单个targets[0]字符串进行计算。- Throws:
cudf::logic_error – 如果
targets.size() != input.size()并且如果targets.size() != 1- Parameters:
input – 输入字符串的字符串列
targets – 用于计算与
input的编辑距离的字符串stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源
- Returns:
编辑距离值的新列表列
-
std::unique_ptr<cudf::column> edit_distance_matrix(cudf::strings_column_view const &input, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
计算输入列中所有字符串之间的编辑距离。
这使用Levenshtein算法来计算两个字符串之间的编辑距离,如文档所述:https://www.cuelogic.com/blog/the-levenshtein-algorithm
输出本质上是一个
input.size() x input.size()的整数方阵。对角线row == col上的所有值都是0,因为两个相同字符串之间的编辑距离为零。对角线以上的所有值都在对角线以下反映,因为编辑距离计算也是可交换的。Example: s = ["hello", "hallo", "hella"] d = edit_distance_matrix(s) d is now [[0, 1, 1], [1, 0, 2] [1, 2, 0]]input中的空条目将被忽略,编辑距离的计算将视空条目为空字符串。输出是一个大小为
input.size()的列表列,其中每个列表项包含input.size()个元素。- Throws:
cudf::logic_error – 如果
strings.size() == 1- Parameters:
input – 输入字符串的字符串列
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源
- Returns:
编辑距离值的新列表列
-
std::unique_ptr<cudf::column> edit_distance(cudf::strings_column_view const &input, cudf::strings_column_view const &targets, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#