特征工程:将原始数据转换为更好地表明预测模型的潜在问题的特征的过程,从而提供了对未知数据的预测准确性。python
from sklearn.feature_extraction import DictVectorizer def dictver(): """ 字典数据抽取 :return:None """ # 实例化 dict = DictVectorizer(sparse=False) # 调用fit_transform data = dict.fit_transform( [{'city': '北京', 'temperature': 100}, {'city': '上海', 'temperature': 60}, {'city': '深圳', 'temperature': 30}]) print(dict.get_feature_names()) print(dict.inverse_transform(data)) print(data) return None if __name__ == '__main__': dictver()
```mysql
def countvec(): """ 对文本进行特征值化 :return:None """ cv = CountVectorizer() data = cv.fit_transform(['life is short, i like python','life is too long, i dislike python']) print(cv.get_feature_names()) # print(cv.inverse_transform(data)) print(data.toarray()) return None if __name__ == '__main__': countvec()
import jieba from sklearn.feature_extraction.text import CountVectorizer def cutword(): """ 中文字分割 :return: c1, c2, c3 """ con1 = jieba.cut('今天很残酷,明天更残酷,后天很美好,' '但绝对大多数是死在明天晚上,因此每一个人不要放弃今天') con2 = jieba.cut('咱们看到的从很远星系来的光是在几百万年前发出的,' '这样当咱们看到宇宙时,咱们是在看它的过去') con3 = jieba.cut('若是只用一种方式了解某样事物,你就不会真正的了解它。' '了解事物真正含义的秘密取决于如何将其与咱们所了解的事物相联系') # 转换成列表 content1 = list(con1) content2 = list(con2) content3 = list(con3) # 把列表转换成字符串 # join(iterable) 以指定字符串做为分隔符,将content1中全部元素合并成一个新的字符串 c1 = ' '.join(content1) c2 = ' '.join(content2) c3 = ' '.join(content3) return c1, c2, c3 def hanzivec(): """ 中文特征值化 :return: None """ c1, c2, c3 = cutword() cv = CountVectorizer() # 实例化 data = cv.fit_transform([c1, c2, c3]) print(cv.get_feature_names()) print(data.toarray()) if __name__ == '__main__': hanzivec()
TF-IDF: 若是某个词或者短语在一篇文章中出现的几率高,而且在其余文章中不多出现,则认为此词或短语具备很好的类别区分能力,适合用来分类。程序员
sklearn.feature_extraction.text.TfidfVectorizer
算法
import jieba from sklearn.feature_extraction.text import TfidfVectorizer def cutword(): """ 中文字分割 :return: c1, c2, c3 """ con1 = jieba.cut('今天很残酷,明天更残酷,后天很美好,' '但绝对大多数是死在明天晚上,因此每一个人不要放弃今天') con2 = jieba.cut('咱们看到的从很远星系来的光是在几百万年前发出的,' '这样当咱们看到宇宙时,咱们是在看它的过去') con3 = jieba.cut('若是只用一种方式了解某样事物,你就不会真正的了解它。' '了解事物真正含义的秘密取决于如何将其与咱们所了解的事物相联系') # 转换成列表 content1 = list(con1) content2 = list(con2) content3 = list(con3) # 把列表转换成字符串 # join(iterable) 以指定字符串做为分隔符,将content1中全部元素合并成一个新的字符串 c1 = ' '.join(content1) c2 = ' '.join(content2) c3 = ' '.join(content3) return c1, c2, c3 def hanzivec(): """ 中文特征值化 :return: None """ c1, c2, c3 = cutword() tf = TfidfVectorizer() # 实例化 data = tf.fit_transform([c1, c2, c3]) print(tf.get_feature_names()) print(data.toarray()) if __name__ == '__main__': hanzivec()