Nvtext N元语法#
- 组 NGrams
函数
-
std::unique_ptr<cudf::column> generate_ngrams(cudf::strings_column_view const &input, cudf::size_type ngrams, cudf::string_scalar const &separator, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
通过从字符串列生成 n元语法返回单个字符串列。
n元语法是由2个或更多字符串通过分隔符组成的分组。例如,生成 bigram(二元语法)会将所有相邻的字符串对分组。
["a", "bb", "ccc"] would generate bigrams as ["a_bb", "bb_ccc"] and trigrams as ["a_bb_ccc"]
输出列的大小将等于从输入字符串列生成的 n元语法的总数。
所有 null 行条目都将被忽略,输出包含所有有效行。
- 抛出:
cudf::logic_error – 如果
ngrams < 2
cudf::logic_error – 如果
separator
无效cudf::logic_error – 如果字符串数量不足以生成任何 n元语法
- 参数:
input – 用于分词并从中生成 n元语法的字符串列
ngrams – 要生成的 n元语法数量
separator – 用于分隔 n元语法 token 的字符串
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于分配返回列的设备内存的设备内存资源
- 返回:
新的 n元语法字符串列
-
std::unique_ptr<cudf::column> generate_character_ngrams(cudf::strings_column_view const &input, cudf::size_type ngrams = 2, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
在每个字符串内生成字符 n元语法。
字符串中的每个字符用于构建输出行的 n元语法。n元语法不会跨字符串创建。
["ab", "cde", "fgh"] would generate bigrams as [["ab"], ["cd", "de"], ["fg", "gh"]]
所有 null 行条目都将被忽略,相应的输出行将为空。
- 抛出:
std::invalid_argument – 如果
ngrams < 2
cudf::logic_error – 如果字符数量不足以生成任何 n元语法
- 参数:
input – 从中生成 n元语法的字符串列
ngrams – 要生成的 n元语法数量。默认值为 2 = bigram(二元语法)。
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于分配返回列的设备内存的设备内存资源
- 返回:
字符串的 Lists 列
-
std::unique_ptr<cudf::column> hash_character_ngrams(cudf::strings_column_view const &input, cudf::size_type ngrams = 5, uint32_t seed = 0, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
对每个字符串内的字符 n元语法进行哈希计算。
字符串中的每个字符用于构建 n元语法,并且 n元语法不会跨相邻字符串行生成。
"abcdefg" would generate ngrams=5 as ["abcde", "bcdef" "cdefg"]
对每个字符串的 n元语法进行哈希计算,并在 lists 列中返回,其中偏移量指定每个字符串的哈希值行。
子列的大小将等于从输入字符串列生成的 n元语法的总数。
所有 null 行条目都将被忽略,输出包含所有有效行。
哈希算法对每个 n元语法使用 MurmurHash32。
- 抛出:
cudf::logic_error – 如果
ngrams < 2
cudf::logic_error – 如果字符数量不足以生成任何 n元语法
- 参数:
input – 从中生成 n元语法的字符串列
ngrams – 要生成的 n元语法数量。默认值为 5。
seed – 用于哈希算法的种子值。默认值为 0。
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于分配返回列的设备内存的设备内存资源。
- 返回:
一个包含哈希值的 lists 列
-
std::unique_ptr<cudf::column> ngrams_tokenize(cudf::strings_column_view const &input, cudf::size_type ngrams, cudf::string_scalar const &delimiter, cudf::string_scalar const &separator, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
通过对输入字符串列进行分词,然后生成每个字符串的 n元语法,返回单个字符串列。
n元语法是由2个或更多 token 通过分隔符组成的分组。例如,生成 bigram(二元语法)会将一个字符串的所有相邻 token 对分组。
["a bb ccc"] can be tokenized to ["a", "bb", "ccc"] bigrams would generate ["a_bb", "bb_ccc"] and trigrams would generate ["a_bb_ccc"]
使用
delimiter
进行分词,它可以是零个或多个字符。如果delimiter
为空,则使用空白字符(字符码点 <= ‘ ‘)来识别 token。识别 token 后,通过使用指定的分隔符连接 token 来生成 n元语法。生成的 n元语法使用每个字符串中的 token,而不是跨相邻行的字符串。任何包含的 token 数量少于指定 ngrams 值的输入字符串都将被跳过,不会贡献到输出中。因此,单个 token 的 bigram(二元语法)以及 2个或更少 token 的 trigram(三元语法)都将被忽略。
通过从每个字符串的开头查找分隔符来找到 token。对每个字符串进行分词时,使用输入列的行顺序来生成 n元语法以构建输出列。也就是说,在输入行 [i] 中创建的 n元语法将直接放置在输出列中输入行 [i+1] 中创建的 n元语法之前。
输出列的大小将等于从输入字符串列生成的 n元语法的总数。
Example: s = ["a b c", "d e", "f g h i", "j"] t = ngrams_tokenize(s, 2, " ", "_") t is now ["a_b", "b_c", "d_e", "f_g", "g_h", "h_i"]
所有 null 行条目都将被忽略,输出包含所有有效行。
- 参数:
input – 用于分词并从中生成 n元语法的字符串列
ngrams – 要生成的 n元语法数量
delimiter – 用于将每个字符串分隔成 token 的 UTF-8 字符。空字符串将使用空白字符分隔 token。
separator – 用于分隔 n元语法 token 的字符串
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于分配返回列的设备内存的设备内存资源
- 返回:
新的 n元语法字符串列
-
std::unique_ptr<cudf::column> generate_ngrams(cudf::strings_column_view const &input, cudf::size_type ngrams, cudf::string_scalar const &separator, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#