• 机器学习-特征抽取02


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

    sklearn特征抽取api

    • sklearn.feature_extraction

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

    • from sklearn.feature_extraction import DictVectorizer
      在这里插入图片描述
    # 字典特征抽取
    from sklearn.feature_extraction import DictVectorizer
    
    dict = 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 jieba
    
    def 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,c3
    
    def 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 TfidfVectorizer
    import jieba
    
    def 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,c3
    
    def 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()
    

    在这里插入图片描述

  • 相关阅读:
    Springcloudalibaba之Nacos服务注册和配置中心
    SpringBoot监控工具包Actuator使用
    服务注册中心之Consul使用
    微服务项目SpringcloudAlibaba
    微服务之链路跟踪SpringCloudSleuth
    微服务之消息驱动SpringCloudStream
    微服务之消息总线SpringCloudBus
    微服务之配置中心Config
    深入理解javascript原型和闭包(1)——一切都是对象
    js中函数创建的三种方式
  • 原文地址:https://www.cnblogs.com/gemoumou/p/14186296.html
Copyright © 2020-2023  润新知