TfIdfVectorizer¶
TfIdfVectorizer - 9¶
版本¶
域名:
mainsince_version:
9函数:
Falsesupport_level:
SupportType.COMMON形状推断:
True
此版本的运算符自版本9起可用。
摘要¶
此转换从输入序列中提取n-gram并将其保存为向量。输入可以是1-D或2-D张量。对于1-D输入,输出是该输入的n-gram表示。对于2-D输入,输出也是一个2-D张量,其第i行是第i行输入的n-gram表示。更具体地说,如果输入形状为[C],则相应的输出形状为[max(ngram_indexes) + 1]。如果输入形状为[N, C],此操作符将生成一个[N, max(ngram_indexes) + 1]张量。
与标准的n-gram提取不同,这里从原始序列中提取n-gram的索引不一定是连续的数字。索引之间的不连续性由跳过的数量控制。如果跳过的数量是2,我们在扫描原始序列时应跳过两个标记。让我们考虑一个例子。假设输入序列是[94, 17, 36, 12, 28],跳过的数量是2。相关的2-gram分别是[94, 12]和[17, 28],分别由[0, 3]和[1, 4]索引。如果跳过的数量变为0,生成的2-gram是[94, 17], [17, 36], [36, 12], [12, 28],分别由[0, 1], [1, 2], [2, 3], [3, 4]索引。
输出向量(用Y表示)存储每个n-gram的计数;Y[ngram_indexes[i]]表示第i个n-gram被找到的次数。属性ngram_indexes用于确定索引i与相应n-gram的输出坐标之间的映射关系。如果pool_int64s是[94, 17, 17, 36],ngram_indexes是[1, 0],ngram_counts=[0, 0],那么Y[0](Y中的第一个元素)和Y[1](Y中的第二个元素)分别是[17, 36]和[94, 17]的计数。在pool_strings/pool_int64s中找不到的n-gram应被忽略,并且对输出没有影响。请注意,在生成n-grams时,我们可能会考虑所有最多到S的跳数。
如果模式是“TF”,则上述示例为真。如果模式是“IDF”,所有大于1的计数将被截断为1,并且权重中的第i个元素将用于(通过乘法)缩放池中第i个n-gram的计数。如果模式是“TFIDF”,此操作符首先计算所有n-gram的计数,然后通过权重属性中的相关值进行缩放。
只能设置 pool_strings 和 pool_int64s 中的一个。如果设置了 pool_int64s,输入应该是一个整数张量。 如果设置了 pool_strings,输入必须是一个字符串张量。
属性¶
max_gram_length - INT(必填):
最大n-gram长度。如果此值为3,将使用3-grams生成输出。
max_skip_count - INT(必填):
在从X构建n-gram时要跳过的最大项目数(整数/字符串)。如果max_skip_count=1,min_gram_length=2,max_gram_length=3,此操作符可能会生成skip_count=0和skip_count=1的2-gram,以及skip_count=0和skip_count=1的3-gram
min_gram_length - INT(必填):
最小n-gram长度。如果此值为2且max_gram_length为3,输出可能包含2-grams和3-grams的计数。
mode - STRING(必填):
权重标准。它可以是“TF”(词频)、“IDF”(逆文档频率)和“TFIDF”(TF和IDF的组合)之一。
ngram_counts - INTS(必填):
池中1-gram、2-gram等的起始索引。这在确定两个连续的n-gram集合之间的边界时非常有用。例如,如果ngram_counts是[0, 17, 36],则池中1-gram/2-gram/3-gram的第一个索引(从零开始)分别为0/17/36。这种格式基本上与CSR(或CSC)稀疏矩阵格式相同,我们选择使用这种格式是因为它的流行性。
ngram_indexes - INTS(必填):
int64s列表(类型:AttributeProto::INTS)。此列表与指定的‘pool_*’属性平行。ngram_indexes中的第i个元素表示输出张量中第i个n-gram的坐标。
pool_int64s - INTS :
从训练集中学习到的int64 n-gram列表。必须存在此属性或pool_strings属性之一,但不能同时存在。它是一个一维张量,从所有1-gram的集合开始,到n-gram的集合结束。pool中的第i个元素存储应映射到输出向量中坐标ngram_indexes[i]的n-gram。
pool_strings - 字符串 :
从训练集中学习到的字符串n-grams列表。必须存在此属性或pool_int64s属性之一,但不能同时存在。它是一个1-D张量,从所有1-grams的集合开始,到n-grams的集合结束。pool中的第i个元素存储应映射到输出向量中坐标ngram_indexes[i]的n-gram。
weights - FLOATS :
浮点数列表。此属性存储池中每个n-gram的权重。weights中的第i个元素是池中第i个n-gram的权重。其长度等于ngram_indexes的大小。默认情况下,weights是一个全1的张量。当模式为“IDF”或“TFIDF”时,此属性用于缩放相关的词频计数。
输入¶
X (异构) - T:
用于n-gram提取的输入
输出¶
Y (异构) - T1:
Ngram 结果
类型约束¶
T 在 (
tensor(int32),tensor(int64),tensor(string)):输入是字符串UTF-8或int32/int64
T1 在 (
tensor(float)) 中:一维浮点数张量