1. 程式人生 > >scikit-learn:CountVectorizer提取詞頻

scikit-learn:CountVectorizer提取詞頻

http://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.CountVectorizer.html#sklearn.feature_extraction.text.CountVectorizer

sklearn.feature_extraction.text.CountVectorizer(

input=u'content', encoding=u'utf-8', decode_error=u'strict',strip_accents=None, lowercase=True, preprocessor=None, tokenizer=None, stop_words=None,token_pattern=u'(?u)\b\w\w+\b', ngram_range=(1, 1), analyzer=u'word', max_df=1.0, min_df=1,max_features=None, vocabulary=None, binary=False, dtype=)

作用:Convert a collection of text documents to a matrix of token counts(計算詞彙的數量,即tf);結果由 scipy.sparse.coo_matrix進行稀疏表示。

看下引數就知道CountVectorizer在提取tf時都做了什麼:

strip_accents : {‘ascii’, ‘unicode’, None}:是否除去“音調”,不知道什麼是“音調”?看:http://textmechanic.com/?reqp=1&reqr=nzcdYz9hqaSbYaOvrt==

lowercase : boolean, True by default:計算tf前,先將所有字元轉化為小寫。這個引數一般為True。

preprocessor : callable or None (default):複寫the preprocessing (string transformation) stage,但保留tokenizing and n-grams generation steps.這個引數可以自己寫。

tokenizer : callable or None (default):複寫the string tokenization step,但保留preprocessing and n-grams generation steps.這個引數可以自己寫。

stop_words : string {‘english’}, list, or None (default):如果是‘english’, a built-in stop word list for English is used。如果是a list,那麼最終的tokens中將去掉list中的所有的stop word。如果是None, 不處理停頓詞;但引數 max_df可以設定為 [0.7, 1.0) 之間,進而根據intra corpus document frequency(df) of terms自動detect and filter stop words。這個引數要根據自己的需求調整。

token_pattern : string:正則表示式,預設篩選長度大於等於2的字母和數字混合字元(select tokens of 2 or more alphanumeric characters ),引數analyzer設定為word時才有效。

ngram_range : tuple (min_n, max_n):n-values值得上下界,預設是ngram_range=(1, 1),該範圍之內的n元feature都會被提取出來!這個引數要根據自己的需求調整。

analyzer : string, {‘word’, ‘char’, ‘char_wb’} or callable:特徵基於wordn-grams還是character n-grams。如果是callable是自己複寫的從the raw, unprocessed input提取特徵的函式。

max_df : float in range [0.0, 1.0] or int, default=1.0: min_df : float in range [0.0, 1.0] or int, default=1:按比例,或絕對數量刪除df超過max_df或者df小於min_df的word tokens。有效的前提是引數vocabulary設定成Node。

max_features : int or None, default=None:選擇tf最大的max_features個特徵。有效的前提是引數vocabulary設定成Node。

vocabulary : Mapping or iterable, optional:自定義的特徵word tokens,如果不是None,則只計算vocabulary中的詞的tf。還是設為None靠譜。

binary : boolean, default=False:如果是True,tf的值只有0和1,表示出現和不出現,useful for discrete probabilistic models that model binary events rather than integer counts.。

dtype : type, optional:Type of the matrix returned by fit_transform() or transform().。

結論: CountVectorizer提取tf都做了這些:去音調、轉小寫、去停頓詞、在word(而不是character,也可自己選擇引數)基礎上提取所有ngram_range範圍內的特徵,同時刪去滿足“max_df, min_df,max_features”的特徵的tf。當然,也可以選擇tf為binary。

最後看下兩個函式:

fit(raw_documents[, y]) Learn a vocabulary dictionary of all tokens in the raw documents.

fit_transform(raw_documents[, y]) Learn the vocabulary dictionary and return term-document matrix.

轉自:https://blog.csdn.net/mmc2015/article/details/46866537?utm_source=copy 

from sklearn.feature_extraction.text import CountVectorizer

texts=["dog cat fish","dog cat cat","fish bird", 'bird']
cv = CountVectorizer()
cv_fit=cv.fit_transform(texts)

print((cv.get_feature_names()))
print(cv.vocabulary_)  # 索引

print((cv_fit.toarray()))
print('對應特徵總個數:', (cv_fit.toarray().sum(axis=0)))  # .sum(axis=0)按列求和

相關推薦

scikit-learnCountVectorizer提取詞頻

http://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.CountVectorizer.html#sklearn.feature_extraction.text.Coun

scikit-learn4.2. Feature extraction(特征提取,不是特征選擇)

for port ould 詞匯 ret sim hide pla pip http://scikit-learn.org/stable/modules/feature_extraction.html 帶病在網吧裏。。。。。。寫。求支持。。。 1、首先澄

