【一起从0开始学习人工智能0x02】字典特征抽取、文本特征抽取、中文文本特征抽取

简介: 【一起从0开始学习人工智能0x02】字典特征抽取、文本特征抽取、中文文本特征抽取

注:最后有面试挑战,看看自己掌握了吗

什么是特征工程?

算法 特征工程
影响最终效果--------数据和特征工程 决定了机器学习的上限,而模型和算法只是逼近这个上限而已。

意义:直接影响机器学习效果

一种数据处理

用什么做?

pandas------数据清洗、数据处理

sklearn------对特征处理提供了强大的接口

1.特征提取

比如文章分类

机器学习算法-------统计方法------数学公式

文本类型—》数值

类型-------》数值

任意数据-----------》用于机器学习的数字特征

特征值化:

字典特征提取---------特征离散化

文本特征提取

图像特征提取---------深度学习

特征提取API

sklearn.featurn_extraction()

字典特征提取—向量化—类别–》one-hot编码

sklearn.featurn_extraction.DicVertorizer(sparse=True,...)

vector 向量、

matrix矩阵----二维数组

vector 一维数组

父类:转换器类

哑变量

哑变量定义

哑变量(DummyVariable),也叫虚拟变量,引入哑变量的目的是,将不能够定量处理的变量量化,在线性回归分析中引入哑变量的目的是,可以考察定性因素对因变量的影响,

它是人为虚设的变量,通常取值为0或1,来反映某个变量的不同属性。对于有n个分类属性的自变量,通常需要选取1个分类作为参照,因此可以产生n-1个哑变量。

如职业、性别对收入的影响,战争、自然灾害对GDP的影响,季节对某些产品(如冷饮)销售的影响等等。

这种“量化”通常是通过引入“哑变量”来完成的。根据这些因素的属性类型,构造只取“0”或“1”的人工变量,通常称为哑变量(dummyvariables),记为D。

举一个例子,假设变量“职业”的取值分别为:工人、农民、学生、企业职员、其他,5种选项,我们可以增加4个哑变量来代替“职业”这个变量,分别为D1(1=工人/0=非工人)、D2(1=农民/0=非农民)、D3(1=学生/0=非学生)、D4(1=企业职员/0=非企业职员),最后一个选项“其他”的信息已经包含在这4个变量中了,所以不需要再增加一个D5(1=其他/0=非其他)了。这个过程就是引入哑变量的过程,其实在结合分析(ConjointAnalysis)中,就是利用哑变量来分析各个属性的效用值的。

此时,我们通常会将原始的多分类变量转化为哑变量,每个哑变量只代表某两个级别或若干个级别间的差异,通过构建回归模型,每一个哑变量都能得出一个估计的回归系数,从而使得回归的结果更易于解释,更具有实际意义。

将类别转换成了one-hot编码

sparse-------稀疏矩阵--------------返回值-----省内存,提高加载速度------将非零值按位置表示出来

1.DictVectorizer()使用默认参数会返回一个稀疏矩阵

代码如下:

#1)实例化一个转换器类 2)调用fir_transform()方法
from sklearn.feature_extraction import  DictVectorizer#导包
#下面的data是数据
data=[{'city':'北京','tempreature':100},
      {'city':'上海','tempreature':60},
      {'city':'深圳','tempreature':30},]
#1实例化一个转换器类
transfer=DictVectorizer()
#2调用一fit_transform()方法
data_new=transfer.fit_transform(data)
print("看一下转换的结果data_new:\n",data_new)
print("看一下特征的名字:\n",transfer.get_feature_names())

运行结果如下:

看一下转换的结果data_new:

(0, 1) 1.0
(0, 3) 100.0
(1, 0) 1.0
(1, 3) 60.0
(2, 2) 1.0
(2, 3) 30.0

看一下特征的名字:

[‘city=上海’, ‘city=北京’, ‘city=深圳’, ‘tempreature’]

data_new 
 [[  0.   1.   0. 100.]
 [  1.   0.   0.  60.]
 [  0.   0.   1.  30.]]

one-hot-------直接1234会产生歧义,不公平

所以用onehot

应用场景

  1. pclass sex 数据集类别特征较多的情况

将数据集的特征转换为字典类型,

DictVectorizer转换

  1. 本身拿到的数据就是字典类型

