В чем разница между CountVectorizer и CharNGramAnalyzer в scikit-learn?
У меня путаница между CountVectorizer и CharNGramAnalyzer. Согласно моему пониманию,
- CountVectorizer строит матрицу подсчета, где строки - это числа вхождений разных слов с учетом большой размерности.
- CharNGramAnalyzer создает матрицу подсчета, в которой строки - это числа вхождений разных символов. Поскольку он не учитывает слова, он не требует знания разделения между словами и хорошо работает для языков, отличных от английского.
Правильно ли я понимаю свое понимание? Если нет, я хотел бы получить подробное объяснение или любой источник, объясняющий это.
1 ответ
Сначала проверьте свою версию sklearn. Я чувствую, что вы используете старую версию sklearn. Объяснение, которое вы дали для CountVectorizer
не является правильным. Он не считает количество разных слов в корпусе, по крайней мере, не текущей версии.
Согласно документам CountVectorizer, вам нужно пройти analyzer='word'
чтобы подсчет слов. В последней версии sklearn, CharNGramAnalyzer
устарела и теперь объединена с CountVectorizer
, Просто делать analyzer='char'
копировать CharNGramAnalyzer
, Чтобы убедиться в этом, http://scikit-learn.org/stable/modules/classes.html не имеет записи для CharNGramAnalyzer