文本特征抽取

 实例代码:

#文本特征抽取
from sklearn.feature_extraction import DictVectorizer
from sklearn.feature_extraction.text import CountVectorizer
import jieba

def countvec():
    '''
    对文本进行特征值化
    :return:None
    '''
    cv = CountVectorizer()
    # data = cv.fit_transform(["life is short,i like python ", "life is too long ,i dislike python"])
    data = cv.fit_transform(["人生 苦短,我 喜欢 python ", "人生 漫长,不用 python"])

    print(cv.get_feature_names()) #获取特征值名称
    # print(data)
    print(data.toarray()) #sparse矩阵转换为数组形式
    return None


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 hanzivec():
    '''
    中文特征值化
    :return:None
    '''
    c1, c2, c3 =cutword()
    print(c1, c2, c3)
    cv = CountVectorizer()
    data = cv.fit_transform([c1, c2, c3])
    print(cv.get_feature_names())  # 获取特征值名称
    # print(data)
    print(data.toarray())  # sparse矩阵转换为数组形式
    return None


if __name__ == "__main__":
    # countvec()
    hanzivec()

运行结果:

原文地址:https://www.cnblogs.com/wydxry/p/10162474.html