sklearn学习笔记(1)——特征抽取

SKlearn简介
scikit-learn,又写作sklearn,是一个开源的基于python语言的机器学习工具包。,它通过NumPy, SciPy和Matplotlib等python数值计算的库实现高效的算法应用,并且对常用的机器学习方法进行了封装,包括回归(Regression)、降维(Dimensionality Reduction)、分类(Classfication)、聚类(Clustering)等方法。

安装:pip install -U scikit-learn

SKlearn官网:http://scikit-learn.org/stable/index.html

 


sklearn特征抽取API:sklearn.feature_extraction

字典特征抽取:sklearn.feature_extraction.DictVectorizer

代码示例:

# 字典特征抽取
from sklearn.feature_extraction import DictVectorizer
dict_obj = DictVectorizer(sparse=False)
data = dict_obj.fit_transform(
    [
        {"city": "beijing", "temperature": 100},
        {"city": "shanghai", "temperature": 80},
        {"city": "shenzhen", "temperature": 60},
    ]
)
print(dict_obj.get_feature_names())
print(data)

文本特征抽取:sklearn.feature_extraction.text.CountVectorizer

默认不统计单个的字母和单个的字

文本特征抽取的另一种方式:sklearn.feature_extraction.text.TfidfVectorizer

TF-IDF的主要思想是:如果某个词语或短语在一篇文章中出现的概率高,并且在其他文章中很少出现,则认为此词语或短语具有很好的类别区分能力,适合用来分类。 作用:用以评估一个字词对于一个文件集或一个语料库中的其中一份文件的重要程度。

文本特征抽取需要对中文进行分词才能详细的进行特征值化,在这里使用的是结巴分词对中文进行分词

代码示例:

import jieba
from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer

def count_word():
    """
    把文章分词,转换成分词之后的字符串返回
    :return: str
    """
    c1 = jieba.cut("今天很残酷,明天更残酷,后天很美好,但绝对大部分是死在明天晚上,所以每个人不要放弃今天。")
    c2 = jieba.cut("我们看到的从很远星系来的光是在几百万年之前发出的,这样当我们看到宇宙时,我们是在看它的过去。")
    c3 = jieba.cut("如果只用一种方式了解某样事物,你就不会真正了解它。了解事物真正含义的秘密取决于如何将其与我们所了解的事物相联系")

    # 转换格式
    content1 = list(c1)
    content2 = list(c2)
    content3 = list(c3)

    # 让列表装成以空格隔开的字符串
    con1 = " ".join(content1)
    con2 = " ".join(content2)
    con3 = " ".join(content3)

    return con1, con2, con3
def count_vectorizer():
    """
    文本特征抽取
    :return: None
    """
    a, b, c = count_word()

    # CountVectorizer文本特征抽取
    cv = CountVectorizer()
    data = cv.fit_transform([a, b, c])
    print(cv.get_feature_names())
    print(data.toarray( ))
    
    # TfidfVectorizer文本特征抽取
    tf = TfidfVectorizer()
    data_tf = tf.fit_transform([a, b, c])
    print((tf.get_feature_names()))
    print(data_tf.toarray())

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卞亚超

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值