基于FTP日志的数据挖掘系统-数据预处理系统的设计与实现(毕业设计论文)_第1页
基于FTP日志的数据挖掘系统-数据预处理系统的设计与实现(毕业设计论文)_第2页
基于FTP日志的数据挖掘系统-数据预处理系统的设计与实现(毕业设计论文)_第3页
基于FTP日志的数据挖掘系统-数据预处理系统的设计与实现(毕业设计论文)_第4页
基于FTP日志的数据挖掘系统-数据预处理系统的设计与实现(毕业设计论文)_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1、本 科 毕 业 设 计题 目:基于FTP日志的数据挖掘系统 -数据预处理系统的设计与实现摘 要计算机和互联网爆炸式发展的发展让我们看到信息时代到来的大潮,我们在网络上的行为也自然成为一种可挖掘的“财富”。国内外的高校或是科技企业也越来越多的投入到网络数据日志的数据挖掘挖掘中去,为的是帮助商业机构或是社会组织提供基于精准数据决策建议。校园教学FTP日志作为一种长期存在的数据也具有非常高的数据价值。针对FTP的运行日志的数据挖掘系统是通过对校园教学FTP日志的定时提取、数据预处理、数据挖掘、结果可视化的方法实现信息的挖掘。运用eclipse软件开发相关平台;采用多线程处理的方法为我们提高处理的基础

2、数据时的处理效率;利用分布式计算的方式组建可根据需要添加计算能力的计算机客户机、搭建Lucene搜索引擎式的全文搜素数据库为数据挖掘提供高速索引的角色、经过我们优化的关联算法进行数据挖掘后,利用JFreeChart2应用程序用图形化的方法显示数据的相关联性。该系统实现了FTP日志数据的定期自动获得、并会对提供运算能力的客户机进行运算前的能力扫描、实现了主要服务器中的文件切割、建立了Lucene全文数据搜索引擎、实现结果信息图标可视化。关键词: FTP日志;数据挖掘;数据预处理;索引库AbstractThe development of the explosive growth of compu

3、ters and the Internet allows us to see the tide of the arrival of the information age, our behavior on the network has naturally become a mining wealth. Universities or technology enterprises at home and abroad, more and more into the network data log data mining, in order to help commercial organiz

4、ations or social organizations to provide policy recommendations based on accurate data. Campus teaching FTP log also has a very high data value as a long-term data. For a running log of the FTP data mining system is the timing of the campus teaching FTP log extraction, data preprocessing, data mini

5、ng, mining results visualization information.Eclipse software development platform; multi-threaded processing method for us to improve the processing of data processing efficiency; using distributed computing to set up the computer client can add computing power, to build the full text of the Lucene

6、 search engine-Search prime database data mining role to provide high-speed index, we optimize association algorithm data mining using JFreeChart applications with graphical display data associated.The system realizes the of regular FTP log data automatically get and will provide the computing power

7、 of the client the ability to scan before the operation, the main file server cutting Lucene full-text search engine result information icon visualization.Keywords:FTP log; data mining; data preprocessing; indexing library 目 录第1章 绪论61.1 选题背景61.2 国内外研究现状61.2.1 国外研究状况71.2.2 国内研究状况71.3 本文研究的内容和意义7第2章 可

8、行性分析和需求分析82.1 可行性82.1.1 实用性价值:82.1.2 技术可操作性82.1.3 外部运行环境82.1.4 日常管理92.2 需求分析92.2.1 软硬件环境需求92.2.2 用户需求92.2.3 功能需求10第3章 FTP日志数据挖掘系统113.1 系统设计的基本原理113.2 系统构想模型12第4章 数据挖掘中的预处理系统134.1 数据处理预处理134.2 文件获得与总述134.3 文件分割器基本设计流程134.4 文件分割的主要方式154.4.1 逐行分割154.4.2 逐块分割154.5 检测器和分割器164.5.1 检测器的原理164.5.2 分割器个工作原理17

9、第5章 关于分布式索引数据库205.1 索引库205.1.1 索引的来源205.1.2 建立索引的目的205.2 lucene框架的索引库205.3 lucene框架的搭建215.3.1 建立的过程21第6章256.1 前台数据控制256.2 设计实现256.2.1 登陆.256.2.2 运行界面设计266.3 辅助管理28总 结30参考文献31致 谢32附录34附录一34第1章 绪论 我们在这阐述的是选题的背景和研究的目的,以及国内外现时阶段关于课题的发展现状。1.1 选题背景计算机的发展让你看到的是信息爆炸的能量,互联网财富的增长是以几何次方递进的。这些发展从我们打开浏览器那一刻起变得越来

