В чем разница между CountVectorizer и CharNGramAnalyzer в scikit-learn?

У меня путаница между CountVectorizer и CharNGramAnalyzer. Согласно моему пониманию,

  1. CountVectorizer строит матрицу подсчета, где строки - это числа вхождений разных слов с учетом большой размерности.
  2. CharNGramAnalyzer создает матрицу подсчета, в которой строки - это числа вхождений разных символов. Поскольку он не учитывает слова, он не требует знания разделения между словами и хорошо работает для языков, отличных от английского.

Правильно ли я понимаю свое понимание? Если нет, я хотел бы получить подробное объяснение или любой источник, объясняющий это.

1 ответ

Решение

Сначала проверьте свою версию sklearn. Я чувствую, что вы используете старую версию sklearn. Объяснение, которое вы дали для CountVectorizer не является правильным. Он не считает количество разных слов в корпусе, по крайней мере, не текущей версии.

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

Другие вопросы по тегам