• 文本tfidf


    文本分类
    tf:词的频率
    idf:逆文档频率

    代码实例:

    # tf idf
    from sklearn.feature_extraction.text import TfidfVectorizer
    import jieba
    def cutword():
        con1 = jieba.cut("在百事进入中国市场之后,将外包装进行了修改,变为了代表性的蓝色,直接和红色外包装的可口可乐进行竞争与")
        con2 = jieba.cut("百事则成立于1902年,由百事可乐的发明人成立,百事可乐的发明人同样是一位药剂师,据说最开始是因为他在配制一种助消化的药剂时无意中发现某种口味深受顾客喜爱,他根据这种口味制作了碳酸饮料,也就成为了后来的百事可乐。")
        con3 = jieba.cut("可口可乐公司成立1886年,由阿萨坎德勒创立,他从发明可口可乐之人约翰彭伯顿手中买下了全部的销售生产权,并开始大范围的在市场进行推广,他创立了可口可乐公司,也被称之为“可口可乐之父”,随后经过了几代人的发展,可口可乐公司也一跃成为了世界著名的饮料生产商。")
        # 转换成列表
        content1 = list(con1)
        content2 = list(con2)
        content3 = list(con3)
        #把列表转换成字符串
        c1 = ' '.join(content1)
        c2 = ' '.join(content2)
        c3 = ' '.join(content3)
        return c1, c2, c3
    
    
    def tfidfvec():
        '''
        中文特征值化
        :return:None
        '''
        c1, c2, c3 =cutword()
        print(c1, c2, c3)
        cv = TfidfVectorizer()
        data = cv.fit_transform([c1, c2, c3])
        print(cv.get_feature_names())  # 获取特征值名称
        # print(data)
        print(data.toarray())  # sparse矩阵转换为数组形式
        return None
    
    
    if __name__ == "__main__":
        tfidfvec()

    运行结果:

  • 相关阅读:
    线程安全的简单理解
    单链表 之 判断两链表是否交叉
    React组件间的通信
    input type=file美化
    Array.prototype.slice.call(arguments)
    ES5 数组方法every和some
    nodejs学习之表单提交(1)
    ES5 数组方法reduce
    ES5 数组方法map
    ES5 数组方法forEach
  • 原文地址:https://www.cnblogs.com/shixinzei/p/10162529.html
Copyright © 2020-2023  润新知