第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > 机器学习-特征抽取02

机器学习-特征抽取02

时间:2022-02-07 20:48:59

相关推荐

机器学习-特征抽取02

特征抽取是对文本等数据进行值化,特征值化是为了让计算机能够更好的去理解数据。

sklearn特征抽取api

sklearn.feature_extraction

字典特征抽取(对字典数据进行特征值化)

from sklearn.feature_extraction import DictVectorizer

# 字典特征抽取from sklearn.feature_extraction import DictVectorizerdict = DictVectorizer(sparse=False)data = dict.fit_transform([{"city":"北京","temperature":100},{"city":"上海","temperature":60},{"city":"深圳","temperature":30}])print(dict.get_feature_names())print(data)

文本特征抽取(对文本数据进行特征值化)

from sklearn.feature_extraction.text import CountVectorizer

英文特征抽取

from sklearn.feature_extraction.text import CountVectorizer # 导入包# 特征抽取# 实例化 CountVectorizer 对象vector = CountVectorizer()# 调用fit_transform 输入并转换数据data = vector.fit_transform(["life is is is short,i like python","life is too long,i dislike python"])# 打印结果print(vector.get_feature_names())print()print(data.toarray())

中文特征抽取

from sklearn.feature_extraction.text import CountVectorizer # 导入包# 特征抽取# 实例化 CountVectorizer 对象vector = CountVectorizer()# 调用fit_transform 输入并转换数据data = vector.fit_transform(["人生苦短,我用python","人生 漫长,我不用python"])# 打印结果print(vector.get_feature_names())print()print(data.toarray())

from sklearn.feature_extraction.text import CountVectorizer # 导入包import jiebadef cutword():# 使用jieba.cut 进行分词con1 = jieba.cut("今天很残酷,明天更残酷,后天很美好,但绝大部分人是死在明天晚上,所以每个人不要放弃今天。")con2 = jieba.cut("我们看到的从很远星系来的光是在几百万年之前发出的,这样当我们看到宇宙时,我们是在看它的过去。")con3 = jieba.cut("如果只用一种方式了解某样事物,你就不会真正了解它。了解事物真正含义的秘密取决于如何将其与我们所了解的事物相联系。")# 转换成列表content1 = list(con1)content2 = list(con2)content3 = list(con3)# 把列表转换成字符串c1 = ' '.join(content1)c2 = ' '.join(content2)c3 = ' '.join(content3)return c1,c2,c3def hanzi():c1,c2,c3 = cutword()print(c1,c2,c3)# 实例化 CountVectorizer 对象cv = CountVectorizer()# 调用fit_transform 输入并转换数据data = cv.fit_transform([c1,c2,c3])# 打印结果print(cv.get_feature_names())print(data.toarray())if __name__=='__main__':hanzi()

TF-IDF

TF-IDF 的主要思想是:如果某个词或短语在一篇文章中出现的频率高,并且在其它文章中很少出现,则认为改词或者短语具有很好的类别区分能力,适合用来分类。TF-IDF作用:用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要性。

tf : term frequency : 词的频率

idf : 逆文档频率 : inverse document frequency log(总文档数量/(除以)该词出现的文档数量)

log(数值):输入的数值越小,结果越小

tf*idf = 重要性程度

from sklearn.feature_extraction.text import TfidfVectorizer

from sklearn.feature_extraction.text import TfidfVectorizerimport jiebadef cutword():# 使用jieba.cut 进行分词con1 = jieba.cut("今天很残酷,明天更残酷,后天很美好,但绝大部分人是死在明天晚上,所以每个人不要放弃今天。")con2 = jieba.cut("我们看到的从很远星系来的光是在几百万年之前发出的,这样当我们看到宇宙时,我们是在看它的过去。")con3 = jieba.cut("如果只用一种方式了解某样事物,你就不会真正了解它。了解事物真正含义的秘密取决于如何将其与我们所了解的事物相联系。")# 转换成列表content1 = list(con1)content2 = list(con2)content3 = list(con3)# 把列表转换成字符串c1 = ' '.join(content1)c2 = ' '.join(content2)c3 = ' '.join(content3)return c1,c2,c3def tfidfvec():c1,c2,c3 = cutword()print(c1,c2,c3)# 实例化 TfidfVectorizer 对象tf = TfidfVectorizer()# 调用fit_transform 输入并转换数据data = tf.fit_transform([c1,c2,c3])# 打印结果print(tf.get_feature_names())print(data.toarray())if __name__=='__main__':tfidfvec()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。