10、越不可思议,我们可以在互联网上挖掘任何信息,搜索类的门户网站为你打开了一扇扇你想像不到的大门。网上的绝大部分资源信息都是免费的、开放的,但是有多少确实是有用的、有益的。我们的每一次点击、键入字符,都会在网上留下使用的痕迹。这些不经意中流露的信息,蕴藏着让我们意想不到的财富。数据挖掘通俗的说来就是通过我们留下的“痕迹”,发觉我们一些有趣的现象。并为挖掘者提供相应的分析意见。现在的大型国有企业、外资企业、私人企业都针对其所在的商业领域进行了相应的应用。特别是对于网络购物其实绝大多数时候你已经掉入了一个陷阱:你有意无意的一次在某购物网站浏览了特定的产品,但是你并真正的意愿要购买,但是事情往往不只是个

11、开始。在你接下来不同的网页浏览中你会发现网页中嵌入的广告都是与你刚刚浏览的是相关,你在不自觉中慢慢的接受的催眠,发觉广告上的产品越来越吸引你,并最终点击广告最终买下某些产品。这就是我们今天研究课题数据挖掘中一种最简单的应用。很长的一段时间以来,日志数据存储总是被人们忽略,觉得这些数据文件有时候实在很鸡肋,并且很占硬盘空间。其实在科技浪潮的迅猛的今天这无疑是一个非常好的机遇,在我们学校的FTP系统中也有大量的积累的日志数据,这些日志数据记录着:使用者的地址、访问时间、停留时间、操作动作、浏览的URL。如果我们针对这些日志文件设计出一套数据挖掘系统,通过结构化的处理从中发现学生和老师使用FTP的一

12、些规律,并进一步针对这些规律提出人性化的教学建议。这无疑会给学生和老师很大的帮助。1.2 国内外研究现状数据挖掘又称为知识发现(KDD)1。KDD一词于1989年举行的第十一届国际联合人工智能学术会议上提出。在这之后,越来越多的专家学者或者是爱好者开始了大范围的讨论和实验,有关数据挖掘的专题讨论会和国际学术会议陆续召开,为数据挖掘的发展指明了方向。1.2.1 国外研究状况 从20世纪末期,计算机的全面普及以及各大高校与科研机构的的专家学者开始提出数据挖掘的可应用前景广大。越来越多的人投身到其中为了能够期望从海量的数据中发现我们有兴趣的规律和知识,以及最重要的用户使用模式。为的是提供数据量化信息

13、给予那些支持研究的企业。促进商业上的兴旺。普遍采用的数据挖掘方式如:从上而下、从下而上、和混合法。并且很多时候通过关联规则、聚类分析、分类和预测等算法来实现结果的预测。更多时候用于商业的产品销售、金融业的数据交互、遗传基因学的发现研究和各种数据分析。1.2.2 国内研究状况我国的数据挖掘因为受到的西方冲击较少,并且互联网和计算机普遍使用较晚。使得我们很大程度上对数据挖掘技术的研究晚于同期的国外。国内的高校也开始了一系列的实现项目,尝试运用我们本身的资源进行可应用的研发像清华大学、浙江大学、还有台湾方面的大学都开始为数据挖掘提升做出了贡献。目前越来越多的引进技术开始应用于实际,我们也开始出了研制

14、出MSMiner(中科院-多策略通用数据挖掘平台),DMiner(上海复旦德门软件-数据挖掘系统)。1.3 本文研究的内容和意义 本文主要研究的内容是基于FTP日志的数据挖掘系统的预处理系统的设计和实现。为了能够使FTP日志的数据挖掘系统提高准确度和速度,预处理系统作为一个为数据挖掘铺路的系统需要对数据进行二次加工,并在这个基础上建立分布式计算框架,重新建立索引数据库。第2章 可行性分析和需求分析2.1 可行性 为了使基于FTP日志的护具挖掘系统能够重于尽量的贴合实际,通过可行性的分析来达到相应目标,分别从实用性价值,技术操作性,外部运行环境,日常管理进行分析评价:2.1.1 实用性价值:实用