文本特征提取

单词作为特征

句子、短语、单词、字母

单词最合适

特征:特征词

实例

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction import DictVectorizer
from sklearn.feature_extraction.text import CountVectorizer
def datasets_demo():
    #获取数据集
    iris = load_iris();
    print('鸢尾花数据集的描述:\n', iris.data, iris.data.shape)
    x_train, x_test, y_train, y_test=train_test_split(iris.data, iris.target, test_size=0.2, random_state=22)
    print("xunlianjitezhengzhi:\n:", x_train, x_train.shape)
    return None
def count_demo():
    data = ["The voice of one man is the voice of no one one",
            "The voice of one woman is the voice of  one"]
    # 1.实例化一个转换器类
    transfer = CountVectorizer()  # 注意CountVecotrizer()没有sparse参数,所以无法通过调节sparse参数来调节返回的结果
    # transfer = CountVectorizer(stop_words=['one']) # 注意CountVecotrizer()有一个stop_words参数用于去除不需要提取的词,且stop_words必须传一个列表对象
    # 2.调用实例对象的fit_transform()
    new_data = transfer.fit_transform(data)  # 会自动去除单个词
    # print("new_data:\n",new_data) # 返回稀疏矩阵(通常默认情况下都是返回稀疏矩阵)
    print("new_data:\n", new_data.toarray())  # 返回密集矩阵
    return None
if __name__ == "__main__":
    # datasets_demo()
    count_demo()
new_data:
 [[1 1 1 2 3 2 2 0]
 [1 0 0 2 2 2 2 1]]
Process finished with exit code 0

countVectorizer统计每个样本特征词出现的个数

中文无法用此方法划分,会把一句话当作一个词,可以手动分词解决

借助工具:jieba分词---------结巴

中文文本特征抽取—jieba结巴

import sklearn.feature_extraction.text as text
import jieba
transfer = text.CountVectorizer(stop_words=['vb'])
def count_chinese_demo2():
    data = ['发表回复这件事', '飞机里面飞一杯飞机专属奶茶', '没有什么比在飞机上喝一杯飞机专属的飞机奶茶要更好了']
    data_new = []
    # 中文文本分词
    for send in data:
        data_new.append(' '.join(list(jieba.cut(send))))
    print(data_new)
    # 文本特征提取
    data_final = transfer.fit_transform(data_new)
    print(data_final.toarray())
   # print(transfer.get_feature_names())
if __name__ == "__main__":
    count_chinese_demo2()
['发表 回复 这件 事', '飞机 里面 飞 一杯 飞机 专属 奶茶', '没有 什么 比 在 飞机 上 喝一杯 飞机 专属 的 飞机 奶茶 要 更好 了']
[[0 0 0 1 0 1 0 0 0 1 0 0]
 [1 1 0 0 0 0 1 0 0 0 1 2]
 [0 1 1 0 1 0 1 1 1 0 0 3]]
Process finished with exit code 0

🌸I could be bounded in a nutshell and count myself a king of infinite space.

特别鸣谢:木芯工作室 、Ivan from Russia


