Nvtext 编辑距离#
- group 编辑 距离
函数
-
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]
字符串进行计算。- 抛出:
cudf::logic_error – 如果
targets.size() != input.size()
且targets.size() != 1
- 参数:
input – 输入字符串的字符串列
targets – 用于计算与
input
编辑距离的字符串stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于分配返回列的设备内存的设备内存资源
- 返回:
包含编辑距离值的新列表列
-
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()
个元素。- 抛出:
cudf::logic_error – 如果
strings.size() == 1
- 参数:
input – 输入字符串的字符串列
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于分配返回列的设备内存的设备内存资源
- 返回:
包含编辑距离值的新列表列
-
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())#