在scikitlearn中CountVector和CharNGramAnalyzer有什么区别?

2024-04-23 19:16:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我把CountVectorizer和CharNGramAnalyzer搞混了。据我所知

  1. CountVectorizer构建一个计数矩阵,其中行是不同单词的出现计数,考虑到高维稀疏性。在
  2. CharNGramAnalyzer构建一个计数矩阵,其中行是不同字符的出现计数。因为它不考虑单词,所以它不需要知道单词之间的分隔,而且对于英语以外的语言也很有效。在

我的理解正确吗?如果没有,我想要一个详细的解释或任何来源的解释。在


Tags: 语言来源矩阵字符单词计数countvectorizer行是
1条回答
网友
1楼 · 发布于 2024-04-23 19:16:49

首先,检查你的sklearn版本。我觉得你用的是旧版本的sklearn。你对CountVectorizer的解释是不对的。它不计算语料库中不同单词的数量,至少不包括当前版本。在

根据docs of CountVectorizer,您需要传递analyzer='word'以使单词计数。在sklearn的最新版本中,CharNGramAnalyzer被弃用,现在与CountVectorizer合并。只需执行analyzer='char'来复制CharNGramAnalyzer。要验证此检查,http://scikit-learn.org/stable/modules/classes.html#module-sklearn.feature_extraction.text没有CharNGramAnalyzer的条目

相关问题 更多 >