2017-10-06 112 views
0

我有CountVectorizer和CharNGramAnalyzer之間的混淆。根據我的理解,scikit-learn中的CountVectorizer和CharNGramAnalyzer有什麼不同?

  1. CountVectorizer構建一個計數矩陣,其中行是出現計數的不同詞考慮到高維稀疏性。
  2. CharNGramAnalyzer構建一個計數矩陣,其中行是不同字符出現次數的計數。由於它不考慮文字,因此不需要知道單詞之間的分隔,並且適用於英語以外的語言。

我對我的理解是否正確?如果不是,我想要一個詳細的解釋或任何來源解釋它。

+0

如果我的答案解決並回答了問題,請將其標記爲答案。 –

回答

2

首先檢查你的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

相關問題