http://bilibili.com/video/BV184411Q7Ng?p=6
""" 演示字典的特征抽取, DictVectorizer是一个类的名字 """ from sklearn.feature_extraction import DictVectorizer def dictvec(): """ 字典数据抽取 :return: 加入参数sparse=False可以把转换成的数据转换成数组 """ dict=DictVectorizer(sparse=False) #实例化 sparse=False data=dict.fit_transform([{'city':'北京','temperature':100},{'city':'上海','temperature':60},{'city':'深圳','temperature':30}]) # 调用fit_transform就是把字符串数据转化成特征,返回的是个data print(dict.inverse_transform(data)) return None if __name__=="__main__": dictvec()
运行结果:
C:\Users\TJ\AppData\Local\Programs\Python\Python37\python.exe D:/qcc/python/mnist/feature_abstract.py
[{'city=北京': 1.0, 'temperature': 100.0}, {'city=上海': 1.0, 'temperature': 60.0}, {'city=深圳': 1.0, 'temperature': 30.0}]
Process finished with exit code 0
""" 演示字典的特征抽取, DictVectorizer是一个类的名字 CountVectorizer是一个类的名字,可以用来实例化一个变量 """ from sklearn.feature_extraction import DictVectorizer from sklearn.feature_extraction.text import CountVectorizer def dictvec(): """ 字典数据抽取 :return: 加入参数sparse=False可以把转换成的数据转换成数组 """ dict=DictVectorizer(sparse=False) #实例化 sparse=False data=dict.fit_transform([{'city':'北京','temperature':100},{'city':'上海','temperature':60},{'city':'深圳','temperature':30}]) # 调用fit_transform就是把字符串数据转化成特征,返回的是个data print(dict.inverse_transform(data)) return None def countvec(): """ 对文本进行特征值化 :return: """ cv=CountVectorizer() #实例化一个对象 data=cv.fit_transform(["life is short,i like python","life is too long,i dislike python"]) #逗号隔开的代表两篇文章,调用方法后有一个返回值 print(cv.get_feature_names()) print(data.toarray()) return None if __name__=="__main__": countvec()
运行结果:
C:\Users\TJ\AppData\Local\Programs\Python\Python37\python.exe D:/qcc/python/mnist/feature_abstract.py
['dislike', 'is', 'life', 'like', 'long', 'python', 'short', 'too']
[[0 1 1 1 0 1 1 0]
[1 1 1 0 1 1 0 1]]
Process finished with exit code 0
注解:
- 统计两篇文章中所有单词,返回一个列表,重复的单词只统计一次。
- 运行结果的下面的二维矩阵说明:针对每篇文章,在词的列表里面统计每个词出现的次数。