0

J'ai une confusion entre CountVectorizer et CharNGramAnalyzer. Selon ma compréhension,Quelle est la différence entre CountVectorizer et CharNGramAnalyzer dans scikit-learn?

  1. CountVectorizer construit une matrice de comptage où les lignes sont occurrences nombre de mots différents en tenant compte de la parcimonie de grande dimension.
  2. CharNGramAnalyzer génère une matrice de comptage où les lignes sont des occurrences de différents caractères. Comme il ne prend pas en compte les mots, il ne nécessite pas de connaître la séparation entre les mots et fonctionne bien pour les langues autres que l'anglais.

Ai-je raison de comprendre? Sinon, je voudrais une explication détaillée ou une source expliquant cela.

+0

Si ma réponse résout et répond à la question, veuillez la marquer comme réponse. –

Répondre

2

Vérifiez d'abord votre version sklearn. Je pense que vous utilisez une ancienne version de sklearn. L'explication que vous avez donnée pour CountVectorizer n'est pas correcte. Il ne compte pas le nombre de mots différents dans le corpus, du moins pas la version actuelle.

Selon le docs of CountVectorizer, vous devez passer analyzer='word' pour faire le nombre de mots. Dans la dernière version de sklearn, CharNGramAnalyzer est obsolète et maintenant fusionné avec CountVectorizer. Faites simplement analyzer='char' pour répliquer CharNGramAnalyzer. Pour vérifier ce contrôle http://scikit-learn.org/stable/modules/classes.html#module-sklearn.feature_extraction.text n'a aucune entrée pour CharNGramAnalyzer