版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目五数据预处理实践言示网66网站原创,侵权必究Project5Datapreprocessingpractices任务一Task1言示网66网站原创,侵权必究使用Kettle进行数据预处理言示网66网站原创,侵权必究任务描述(1)学习Kettle的相关基础知识。(2)使用Kettle实现“北京公交线路信息”数据的预处理。
任务目标(1)熟悉Kettle的相关基础知识。(2)学会使用Kettle完成“北京公交线路信息”数据的预处理。言示网66网站原创,侵权必究知识准备Kettle概念Kettle是企业级数据集成及商业智能套件Pentaho的主要组成部分,全称为KDEExtraction,Transportation,TransformationandLoadingEnvironment。Kettle重命名为PentahoDataIntegration,它作为一个端对端的数据集成平台,可以对多种数据源进行抽取(Extraction)、加载(Loading)、数据落湖(DataLakeInjection)、对数据进行各种清洗(Cleaning)、转换(Transformation)、混合(Blending),并支持多维联机分析处理(OLAP)和数据挖掘(Datamining)。本书中依然使用Kettle。言示网66网站原创,侵权必究知识准备Kettle的特点(1)支持100%无编码、拖拽方式开发ETL数据管道Kettle采用拖拽组件、连线、配置的方式来构建数据管道,通过超过200个不同的组件,用户可以在不编写一句代码就能轻松完成对数据源读取,对数据进行关联、过滤、格式转换、计算、统计、建模、挖掘、输出到不同的数据目标。极大程度地降低开发技术门槛和有效降低开发和维护成本。(2)可对接包括传统数据库、文件、大数据平台、接口、流数据等数据源关系型数据库支持类型包括:MySQL,Oracle,PostgreSQL,MSSQLServer,DB2,Hive,SparkSQL,Sybase等。大数据源支持包括:Avro,HBase,HDFS,MongoDB,Parquet等。文件格式支持包括:CSV,TXT,JSON,Excel,XML等。流数据支持包括:Kafka,JMS,AMQP,MQTT等。(3)数据管道可视化Kettle支持用户在数据管道任何一个步骤对当前数据进行查看,并可以在线以表格和图表(例如:柱状图、饼图等)输出步骤的数据,甚至可以支持不落地直接把任何一个步骤的数据以JDBC的方式提供给第三方应用访问。言示网66网站原创,侵权必究知识准备Kettle的特点(4)模板化开发数据管道在数据抽取的过程中,ETL工程师通常要从众多不同的数据源把数据抽取到数仓的ODS层,或者到Hadoop的HDFS,整个过程的数据转换逻辑比较简单,但往往因为数据源很多而导致大量低价值重复的开发工作,为了有效节省开发的时间和成本,Kettle提供了MetadataInjection(MDI)元数据注入,用户可以透过MDI把数据转换模板化,然后把像数据表名、文件路径、分隔符、字符集等等这些变量放在一个表或者文件里,然后利用MDI把这些变量注入数据转换模板,Kettle就能够自动生成所需要的数据转换。这个功能为很多客户节省了大量的开发时间。(5)可视化计划任务Kettle提供可视化方式配置任务计划(Schedule),用户可透过
Spoon
或网页端的
PentahoUserConsole来配置和维护任务具体的执行时间、间隔、所使用的参数值,以及具体运行的服务器节点。用户亦可以透过Spoon或PentahoUserConsole查看任务计划列表;当然,用户也可以透过Spoon或PentahoUserConsole对任务执行情况进行实时监控。言示网66网站原创,侵权必究知识准备Kettle的特点(6)深度Hadoop支持Kettle针对Hadoop主流厂家预置专用的对接插件,支持的Hadoop版本包括Cloudera,Hortonworks,AWSEMR,GoogleDataproc等,用户除了可以透过插件轻松对接Hadoop集群的数据源(HDFS,Hive,HBase,Impala等),另外,Kettle的PentahoMapReduce提供用户以无编码方式定义MapReduce任务;同时,用户亦可以在作业中执行Sqoop、Pig、MapReduce、Oozie和Spark任务。(7)数据转换任务提交给Spark集群企业因为数据量大,考虑到性能,经常会选择先把数据加载到Hadoop,再在Hadoop集群里做ETL。为了让用户依然能够通过Kettle简单的拖拽方式构建数据转换管道,同时又可以让数据在集群里进行转换,Pentaho提供了把数据转换任务提交给Spark来执行的AEL(AdaptiveExecutionLayer)功能,搭建好的数据管道会被AEL转成Spark任务来执行,这样数据就不需要离开集群,而是在集群里透过Spark强大的分布式处理能力来进行处理。言示网66网站原创,侵权必究知识准备Kettle的特点(8)提供数据挖掘与机器学习支持从Pentaho9.1开始预置了超过20种数据挖掘算法类的转换步骤,用户可以轻松把机器学习集成到数据管道里,用来做数据模型训练和进行预测分析。预置算法包括:决策树、深度学习、线性回归、逻辑回归、Naive贝尔斯、随机森林等等,用户也可以利用Kettle作数据预备,然后把数据以dataframe的方式输入到Python或R中进行模型训练或预测。Kettle中有两种脚本文件:Transformation和Job。其中,Transformation用于完成针对数据的基础转换,而Job用于完成整个工作流的控制。言示网66网站原创,侵权必究知识准备Kettle的组件Kettle主要有4个组件组成,分别为:Spoon、Pan、Kitchen和Carte组件。(1)Spoon组件Spoon是Kettle的集成开发环境,通过图形化的页面,用于构建作业和转换,执行或调试作业、转换和监控ETL操作性能等。作业和转换可以在图形界面里执行,但这只适合在开发、测试和调试阶段。在开发完成后,需要部署到生产环境中Spoon就很少用到了,Kitchen和Pan命令行工具用于实际的生产环境。(2)Kitchen组件Kitchen组件是Kettle的命令行执行程序,是在Kettle执行引擎上的封装,它只是解释命令行参数,调用并把这些参数传递给引擎,用于执行作业(job)。(3)Pan组件Pan组件和Kitchen组件在概念和用法上都非常相近,这两个命令的参数也基本相同,也是Kettle的命令行执行程序,用于执行转换。(4)Carte组件Carte组件是轻量级的Web服务器,它接收包含要运行的转换和执行配置的XML(使用一个小servlet),允许远程监控、启动和停止在Carte服务器上运行的转换和作业。言示网66网站原创,侵权必究知识准备Kettle的核心概念(1)转换(transaformation)转换(transformation)负责数据的输入、转换、校验和输出等工作。Kettle中使用转换完成数据ETL全部工作。转换由多个步骤(Step)组成,如文本文件输入,过滤输出行,执行SQL脚本等。各个步骤使用跳(Hop)来链接。跳定义了一个数据流通道,即数据由一个步骤流(跳)向下一个步骤。在Kettle中数据的最小单位是数据行(row),数据流中流动的其实是缓存的行集(RowSet)。①步骤step步骤的关键特性如下所示。
步骤需要一个名字,名字在同一个转换范围内必须是唯一的。
每个步骤除了“生成记录”的步骤仅有写操作外,其余步骤都会进行读、写数据行操作。
步骤将数据写到与之相连的一个或多个输出跳(hop),再传到跳的另一端的步骤。
大多数步骤都可以由多个输出跳(hop),一个步骤中的数据发送可以被设置成分发(目标步骤轮流接收数据)和复制(目标步骤同时接收数据)。当一个步骤连接两个及以上步骤时,会提示选择分发还是复制。言示网66网站原创,侵权必究知识准备Kettle的核心概念②跳(Hop)跳就是步骤之间带箭头的连线,跳定义了步骤之间的数据通路。跳实际上是两个步骤之间的被称为行集的数据行缓存,行集的大小可以在转换的设置里定义。当行集满了,向行集写数据的步骤将停止写入,直到行集里又有了空间。当行集空了,从行集读取数据的步骤停止读取,直到行集里又有可读的数据行。(2)作业(job)作业(job)负责定义一个完成整个工作流的控制,因为转换以并行方式执行,所以必须存在一个串行的调度工具来执行转换,这就是Kettle中的作业。①作业项(JobItem)作业项是作业的基本构成部分,可以用图标的方式展示。一个作业可以包含一个或多个作业项,并且这些作业项都是按照某种顺序执行,作业顺序执行必须定义且只能定一个开始作业项,有一个“start”的作业项专门用来定义开始作业项。言示网66网站原创,侵权必究知识准备Kettle的核心概念②作业跳(JobHop)作业跳是作业项之间的连接线,定义了作业的执行路径,作业里每个作业项的不同运行结果决定了作业的不同执行路径。作业跳的执行方式如下。无条件执行:不论上一个作业项执行成功还是失败,下一个作业项都会执行蓝色的连接线,上面有一个锁的图标。当运行结果为真时执行:当上一个作业项的执行结果为真时,执行下一个作业项,通常在需要无错误执行的情况下使用绿色的连接线,上面有一个“√”的图标。当运行结果为假时执行:当上一个作业项的执行结果为假或者没有成功执行时,执行下一个作业项,通常使用红色的连接线,上面有一个红色的停止图标。Kettle使用一种回溯算法执行作业里的所有作业项,作业项的执行结果不仅决定了作业的执行路径,还向下一个作业项传递了一个结果对象,结果对象包含一组数据行、一组文件名、行数、错误数以及脚本作业项的退出状态。言示网66网站原创,侵权必究知识准备Kettle的基本功能(1)转换管理转换管理主要包括输入,输出,转换,应用,流程,脚本,查询,连接,检验,作业,映射,批量加载等功能。转换功能常用控件如图5-1所示。
创建一个新的Transformation,Kettle中Transformation文件的默认后缀名为ktr。创建一个新的Job,Kettle中Job文件的默认后缀名为kjb。(1)Transformation组件树①MainTree:列出了一个Transformation的基本属性,可以通过各个节点进行查看。②DB连接:显示当前Transformation中的数据库连接,每一个Transformation的数据库连接都需要单独配置。③Steps:一个Transformation中应用到的环节列表。④Hops:一个Transformation中应用到的节点连接列表。言示网66网站原创,侵权必究知识准备Kettle的基本功能核心对象菜单列出的是Transformation中可以调用的环节列表,可以通过鼠标拖动的方式对环节进行添加。Transformation的常用环节如表5-1所示。表5-1Transformation的常用环节言示网66网站原创,侵权必究知识准备Kettle的基本功能(2)Job管理在Kettle工具中,作业管理主要包括通用、邮件、文件管理、条件、脚本、批量加载以及应用等功能。①MainTree:列出了一个Job的基本属性,可以通过各个节点进行查看。②DB连接:显示当前Job中的数据库连接,每一个Job的数据库连接都需要单独配置。③JobEntries:即作业项目一个Job中引用的环节列表。核心对象菜单列出的是Job中可以调用的环节列表,可以通过鼠标拖动的方式对环节进行添加。每一个环节都可以通过鼠标拖动操作被添加到主窗口中,并可通过“Shift”键+鼠标拖动,实现环节之间的连接。Job中可以调用的常用环节如表5-2所示。言示网66网站原创,侵权必究知识准备表5-2Job中可以调用的常用环节Kettle的基本功能表5-2Job中可以调用的常用环节言示网66网站原创,侵权必究任务实施1.Mysql数据库的准备(1)新建数据库连接运行Navicat,创建本地MySQL数据库连接,输入MySQL数据库用户名和密码,单击“确认”按钮,如图5-1所示。(2)新建数据库新建数据库,自定义数据库名称“busdb”,并设置字符集与排列规则,如图5-2所示。(3)导入数据将beijing_businfo.sql文件复制到本地硬盘,在Navicat软件中右键单击新建数据库busdb,单击“运行SQL文件”,在“文件”表单中选择beijing_businfo.sql文件,单击“开始”按钮,实现数据的导入操作,如图5-3所示。言示网66网站原创,侵权必究任务实施1.Mysql数据库的准备(4)查看数据双击busdb数据库下的beijing_businfo数据表,查看导入的数据(共有331条数据),如图5-4所示。言示网66网站原创,侵权必究任务实施2.数据抽取2.1从Mysql数据表中抽取数据到Mysql中(1)运行Kettle双击spoon.bat,进入spoon界面,如图5-5所示。(2)新建转换操作打开“文件”菜单,选择“文件”→“新建”→“转换”,打开转换窗口,如图5-7所示。言示网66网站原创,侵权必究任务实施2.数据抽取(3)保存转换单击“”图标,在新打开的另存为窗口中,对转换操作进行命名并保存,如图5-8所示。(4)添加控件在转换的核心对象中包括Kettle所有的转换控件,后续设计转换操作时,可直接到核心对象中查找所需的转换控件,如图5-9所示。言示网66网站原创,侵权必究任务实施2.数据抽取在转换中依次添加“表输入”和“表输出”控件,按住“Shift”,在控件上单击操作后,拖动鼠标到想要链接的控件上,然后单击实现2个控件间的链接,如图5-10所示。(5)数据库连接双击“表输入”控件,单击“新建”按钮,配置MySQL数据库连接mysql_1后,单击“确认”按钮完成配置操作,如图5-11所示。言示网66网站原创,侵权必究任务实施2.数据抽取(7)预览数据在图5-12中单击“确定”按钮,在弹出的窗口中选择在SQL里包含字段名,单击“预览”按钮,在弹出窗口输入想要预览的记录数量,预览“beijing_businfo”表中的数据,如图5-13所示。(6)选择数据表在图5-11中单击“获取SQL查询语句”按钮,选中表“beijing_businfo”,如图5-12所示。言示网66网站原创,侵权必究任务实施2.数据抽取(8)“表输出”控件配置双击“表输出”控件,在弹出的窗口中单击“新建”按钮,配置数据库连接如图5-14所示,单击“确认”按钮完成配置操作。言示网66网站原创,侵权必究任务实施2.数据抽取(9)获取字段及字段映射单击“目标表”右侧“浏览”按钮,选择表“beijing_businfo_cp1”(需提前创建),勾选“指定数据库字段”选项,单击“获取字段”按钮,如图5-15所示。单击“输入字段映射”按钮,界面显示效果如图5-16所示,单击“确定”按钮完成字段映射配置操作,单击图5-15中的“确定”按钮完成表输出控件的配置。(10)运行转换单击“运行”按钮,实现数据从数据表beijing_businfo抽取到数据表beijing_businfo_cp1中,运行结果如图5-17所示。言示网66网站原创,侵权必究任务实施2.数据抽取(11)查看数据打开Navicat,查看表“beijing_businfo_cp1”,共有331行数据,成功实现了数据抽取,如图5-19所示。言示网66网站原创,侵权必究任务实施2.数据抽取2.2由CSV文件中抽取数据到Mysql(1)新建转换新建转换extract_csv,并添加csv输入和表输出控件,如图5-20所示。(2)“CSV文件输入”配置双击打开“CSV文件输入”,单击“浏览”按钮,选择csv文件,单击“获取字段”按钮,如图5-21所示,设置完成后单击“确定”按钮。(3)“表输出”控件配置双击“表输出”控件,单击“新建”按钮,新建数据库连接csv_mysql,如图5-22所示。言示网66网站原创,侵权必究任务实施2.数据抽取(4)选择输出表单击目标表右侧“浏览”按钮,选择表“csv_transform”(需提前创建),勾选“指定数据库字段”,并单击“获取字段”按钮,完成表字段与流字段的映射,如图5-23所示。然后单击“确定”按钮。(5)运行转换运行该转换,运行结果如图5-24所示。言示网66网站原创,侵权必究任务实施2.数据抽取(6)查看数据运行Navicat,查看表“csv_transform”,如图5-25所示。言示网66网站原创,侵权必究任务实施2.数据抽取2.3由JSON文件中抽取数据到Mysql(1)新建转换新建转换extract_json,并添加控件,如图5-26所示。(2)“获取变量”配置双击“获取变量”,定义名称为“data”的变量,变量的值为“D:\数据清洗\data.json”,变量类型为“String”,如图5-27所示。言示网66网站原创,侵权必究任务实施2.数据抽取(3)“JSONinput”配置双击“JSONinput”,勾选“源定义在一个字段里”,单击“从字段获取源”文本框右侧的暗色的框,选择下拉对话框中的“data”,并勾选“源是一个文件名”,配置好上述项目,切换到“字段”选项卡后,单击“Selectfields”按钮,选择添加字段名称,如图5-28所示。言示网66网站原创,侵权必究任务实施2.数据抽取(4)“表输出”控件配置双击“表输出”控件,新建数据库连接,单击目标表“浏览”按钮,选择表“json_mysql”(提前创建,需与json文件字段相同),勾选“指定数据库字段”,并单击“获取字段”按钮,完成表字段与流字段的配置,如图5-29所示。(5)查看数据运行转换后,打开Navicat查看json_mysql数据表中数据,如图5-30所示。言示网66网站原创,侵权必究任务实施3.数据清洗3.1数据去重数据清洗是一项复杂且繁琐的工作,同时也是整个数据分析过程中最为重要的环节。数据清洗的目的在于提高数据质量,将脏数据(脏数据在这里指的是对数据分析没有实际意义、格式非法、不在指定范围内的数据)清洗干净,使原数据具有完整性、唯一性、合法性、一致性等特点。常见的数据清洗操作包括重复值的处理、缺失值的处理、异常值的处理等操作,同时,为了保证数据的有效性,还需要对数据进行校验操作。数据去重又称重复数据的删除,通常指的是找出数据文件集合中重复的数据并将其删除,只保存唯一的数据记录,从而消除冗余数据。通常,数据去重方法分为两种,分别是完全去重和不完全去重。常见的去重操作是完全去重,即消除完全重复的数据,这里提到的完全重复数据指的是数据表记录字段值完全一样的数据。言示网66网站原创,侵权必究任务实施3.数据清洗(1)打开kettle工具,新建“Remove_duplicate”转换并保存,如图5-31所示。(2)由于数据主要在数据库中抽取,因此可以事先创建数据库连接,单击“文件”-“新建”-“数据库连接”,创建数据库连接“Data_clean”,如图5-32所示。设置数据库连接后,切换到“主对象树”选项卡,共享新创建的数据库连接,如图5-33所示。言示网66网站原创,侵权必究任务实施3.数据清洗(3)双击“表输入”控件,完成表输入配置操作,如图5-34所示。使用“去除重复记录”需要首先对去重记录进行排序操作,在进行“去除重复记录”配置操作时将会弹出警告窗口,如图5-35所示。因此在使用“去除重复记录”时需要在该操作前添加“排序记录”操作。言示网66网站原创,侵权必究任务实施3.数据清洗(4)双击“排序记录”,实现“排序记录”配置操作,如图5-36所示。(5)双击“去除重复记录”,实现“去除重复记录”配置操作,如图5-37所示。(6)双击“Excel输出”,实现“Excel输出”配置操作,如图5-38所示。(7)双击“唯一行(哈希值)”,实现“唯一行(哈希值)”配置操作,如图5-39所示。(8)双击“Excel输出2”,实现“Excel输出2”配置操作,如图5-40所示。言示网66网站原创,侵权必究任务实施3.数据清洗3.2缺失值的处理3.2.1去除缺失值(1)打开kettle工具,新建“delete_missing”转换并保存,如图5-41所示。(2)双击“表输入”控件,完成表输入配置操作,如图5-42所示。言示网66网站原创,侵权必究任务实施3.数据清洗单击“预览”按钮,查看数据如图5-43所示。由图中可见“mileage”和“fan_info”两列中有缺失值。去除缺失值通常采用两种方法:一种是删除存在缺失值的列,另一种是删除存在缺失值的记录。言示网66网站原创,侵权必究任务实施3.数据清洗(3)双击“字段选择”控件,进入“选择/改名值”界面,配置删除“fan_info”列,如图5-44所示。在“字段选择”控件上右键单击,选择“Preview”查看数据,“fan_info”列已被移除,如图5-45所示。言示网66网站原创,侵权必究任务实施3.数据清洗(4)双击“过滤记录”控件,完成配置,如图5-46所示。在图5-46中的“条件”处设置过滤的条件,过滤掉有缺失值的数据字段(这里是过滤fan_info字段中的缺失值)。单击左边的<field>框,弹出“字段”对话框,选择要过滤的字段fan_info,单击“=”框,弹出“函数:”对话框,选择过滤条件(这里选择的是ISNULL)。(5)双击“Excel输出”,实现“Excel输出”配置操作,如图5-47所示。言示网66网站原创,侵权必究任务实施3.数据清洗在“Excel输出”控件上右键单击,选择“Preview”查看数据如图5-48所示。在“空操作(什么也不做)”控件上右键单击,选择“Preview”查看数据如图5-49所示。通过这种方式可以实现对含有缺失值记录的去除操作。言示网66网站原创,侵权必究任务实施3.数据清洗3.2.2填充缺失值打开kettle工具,新建“fill_in_missing”转换并保存,将“delete_missing”转换复制过来,并在此基础上添加相关控件,如图5-50所示。言示网66网站原创,侵权必究任务实施3.数据清洗在该转换中实现了使用“mileage”列中所有非缺失值的平均值填充该列中相关缺失值。(1)计算“mileage”列中所有非缺失值的平均值。“mileage”列中的值如图5-51所示。为了计算所有非缺失值的平均值,首先需要提取相应公里数值,在此先将包含公里数值的内容截取出来,然后使用正则表达式([^(\d+/.\d+)]),替换匹配的非数字内容。双击“剪切字符串”控件,实现“剪切字符串”配置操作,如图5-52所示。言示网66网站原创,侵权必究任务实施3.数据清洗在“剪切字符串”控件上右键单击,选择“Preview”查看数据,如图5-53所示。双击“字符串替换”控件,实现“字符串替换”配置操作,如图5-54所示。在“字符串替换”控件上右键单击,选择“Preview”查看数据,如图5-55所示。言示网66网站原创,侵权必究任务实施3.数据清洗双击“字符串替换2”控件,实现“字符串替换2”配置操作,如图5-56所示。在“字符串替换2”控件上右键单击,选择“Preview”查看数据,如图5-57所示。双击“分组”控件,实现“分组”配置操作,用于计算“mileage”列中所有非缺失值的平均值,如图5-58所示。在“分组”控件上右键单击,选择“Preview”查看数据,如图5-59所示。言示网66网站原创,侵权必究任务实施3.数据清洗(2)设置变量为了在“替换NULL”中使用“mileage”列中所有非缺失值的平均值替换“NULL”,在此定义一个变量,实现“设置变量”配置操作如图5-60所示。(3)使用“mileage”列中所有非缺失值的平均值替换“NULL”为了保证在使用“mileage”列中所有非缺失值的平均值(变量average)替换“NULL”时,保证可以获取到变量average的值,需要配置“阻塞数据直到步骤都完成”用来等待“设置变量”步骤的执行完成,从而使得在转换内,将并行处理的转换转变为“先后”执行。言示网66网站原创,侵权必究任务实施3.数据清洗双击“阻塞数据直到步骤都完成”控件,实现“阻塞数据直到步骤都完成”配置操作,如图5-61所示。在“阻塞数据直到步骤都完成”控件上右键单击,选择“Preview”查看数据,如图5-62所示。言示网66网站原创,侵权必究任务实施3.数据清洗双击“替换NULL值”控件,实现“替换NULL值”配置操作,如图5-63所示。在“替换NULL值”控件上右键单击,选择“Preview”查看数据,通过观察数据可知已经顺利实现了使用“mileage”列中所有非缺失值的平均值替换“NULL”,如图5-64所示。言示网66网站原创,侵权必究任务实施3.数据清洗(4)合并记录在使用“合并记录”控件前需要对即将合并输入数据的记录进行排序操作。双击“排序记录”控件,实现“排序记录”配置操作,如图5-65所示。双击“排序记录2”控件,实现“排序记录2”配置操作,如图5-66所示。双击“合并记录”控件,实现“合并记录”配置操作,如图5-67所示。言示网66网站原创,侵权必究任务实施3.数据清洗在“合并记录”控件上右键单击,选择“Preview”查看数据,如图5-68所示。3.3数据规范化处理由于数据处理系统对数据的要求、理解和规范不同,可能会导致对同一数据对象的描述规格不同,因此,在数据清洗的过程中需要事先对数据进行规范处理。为了提高数据的可读性及合理性,系统会要求数据遵守一定的规范,例如:①电子邮箱的地址必须是有效的格式。②输入的数据都必须是大写/小写。③日期必须是dd-MM-yyyy的格式。④电话号码必须是xxx-xxxx-xxxx的格式。⑤用户的年龄范围必须在18-80岁。⑥数值不能超过预定义的值。综上所述,即检查的数据必须遵守业务预定义的规则,对不符合业务规则的数据需要找出来并做适当的预处理,比如删除操作。言示网66网站原创,侵权必究任务实施3.数据清洗(1)打开kettle工具,新建“data_validtion”转换并保存,如图5-69所示。
双击“Excel输入”控件,实现“Excel输入”配置操作,如图5-70所示。言示网66网站原创,侵权必究任务实施3.数据清洗
在“Excel输入”控件上右键单击,选择“Preview”查看数据,如图5-71所示。(2)双击“字段选择”控件,实现“字段选择”配置操作,如图5-72所示。言示网66网站原创,侵权必究任务实施3.数据清洗
在“字段选择”控件上右键单击,选择“Preview”查看数据,如图5-73所示。(3)双击“数据检验”控件,单击“增加检验”分别添加“date_verify,number_verify,number_verify1”,实现
“数据检验”配置操作,如图5-74-图5-75所示。
言示网66网站原创,侵权必究任务实施3.数据清洗(4)在“数据检验”控件和“空操作(什么也不做)”控件间添加“Hop跳连接线”,此处添加“主输出步骤”。在“数据检验”控件和“空操作(什么也不做)2”控件间添加“Hop跳连接线”,此处添加“错误处理步骤”。并分别在弹出的“警告”窗口中单击“分发”按钮。如图5-77所示。言示网66网站原创,侵权必究任务实施3.数据清洗在“空操作(什么也不做)”控件上右键单击,选择“Preview”查看数据,如图5-78所示。在“空操作(什么也不做)2”控件上右键单击,选择“Preview”查看数据,如图5-79所示。言示网66网站原创,侵权必究任务实施4.创建Kettle作业转换(Transformation)和作业(Job)是Kettle的两个基本部件。转换是ETL解决方案中的主要组成部分,转换更着重于对数据内容进行处理,一个转换中可以包含多个步骤,主要用于数据的抽取、转换以及加载等操作。作业更关心宏观的数据处理,作业是比转换更高一级的处理流程,一个作业里可以包括多个作业项,作业和转换均可作为一个作业项。也就是说,一个作业可以包含多个子作业和转换。一个作业中的作业项之间是顺序执行的。对于一个作业项来说,只有当该作业项之前的所有作业项执行完毕后,才会执行该作业项。运行“kettle”,单击“文件”-->“新建”-->“作业”,并单击“保存”按钮(Ctrl+S),保存到自定义目录中,如图5-80所示。言示网66网站原创,侵权必究任务实施4.创建Kettle作业单击左侧树目录中的“通用”,依次拖拽“开始”“转换”“成功”控件,并按住“shift”键进行三者之间连接,如图5-81所示。该作业由开始--转换--成功的步骤组成。双击“转换”,重命名作业项名称为“转换测试”,单击转换文件名右侧“浏览”图标,选择“fill_in_mean.ktr”转换,单击“确定”按钮,并保存作业。如图5-82所示。言示网66网站原创,侵权必究任务实施4.创建Kettle作业双击“Start”,配置作业定时调度,设定作业每天0点开始自动执行,如图5-83所示。运行demo作业,执行结果如图5-84所示。任务二Task2言示网66网站原创,侵权必究用Python进行数据预处理言示网66网站原创,侵权必究任务描述(1)学习Pandas的相关基础知识。(2)使用Pandas实现“北京公交线路信息”数据的预处理。
任务目标(1)熟悉Pandas的相关基础知识。(2)学会使用Pandas完成“北京公交线路信息”数据的预处理。言示网66网站原创,侵权必究知识准备1.数据采样无论是对于数据分析还是数据挖掘而言,Pandas都是一个非常重要的Python包。它不仅提供了很多方法,使数据处理非常简单,还在数据处理速度上做了很多优化,使得其和Python内置方法相比有很大的优势。1.数据采样在数据科学领域,数据采样和抽样是非常重要的技术,以便从大数据集中快速获取样本数据进行分析和建模。Python中常用的数据采样和抽样方法,包括随机采样、分层采样和聚类采样。言示网66网站原创,侵权必究知识准备2.数据合并在数据分析中,数据往往是以不同的方式存储或分散在不同的文件或数据表中,使用中需要将这些表或文件中的数据进行合并,以便更好地进行分析。数据合并通常指将两个或多个数据表中的数据按照一定的规则进行合并,组成完整的数据集。在Pandas中,有两种常用的数据合并方式:concat与merge。言示网66网站原创,侵权必究知识准备3.数据重塑数据重塑是指转换数据组织成行和列的方式。Pandas为用户提供了多种数据重塑的方法,常用的有pivot函数和melt函数。(1)使用pivot重塑数据pivot函数用于创建一个新的DataFrame,该函数有三个参数(index、columns和values)。使用时需要在原始DataFrame中指定这三个参数所对定的列名,接下来pivot函数会创建一个新的DataFrame,其中行索引和列索引都是唯一标识值,DataFrame中的数值由原始表中参数value对应的数据所表示。(2)使用melt重塑数据Pandas中的melt函数用于将宽格式的数据转换为长格式,将DataFrame中的列转换为行,并保留其他列的信息。它的作用是将数据重新组织,使得数据更易于分析和处理,melt函数如下所示。言示网66网站原创,侵权必究知识准备4.数据转换(1)数据离散化数据离散化的目的是为了简化数据结构。连续属性的离散化就是将连续属性的值域划分为若干个离散的区间,最后用不同的符号或整数值代表落在每个子区间中的属性值,离散化方法经常作为数据挖掘的工具。常用的函数使用有cut函数、qcut函数实现数据的区间分组转换。①cut函数Pandas中的cut函数是一个分箱函数。它可将连续的数值数据分段,每一段转化为一个离散的分类,同时可以对这些离散的分类进行标记和排序,cut函数如下所示。②qcut函数Pandas中的qcut函数是一个分箱函数,按照分位数进行分箱,每个箱体里面的样本量相同,输入的是待切分数据和箱体的个数,qcut函数如下所示。言示网66网站原创,侵权必究知识准备4.数据转换(2)哑变量转换哑变量转换是一种将多分类变量转换为二分变量的一种方法。它可以用于构建线性回归或逻辑回归模型。哑变量转换可以利用实数值自变量,但是这些自变量并不具有自变量与因变量之间的线性关系。Pandas中的get_dummies函数可以实现数据的哑变量矩阵转换。言示网66网站原创,侵权必究知识准备5.特征工程维基百科中给特征工程的简单定义:特征工程是利用数据领域的相关知识来创建能够使机器学习算法达到最佳性能的特征的过程。通俗地讲就是基于原始数据构建新特征,这些新特征可以很好的描述这些数据,捕获原始特征集中不易发现的附加信息,从而达到提高学习算法的预测能力的过程。既然特征工程这么重要,那么特征工程到底如何实现呢?(1)特征构建(2)特征抽取(3)特征选择言示网66网站原创,侵权必究知识准备6.其它常用函数(1)导入数据pd.read_csv(filename):从CSV文件中导入数据。pd.read_table(filename):从限定分隔符的文本文件中导入数据。pd.read_excel(filename):从Excel文件中导入数据。pd.read_sql(query,connection_object):从SQL
表/库中导入数据。pd.read_json(json_string):从JSON格式的字符串中导入数据。pd.read_html(url):解析URL、字符串或HTML文件,抽取其中的tables。pd.read_clipboard():从粘贴板中获取内容,并传送给read_table()。pd.DataFrame(dict):从字典对象中导入数据,Key表示列名,Value表示数据。言示网66网站原创,侵权必究知识准备6.其它常用函数(2)导出数据df.to_csv(filename):导出数据到CSV文件中。df.to_excel(filename):导出数据到Excel文件中。df.to_sql(table_name,connection_object):导出数据到SQL表中。df.to_json(filename):以JSON格式导出数据到文本文件中。(3)查看数据df.head(n):查看DataFrame对象的前n行。df.tail(n):查看DataFrame对象的最后n行。df.shape():查看行数和列数。():查看索引、数据类型和内存信息。df.describe():查看数值型列的汇总统计。s.value_counts(dropna=False):查看Series对象的唯一值和计数。df.apply(pd.Series.value_counts):查看DataFrame对象中每一列的唯一值和计数。言示网66网站原创,侵权必究知识准备6.其它常用函数(4)数据抽取df[col]:根据列名,以Series的形式返回列。df[[col1,col2]]:以DataFrame的形式返回多列。s.iloc[0]:按位置选取数据。s.loc['index_one']:按索引选取数据。df.iloc[0,:]:返回第一行。df.iloc[0,0]:返回第一列的第一个元素。(5)数据清理df.columns=['a','b','c']:重命名列名。pd.isnull():检查DataFrame对象中的空值,并返回一个Boolean数组。pd.notnull():检查DataFrame对象中的非空值,并返回一个Boolean数组。言示网66网站原创,侵权必究知识准备6.其它常用函数df.dropna():删除所有包含空值的行。df.dropna(axis=1):删除所有包含空值的列。df.dropna(axis=1,thresh=n):保留至少有n个非空值的行。df.fillna(x):用x替换DataFrame对象中的所有空值。s.astype(float):将Series中的数据类型更改为float类型。s.replace(1,'one'):用'one'代替所有等于1的值。s.replace([1,3],['one','three']):用'one'代替1,用'three'代替3。df.rename(columns=lambdax:x+1):批量更改列名。df.rename(columns={'old_name':'new_name'}):选择性更改列名。df.set_index('column_one'):更改索引列。df.rename(index=lambdax:x+1):批量重命名索引。言示网66网站原创,侵权必究知识准备6.其它常用函数(6)数据处理df[df[col]>0.5]:选择col列的值大于0.5的行。df.sort_values(col1):按照col1列排序数据,默认升序排列。df.sort_values(col1,ascending=False):按照col1列降序排列数据。df.sort_values([col1,col2],ascending=[True,False]):先按col1列升序排列数据,再按col2列降序排列数据。df.groupby(col):返回一个按col列进行分组的GroupBy对象。df.groupby([col1,col2]):返回一个按多列进行分组的GroupBy对象。df.groupby(col1)[col2]:返回按col1列进行分组后,col2列的均值。df.pivot_table(index=col1,values=[col2,col3],aggfunc=max):创建一个按col1列进行分组,并计算col2和col3的最大值的数据透视表。df.groupby(col1).agg(np.mean):返回按col1列分组的所有列的均值。data.apply(np.mean):对DataFrame中的每一列应用函数np.mean。data.apply(np.max,axis=1):对DataFrame中的每一行应用函数np.max。言示网66网站原创,侵权必究知识准备6.其它常用函数(7)数据统计df.describe():查看数据值列的汇总统计。df.mean():返回所有列的均值。df.corr():返回列与列之间的相关系数。df.count():返回每一列中的非空值的个数。df.max():返回每一列的最大值。df.min():返回每一列的最小值。df.median():返回每一列的中位数。df.std():返回每一列的标准差。言示网66网站原创,侵权必究任务实施1.准备数据文件在navicat中新建一个数据库'njitt',如图5-85所示。然后在新建数据库中运行sql文件'njitt.sql',完成数据导入操作。言示网66网站原创,侵权必究任务实施2.数据的数据连接与合并(1)创建数据处理文件并导入相关类库创建数据处理文件'bus_info.py',在其中导入Pandas库和pymysql库。若本机或使用版本的虚拟环境没有安装相关类库,可在cmd或pycharm项目的控制台输入'pipinstall类库名称'。导入类库的语句如下所示。类库导入后,在python文件中新建数据库连接‘db’,并设置相应的‘host’、‘user’、‘password’和‘database’参数。建立数据库连接的代码如下所示。言示网66网站原创,侵权必究任务实施2.数据的数据连接与合并(2)读取数据因为要调用多次,所以直接编写一个读取数据的函数,返回DataFrame类型的数据。读取后,先不要关闭数据库连接,之后还需要写入数据。言示网66网站原创,侵权必究任务实施2.数据的数据连接与合并(3)使用concat和merge函数处理数据①concat函数的常用参数pd.concat([df数据1,df数据2,……],join=?,sort=?,ignore_index=?,axis=?)[df数据1,df数据2,……]:第一个参数传入的是需要连接的数据;join参数:设置了连接的方式,参数只有'inner'(交集),'outer'(联合);sort参数:True或False;ignore_index参数:True或False;axis参数:设置了连接方向,1为横向拼接,0为纵向拼接言示网66网站原创,侵权必究任务实施2.数据的数据连接与合并②merge函数的常用参数pd.merge(df数据集1,df数据集2,how=‘inner',on=None,left_on=None,right_on=None,left_index=False,right_index=False,sort=False,suffixes=('_x',
‘_y'))how参数:默认为inner,可设为inner/outer/left/righton参数:根据某个字段进行连接,必须存在于两个DateFrame中(若未同时存在(是同一个数据,但是名称不一样),则需要分别使用left_on和right_on来设置)言示网66网站原创,侵权必究任务实施2.数据的数据连接与合并left_on参数:左连接,以DataFrame1中用作连接键的列right_on参数:右连接,以DataFrame2中用作连接键的列left_index参数:将DataFrame1行索引用作连接键right_index参数:将DataFrame2行索引用作连接键sort参数:根据连接键对合并后的数据进行排列,默认为Truesuffixes参数:对两个数据集中出现的重复列,新数据集中加上后缀_x,_y进行区别言示网66网站原创,侵权必究任务实施2.数据的数据连接与合并(4)将处理后的数据写入mysql数据库言示网66网站原创,侵权必究任务实施3.数据的重塑(1)数据库连接创建数据处理文件'student.py',导入pandas和pymysql,然后创建数据库连接。具体的操作代码如下。(2)读取数据编写读取表函数,返回DataFrame类型的数据。言示网66网站原创,侵权必究任务实施3.数据的重塑言示网66网站原创,侵权必究任务实施3.数据的重塑(3)使用pivot函数和melt函数对数据进行重塑①pivot函数常用参数:df.pivot(index=None,columns=None,values=None)#行转列index参数:指定转换后作为index的字段(特征);columns参数:指定转换后作为列名的字段(特征),会将指定字段的不同值直接划分成新的列名;values参数:指定字段(特征)作为转换后列的数值。言示网66网站原创,侵权必究任务实施3.数据的重塑②melt函数常用参数:frame参数:要处理的数据集,格式需要为DataFrameid_vars[元组,列表或者ndarray,可选]:用作标识符变量的列。value_vars[元组,列表或者ndarray,可选]:要取消透视的列。如果未指定,则使用未设置为id_vars的所有列。var_name参数:用于'变量'的列的名称。如果为None,则使用或者'variable'。value_name[标量,默认为'value']:用于'value'列的名称。col_level[int或string,可选]:如果列是MultiIndex,则使用此级别进行融合。言示网66网站原创,侵权必究任务实施3.数据的重塑(4)将处理好的数据写入mysql言示网66网站原创,侵权必究任务实施4.数据的异常值和空值处理(1)准备数据创建数据处理文件'company_info.py',并使用pandas读取数据并查看数据结构,代码如下。言示网66网站原创,侵权必究任务实施4.数据的异常值和空值处理(2)对空值的两种处理①使用dropna()函数删除空值对于此数据集,将数据中含有两个空值及以上的记录判定为无效记录,使用dropna()函数对其进行删除操作。dropna()函数常用参数:axis参数:指定删除方向,0是按照行删除,1是按照列删除how参数:指定删除的方式,值为any和allany:只要某一行或列中存在缺失值,就删除该行和列all:只有当某一列或列中所有值都是缺失值时,才删除该行或列subset参数:指定要考虑的列或索引标签,用于删除包含是缺失值的行或列。默认值为None,表示考虑所有列或索引标签。inplace参数:True或Flase,默认值为Flase,表示返回删除缺失值后的副本,True不返回副本,直接覆盖原来的数据。言示网66网站原创,侵权必究任务实施4.数据的异常值和空值处理从空值统计中可以了解到各个字段的空值个数。接下来以行为单位对数据集进行判断是否满足一条记录中存在两个或以上空值。具体代码如下。言示网66网站原创,侵权必究任务实施4.数据的异常值和空值处理②使用fillna()函数填充空值通过dropna()已经排除了无效记录,但'workexp'字段还是存在空值,此处可以使用对应fillna()进行填充。fillna()函数常用参数:value参数:用于填充缺失值的值True不返回副本,直接覆盖原来的数据。method参数:pad/ffill用前一个非缺失值去填充该缺失值backfill/bfill用下一个非缺失值填充该缺失值nearest用缺失值附近的最近有效值进行填充limit参数:限制填充个数axis参数:指定填充方向。0是按列填充,1是按行填充。言示网66网站原创,侵权必究任务实施4.数据的异常值和空值处理(3)对异常值的两种处理数据异常值常见的简单形式有重复值和数据类型的不匹配。通过pandas中的函数都可以进行简单处理。①使用drop_duplicates()函数删除重复值。subset参数:指定用于判断重复行的一列或多列(呈列表形式)。默认为None,判断所有列。keep参数:指定保留哪个重复行。常见取值有'first','last','False'。first:保留第一个出现的重复行(默认值)。last:保留最后一个出现的重复行。False:不保留,删除所有重复行。inplace参数:True或False,是否返回副本,默认为Flase,返回操作后的副本,True不返回副本,直接覆盖原来的数据。ignore_index参数:指定重置索引的方式。默认False,保留原始索引;设置为True,会重新设置删除重复值操作后的数据索引,形成新的连续整数索引。言示网66网站原创,侵权必究任务实施4.数据的异常值和空值处理②处理数据类型不匹配的值。在数据中的'min_salary'、'max_salary'和'working_years'中存在不是数值类型的异常值数据。要求用均值填充'min_salary'和'max_salary'列,用0替换掉'working_years'中的'无经验要求'。首先处理'min_salary'和'max_salary'中的异常值,将两列的数据类型转换成数值类型'float'或者'int',此步骤直接转换成了'float',并将不能转换成此数据类型的异常值替换成了空值,然后使用fillna()函数填充均值到空值。言示网66网站原创,侵权必究任务实施5.对处理过的数据进行归一化和标准化开始处理之前,需要安装'scikit-learn'类库,在pycharm的终端或者是CMD中运行'pipinstallscikit-learn'。在处理数据时,归一化和标准化是常见的预处理技术。(1)归一化:将数据缩放到指定的范围,通常是[0,1]或[-1,1]。归一化公式如下。其中,value是原始数据,min_value和max_value是要处理特征的最小值和最大值。上述公式需要略微了解,在实际应用中,一般是用机器学习来实现。言示网66网站原创,侵权必究任务实施5.对处理过的数据进行归一化和标准化(2)标准化:标准化将数据转换为具有零均值和单位方差的数据。标准化公式如下。其中,value是原始数据,mean_value和std_value是要处理特征的均值和标准差。对异常值和空值处理后的数据中的'min_salayr'和'max_salayr'特征,进行标准化。将原来的数值进行标准化。标准化后的数据基本是呈现正态分布的,即越接近0,越接近平均值
言示网66网站原创,侵权必究任务实施6.独热编码(1)独热编码的简单应用:独热编码(One-HotEncoding)是一种常用的数据预处理技术,主要用于将分类变量(离散型变量)转换成机器学习算法可以更好处理的格式。独热编码就是将类别型变量转换为二进制向量的过程,使得每个类别都对应一个唯一的二进制向量。在job_info表中存在'companyStatus'的特征,显示的是公司的融资状态。但对于机器学习来说,字符串类型的数据是不能被处理的,所以需要转换为二进制数值型。
言示网66网站原创,侵权必究任务实施6.独热编码完成处理后,将生成的独热编码数据加入数据之中,并删除'companyStatus'字段。具体实现代码及部分结果如下。言示网66网站原创,侵权必究任务实施6.独热编码(2)将数据写入数据库中:完成上述的处理后,将数据写入mysql数据库。具体实现代码如下。任务三Task3言示网66网站原创,侵权必究用NLTK和jieba进行文本数据预处理言示网66网站原创,侵权必究任务描述(1)学习NLTK和jieba的相关基础知识。(2)使用NLTK和jieba实现分词。
任务目标(1)熟悉NLTK和jieba的相关基础知识。(2)学会使用NLTK和jieba实现中英文的分词。言示网66网站原创,侵权必究知识准备文本数据预处理自然语言处理(NaturalLanguageProcessing,NLP)是一种人工智能技术,旨在使计算机能够理解、解释和生成自然语言。文本分析是NLP的一个重要领域,它涉及到从文本数据中提取有用信息的过程。NLTK和jieba都是基于Python的自然语言处理工具包,只是两者的用途有些差异,一般来说英文处理用NLTK,中文处理用jieba。(1)文本数据处理工具①NLTK简介NLTK全称为NaturalLanguageToolkit,它是一套基于Python的自然语言处理工具包,可以方便地完成自然语言处理的任务,包括分词、词性标注、命名实体识别及句法分析等。②jieba简介jieba是百度工程师SunJunyi开发的一个开源库,jieba最流行的应用是分词、关键词抽取、词频统计等,是优秀的中文分词第三方库。jieba支持四种分词模式:
精确模式
搜索引擎模式
全模式
paddle模式言示网66网站原创,侵权必究知识准备文本数据预处理(2)文本预处理①预处理流程概述在自然语言处理中,文本预处理是将原始文本转化为适合分析形式的一系列步骤。这一过程通常包括:清理文本(去除无关字符和格式),统一文本格式(如转为小写),分词(将文本拆分为词语或短语),去除停用词(删除常见但对分析帮助不大的词汇),以及词干提取或词形还原(简化词汇到基本形式)。这些步骤旨在提高文本质量,使其更适合于进一步的分析和处理。下面将对分词、词性标注、关键词与命名实体识别和提取、词性归一化,以及删除停用词进行详细介绍。②分词在文本分析中,需要对其文本进行分词,并对这些分词统计分析。分词是指将由连续字符组成的语句,按照一定的规则划分成一个个独立词语的过程。不同的语言具有不同的语法结构,以常见的英文和中文为例,英文的句子中是以空格为分隔符的,所以可以指定空格为分词的标记,而中文并没有一个形式上的分界符,它只有字、句和段能通过明显的分界符来简单地划分。因此,中文分词要比英文分词困难很多。言示网66网站原创,侵权必究知识准备文本数据预处理③词性标注词性标注也被称为语法标注或词类消疑,是语料库语言学中将语料库内单词的词性按其含义和上下文内容进行标记的文本数据处理技术。机器学习模型可以从一个词的很多方面提取信息,但如果词已经标注了词性,那么它作为特征就能提供更精准的信息。④关键词与命名实体识别和提取关键词是能够表达文档中心内容的词语,从算法的角度来看,关键词提取算法主要有两类:无监督关键词提取方法和有监督关键词提取方法。⑤删除停用词停用词是指在信息检索中,为节省存储空间和提高搜索效率,在处理自然语言文本之前或之后会自动过滤掉某些没有具体意义的字或词,这些字或词即被称为停用词,比如英文单词“does”、“so”或中文的“的”、“啊”等。停用词在自然语言文本中非常常见,它们通常不携带特定含义,但是停用词的存在直接增加了文本的特征难度,可能会干扰模型的训练效果,从而导致数据分析结果的偏差,因此需要将它们从文本中移除。言示网66网站原创,侵权必究任务实施1.NLTK的安装在终端使用pip命令进行安装,安装命令如下所示。执行上述命令,如果可以看到“Successfully”字样,即表示NLTK安装成功。言示网66网站原创,侵权必究任务实施2.语料库的下载在pycharm中新建项目DataClean,并创建命名为“case_realization”的pyhtonfile文件,然后在pyhtonfile文件中输入如下代码并执行。程序执行后,将会打开一个NLTKDownloader窗口,如图5-86所示。如果希望集中安装所有的选项,则需要在”DownloadDirectory”对应的文本框中设置下载路径为C盘用户下的AppData\Roaming\nltk_data,然后打开菜单:“file”->“Download”开始下载,直至所有选项安装完成,如图5-87所示。言示网66网站原创,侵权必究任务实施2.语料库的下载如果只是想单独安装某个库或模型等,比如brown语料库,则可以单击”Corpora”选项,再从”Corpora”选项的列表中选中”brown”,单击”Download”按钮进行下载,如图5-88所示。
下载完成以后,可以测试语料库是否下载成功(假设下载了brown语料库),在data_test文件中输入代码进行测试。言示网66网站原创,侵权必究任务实施3.jieba库的安装如果希望对中文进行分词操作,可以借助jieba分词工具。安装jieba库的方式比较简单,可以在终端使用pip命令进行安装,安装命令及操作结果如下所示。执行上述命令,如果可以看到“Successfully”字样,即表示jieba库安装成功。为了验证jieba库是否成功安装,可以在Pycharm中通过importjieba引入,如果引入没有提示错误信息,则表示安装成功。言示网66网站原创,侵权必究任务实施4.数据分词
首先,导入相关库,nltk库(自然语言处理的工具包)和jieba.posseg库(jieba是一个中文分词工具,pseg是jieba中用于词性标注的模块)。其次,使用open函数打开了一个名为“朱雀火箭发射成功.txt”的文件,并使用utf-8编码方式进行读取将文件中的内容读取到变量text中。然后,通过print()语句将文件内容打印输出。言示网66网站原创,侵权必究任务实施4.数据分词
打印结果为:言示网66网站原创,侵权必究任务实施4.数据分词
然后将上述内容通过jieba.lcut()函数进行分词操作,代码如下。程序运行结果如下。从结果可以看出,整个句子按照某种规则划分成了多个不同的字或词语,不过对“蓝箭航天空间科技股份有限公司”、“蓝箭航天”、“高频次”、“积碳”等专有名词解析存在问题,因此分词过程中需要自定义词典(向词典中添加新的专有名词),代码如下。言示网66网站原创,侵权必究任务实施4.数据分词
程序运行结果如下。言示网66网站原创,侵权必究任务实施5.删除停用词删除停用词常用的方法有词表匹配法、词频阀值法和权重阀值法,NLTK库所采用的就是词表匹配法,在使用之前要确保已经下载了stopwords语料库,并且用import语句导入stopwords模块,示例如下。打印结果为:停用词都是人工输入、非自动化生成的,生成后的停用词会形成一个停用词表,但是并没有一个明确的停用词表能够适用于所有的工具。对于中文的停用词,也可以参考中文停用词库、哈工大停用词
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年农资销售业务员面试技巧
- 2026年公司战略与风险管理模拟测试
- 2026年公卫助理医师考试高频考点速记
- 2026年中央公务员遴选面试仿真题集
- 2026年林业局公务员笔试重点题
- 2026年企业安全员招聘笔试题库
- 浙江省湖州市吴兴区2026年中考二模考试数学
- 2026年小学二年级上册语文高频考点真题汇编卷含答案
- 2026年邮政业跨境电商政策对接
- 一级建造师《建设工程项目管理》1000问(含答案)
- 吊车拆除铁塔专项施工方案(模版)
- 2025年1月浙江省普通高中学业水平考试思想政治试卷(含答案详解)
- DB50∕T 1886-2025 特殊健康状态儿童预防接种服务规范
- 2025年河北省中考数学试卷(含答案)
- (2026年)实施指南《QBT 2730.1-2013 喷墨打印机用墨水》
- 【《乙酸乙酯(EA)生产物料衡算计算过程案例》2000字】
- T∕CNCIA 01043-2025 粉末涂装涂层质量技术要求 农林及工程机械
- 化疗副作用及处理方法
- 2025年江苏省教师职称考试(信息技术)历年参考题库含答案详解
- 邮政邮件处理培训
- 设备异常处理流程
评论
0/150
提交评论