Nvtext Ngrams#
- group nvtext_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())#
通过从字符串列生成ngrams返回单个字符串列。
一个ngram是由2个或更多字符串与分隔符组成的组合。例如,生成bigrams会将所有相邻的字符串对分组。
["a", "bb", "ccc"] would generate bigrams as ["a_bb", "bb_ccc"] and trigrams as ["a_bb_ccc"]
输出列的大小将是从输入字符串列生成的ngrams的总数。
所有空行条目将被忽略,输出将包含所有有效行。
- Throws:
cudf::logic_error – 如果
ngrams < 2cudf::logic_error – 如果
separator无效cudf::logic_error – 如果没有足够的字符串来生成任何ngrams
- Parameters:
input – 要分词并生成n-gram的字符串列
ngrams – 要生成的ngram数量
separator – 用于分隔 ngram 标记的字符串
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源
- Returns:
新的字符串列,包含标记
-
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元组。
字符串的每个字符都用于为输出行构建ngrams。ngrams不会跨字符串创建。
["ab", "cde", "fgh"] would generate bigrams as [["ab"], ["cd", "de"], ["fg", "gh"]]
所有空行条目将被忽略,相应的输出行将为空。
- Throws:
std::invalid_argument – 如果
ngrams < 2cudf::logic_error – 如果没有足够的字符来生成任何ngrams
- Parameters:
input – 用于生成n-gram的字符串列
ngrams – 要生成的ngram数量。默认值为2,即二元组。
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源
- Returns:
列出字符串的列
-
std::unique_ptr<cudf::column> hash_character_ngrams(cudf::strings_column_view const &input, cudf::size_type ngrams = 5, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
对每个字符串中的字符n-gram进行哈希处理。
用于构建ngrams的字符串的每个字符,并且ngrams不会在相邻的字符串行之间生成。
"abcdefg" would generate ngrams=5 as ["abcde", "bcdef" "cdefg"]
每个字符串的ngrams被哈希并返回到一个列表列中,其中偏移量指定每个字符串的哈希值行。
子列的大小将是从输入字符串列生成的ngrams的总数。
所有空行条目将被忽略,输出将包含所有有效行。
哈希算法在每个ngram上使用MurmurHash32。
- Throws:
cudf::logic_error – 如果
ngrams < 2cudf::logic_error – 如果没有足够的字符来生成任何n-grams
- Parameters:
input – 用于生成n-gram的字符串列
ngrams – 要生成的ngram数量。默认值为5。
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源。
- Returns:
哈希值的列表列
-
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-gram,返回一个字符串列。
一个ngram是由2个或更多标记组成的分组,带有分隔符。例如,生成bigrams会将字符串中所有相邻的标记对分组。
["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为空,则使用空白字符(字符代码点 <= ‘ ‘)来识别标记。一旦识别出标记,通过使用指定的分隔符连接标记来生成ngrams。生成的ngrams使用每个字符串的标记,而不是跨相邻行中的字符串。任何包含的标记少于指定ngrams值的输入字符串将被跳过,并且不会对输出产生影响。因此,单个标记的二元组以及两个或更少标记的三元组将被忽略。
通过从每个字符串的开头定位分隔符来找到标记。当每个字符串被标记化时,使用输入列的行顺序生成n-gram以构建输出列。也就是说,在输入行[i]中创建的n-gram将直接放置在输入行[i+1]中创建的n-gram之前的输出列中。
输出列的大小将是从输入字符串列生成的ngrams的总数。
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"]
所有空行条目将被忽略,输出将包含所有有效行。
- Parameters:
input – 要分词并生成n-gram的字符串列
ngrams – 要生成的ngram数量
delimiter – 用于将每个字符串分隔成标记的UTF-8字符。空字符串将使用空格分隔标记。
separator – 用于分隔 ngram 标记的字符串
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回列的设备内存的设备内存资源
- Returns:
新的字符串列,包含标记
-
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())#