Nvtext 标准化#
- group nvtext_normalize
函数
-
std::unique_ptr<cudf::column> normalize_spaces(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())#
通过规范化输入列中每个字符串的空白,返回一个新的字符串列。
规范化字符串会将任意数量的空白字符(字符代码点 <= ' ')替换为单个空格 ' ',并去除字符串开头和结尾的空白。
Example: s = ["a b", " c d\n", "e \t f "] t = normalize_spaces(s) t is now ["a b","c d","e f"]
在第
i行的空输入元素会在输出列的第i行产生一个相应的空条目。- Parameters:
input – 要标准化的字符串列
mr – 用于分配返回列的设备内存的设备内存资源
stream – 用于设备内存操作和内核启动的CUDA流
- Returns:
规范化字符串的新字符串列。
-
std::unique_ptr<cudf::column> normalize_characters(cudf::strings_column_view const &input, bool do_lower_case, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
对字符串字符进行规范化以便进行分词。
这使用了内置在nvtext::subword_tokenize函数中的标准化器,其中包括:
在标点符号(Unicode类别以“P”开头)以及某些ASCII符号(如“^”和“$”)周围添加填充
在CJK Unicode块字符周围添加填充
将空白字符(例如
"\t", "\n", "\r")更改为空格" "移除控制字符(Unicode类别“Cc”和“Cf”)
这里的填充过程在字符前后各添加一个空格。关于unicode类别的详细信息可以在这里找到:https://unicodebook.readthedocs.io/unicode.html#categories
如果
do_lower_case = true,小写化也会去除重音符号。重音符号无法从大写字符中去除而不进行小写化,而小写化也无法在不去除重音符号的情况下进行。然而,如果重音字符已经是小写,则只去除重音符号。s = ["éâîô\teaio", "ĂĆĖÑÜ", "ACENU", "$24.08", "[a,bb]"] s1 = normalize_characters(s,true) s1 is now ["eaio eaio", "acenu", "acenu", " $ 24 . 08", " [ a , bb ] "] s2 = normalize_characters(s,false) s2 is now ["éâîô eaio", "ĂĆĖÑÜ", "ACENU", " $ 24 . 08", " [ a , bb ] "]
在第
i行的空输入元素会在输出列的第i行产生一个相应的空条目。此函数需要大约16倍于输入字符串列中字符字节数的工作内存。
- Parameters:
input – 要标准化的输入字符串
do_lower_case – 如果为true,大写字符将转换为小写,并且这些字符的重音将被去除。如果为false,重音和大写字符将不会被转换。
stream – 用于设备内存操作和内核启动的CUDA流
mr – 分配任何返回对象的内存资源
- Returns:
标准化字符串列
-
std::unique_ptr<cudf::column> normalize_spaces(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())#