相关文章
|
8月前
|
机器学习/深度学习 人工智能 算法
普通人怎么学人工智能?这些隐藏学习秘籍大揭秘,生成式人工智能认证(GAI认证)来助力
在人工智能(AI)快速发展的今天,普通人学习AI已成为必然趋势。本文从明确学习目标与路径、利用多元化资源、注重实践应用、关注GAI认证及持续自我提升五个方面,为普通人提供系统化的AI学习指南。通过设定目标、学习编程语言、参与项目实践和获取专业认证,普通人可逐步掌握AI技能,在未来职场中占据优势并开启智能时代新篇章。
|
8月前
|
人工智能 算法 安全
深度:善用人工智能推动高等教育学习、教学与治理的深层变革
本文探讨人工智能技术与高等教育深度融合带来的系统性变革,从学习进化、教学革新与治理重构三个维度展开。生成式AI作为技术前沿代表,正通过标准化认证体系(如培生的Generative AI Foundations)提升职场人士、教育者及学生的能力。文章强调批判性思维、高阶认知能力与社交能力的培养,主张教师从经验主导转向数据驱动的教学模式,并提出构建分布式治理结构以适应技术迭代,最终实现人机协同的教育新生态,推动高等教育在智能时代焕发人性光辉。
|
9月前
|
机器学习/深度学习 人工智能 自然语言处理
超越文本局限:生成式人工智能(GAI)认证引领未来技能新范式
生成式人工智能(GAI)正成为重塑社会生产力的关键力量,但其在复杂逻辑与深度推理方面存在局限。本文探讨GAI技术现状、局限及突破路径,如多模态融合、强化学习等,并引入GAI认证体系,助力个人技能提升与企业创新。未来,GAI认证有望引领技能新范式,推动社会生产力变革。
|
人工智能 自然语言处理 搜索推荐
人工智能与教育:个性化学习的未来
【10月更文挑战第31天】在科技飞速发展的今天,人工智能(AI)正深刻改变教育领域,尤其是个性化学习的兴起。本文探讨了AI如何通过智能分析、个性化推荐、智能辅导和虚拟现实技术推动个性化学习,分析了其带来的机遇与挑战,并展望了未来的发展前景。
|
人工智能 搜索推荐 语音技术
人工智能与未来教育:重塑学习方式的双刃剑
在21世纪,人工智能(AI)技术正以前所未有的速度发展,深刻影响着社会的各个方面,其中包括教育领域。本文探讨了AI如何改变传统教育模式,提出其既带来积极影响也伴随着挑战的观点。通过分析具体案例和数据,文章旨在启发读者思考如何在保留人类教师不可替代价值的同时,有效利用AI技术优化教育体验。
|
机器学习/深度学习 人工智能 自然语言处理
人工智能与未来教育:重塑学习体验
【10月更文挑战第20天】 在21世纪的今天,人工智能(AI)技术正以前所未有的速度改变着我们的生活、工作和学习方式。本文探讨了AI如何深刻影响未来教育的各个方面,从个性化学习路径的设计到智能辅导系统的开发,再到虚拟现实(VR)和增强现实(AR)技术在学习中的应用。通过分析这些变革,我们不仅能够预见一个更加高效、互动和包容的教育未来,而且还能理解这一过程中所面临的挑战和机遇。文章强调了持续创新的重要性,并呼吁教育工作者、技术开发者和政策制定者共同努力,以确保技术进步惠及每一个学习者。
335 2
|
机器学习/深度学习 人工智能 自然语言处理
人工智能在教育中的创新应用:个性化学习的未来
【9月更文挑战第18天】人工智能在教育中的创新应用正在深刻改变着我们的教学方式和学习体验。从个性化学习方案的制定到智能化辅导与反馈,从多元化学习资源的推荐到自动化评分与智能考试系统,AI技术正在为教育领域带来前所未有的变革。面对这一变革,我们需要以开放和批判的态度拥抱它,共同探索AI时代教育的无限可能,为每一个学习者创造更美好的未来。
948 12
|
机器学习/深度学习 存储 人工智能
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
使用Python作为开发语言,基于文本数据集(一个积极的xls文本格式和一个消极的xls文本格式文件),使用Word2vec对文本进行处理。通过支持向量机SVM算法训练情绪分类模型。实现对文本消极情感和文本积极情感的识别。并基于Django框架开发网页平台实现对用户的可视化操作和数据存储。
379 0
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
|
9月前
|
机器学习/深度学习 存储 人工智能
AI职场突围战:夸克应用+生成式人工智能认证,驱动“打工人”核心竞争力!
在AI浪潮推动下,生成式人工智能(GAI)成为职场必备工具。文中对比了夸克、豆包、DeepSeek和元宝四大AI应用,夸克以“超级入口”定位脱颖而出。同时,GAI认证为职场人士提供系统学习平台,与夸克结合助力职业发展。文章还探讨了职场人士如何通过加强学习、关注技术趋势及培养合规意识,在AI时代把握机遇。
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
人工智能应用领域有哪些
本文全面探讨了人工智能(AI)的应用领域和技术核心,涵盖医疗、交通、金融、教育、制造、零售等多个行业,并分析了AI技术的局限性及规避策略。同时,介绍了生成式人工智能认证项目的意义与展望。尽管AI发展面临数据依赖和算法可解释性等问题,但通过优化策略和经验验证,可推动其健康发展。未来,AI将在更多领域发挥重要作用,助力社会进步。

热门文章

最新文章