15、性就是这项物品是否是能应用在生活中,并且能发挥它自身的价值的体现。通过使用存放在学校FTP的日志数据我们实现了数据的准确真实性和准确性的确定,通过一定时段的有目的使用行为我们确定了系统实用性的目标准则。为了体现实用的互动原则我们采取的抽样科目调查也证实数据结果的真实可靠。2.1.2 技术可操作性这个系统是有我和另外一位同学联合设计和编写,采用了学校FTP站点的数据源,采用使用Java语言的开发平台;使用开源软件组织Apache软件联盟旗下Jakarta子项 lucene作为一个开发搭建关联规则的索引基础,并且借荐分布式计算的模式设计,还有一些关联规则的演算。另一方面在主要算法实现上改良了Apr

16、iori。以上的资源通过学校的图书馆查阅资料和国内外网站的发现,在我们已有知识的基础上进行了创新。并且多士可编写,可操作不会涉及侵权的技术研究。2.1.3 外部运行环境 提供前期研究服务主机主要是我们自己的计算机,但是为了能够提供更多的便利性我们可以把主要服务器架设在实验室,以便在我们离开之后系统还能继续运行服务。一般来说我们的运行环境只需要一台可以连入局域网的x86的计算机。但是由于FTP数据系统的数据量非常庞大我们提出多台闲置机器并联或者是用户协助的机制,在多台实验室的闲置计算机上安装我们的一个软件并借用其资源运算。2.1.4 日常管理 软件需要定期维护和垃圾的清扫为此我们需要一位业余的维

17、护员,这是我们的不足之一。我们选择了在实验室学习的同学做为一名简单维护员,他需要在相应的时间里为软件进行相应的重启服务和数据库日志文件相应清理,当然我们也希望系统在我们走后有人了对其进行研究改善2.2 需求分析2.2.1 软硬件环境需求软件环境:兼容当前主流操作系统 Windows XP/vista/win7等;开发工具eclipse3.6;数据库用MySql;硬件环境:处理器奔腾II;内存512mb以上。2.2.2 用户需求在这里我们目的是为了使用户使用的行为为我们的用户提供人性化的建议。这里主要考虑到学生、老师、和教学FTP的建设人员。如图2.1所示。学生用户使用FTP下载教师的课件的行为

18、产生的原因,哪些比较难的课程导致课程课件短时间进行大量下载,课程之间的相关联性(例如为了完成歌剧课程的了解大量同学回顾了古典历史课程相关课件),同学学习时间分布大量的下载量主要集中在什么时段,学生是否会在考试的前期才进行大量的下载突击学习。老师用户想知道在自己课件上传后哪些的下载量最大,同学不懂的最多从而及时在课堂上进行回顾复习。课件的使用与一些别的科目有较大的关联性后,应该进行联合教学。教学FTP的建设人员对教学FTP的修改主要应该在哪里。进行对应课程连接的页面应该增加更多的关联课程连接方便用户的使用。图2.1 用户需求案列2.2.3 功能需求在数据预处理阶段和建设索引框架时,要满足数据对F

19、TP日志数据挖掘系统的提速与规范的要求: 数据来源的稳定和持续,教学FTP日志要容易获得且有很高研究价值,它满足用户和设计者之间的交流的可能性。数据预处理要能够在比较快速的时间完成数据的整理;实现数据的切割数;要保证数据切割后便于数据的传递分发。 建立索引的过程是是进行数据加工算法运算的重要依据保证数据准确的同时也要兼顾空间和时间的最优选择。数据的规范化是为了满足具体算法在进行相关针对的关联运算时必须要有一种规范化格式,涉及到了用户在接口引用时满足快捷的原则便第3章 FTP日志数据挖掘系统3.1 系统设计的基本原理文件传输协议FTP(File Transfer Protocol)是现在众多小型

20、办公网络或者区域网络中普遍使用。其主要功能是把我们需要的文件从一个主机的硬盘复制到另外一个主机上,我们所研究的校园教学FTP日志就是FTP服务器中的日志文件,这些日志文件是学生用户和教学老师的使用痕迹。如表3.1所示。基于FTP日志的数据挖掘系统是为了能够更好的利用在FTP服务器中的日志文件中所包含的信息通过一定的方法挖找出 一些描述和预测的信息这样有利于我们教学工作的改进。开始时间结束时间源地址源端口目的地址目的端口URl等等2010.5.10,10:16:242010.5.10,10:30:551815181XxRxqxXxx表3.1 FTP

