机器学习入门day_1

第一次接触人工智能学习中的机器学习方面,难免有些迷茫

特征值:接触了这个名词后就感觉肯定和矩阵脱离不了干系了

对于数据的特征值的要进行抽取,在这个之前需要用到Scikit_learn这个python中的一个模块,我用的是windows,所以就直接在https://www.lfd.uci.edu/~gohlke/pythonlibs/  下载了.whl文件进行安装,安装之前需要安装这个模块的两个依赖的包,numpy和pandas,安装完成后能够导入import sklearn就说明成功了

  1. 第一次是对字典类型的数据进行数据的抽取
from sklearn.feature_extraction import DictVectorizer


def DictVect():
    """
    对于字典类型的数据进行抽取特征值
    :return: None
    """

    #实例化

    dict = DictVectorizer()

    data = dict.fit_transform([{'北京':100},{"上海":60},{"广州":70}])

    print(data)

    return None

if __name__=="__main__":
    DictVect()

抽取出来的结果就是:

  (0, 1)    100.0
  (1, 0)    60.0
  (2, 2)    70.0

第一次敲完代码看到这些值我也什么都不知道,最后在研究后发现其实这也就是矩阵,这不过是为了节省内存才进行这样的优化,如果想要看到完整的矩阵,将DictVectorizer中的参数sparse=False就可以输出正常的矩阵

dict = DictVectorizer(sparse=False)

[[  0. 100.   0.]
 [ 60.   0.   0.]
 [  0.   0.  70.]]

对比下来其实两个表达的是一个意思

抽取完成的这样的数字对于我们来说其实没有什么,但是这个对于机器来说尤为重要,机器用这些数字才能进行分析和学习

 

2.对于文章的抽取

from sklearn.feature_extraction.text import CountVectorizer

def text():
    """
    对于文章的特征值得抽取
    :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(data.toarray())

    return None

if __name__=="__main__":
     text()

结果为:

['dislike', 'is', 'life', 'like', 'long', 'python', 'short', 'too']    #对于单个英文字母不统计,因为一个字母反映不出来文章主题
[[0 1 1 1 0 1 1 0]                                                         # 矩阵对应了上面特征值在每个文本中出现的次数
 [1 1 1 0 1 1 0 1]]

代码中

cv = CountVectorizer()想要将输出的矩阵转换,但是这个方法中没有sparse=False这个参数,但是numpy这个模块中有toarray()方法可以进行转换,所以就有data.toarray()

文本特征抽取的应用特别广泛,比如文本分类,情感分析

不同的文章之间分析不同的词语,就可以对文章进行分类,

文本分析对于中文来将结果如下:

 data=cv.fit_transform(["人生苦短,要学python","人生漫长,不用python"])

 ['不用python', '人生漫长', '人生苦短', '要学python']
 [[0 0 1 1]
 [1 1 0 0]]

结果看起来并不是我们想要的结果,这样的分解对于文章的整体性来讲并没有什么意义

但是只要将中文的词语之间加上空格,才会将各个词语分解开来

对于英文来讲不需要进行分词,但对于中文需要进行处理

pip install jieba

import jieba

con1=jieba.cut("人生苦短,要学python")  #分割成字符串

concent1=list(con1)   #转换成列表

c1=' '.join()    #用join进行拼接





 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值