1. DictVectorizer语法:
one-hot 编码分析:相当于设置哑变量
from sklearn.feature_extraction import DictVectorizer
from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer
import jieba
def dictvec():
"""
字典数据抽取
:return:
"""
#实例化
dict=DictVectorizer()
#调用fit_transform
data=dict.fit_transform([{'city':'北京','temperature':100},{'city':'上海','temperature':89}])#{}字典
print(dict.get_feature_names())#提取特征值
print(dict.inverse_transform(data))#查看具体的特征值情况
print (data)
return None
def countvec():
"""
对文本进行特征值化
:return:None
"""
cv=CountVectorizer()
#data2=cv.fit_transform(['life is short, i like python','life is too long, i dislike nescience'])#生成文本列表
data2 = cv.fit_transform(['人生 太短,我 喜欢python', '人生太长,我不喜欢nescience']) # 列表
print ('*****'*40)
print(data2)#是sparse矩阵
print ('#####**' * 40)
print (cv.get_feature_names())
print(data2.toarray())#将sparse矩阵转化成数组形式
return None
#分词——>字符串,转换成以空格隔开的列表
2.文本特征值的数据抽取
设置默认路径
F:>cd F:\anaconda3\Lib\site-packages
单个字母不统计
3.词组生成器
jieba 文本特征值化的案例:文本分类
from sklearn.feature_extraction.text import CountVectorizer
import jieba
def cutword(): #分词 :导入jieba库
#分词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,c3
def hanzivec():
'''
中文特征值化
:return:None
'''
c1,c2,c3=cutword()
print(c1,c2,c3)
cv = CountVectorizer()
# data2=cv.fit_transform(['life is short, i like python','life is too long, i dislike nescience'])#生成文本列表
data2 = cv.fit_transform([c1,c2,c3]) # 列表
# print ('*****' * 40)
# print(data2) # 是sparse矩阵
print ('#####**' * 40)
print (cv.get_feature_names())
print(data2.toarray()) # 将sparse矩阵转化成数组形式
return None
4.文本分类:TF-IDF----分类机器学习算法的重要依据
from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer
import jieba
def cutword(): #分词 :导入jieba库
#分词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,c3
# tf idf文本分类
def tfidfvec():
'''
中文特征值化
:return:None
'''
c1,c2,c3=cutword()#调用上面的特征分类
print(c1,c2,c3)
tf = TfidfVectorizer()
data=tf.fit_transform([c1,c2,c3])#生成文本列表
print ('#####**' * 40)
print (tf.get_feature_names())
print(data.toarray()) # 将sparse矩阵转化成数组形式
return None
if __name__=='__main__': #调用类
# dictvec()
# countvec()
tfidfvec()
重要性(浮点型的值) =tf*idf
tf idf 简介
文本特征分类功能:
1、文本特征抽取:count
文本分类----如每天的文献分类/文章的分类
2、tf idf:
2.1 tf:term frequency:词的频率 出现的次数(类似count)
2.2 idf:逆文档频率inverse document frequency
log(总文档数量/该词出现的文档数量)
例:log(数值):输入的数值越小,结果越小
tf*idf 重要性