1. 概念:
将任意数据(文本, 图像),转换为用于机器学习的数字特征
字典类的特征抽取:
[{'city': '北京','temperature':100}
{'city': '上海','temperature':60}
{'city': '深圳','temperature':30}]
文本类的特征抽取:
图片类的特征抽取 (深度学习 tensorflow)
2. 文本类的特征抽取:
i.api:
from sklearn.feature_extraction.text import CountVectorizer
方法:
fit_transform(self): 对数据进行准换
返回值: sparse 矩阵: 方便计算机存储
(0, 2) 1
(0, 1) 1
(0, 6) 1
(0, 3) 1
(0, 5) 1
(1, 2) 1
(1, 1) 1
(1, 5) 1
(1, 7) 1
(1, 4) 1
(1, 0) 1
toarray()
get_feature_names: 获取特征的名称
3. 抽取原理:
根据 space 以及 符号提取词语作为特征
4. 分词工具安装
jieba安装:
pip install jieba
方法:
jieba.cut("人生苦短,我用python ")
from sklearn.feature_extraction.text import CountVectorizer
import jieba
def countvec():
"""
对字符串数据进行转换
:return:
"""
# 获取原始数据集
# data = ["life is short,i like python", "life is too long,i dislike python"]
# data = ["hello,wor!ld is apple,banana_orange"]
data = ["人生苦短,我用python", "生命长久,我不喜欢python"]
"""
['dislike', 'is', 'life', 'like', 'long', 'python', 'short', 'too']
[[0 1 1 1 0 1 1 0]
[1 1 1 0 1 1 0 1]]
"""
# 实例化转换对象
count = CountVectorizer()
# 调用fit_transform 对数据进行转换
data = count.fit_transform(data)
# 打印转换结果
print(count.get_feature_names())
print(data.toarray())
return None
def cut_word():
"""
中文分词工具
:return:
"""
data = "人生苦短, 我用python.生命太长久了,我不喜欢python."
result = jieba.cut(data)
"""
['人生', '苦短', ',', ' ', '我用', 'python', '.', '生命',
'太长久', '了', ',', '我', '不', '喜欢', 'python', '.']
"""
result1 = ' '.join(list(result))
print(result1)
cut_word()