我对TfidfVectorizer
的{{1}}在我不知道的幕后究竟是做什么感到困惑。
我有这样的句子:
skelearn
但是当我在训练后看到sentence_1 = 'Sum: 1 Mean: 1 Min:1'
时,找不到任何元素'1'。
我怀疑vocabulary_
对每个单个字母/数字令牌都这样做。
TfidfVectorizer
在这种情况下会做什么?
答案 0 :(得分:2)
这是因为token_pattern
是’(?u)\b\w\w+\b’
。这意味着它将提取长度大于1的字母数字标记。因此1
中不会弄清楚诸如2
,vocubulary_
之类的标记。
Here位置,其中token_pattern
用于提取令牌。
为演示示例,
import re
token_pattern = re.compile(r'(?u)\b\w\w+\b')
token_pattern.findall('i would like to test this 1 11')
# ['would', 'like', 'to', 'test', 'this', '11']
我们发现由于i
模式,字母数字标记1
,findall
并未从\b\w\w+\b
中提取出来。
如果需要包含单个字符标记,请使用\b\w+\b
。