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:
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 < 2

  • cudf::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:
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:

新的字符串列,包含标记