21、日志记录在我们研究中我们的主要目标就是找到其中的数据关联,关联有为简单关联(直接的一种联系)、时序关联(时间上的差异)、因果关联(存在和包含的原因)。这些数据的关联通常要同过分析数据中的关联可信度才能生成,通过寻找关联中最小的可信度,找出最高的可信度关联规则。例如:啤酒销售商对顾客买啤酒时对外包装的上颜色选择的调查中,我们发现外包装不同的同一产品也会影响人们的选购。各年龄层段的人们也有各自不同的看法,但是啤酒商如何选择呢?答案很明显一定会选那些购买产品最多的受众作为目标。在我们对FTP日志信息中每天会有上万条的信息生成数据量很大,我们想要从中挖掘出对我们有用的信息比较困难,这些后就需要我们队数

22、据进行分析:数据预处理;数据挖掘;结果可视化。3.2 系统构想模型 FTP的数据挖掘系统我们提出了最初的系统设想它包括了数据获得;数据预处理;建立分布式数据库;结果可视化。数据获得:指通过网络获取远程的一台FTP日志的文件,由于日志文件每时每刻都在更新,我们可启动自动获取机制获取相关FTP日志数据文件。数据预处理:是对元数据源数据中存在的哪些脏数据(不完整、重复、断裂的数据)进行初步的筛选整理。这样主要是为了提高算法的运行速度,并且提高数据挖掘结果的正确性。 FTP日志数据已经具有一定格式,在对格式的正确分析,通过模糊匹配方法找到我们主要使用的数据,对其它杂乱没有用的数据进行相应的剔除。 对基

23、础数据经过标准化清理和重排后,用新数据建立一个全新数据结构的库文件。新的库文件是我们建立索引库的依据,这样才能在总体上方便我们的挖掘算法实现规范化的挖掘,使结果有很高的统一性和准确性。数据挖掘:是在结构化的库文件的基础上,使用设计好的挖掘算法(主要是算法的关联规则)运算数据。并且得出课程相互间的关联性高低。结果可视化:我们得出的结果只是数据表格,还需要通过可视化处理使得用户有比较直接的感官体验。阳痿早泄这病要对症下药才能治好,有一个中医治这方面的效果很好,他的威信msdf003,我是硬度不够加轻度前列腺炎,他用中药给我治疗将近两个月,目前停药几个月了,现在吃辣椒和喝酒前列腺炎都不会复发了,硬度

24、方面也一直都很好。第4章 数据挖掘中的预处理系统4.1 数据处理预处理作为挖掘系统的优先处理部分数据预处理他关系到了数据业务在处理过程中是否合理;直接影响到处理的速度;最重要的是最终结果的生成数据的准确性。数据挖掘为的是发现数据间存在的直接或者间接的关联,并通过这些关联规则对我们的行为进行修改从而达到提高效率或者说是改善环境的目的。数据的现状,我们要处理的数据是日志型文本状态的数据,由于数据最初设计时候并没有打算以后会有相关的数据发掘的用途,所以数据在很大程度上是一种无目标的简单存放,我们通过对日志的研究发现里面存在大量的无用数据(记录开关机;重复的日期时间;管理员查看行为的数据;用户重复点击

25、同一数据多次记载的项)。4.2 文件获得与总述 由于FTP数据所在的计算机是特定的电脑,如果可以用它作为我们FTP日志挖掘的服务器端肯定会比较便利的直接获得数据这种方法会拖慢这台校园服务器的运行速度,所以我们建立了一个固定获取端在每隔一定时间自动获取数据流到FTP日志的分析主机。如图4.1所示。 图 4.1文件的获得4.3 文件分割器基本设计流程文件分割的目的很简单为了实现计算速度在分布式中的计算我们希望通过多台协作的计算机来对一个巨大的数据包进行运算,但是我们不可能自由的传递小数据到这些计算机,所以在我们系统的主机上需要一个很重要的分割功能。具体说来就像我们要拷贝一个大型超清的电影,但是我们

