机器学习|python—sklearn特征提取

目录
一.字典特征值提取
二.英文文本特征值提取
三.中文文本特征值提取

需要导入的包

from sklearn.feature_extraction import DictVectorizer#用于字典特征值提起 from sklearn.feature_extraction.text import CountVectorizer#用于文本提取 """用于中文分词""" import jieba.analyse import jieba

特征提取官方教程网址:https://scikit-learn.org/stable/modules/feature_extraction.html#feature-extraction
特征值提取的基本步骤:
1.实例化一个转换器类
2.调用fit_transform方法进行转换
有一点注意的,获取特征值名字时,get_feature_names()这个方法在sklearn 1.0版本中已经弃用,会在1.2版本中删除,可用get_feature_names_out()替代
一.字典特征值提取
def dict_demo(): """ 字典特征值提取 """ data=https://www.it610.com/article/[{'name':'tutu','age':19},{'name':'lili','age':20},{'name':'haohao','age':21}] #1.实例化一个转换器类 transfer=DictVectorizer(sparse=True)#sparse=True表示产生稀疏矩阵,可修改为Flase,默认值为True #2.调用fit_transform data_new=transfer.fit_transform(data)#对数据进行转换 print(transfer.get_feature_names_out())#打印特征值名字,get_feature_names()在1.0版本中已弃用,将在1.2版本删除 print(data_new.toarray())#打印特此矩阵 # print(data_new)#特征值的稀疏矩阵 if __name__ == '__main__': dict_demo()

运行结果:
机器学习|python—sklearn特征提取
文章图片


二.英文文本特征值提取
def count_english(): """ 文本特征值提取 """ data=https://www.it610.com/article/["I Iove three things in this world.","Sun,Moon and You.","Sun for morning,Moon for night,and You forever."] #1.实例化一个转换器类 transfer=CountVectorizer(stop_words=['in','for'])#设置停用词 #2.调用fit_transform data_new=transfer.fit_transform(data)#对数据进行转换 print(transfer.get_feature_names_out())#打印特征值名字 print(data_new.toarray())#打印特征值矩阵,数字代表是单词的次数 if __name__ == '__main__': count_english()

运行结果:
机器学习|python—sklearn特征提取
文章图片

三.中文文本特征值提取 中文文本特征值提取的步骤只比英文文本提取的步骤多了一步,就是分词,英文句子是已经通过空格就分好词了,但是中文文本没有,所以我使用jieba模块进行分词,当然,大家也可以使用其他模块进行分词。
def cut_word(text): jieba.load_userdict(['它的'])#设置自己的词库 return ' '.join(list(jieba.lcut(text))) def count_chinese(): """ 中文文本特征抽取,使用jieba分词 """ data=https://www.it610.com/article/['这寡独的黄昏','幕着雾与雨','我在我心的孤寂里','感觉到它的叹息。'] data_new=[] for i in data: data_new.append(cut_word(i)) #1.实例化一个转换器类 transfer=CountVectorizer() #2.调用fit_transform data_finall=transfer.fit_transform(data_new) print(transfer.get_feature_names_out())#打印特征值名字 print(data_finall.toarray())#打印特征值矩阵 if __name__ == '__main__': count_chinese()

运行结果:
机器学习|python—sklearn特征提取
文章图片

最后送大家一张好看图片吧
机器学习|python—sklearn特征提取
文章图片

【机器学习|python—sklearn特征提取】

    推荐阅读