1 """ 2 演示内容:文档的向量化 3 """ 4 from sklearn.feature_extraction.text import CountVectorizer 5 corpus = [ 6 'Jobs was the chairman of Apple Inc., and he was very famous', 7 'I like to use apple computer', 8 'And I also like to eat apple' 9 ] 10 11 #未经停用词过滤的文档向量化 12 vectorizer =CountVectorizer() 13 print(vectorizer.fit_transform(corpus).todense()) #转化为完整特征矩阵 14 print(vectorizer.vocabulary_) 15 print(" ") 16 17 #经过停用词过滤后的文档向量化 18 import nltk 19 nltk.download('stopwords') 20 stopwords = nltk.corpus.stopwords.words('english') 21 print (stopwords) 22 23 print(" ") 24 vectorizer =CountVectorizer(stop_words='english') 25 print("after stopwords removal: ", vectorizer.fit_transform(corpus).todense()) 26 print("after stopwords removal: ", vectorizer.vocabulary_) 27 28 print(" ") 29 #采用ngram模式进行文档向量化 30 vectorizer =CountVectorizer(ngram_range=(1,2)) #表示从1-2,既包括unigram,也包括bigram 31 print("N-gram mode: ",vectorizer.fit_transform(corpus).todense()) #转化为完整特征矩阵 32 print(" ") 33 print("N-gram mode: ",vectorizer.vocabulary_)
未经停用词过滤的文档向量化:
所有的停用词:
经过停用词过滤的文档向量化:
采用n-gram模式进行文档向量化:
1 """ 2 演示内容:量纲的特征缩放 3 (两种方法:标准化缩放法和区间缩放法。每种方法举了两个例子:简单二维矩阵和iris数据集) 4 """ 5 #方法1:标准化缩放法 例1:对简单示例二维矩阵的列数据进行 6 from sklearn import preprocessing 7 import numpy as np 8 #采用numpy的array表示,因为要用到其mean等函数,而list没有这些函数 9 X = np.array([[0, 0], 10 [0, 0], 11 [100, 1], 12 [1, 1]]) 13 14 X_mean = X.mean(axis=0) #均值 15 X_std = X.std(axis=0) #方差 16 X1 = (X-X_mean)/X_std #对x进行标准化 17 print (X1) 18 print ("") 19 20 #也可以用preprocessing来标准化X,和上面的结果一致 21 X_scale = preprocessing.scale(X) 22 print (X_scale) 23 24 25 #方法1: 标准化缩放法 例2:对iris数据二维矩阵的列数据进行。这次采用一个集成的方法StandardScaler 26 from sklearn import datasets 27 iris = datasets.load_iris() 28 X_scale = preprocessing.scale(iris.data) 29 print (X_scale) 30 31 32 #方法2: 区间缩放法 例3:对简单示例二维矩阵的列数据进行 33 from sklearn.preprocessing import MinMaxScaler 34 35 data = [[0, 0], 36 [0, 0], 37 [100, 1], 38 [1, 1]] 39 40 scaler = MinMaxScaler() 41 print(scaler.fit(data)) 42 print(scaler.transform(data)) 43 44 #方法2: 区间缩放法 例4:对iris数据二维矩阵的列数据进行 45 from sklearn.preprocessing import MinMaxScaler 46 data = iris.data 47 48 scaler = MinMaxScaler() 49 print(scaler.fit(data)) 50 print(scaler.transform(data))
对二维矩阵使用标准化缩放法:
对二维矩阵使用区间缩放法: