数据基础与处理 答案_第1页
数据基础与处理 答案_第2页
数据基础与处理 答案_第3页
数据基础与处理 答案_第4页
数据基础与处理 答案_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据采集与预处理(第2版)项目1数据采集与预处理准备PAGE16PAGE17课后习题参考答案【项目1:数据采集与预处理准备】通过网络收集资料,了解常用的ETL工具有哪些?(1)Kettle:Kettle是一款国外开源的ETL工具。Kettle是纯java编写,具有高效且稳定的数据抽取功能。(2)FineDataLink:FineDataLink数据集成平台(简写:FDL)是国内知名商业智能厂商帆软面向IT人员推出的企业级一站式数据集成平台产品,拥有实时同步和离线计算两大引擎,具备实时数据同步、ETL和ELT定时数据计算等核心能力。(3)Talend:Talend中文名拓蓝,是一个开源的ETL数据集成解决方案,与企业内部和云端的数据源都兼容。该平台包括数百个预建的集成,简化了数据处理流程。除了开源版本,Talend还提供了一个付费的数据管理平台,包括用于生产力、设计、管理、监控和数据治理的额外工具和功能。(4)DataStage:DataStage是IBM公司的商业软件,它为整个ETL过程提供了一个图形化的开发环境,是一套专门对多种操作数据源的数据抽取、转换和维护过程进行简化和自动化,并将其输入数据集或数据仓库的集成工具,适合大规模的ETL应用。通过网络收集资料,了解日志采集系统有哪些?基于python的网络爬虫框架有哪些?流行的日志采集系统包括:Cloudera/ApacheFlume:这是一个高可用的、高可靠的、分布式的海量日志采集、聚合和传输系统。FacebookScribe:Facebook开发的日志采集系统。ManageEngineEventLogAnalyzer:适用于Windows操作系统的日志管理系统。MicrosoftLogParser:微软开发的日志解析工具。Filebeat:用于转发和集中日志数据的轻量级传送程序,可以收集日志事件并转发到Elasticsearch或Logstash进行索引。Graylog:一个开源的日志聚合、分析、审计、展现和预警工具,功能上类似于ELK,但更简单、高效且部署使用简单。LogDNA:提供基于代理和无代理的日志收集,支持syslog和HTTP(S)以及全文搜索和可视化,可以作为SaaS或内部使用。基于python的网络爬虫框架有:Scrapy是一个可以爬取网站数据,提取结构性数据而编写的应用框架,能够应用在数据挖掘、信息处理、存储历史数据等一系列的程序中。Pyspider是用python实现的的网络爬虫系统,可以在浏览器界面上编写脚本,也可以实时查看功能的调度和爬取结果。后端使用常用的数据库进行爬取结果的存储,并且还能定时设置任务与任务优先级。Crawley可以快速爬取对应网站的相关内容,支持关系和非关系数据库,数据可以导出的格式为JSON、XML等。Portia是scrapyhub开源的一款可视化爬虫规则编写工具。它提供可视化Web页面,用户只需要通过点击标注页面上需要抽取的数据,不需要任何编程知识即可完成规则开发。BeautifulSoup是一个可以从HTML或XML文件中提取数据的Python库,它可以通过用户喜欢的转换器实现惯用的文档导航、查找、修改文档的功能。Grab是一个用于构建Web模板的Python框架,用户可以通过Grab构建各种复杂的网页抓取工具,从简单的几行脚本到处理数百万个网页的复杂异步网站抓取工具。Grab能够提供一个API用于执行网络请求和处理接收到的内容,比如与HTML文档的DOM树进行交互。布隆过滤器(BloomFilter)的基本思想是什么?布隆过滤器的基本思想是,当一个元素被加入集合时,通过k个散列函数将这个元素映射成一个位数组中的k个点,把它们置1。检索时,只要看看这些点是不是都1就知道集合中有没有被检元素:如果这些点有任何一个是0,则被检元素一定不在;如果都是1,则被检元素很可能存在。现实世界采集到的大量的、各种各样的数据一般具有哪些特征?(1)不完整性。不完整性指的是数据记录中可能会出现有一些数据属性的值丢失或不确定的情况,还有可能缺失必需的数据。(2)含噪声。含噪声指的是数据具有不正确的属性值,包含错误或存在偏离期望的离群值(指与其他数值比较差异较大的值)。(3)杂乱性(不一致性)。原始数据是从各个实际应用系统中获取的,由于各应用系统的数据缺乏统一标准的定义,数据结构也有较大的差异,因此各系统间的数据存在较大的不一致性。数据采样技术分为哪几种?数据采样技术分为加权采样、随机采样和分层采样3类,其目的是从数据集中采集部分样本进行处理。填补遗漏的数据值,处理不完备数据集的方法主要有哪些类型?①删除元组删除元组就是将存在遗漏信息属性值的对象(元组,记录)删除,从而得到一个完备的信息表。②数据补齐这类方法是用一定的值去填充空值,从而使信息表完备化。通常基于统计学原理,根据决策表中其余对象取值的分布情况来对一个空值进行填充,数据挖掘中常用的补齐方法有以下几种。a.人工填写:由于最了解数据的是用户自己,因此这个方法产生的数据偏离最小,可能是填充效果最好的一种。然而,一般来说,此方法很费时,当数据规模很大、空值很多的时候,此方法是不可行的。b.特殊值填充:将空值作为一种特殊的属性值来处理,它不同于其他的任何属性值,如所有的空值都用“unknown”填充。如果该缺失值与预测值具有高度相关性,可能导致严重的数据偏离,一般不推荐使用。c.值填充:将信息表中的属性分为数值属性和非数值属性来分别进行处理。如果空值是数值型的,则使用该属性在其他所有对象的取值的平均值来填充该缺失的属性值;如果空值是非数值型的,则根据统计学中的众数原理,用该属性在其他所有对象的取值次数最多的值(即出现频率最高的值)来补齐该缺失的属性值。d.热卡填充(或就近补齐):对于一个包含空值的对象,热卡填充法在完整数据中找到一个与它最相似的对象,并用这个相似对象的值来进行填充。e.k近邻法:先根据欧式距离或相关分析来确定距离具有缺失数据样本最近的k个样本,再将这k个值加权平均来估计该样本的缺失数据。f.使用所有可能的值填充:这种方法用空缺属性值的所有可能的属性取值来填充,能够得到较好的补齐效果。g.组合完整化方法:这种方法用空缺属性值的所有可能的属性取值来尝试,并从最终属性的约简结果中选择最好的一个作为填补的属性值。h.回归:基于完整的数据集,建立回归方程(模型)。对于包含空值的对象,将已知属性值代入方程可估计未知属性值,以此估计值来进行填充。③平滑有噪声数据噪声是一个测量变量中的随机错误或偏差,包含错误值或偏离期望的孤立点值。数据平滑技术包括以下几种。分箱:分箱方法通过考察数据的“近邻”(即周围的值)来平滑有序数据值。回归:也可以用一个函数拟合数据来平滑数据。聚类:可以通过聚类来检测离群点,将类似的值组织成群或簇。【项目2:】一、单项选择题(1)关于urllib.parse模块中的urlencode()函数的说法,正确的是(C)。A.它用来给传输数据进行加密B.它接受字符串作为参数,对参数中的中文进行编码C.它接受字典作为参数,对参数中的中文进行编码D.如果传入的参数不包括中文,则会报错(2)关于urllib.parse模块中的quote()函数的说法,正确的是(B)。A.它用来给传输数据进行加密B.它接受字符串作为参数,对参数中的中文进行编码C.它接受字典作为参数,对参数中的中文进行编码D.如果传入的参数不包括中文,则会报错(3)使用urllib中Request类构建请求,添加请求头最常见的方法是通过修改(A)来伪装浏览器。A.User-AgentB.add_headerC.headsD.add(4)利用urllib.request模块中最基本的(C)方法,可以完成对简单网页的请求和抓取。A.urlparseB.urlencodeC.urlopenD.urlunparse(5)urllib库中能用于构建一个HTTP请求的函数是(A)A.request()B.get()C.urlparse()D.post()(6)在Selenium中,如何模拟鼠标操作?(A)A.使用click()方法B.使用sendKeys()方法C.使用submit()方法D.使用get()方法(7)在Selenium中,如何模拟键盘操作?(B)A.使用click()方法B.使用sendKeys()方法C.使用submit()方法D.使用get()方法(8)在Selenium中,如何处理弹出窗口?(C)A.使用switch_to.alert()方法B.使用switch_to.frame()方法C.使用switch_to_window()方法(9)下列选项中,不属于请求报头的是(D)。A、User-AgentB、CookieC、RefererD、Content-Type(10)下列状态码中,表示客户端的请求有错误的是(C)。A、200B、304C、403D、500(11)下列请求报头中,可以记载用户信息实现模拟登录的是(B)。A、User-AgentB、CookieC、ConnectionD、Host二、填空题(1)在下面的表格中,列出了一些路径表达式,请写出表达式的含义路径表达式结果/bookstore/book[1]选取属于bookstore子元素的第一个book元素。/bookstore/book[last()]选取属于bookstore子元素的最后一个book元素。/bookstore/book[last()-1]选取属于bookstore子元素的倒数第二个book元素。/bookstore/book[position()<3]选取最前面的两个属于bookstore元素的子元素的book元素。//title[@lang]选取所有拥有名为lang的属性的title元素。//title[@lang='eng']选取所有title元素,且这些元素拥有值为eng的lang属性。/bookstore/book[price>35.00]选取bookstore元素的所有book元素,且其中的price元素的值须大于35.00。/bookstore/book[price>35.00]/title选取bookstore元素中的book元素的所有title元素,且其中的price元素的值须大于35.00。//book/title|//book/price选取book元素的所有title和price元素。//title|//price选取文档中的所有title和price元素。/bookstore/book/title|//price选取属于bookstore元素的book元素的所有title元素,以及文档中所有的price元素。(2)HTML部分结构如下:<library><books><bookid="book1">数据采集与预处理</book><bookid="book2">大数据运维技术</book><bookid="book3">数据分析</book></books><records><items><date>2022-05-02</date><personname="张三丰"class="box1"/></items><items><date>2022-05-01</date><personname="张无忌"class="box2"/></items></records></library>通过Xpath实现如下元素定位:(1)查询所有的book节点:/library/books/book。(2)查询第二个book节点:/library/books/book[2]。(3)查询person的属性:/library/records/items/person/attribute()。(4)查询所有book节点值中带有“运维”字符串的book节点:/library/books/book[contains(text(),'实例')]。(5)查询所有date节点值中带有“05”字符串的items节点:/library/records/items/date[contains(text(),'05')]/parent::items。(6)查询所有属性节点值带有“box”字符串的person节点:/library/records/items/person[contains(@name,'box')orcontains(@class,'box')]。查询所有的book节点的文本值:/library/books/book/text()三、操作题答案建源代码附件【项目3:日志数据采集实践】1、Flume的Source,Sink,Channel的作用?(1)Source组件是专门用来收集数据的,可以处理各种类型、各种格式的日志数据,包括avro、thrift、exec、jms、spoolingdirectory、netcat、sequencegenerator、syslog、http、legacy。(2)Channel组件对采集到的数据进行缓存,可以存放在Memory或File中。Sink组件是用于把数据发送到目的地的组件,目的地包括Hdfs、Logger、avro、thrift、ipc、file、Hbase、solr、自定义。2、如何通过Flume参数设置进行调优?(1)Source参数设置增加Source个数(使用TairDirSource时可增加FileGroups个数)可以增大Source的读取数据的能力。例如:当某一个目录产生的文件过多时需要将这个文件目录拆分成多个文件目录,同时配置好多个Source以保证Source有足够的能力获取到新产生的数据。batchSize参数决定Source一次批量运输到Channel的event条数,适当调大这个参数可以提高Source搬运Event到Channel时的性能。(2)Channel参数设置type选择memory时Channel的性能最好,但是如果Flume进程意外挂掉可能会丢失数据。type选择file时Channel的容错性更好,但是性能上会比memorychannel差。使用fileChannel时dataDirs配置多个不同盘下的目录可以提高性能。Capacity参数设置,Capacity参数决定Channel可容纳最大的event条数。transactionCapacity参数设置,transactionCapacity参数决定每次Source往channel里面写的最大event条数和每次Sink从channel里面读的最大event条数。transactionCapacity需要大于Source和Sink的batchSize参数。(3)Sink参数设置增加Sink的个数可以增加Sink消费event的能力。Sink也不是越多越好,过多的Sink会占用系统资源,造成系统资源不必要的浪费。batchSize参数决定Sink一次批量从Channel读取的event条数,适当调大这个参数可以提高Sink从Channel消费event的性能。3、请简单介绍一下Flume中的事务机制Flume的事务机制(类似数据库的事务机制):Flume使用两个独立的事务分别负责从Soucrce到Channel,以及从Channel到Sink的事件传递。比如spoolingdirectorysource为文件的每一行创建一个事件,一旦事务中所有的事件全部传递到Channel且提交成功,那么Soucrce就将该文件标记为完成。同理,事务以类似的方式处理从Channel到Sink的传递过程,如果因为某种原因使得事件无法记录,那么事务将会回滚。且所有的事件都会保持到Channel中,等待重新传递。若Flume采集日志过程中突然停止,已经采集但尚未写入的数据会不会丢失?请说明原因?数据丢失与否的关键在于Channel是否开启了持久化。Flame的Channel充当了数据缓冲区,负责在Source(数据源)和Sink(数据目的地)之间暂存数据。Flume本身采用了事务机制来保证数据传输的可靠性,即Source到Channel和Channel到Sink都是事务性的,只有当下一个环节确认成功接收,上一个环节才会将数据移除。因此,理论上只要数据被成功写入Channel,就不会轻易丢失。但不同类型的Channel在持久化能力上存在根本差异,具体如下:Channel类型存储位置数据持久性宕机后数据是否会丢失?适用场景MemoryChannel内存

非持久化

会丢失。存储在内存队列中的未处理数据会随着JVM进程一起消失,无法恢复。对吞吐量要求极高,且能容忍少量数据丢失的业务。FileChannel本地磁盘

持久化

不会丢失。它基于WAL(预写式日志)技术,所有操作先写磁盘,宕机重启后可恢复崩溃前已提交的所有事务。对数据可靠性要求高,不允许日志丢失的生产环境。SpoolingDirectorySource/TaildirSourceN/ASource自带可靠性

不会丢失。注意,这是两种特殊的Source,并非Channel。它们通过记录已读取文件的位置来保证可靠性,即使Agent重启,也能从断点处继续读取,避免数据丢失。监控本地日志文件,这是比ExecSource更可靠的Source选择Flume通过事务来串联数据传输的各个环节,确保了“At-least-once”(至少一次)的投递语义。这意味着在正常情况下,数据不会在传输过程中“意外”丢失。唯一可能导致丢失的场景,就是作为临时缓冲区的Channel本身不具备持久化能力。MemoryChannel的工作原理:它将数据存储在内存队列中,速度极快。一旦Agent进程因故障、断电等原因停止,这部分存在内存中且尚未被Sink消费的数据会立刻消失,无法找回。FileChannel的保障机制:它会先将数据写入磁盘中的日志文件,并定期执行Checkpoint(检查点)操作。即使Flume突然崩溃,重启后系统会通过重新执行WAL来恢复Channel到崩溃前的状态,确保已提交的数据不丢失。简述AvroSource、ExecSource、SpoolingDirectorySource的主要区别?这三个Source是Flume中非常经典的日志采集方式,它们的核心区别在于数据来源、可靠性保证以及适用场景。下面是它们的主要区别总结:-数据来源不同:AvroSource通过网络接收数据;ExecSource通过执行命令(如“tail-F”)获取输出;SpoolingDirectorySource则通过读取本地指定目录下的静态文件来采集。-可靠性不同:ExecSource在进程崩溃或命令重启时,可能丢失数据或产生重复,可靠性最低。而AvroSource和SpoolingDirectorySource都通过事务机制保证“至少一次”的语义,可靠性更高。SpoolingSource还支持记录文件读取位置,避免重复。-实时性不同:AvroSource和ExecSource支持接近实时的流式传输;SpoolingDirectorySource则更接近于“准实时”的批量读取,因为它基于检测并读取目录中的文件。-典型应用场景:-AvroSource:常用于多层FlumeAgent架构中,作为接收上一层Agent转发的数据的节点,实现跨网络、跨节点的数据传输。-ExecSource:适合测试环境,或采集少量、临时的命令输出,但因可靠性不足,不建议在生产环境中使用。-SpoolingDirectorySource:常用于采集已落盘的日志文件(如由日志服务轮转后的文件),适合不要求毫秒级实时性的场景。下面详细展开这三个Source的机制和注意事项:1.AvroSource-工作方式:它是一个基于ApacheAvroRPC(远程过程调用)协议的服务器,会监听一个端口,等待上游的FlumeAgent通过AvroSink发送数据。-可靠性:高。它采用事务机制,只有当数据成功写入Channel后,才会向发送端确认,保证“至少一次”的语义。-主要用途:作为Flume多层架构中的“接收端”,用于汇总多个Agent的数据,或将数据跨网络传输(比如从应用服务器发送到中央日志收集器)。-特点:天生是跨节点的流式传输,与AvroSink配对使用,是构建分布式日志收集链路的基石。2.ExecSource-工作方式:在启动时运行一个用户指定的Unix命令(例如“tail-F/var/log/nginx/access.log”),并读取该命令的标准输出(Stdout)作为数据源。-可靠性:低。这是其最大缺点。如果Agent崩溃或命令进程中断,重启后命令会从头或从某个不确定的位置开始执行,这期间产生的数据无法被正确采集,容易导致数据丢失或重复。同时,它不支持事务。-主要用途:官方文档明确提示ExecSource不具备可靠性,仅建议用于测试、演示或对数据丢失不敏感的场景。许多线上事故就是因使用“tail-F”的ExecSource引起的数据丢失。3.SpoolingDirectorySource-工作方式:监听一个本地磁盘上的目录,读取目录中写入后不再被修改的“静态”文件(例如由日志轮转生成的“.log”文件或“.tmp”文件)。-可靠性:高。它会记录每个文件已读到的位置(基于偏移量),并采用事务机制,支持“至少一次”的语义。即使在读取过程中Agent重启,也能从断点继续,不会丢数据。-主要用途:用于采集已经落盘的日志文件,适合日志量不大、对实时性要求不高的场景,或者应用无法修改以直接输出到网络/控制台时。生产实践建议-绝对要避免在生产环境的核心链路中使用ExecSource,特别是用来“tail”实时日志。-对于实时采集不断写入的本地文件,推荐使用更可靠的TaildirSource(Flume1.7+引入)。它结合了SpoolingDirectory的高可靠性和Exec的实时跟随能力,支持断点续传和通配符监控多个文件。-对于跨节点传输,AvroSource+AvroSink是标准、可靠的方案。-对于离线批量采集已经完稿的静态日志文件,SpoolingDirectorySource非常适合。【项目4:使用Sqoop进行数据迁移】问答题请简述如下参数的含义?参数含义--table导出的源表表名--columns从表中导出指定的列数据--where指定导出时所使用的查询条件--target-dir上传到hdfs的目录--delete-target-dir如果指定目录存在,则先删除掉--fields-terminated-by数据导入hdfs中需要的分隔符--num-mappers指明sqoop任务的mapper个数--split-by设置按照哪个列去分割数据,如果mappers个数为1就没必要传split-by参数--compress表明输出的文件需要压缩--compression-codec声明压缩格式--null-string是string类型的字段,当Value是NULL,替换成指定的字符--null-non-string是非string类型的字段,当Value是NULL,替换成指定字符2.操作题(1)准备数据在test数据库中创建如下数据表CREATETABLE`st_info`(`id`int(10)DEFAULTNULL,`name`varchar(50)DEFAULTNULL,`school`varchar(10)DEFAULTNULL,`age`int(10)DEFAULTNULL,`high`varchar(10)DEFAULTNULL)ENGINE=InnoDBDEFAULTCHARSET=latin1;并在数据中插入如下数据。INSERTINTO`st_info`VALUES('20230401','HarryPotter','Hogwarts','18','168');INSERTINTO`st_info`VALUES('20230402','HermioneGranger','Hogwarts','17','160');INSERTINTO`st_info`VALUES('20230403','AlbusDumbledore','Hogwarts','150','178');INSERTINTO`st_info`VALUES('20230404','SeverusSnape','Hogwarts','50','175');INSERTINTO`st_info`VALUES('20230405','RubeusHagrid','Hogwarts','50','260');(2)请使用sqoop把数据全量导入到HDFS的/SQL2HDFS1目录下,要求使用一个mapsqoopimport\--connectjdbc:mysql://master:3306/test?useSSL=false\--usernameroot\--password123456\--delete-target-dir\--target-dir/SQL2HDFS1\--tablest_info\--fields-terminated-by'\t'\--num-mappers1(3)请使用sqoop把部分数据导入到HDFS的/SQL2HDFS2目录下,要求使用where指定age=50的条件查询,要求使用一个map。sqoopimport\--connectjdbc:mysql://master:3306/test?useSSL=false\--usernameroot\--password123456\--where"age=50"\--delete-target-dir\--target-dir/SQL2HDFS2\--tablest_info\--fields-terminated-by'\t'\--num-mappers1(4)请使用sqoop把部分数据导入到HDFS的/SQL2HDFS3目录下,要求使用querysql语句查询,导入的字段为id,name,age,查询条件为age>17,要求使用两个map,以id字段进行划分。sqoopimport\--connectjdbc:mysql://master:3306/test?useSSL=false\--usernameroot\--password123456\--delete-target-dir\--target-dir/SQL2HDFS3\--query'selectid,name,agefromst_infoWHEREage>17and$CONDITIONS'\--split-byid\--fields-terminated-by'\t'\--num-mappers2(5)请使用sqoop把数据全量导入到Hive的demo数据库下,要求使用一个mapsqoopimport\--connectjdbc:mysql://master:3306/test?useSSL=false\--usernameroot\--password123456\--tablest_info\--hive-import\--num-mappers1\--hive-databasedemo【项目5:数据预处理实践】1、填空题Kettle中有两种脚本文件:Transformation和Job。其中,Transformation用于完成针对数据的基础转换,而Job用于完成整个工作流的控制。Kettle主要有4个组件组成,分别为:Spoon、Pan、Kitchen和Carte组件。随机采样是一种常用的数据采样方法,它通过随机选择数据集中的样本来构建样本数据。在Python中,可以使用random模块提供的sample函数来实现随机采样。在Pandas中,有两种常用的数据合并方式:concat与merge。数据重塑是指转换数据组织成行和列的方式。Pandas为用户提供了多种数据重塑的方法,常用的有pivot函数和melt函数。(6)melt函数如下所示。pandas.melt(frame,id_vars=None,value_vars=None,var_name=None,value_name='value',col_level=None)其中参数frame用于指定要转换的DataFrame,参数id_vars用于指定要保留的列,不进行转换的列,参数value_vars用于指定要转换的列,参数var_name用于指定生成的新列的名称。(7)数据离散化的目的是为了简化数据结构。连续属性的离散化就是将连续属性的值域划分为若干个离散的区间,最后用不同的符号或整数值代表落在每个子区间中的属性值,离散化方法经常作为数据挖掘的工具。常用的函数使用有cut函数、qcut函数实现数据的区间分组转换。(8)哑变量转换是一种将多分类变量转换为二分变量的一种方法。Pandas中的get_dummies函数可以实现数据的哑变量矩阵转换。(9)特征工程是利用数据领域的相关知识来创建能够使机器学习算法达到最佳性能的特征的过程。特征处理主要有三个方法:特征构建、特征抽取、特征选择。(10)jieba是百度工程师SunJunyi开发的一个开源库,jieba最流行的应用是分词、关键词抽取、词频统计等,是优秀的中文分词第三方库。jieba支持四种分词模式:精确模式、搜索引擎模式、全模式、paddle模式。(11)jieba中的常用函数jieba.load_userdict(dict_path)的功能是添加词典,dict_path为文件类对象或自定义词典的路径;jierba.add_word(word)的功能是向分词词典中增加新词word;jieba.analyse.extract_tags(sentence,topK=20,withWeight=False,allowPOS=())的功能是使用TF-IDF算法从句子中提取关键词;jieba.analyse.set_stop_words(file_name)的功能是关键词提取所使用停止词(StopWords)文本语料库可以切换成自定义语料库的路径,file_name为自定义语料库的路径。(12)基于统计的分词方法所应用的主要统计模型有:隐马尔可夫模型(HidenMarkovModel,HMM)、最大熵模型(ME)、条件随机场模型(ConditionalRandomFields,CRF)等。(13)在NLTK中的pos_tag函数用于进行词性的标注。jieba默认词性标注集(Python37\Lib\site-packages\jieba\dict.txt),可以使用makesure_userdict_loaded函数将自定义的词汇加入标注集中。(14)关键词是能够表达文档中心内容的词语,从算法的角度来看,关键词提取算法主要有两类:无监督关键词提取方法和有监督关键词提取方法。(15)词形规范化过程主要包括两种:词干提取和词形还原,对于词干提取来说,nltk.stem模块中提供了多种词干提取器,目前最受欢迎的就是波特词干提取器和兰卡斯特词干提取器。nltk.stem模块中,WordNet提供了非常好用的词形还原的函数。2、操作题任务一:使用kettle进行数据清洗。(1)创建一个新的转换“旅游信息数据预处理”。将创建过程截图。(2)创建DB连接,创建一个planedemo数据库连接(使用mysql中的planedemo数据库的trip表),将连接创建的设置截图。(3)创建一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论