26、手上只有多个不同容量的较小的优盘。显然我们无法通过正常手段把电影通过优盘传送过去。我们希望通过把电影分割成多个部分,每个部分满足优盘的安全容量这样我们才有可能保存电影。这个过程需要计算每个优盘的容量并且准确的分割电影文件。当然在往后的组装中我们也需要一定的顺序实现数据的安全连接确保电影的完整性。如图4.2所示。文件分割方式有很多种从早期对折序列,到用vc开发的自然代码分割我们看到人们迫切需要一种合理的又不会出现错误的分割出现到新一代pc阶段开始出现大量不同名目的分割器专门用于影视类文件Rmvb的分割器海啸分割器;以及Horse文本类的分割器;还有日常都会用到视频类处理软件Premier都有相应

27、的功能。图 4.2文件分割器工作流程4.4 文件分割的主要方式文件的拆分中考虑的最多的应该是数据的完整性,在数据的分割过程因为数据会产生断裂的现象,这种现象称之为破坏数据。在一定程度上讲破坏数据,就是对数据的丢失(1:在网络的传输过程中丢失;2:系统存储时的丢失;3原数据的不完整)。以上因素是在数据获得前已经存在的数据问题。在我们的处理过程中,所有数据都会在切割的被程序机械的分段这就是我们最客观的数据损坏的过程数据。主要的分割方式有逐行的分割和逐块的分割。如图4.3所示。4.4.1 逐行分割优点:首先我们的数据是以一种行的方式记录的,每一条记录的的字段都是相同的不同的只是记录内容的不同。这样如

28、果我们一行读取的方式进行切割只要区分头尾,并且按照遍历的一般要求就能进行准确的相对应的读取数据块的信息。并且保证了数据最大的完整性。缺点:逐行读取分割是一个完备的方法,但是在现行的硬件基础上,它的可行性并不高。因为我们要在短时间内实现数据的切割和分发,这就要求我们的速度必须要快。但是在时间和空间的交换位置上,我们不可以两者兼得。我们想要达到最深层次的精确,这样会让时间丧失分割的部分过多,这样会造成用户使用上的不便,等待时间过长。4.4.2 逐块分割优点:把大的数据块分成小的的数据块,在对数据分割过程中会有比较大的时间优势,因为块数的分割不需要对数据进行逐条遍历。这样大大缩短了时间,使用户的体验

29、感必会因为时间的延迟而感到不耐烦。缺点:按块来进行分割会使读取数据的电脑有比较大的内存压力,这种压力会体现在本机运行速度减慢,一定程度的读取更可能会造车计算产生死机的现象。另一方面在进行数据分割的过程中一条完整的数据很有可能会被拦腰折断,造成数据的不完整性,会对最后的结果产生影响。在进行优缺点对比的同时,我们发现在现行的网络和用户体验中对速度的要求占了主要方面,所以我们也必须选速度较为快捷的而方法对数据进行处理,我们以分割数据块为方法,同时我们为了能够使分割过程中的数据能最大限度减少出错的几率我们进行相应的而设计。图 4.3文件分割方式4.5 检测器和分割器为了把分割数据时的速度性和稳定性兼顾

30、,还有就是对原数据尽量减少破坏,根据这些原理把数据块把分割器分为两部分:检测器和分割器。4.5.1 检测器的原理检测器:检测每台机器能提供的Java虚拟机大小并返回。扫描目前可提供服务的计算机数,自定义Scaning类返回目前可提供服务的life-computer数量。返回0则无需考虑分机计算,直接根据主机Java虚拟机大小分割。返回数不为0时则进一步获取虚拟机大小。为了保证为一台计算机提供的计算能力不会影响其自身的工作需要,我们通过Get(maxsize)得到这台计算机目前活动的Java虚拟机的内存活动大小。并返回各台计算机n1,n2,n3n+的实际能力。如图4.4所示。图 4.4检测器工作

31、流程4.5.2 分割器个工作原理分割器:对已经获取的到的FTP日志文件进行标记保存。拆分主函数SeparatorFile获取可提供计算机数n+,并根据数量生成相应的拆分文件夹。并标记排列大小,单一主机不执行这一步。生成查分目录后对原数据块进行移动分割,通过Blocknum标记块数,开始进行数据块分割同时完成相应的数据打包压缩。循环写入硬盘,确保数据块完整检测。通过CreateTransferTask把拆分文件地址和大小以及顺序写入数据包头中。生辰如图4.5所示。图4.5文件分割器工作流程通过执行传输任务把相应的任务通过传输服务器传输分发。并确保返回是否收到以及大小确认,出现错误应答重新上传。数