scikit-learn4. 數據集預處理(clean數據、reduce降維、expand增維、generate特征提取

ova trac ict mea res additive track oval mmc 本文參考:http://scikit-learn.org/stable/data_transforms.html 本篇主要講數據預處理,包含四部分: 數據清洗、數據

scikit-learn isotonic regression(保序回歸,非常有意思,僅做知識點了解,但差點兒沒用到過)

reg 現象 最小 給定 推薦 替代 ble class net http://scikit-learn.org/stable/auto_examples/plot_isotonic_regression.html#example-plot-isotonic-regre

scikit-learn3. Model selection and evaluation

ews util tree ask efficient square esc alter 1.10 參考:http://scikit-learn.org/stable/model_selection.html 有待翻譯,敬請期待: 3.1. Cross-val

scikit-learn3.5. Validation curves: plotting scores to evaluate models

ror 例如 最大的 dsm models 不能 utl ring 告訴 參考:http://scikit-learn.org/stable/modules/learning_curve.html estimator‘s generalization error

Scikit-learn聚類clustering

不同聚類效果比較sklearn不同聚類示例比較A comparison of the clustering algorithms in scikit-learn不同聚類綜述Method nameParametersScalabilityUsecaseGeometry (met

Scikit-learnscikit-learn快速教程及例項

scikit-learn 教程導航簡介:使用scikit-learn進行機器學習 機器學習:問題設定載入樣例資料集學習和預測模型持久化慣例 統計學習教程 統計學習:scikit-learn中的配置和estimator物件有監督學習:預測高維觀測物件模型選擇:選擇estima

機器學習精簡教程之七——用scikit-learn做特徵提取

本文轉自:http://www.shareditor.com/blogshow/?blogId=58 現實世界中多數特徵都不是連續變數,比如分類、文字、影象等,為了對非連續變數做特徵表述,需要對這些特徵做數學化表述,因此就用到了特徵提取 (特徵數字化) 分類變數的特徵提

機器學習SVM(scikit-learn 中的 RBF、RBF 中的超參數 γ)

import colors 機器 class 核函數 RoCE caf 情況 方差 一、高斯核函數、高斯函數 μ:期望值,均值,樣本平均數;(決定告訴函數中心軸的位置:x = μ) σ2:方差;(度量隨機樣本和平均值之間的偏離程度:, 為總體方差, 為變量, 為總體

分享《機器學習實戰基於Scikit-Learn和TensorFlow》高清中英文PDF+原始碼

下載:https://pan.baidu.com/s/1kNN4tDt58ckFoD_OWH5sGw 更多資料分享:http://blog.51cto.com/3215120 《機器學習實戰:基於Scikit-Learn和TensorFlow》高清中文版PDF+高清英文版PDF+原始碼 高清中文版PDF

分享《機器學習實戰基於Scikit-Learn和TensorFlow》高清中英文PDF+源代碼

ESS alt mark 構建 image 機器學習實戰 dff com 化學 下載:https://pan.baidu.com/s/1kNN4tDt58ckFoD_OWH5sGw 更多資料分享:http://blog.51cto.com/3215120 《機器學習實戰:基

分享《機器學習實戰基於Scikit-Learn和TensorFlow》+PDF+Aurelien

ext https oss 模型 img kit 復制 mage 更多 下載:https://pan.baidu.com/s/127EzxtY9zdBU2vOfxEgIjQ 更多資料分享:http://blog.51cto.com/14087171 《機器學習實戰:基於Sc

SciKit-Learn學習筆記】5核SVM分類和預測乳腺癌資料集

學習《scikit-learn機器學習》時的一些實踐。 常用引數 引數C SVM分類器svm.SVC()中的引數C即SVM所優化的目標函式 a

機器學習庫一scikit-learn

資料探勘中的機器學習庫scikit-learn,簡稱:sklearn 功能:分類、迴歸、降維、聚類四個機器學習演算法和特徵提取、資料處理、模型評估三個模組 安裝:pip install sklearn 決策樹sklearn.tree使用demo from sklear

機器學習筆記 (四)Scikit-learn CountVectorizer 與 TfidfVectorizer

Scikit-learn CountVectorizer 與 TfidfVectorizer 在文字分類問題中,我們通常進行特徵提取,這時,我們需要利用到要介紹的工具,或者其他工具。文字的特徵提取特別重要,體現這個系統做的好壞,分類的準確性,文字的特徵需要自己

scikit-learn /sklearn 整合學習 之 隨機森林分類器(Forests of Randomized Tree)官方檔案翻譯

整合學習 之 隨機森林分類器 整合學習的定義和分類。 隨機森林法的定義和分類。 隨機森林sklearn.ensemble.RandomForestClassifier()引數分類和含義。 附註:Bias和Variance的含義和關係。 一、整合學習 (Ensemble

scikit-learn處理輸入資料缺失值的類Imputer

 可選引數 strategy:  'mean'(預設的), ‘median’中位數,‘most_frequent’出現頻率最大的數 axis:  0(預設), 1 copy: True(預設),  False 輸出 nu

分享《機器學習實戰基於Scikit-Learn和TensorFlow》高清中英文PDF+原始碼免費

下載:https://pan.baidu.com/s/191hQMWZYGhXtqZxbfqTDtw 《機器學習實戰:基於Scikit-Learn和TensorFlow》高清中文版PDF+高清英文版PDF+原始碼免費下載 高清中文版PDF,649頁,帶目錄和書籤,文字能夠複製貼上;高清英文版PDF

SciKit-Learn學習筆記】8k-均值演算法做文字聚類,聚類演算法效能評估

學習《scikit-learn機器學習》時的一些實踐。 原理見K-means和K-means++的演算法原理及sklearn庫中引數解釋、選擇。 sklearn中的KMeans from sklearn.datasets import make_blobs from m