CountVectorizer(analyzer =' char_wb')未按预期工作

时间:2016-03-23 21:19:12

标签: python scikit-learn

我试图使用scikit-learn perl -nle 'push @a, $_ ; END{print join("\n", map { $_->[0] } sort { $a->[1] <=> $b->[1] } map { [$_, /(\d+)/] } @a)}' file 来计算字符2克,忽略空格。在docs中,它提到了参数CountVectorizer,其中包含

  

该功能是否应由单词或字符n-gram组成。   选项'char_wb'仅从单词内的文本创建字符n-gram   边界。

然而,&#34; char_wb&#34;似乎不像我预期的那样工作。例如:

analyzer

请注意例如&#39; B&#39;其中包括一个空间。是什么给了什么?

1 个答案:

答案 0 :(得分:8)

我认为这是文档中长期存在的不准确之处,欢迎您帮忙修复。这样说更为正确:

  

选项'char_wb'创建字符n-gram,但不生成跨越字边界的n-gram。

似乎已在this commit中进行了更改以确保;看贡献者的comment。将bigrams输出与analyzer='char'的输出进行比较时看起来特别尴尬,但是当你增加到三元组时,你会发现空格可以开始或结束n-gram但不能在中间。这有助于表示特征的单词初始或单词最终性质,而无需捕获嘈杂的交叉单词字符n-gram。它还确保,与该提交之前不同,所有提取的n-gram具有相同的长度!