32、据分析处理因为既定的研究目标是课程之间的关联性在分割传输完毕后,我们需要对其中的数据进行特定筛选,只先选出课程名和和主机地址,登陆时间等。如图所示为主要数据处理所有过程。 图4.6数据分析处理主要流程第5章 关于分布式索引数据库5.1 索引库 索引库是一张存有特定信息的表格,很多时候它作为一种中间的媒介起到提升查找速度的依据。人们通过它找到自己需要的特定的信息,并完成信息的查阅,这个过程中最关键的就是速度。5.1.1 索引的来源在计算机以前人们通常用手工记录的方式来对信息进行整理和和建立相关的索引。如老式图书馆的藏书,档案放得档案。这种索引就是最初的索引库来源方式。对于我们的日常理解要实现在计

33、算机中查找信息:这是一个发现的过程,我们最易发现的莫过于在Word的使用中按下Ctrl+F出现的查找与替换:输入关键字,按下“查找下一处”,Word的文档会查找出文段中出现过的符合要求的关键字,并且加以高亮色。我们不会理会它是如何实现查找的,我们关心的仅仅是最终的结果。这种查找信息的方式是简单关键字发现,如果我们把一连串的关键字记忆起来,并用于查找信息这就是索引的计算机内化。5.1.2 建立索引的目的我们为了能够在挖掘算法运行时提高速度的目的,我们通过建立一个标准化的索引数据库,进行数据的标准化整理。最重要是一个分布式的引入,为了能够提高速度和资源的利用率,我们引入了可扩展的分布式操作方式。分

34、布式计算的方式使得我们得以把大数据块的剔除任务分成许多小的数据块,数据块的重新排列最需要的就是计算能力。我们普通的计算机能完成的任务实在是有限,但是通过网络上的多台计算机的并行努力,我们的计算能力可以得到最大的扩展,这对于我们FTP日志数据预处理中无遗有难以想象的好处。5.2 lucene框架的索引库Lucene是一个开放源代码的全文检索引擎工具包,它最初是作者个人发布在个人网站,其后作者把代码贡献给了Apache软件基金会作为Jakarta的一个子项目继续运作。作为一个使用Java写的全文索引引擎,他开始越来越多的被自由运用到各种商业用途中,我们在这里引入Lucene框架页是基于其是一个性能

35、自由度高,可经过人为加工的信息类搜索库,框架的添加使得我们的系统的索引和搜索能力大大增强,还有就是它是一个对我们开放的免费的Java的信息搜索库符合我们的开发使用要求。1:它有其特定独立性可以应用与不同平台。2:在全文搜索引擎中它是一个能实现分块索引,能偶为新加文件提供索引并添加到原索引上的,有利于提高定时需要更新的操作。3:具有面向对象的系统架构对于后期扩展功能比较方便。4:具有自己独立的文本分析接口,索引器通过自主生成的索引文件常见。5.3 lucene框架的搭建我们通过对lucene框架的引入和优化使得它能够适应我们分布式计算后提高数据检索速度的要求。在经过初步的数据整理后我们主要利用了

36、Lucene的数据的倒排以提高检索系统的标准,很多时候我们都需要信息完全、信息检索的响应时间、召回率的要求、精度、和自然程度。5.3.1 建立的过程 我们通过对Lucene中两个最重要的Document和File类的重新布置达到索引的建立目的。Document相当于一个房子的钢筋框架,作为承载的一个主体部分,因此它不需要直接和物理文件接触,使多个不同的物理文件通过接口可以进行并联,Field作为给Document提供服务服务,会对物理文件的特性提供可编写的处理方法,相当于房子的门和窗。Document的含义是文档,在我们的索引库中是一个逻辑性的文件,他可以从不同的物理文件中提出数据添加到同一个

37、Document中,来让Lucene建立相应的索引。如图5.1所示。图5.1 Document一个创建Document的例子:针对我们数据库中主要出现的频繁项集。如表5.1所示。Course AThings: Download 2011-06-1 2011-06-1 2011-06-2 2011-06-2 Course BThings: Download2011-06-2 2011-06-2 2011-06-1 219.222.171

