特征工程特征抽取
Posted ZSYL
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了特征工程特征抽取相关的知识,希望对你有一定的参考价值。
1. 字典特征抽取
from sklearn.feature_extraction import DictVectorizer
fruits = [{"fruit":"苹果","price":5},{"fruit":"橘子","price":5.9},{"fruit":"菠萝","price":9.9}]
vect = DictVectorizer()
result = vect.fit_transform(fruits)
print(result)
print(type(result))
print(result.toarray())
print(vect.get_feature_names())
(0, 1) 1.0
(0, 3) 5.0
(1, 0) 1.0
(1, 3) 5.9
(2, 2) 1.0
(2, 3) 9.9
<class 'scipy.sparse.csr.csr_matrix'>
[[0. 1. 0. 5. ]
[1. 0. 0. 5.9]
[0. 0. 1. 9.9]]
['fruit=橘子', 'fruit=苹果', 'fruit=菠萝', 'price']
2. CountVectorizer
from sklearn.feature_extraction.text import CountVectorizer
vect = CountVectorizer()
result = vect.fit_transform(["life is short,i need python","life is too long,i do not python"])
print(result)
print(type(result))
print(result.toarray())
print(vect.get_feature_names())
(0, 6) 1
(0, 4) 1
(0, 7) 1
(0, 1) 1
(0, 2) 1
(1, 5) 1
(1, 0) 1
(1, 3) 1
(1, 8) 1
(1, 6) 1
(1, 1) 1
(1, 2) 1
<class 'scipy.sparse.csr.csr_matrix'>
[[0 1 1 0 1 0 1 1 0]
[1 1 1 1 0 1 1 0 1]]
['do', 'is', 'life', 'long', 'need', 'not', 'python', 'short', 'too']
3. jieba分词
import jieba
word1 = "周密说,受到影响的应该说是某些特定领域的产品,不是全部的产品。"
word2 = "装假固然不好,处处坦白,也不成,这要看是什么时候。和朋友谈心,不必留心,但和敌人对面,却必须刻刻防备,我们和朋友在一起,可以脱掉衣服,但上阵要穿甲。"
word3 = "伟大的成绩和辛勤的劳动成正比例,有一分劳动就有一分收获,日积月累,从少到多,奇迹就可以创造出来。"
punct = set(u''':!),.:;?]}¢'"、。〉》」』】〕〗〞︰︱︳﹐、﹒
﹔﹕﹖﹗﹚﹜﹞!),.:;?|}︴︶︸︺︼︾﹀﹂﹄﹏、~¢
々‖•·ˇˉ―--′’”([{£¥'"‵〈《「『【〔〖([{£¥〝︵︷︹︻
︽︿﹁﹃﹙﹛﹝({“‘-—_…''')
filterpunt = lambda s: ''.join(filter(lambda x: x not in punct, s))
con1 = " ".join(jieba.cut(filterpunt(word1)))
con2 = " ".join(jieba.cut(filterpunt(word2)))
con3 = " ".join(jieba.cut(filterpunt(word3)))
vect_chinese = CountVectorizer()
result = vect_chinese.fit_transform([con1,con2,con3])
print(result)
print(type(result))
print(result.toarray())
print(vect_chinese.get_feature_names())
Building prefix dict from the default dictionary ...
Loading model from cache C:\\Users\\hynev\\AppData\\Local\\Temp\\jieba.cache
Loading model cost 1.992 seconds.
Prefix dict has been built succesfully.
(0, 12) 1
(0, 7) 1
(0, 8) 2
(0, 46) 1
(0, 36) 1
(0, 34) 1
(0, 25) 1
(0, 26) 1
(0, 17) 1
(0, 19) 1
(1, 38) 1
(1, 3) 1
(1, 40) 1
(1, 39) 1
(1, 18) 1
(1, 2) 1
(1, 29) 1
(1, 45) 1
(1, 15) 1
(1, 27) 1
(1, 24) 1
(1, 30) 1
(1, 37) 1
(1, 5) 1
(1, 42) 1
(1, 33) 2
(1, 32) 1
(1, 9) 1
(1, 44) 1
(1, 6) 1
(1, 21) 1
(1, 22) 1
(1, 4) 1
(1, 20) 1
(1, 41) 1
(2, 13) 1
(2, 14) 1
(2, 23) 1
(2, 10) 1
(2, 31) 1
(2, 1) 1
(2, 0) 1
(2, 35) 1
(2, 16) 2
(2, 43) 1
(2, 28) 1
(2, 11) 1
(2, 18) 1
<class 'scipy.sparse.csr.csr_matrix'>
[[0 0 0 0 0 0 0 1 2 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0
1 0 0 0 0 0 0 0 0 0 1]
[0 0 1 1 1 1 1 0 0 1 0 0 0 0 0 1 0 0 1 0 1 1 1 0 1 0 0 1 0 1 1 0 1 2 0 0
0 1 1 1 1 1 1 0 1 1 0]
[1 1 0 0 0 0 0 0 0 0 1 1 0 1 1 0 2 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1
0 0 0 0 0 0 0 1 0 0 0]]
['一分', '一分收获', '一起', '上阵', '不好', '不必', '不成', '不是', '产品', '什么', '从少', '伟大', '全部', '出来', '创造', '刻刻', '劳动', '受到', '可以', '周密', '固然', '坦白', '处处', '奇迹', '对面', '应该', '影响', '必须', '成绩', '我们', '敌人', '日积月累', '时候', '朋友', '某些', '正比例', '特定', '留心', '穿甲', '脱掉', '衣服', '装假', '谈心', '辛勤', '这要', '防备', '领域']
4. TFIDF特征抽取
from sklearn.feature_extraction.text import TfidfVectorizer
document1 = "共享单车确实烧钱,但这在中国创业圈里很常见,从打车到外卖都干过,雷布斯也语重心长,“创业还是要有烧不完的钱”,只不过共享单车烧得既没品味,也没技术含量,最后还引火烧身,几十亿美元落得这个结局,谁都没想到。"
document2 = "在人工智能已经深入生活的今天,社会上不乏“人工智能威胁论”,担忧机器人会“反噬”人类。在这篇文章里,李开复博士讨论了人工智能技术未来发展所带来的几个更真切和亟待解决的问题:全球性的失业问题及可能产生的全球性经济失衡和贫富差距。"
document3 = "从2009年到现在,鲨鱼投资者虽还在股海遨游,但胆子越来越小。折腾了N年,发现股票超出了我的认知范围,了解一家公司,难!股票行情,波动太大,小心脏受不了"
term1 = " ".join(jieba.cut(filterpunt(document1)))
term2 = " ".join(jieba.cut(filterpunt(document2)))
term3 = " ".join(jieba.cut(filterpunt(document3)))
tfidf = TfidfVectorizer()
result = tfidf.fit_transform([term1,term2,term3])
print(result)
print(tfidf.get_feature_names())
(0, 13) 0.3429971702850177
(0, 17) 0.3429971702850177
(0, 55) 0.17149858514250885
(0, 52) 0.17149858514250885
(0, 4) 0.17149858514250885
(0, 16) 0.3429971702850177
(0, 26) 0.17149858514250885
(0, 35) 0.17149858514250885
(0, 38) 0.17149858514250885
(0, 27) 0.17149858514250885
(0, 72) 0.17149858514250885
(0, 33) 0.17149858514250885
(0, 68) 0.17149858514250885
(0, 73) 0.17149858514250885
(0, 23) 0.17149858514250885
(0, 51) 0.17149858514250885
(0, 25) 0.17149858514250885
(0, 40) 0.17149858514250885
(0, 44) 0.17149858514250885
(0, 36) 0.17149858514250885
(0, 15) 0.17149858514250885
(0, 65) 0.17149858514250885
(0, 74) 0.17149858514250885
(0, 59) 0.17149858514250885
(0, 48) 0.17149858514250885
: :
(1, 30) 0.1561737618886061
(1, 69) 0.1561737618886061
(2, 0) 0.20851441405707472
(2, 53) 0.20851441405707472
(2, 77) 0.20851441405707472
(2, 41) 0.20851441405707472
(2, 60) 0.20851441405707472
(2, 75) 0.20851441405707472
(2, 63) 0.20851441405707472
(2, 71) 0.20851441405707472
(2, 42) 0.20851441405707472
(2, 1) 0.20851441405707472
(2, 21) 0.20851441405707472
(2, 61) 0.20851441405707472
(2, 70) 0.20851441405707472
(2, 66) 0.20851441405707472
(2, 64) 0.20851441405707472
(2, 5) 0.20851441405707472
(2, 2) 0.20851441405707472
(2, 12) 0.20851441405707472
(2, 62) 0.20851441405707472
(2, 49) 0.20851441405707472
(2, 28) 0.20851441405707472
(2, 37) 0.20851441405707472
(2, 22) 0.20851441405707472
['2009', 'n年', '一家', '不乏', '中国', '了解', '亟待解决', '产生', '人工智能', '人类', '今天', '全球性', '公司', '共享', '几个', '几十亿美元', '创业', '单车', '博士', '反噬', '发展', '发现', '受不了', '只不过', '可能', '品味', '圈里', '外卖', '大小', '失业问题', '失衡', '威胁论', '已经', '布斯', '带来', '常见', '引火烧身', '心脏', '打车', '技术', '技术含量', '投资者', '折腾', '担忧', '最后', '未来', '机器人', '李开复', '没想到', '波动', '深入生活', '烧得', '烧钱', '现在', '真切', '确实', '社会', '篇文章', '经济', '结局', '股海', '股票', '股票行情', '胆子', '范围', '落得', '认知', '讨论', '语重心长', '贫富差距', '超出', '越来越', '过雷', '还是', '这个', '遨游', '问题', '鲨鱼']
加油!
感谢!
努力!
以上是关于特征工程特征抽取的主要内容,如果未能解决你的问题,请参考以下文章