38、.1表5.1 courseA和B这时候我们就需要与有一个Document:doc ,通过Filed接口,新增加add(course课程名)、add(type事务类型)、add(transfer-address)实现一个简单的数据添加。 Filed作为其中一个重要的类库,它是一个灵活的可变对象。我们对它可以进行多种不同方式构建,但最终不会脱离Filed的属性(是否分词、是否索引、是否存档)。对Filed的构造方法我们为了满足FTP数据挖掘的需要,通过Reader接口实现相应课程文件在数据中的读取,然后再通过Store和Index来进行二次数据存储。在这里我们会有个重要的向量数据需要标明就是Ter

39、mVector,它的主要用途是对词条向量的灵活存储提供方便。如图5.2所示图5.2 field运行作为一个索引数据库其中所包含的索引工具(IndexWriter)是为了使把已经构建好的文档加入到索引中,这样可以在多次数据中实现工作量减少的目的。通过私有的Add函数我们对其实现了相应的添加。IndexWriter通常通过maxFiledLength(词条文件夹长度)添加使得我们对数据库重新整合或者是后来数据的引入提供方便。 当然为了实现以上的功能我们还有有一个最重要的逻辑的处理部分,这个就是我们要讲的Segment的概念。Segment作为Lucene中最重要也是最大的的索引单位。每个Segme

40、nt中的文件都有其相同前缀,这样做是为了区分不同分组中的差异。如图5.1所示。图5.3 Lucene索引工作原理通过以上过程我们初步完成Lucene索引数据库的搭建,我们正式利用了Segement可以合并的有点使得我们在分布式计算中的的数据文件可以实现在索引数据库中的重新组合。这样能够确保信息的局部丢失并不会对结果造成太大的影响可以顺利完成基础索引的完成,以确保数据挖掘的正确性。第6章通过数据预处理和关联算法的数据挖掘,我们最终可以得到我们的需求的相关数据,为了便于图形显示我们开发了一个数据台来做为操控整个流程的平台。把我们的在数据挖掘过程中的相关步骤嵌入到控件中运行。并在平台上显示结果。6.

41、1 前台数据控制系统前台控制界面主要的目的就是为了实现各部分功能的可视化操作:数据获得、数据分割、数据预处理整合家里索引库、数据挖掘、知识转化、控制显示。如图6.1所示。图6.1控制实现部分6.2 设计实现为了达到设计目标我们选取了Windows平台下的Microsoft Visual Studio 2008作为设计软件。使用C#语言开发。客户端的开发使用易开发性的同时,也是对我们使用java语言开发的各算法的一种兼容性检测。6.2.1 登陆.主要包括管理员和用户:管理员拥有所有权限(包括电脑管理、课程管理、分布式库建立、课程关联算法运行、结果搜素)。用户有结果显示功能。如图6.2所示。图6.

42、2登陆6.2.2 运行界面设计运行界面中主要包括了:课程管理、分布式库建立、课程相关联算法执行、搜索部分。课程管理为的是对课程进行添加,作为教务系统中存在比较多的课程为了得到在关联算法中的实现数据,我们对相应课程进行添加。目的是为有更好的针对行,也为了减少时间的花费。如图6.3所示。图6.3课程添加分布式库的建立:分布式的数据库建立括预处理的所有主要部分:FTP日志数据的获得、分割文件的分发、整理数据、建立索引库。清理数据按键可以把已存在的错误数据进行清理,建立按键触发数据预处理的运行。进度条显示完成程度。如图所示6.4所示。图6.4建立分布式索引库课程相关联算法运行:与界面与建立分布式基本相

43、同,但是在这个时候它的主要功能是对已经建立好的分布式数据进行关联算法的运行。如图6.5所示图6.5课程关联算法搜索:结果的可视化的我们使用的是JFreechart类库(JFreechart的一个开放的图表绘制类库。它完全使用JAVA语言编写,是为applications, applets, servlets 以及JSP等使用所设计。JFreeChart可生成饼图(pie charts)、柱状图(bar charts)、散点图(scatter plots)、时序图(time series)、甘特图(Gantt charts)等等多种图表,并且可以产生PNG和JPEG格式的输出,还可以与PDF和E

44、XCEL关联。)这里我们生成柱状图同过关联算法运行后生成的数据作为数据引用生成的相关的模型柱状图。如图所示6.6所示图6.6搜索结果柱状图6.3 辅助管理辅助管理包括了:系统管理、电脑管理、帮助。系统管理用于基本的密码修改;电脑管理是实时扫描器的对可以运行分布式数据库的计算机数量以及状态的表现。点击查询出现电脑状态。如图6.7所示。图6.7电脑状态总 结本课题研究的主要是数据挖掘在我们教学FTP日志中的信息挖掘,贴近我们学生的日常生活。主要功能包括了数据的获取、数据预处理模块、数据挖掘、和结果的可视化展示。在这其中我们为程序的相应部件开发出创新功能如:任务定时器、索引数据库的建立、还有算法的优

45、化引入。在整个过程对数据库设计、软件框架的设计、算法的主要流程有了一个比较全面的认识。本课题通过2人团队协作开发,并最终连接生成。系统在本质上是一种对数据挖掘系统的研究,存在许多缺陷需要完善如:相应的用户意见反馈模块、关于数据处理过程中的网络掉线如何处理。在数据挖掘的应用越来越广泛之际,特别是在我们的日常生活中存在大量未可知的有用信息有待我们发现,在长久以来数据挖掘一直都是被外国企业和大公司所主导的,我们中国的许多公司只能通过购买知识来进行商业上的应用开始。我也希望以后能通过不断地学习讲来有机会从事的数据挖掘的工作中去。附录附录一定时检测电脑是否存活public void run() List

46、 b=new ArrayList();try b.addAll(dataJDBC.ComputerIsLive(); catch (Exception e) e.printStackTrace();for(int i=0;i<b.size();i+)try FTPClient client = new FTPClient();client.connect(b.get(i).toString(),2221);client.login("admin","admin");client.disconnect(true);System.out.println

47、("正确"+b.get(i).toString();dataJDBC.UpdateComputer(b.get(i).toString(),1); catch (IllegalStateException e) / TODO Auto-generated catch blocke.printStackTrace();try System.out.println("1");dataJDBC.UpdateComputer(b.get(i).toString(),0); catch (Exception e1) / TODO Auto-generated ca

48、tch blocke1.printStackTrace(); catch (IOException e) e.printStackTrace();try System.out.println("1");dataJDBC.UpdateComputer(b.get(i).toString(),0); catch (Exception e1) e1.printStackTrace(); catch (FTPIllegalReplyException e) e.printStackTrace();try System.out.println("1");dataJ

49、DBC.UpdateComputer(b.get(i).toString(),0); catch (Exception e1) / TODO Auto-generated catch blocke1.printStackTrace(); catch (FTPException e) e.printStackTrace();try System.out.println("1");dataJDBC.UpdateComputer(b.get(i).toString(),0); catch (Exception e1) e1.printStackTrace(); catch (Ex

50、ception e) e.printStackTrace();文件动态分割器private long getBlockNum(long blockSize)/ 取得分块数 long fileSize = FileSize; if (fileSize <= blockSize)/ 如果文件的大小小于分割的大小就只能分割为一个 return 1; else if (fileSize % blockSize > 0) return fileSize / blockSize + 1; else return fileSize / blockSize; public List<Stri

51、ng> separatorFile(String fileAndPath, String currentPath) throws Exception/ 折分文件主函数 int y=-1; List<String> list = new ArrayList<String>(); getFileAttribute(fileAndPath);/ 将文件的名及大小属性取出来 System.out.println("FileSize:" + FileSize); OperatingSystemMXBean osmxb = (OperatingSystem

52、MXBean) ManagementFactory.getOperatingSystemMXBean();MemoryMXBean instance=ManagementFactory.getMemoryMXBean();longblockSize=(long) (instance.getHeapMemoryUsage().getMax()*0.95);/防止内存溢出的代码 BlockNum = getBlockNum(blockSize);/ 取得分块总数 System.out.println("BlockNum:" + BlockNum); / System.exit(

53、0); if (null != currentPath && !("").equals(currentPath) System.out.println("创建拆分文件目录"); this.createFolder(currentPath); if (BlockNum = 1)/ 如果只能够分一块,就一次性写入 blockSize = FileSize; long writeSize = 0;/ 每次写入的字节 long writeTotal = 0;/ 已经写了的字节 String FileCurrentNameAndPath = null; for (int i = 1; i <= BlockNum; i+) UUID uuid = UUID.randomUUID(); if (i < BlockNum) writeSize = blockSize;/ 取得每一次要写入的文件大小 else wri

温馨提示

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

最新文档

评论

0/150

提交评论