数据挖掘深入思考

上传人:ba****u 文档编号:129426457 上传时间:2022-08-03 格式:DOCX 页数:7 大小:31.38KB
返回 下载 相关 举报
数据挖掘深入思考_第1页
第1页 / 共7页
数据挖掘深入思考_第2页
第2页 / 共7页
数据挖掘深入思考_第3页
第3页 / 共7页
点击查看更多>>
资源描述
数据挖掘研究现状:1数据挖掘的应用越来越广泛,金融、医疗、电信、教学、零售、诈骗、 安全隐私等各个方面;2近年来数据挖掘的研究热点:文本挖掘,Web挖掘(例如在云平台的应用),数据挖掘算 法、数据挖掘与数据库系统的集成(数据挖掘系统的理想体系结构是与数据库系统的紧密耦 合)、对不同数据形式的处理、异构数据的处理网络本身是一个巨大的数据库,Web挖掘是一个巨大的挑战,Web上挖掘潜在的、有用的信 息是很有应用价值的,Web又是是一个特殊的数据库,相对于传统的单个数据库,其数据类 型不同,及存在结构化数据,也存在半结构化数据:图片、文本,怎么样实现从Web中挖 掘有用的信息是关键。我要研究的内容:1、参照已有的船舶设计资料(已有的知识资源),对船舶设计知识进行分类(自定义),分 类完成后按照知识内容和知识结构存到不同的数据表中,数据表是存储在数据库中的2待挖掘的知识资源(Web知识资源),Web爬虫是Web挖掘中一种有效的实现方式,通过爬 虫挖掘的知识是在我们定义的范围内进行选择的,而且通常采取的事基于文本的分析算法3通过Web爬虫采集来的知识按照内容和结构(属性)(数据表的类目是自定义的)存到不 同的数据表中,然后将这些数据表存储在数据库中,展示的时候根据表和字段查找出来数据表中的知识类目是自定义的,分类是粗糙的,再通过可行的数据挖掘算法对这些数 据进行分析是必要的也是值得研究的,从而提炼出更有价值的结论、关系等知识,要进一步 研究的是如何对这些知识进行分析,达到知识主动推送的目的。数据挖掘是在没有明确假设的前提下去挖掘信息、发现知识,所得到的信息常常是预先 未知的、也是很难预料到的,甚至是与人的直觉相违背但又非常有用的。在用户对知识进行浏览、利用、共享等过程中,积累了大量的历史数据,充分运用数据 挖掘技术可以实现对用户浏览记录、兴趣等进行关联挖掘分析,从中挖掘出潜在的兴趣模式 进而预测用户需求:如在关联挖掘中发现很多用户浏览/下载A类船舶设计知识的同时也浏 览/下载了 B类设计知识,那么对浏览/下载A类设计知识的用户,可以将B类设计知识推送 给他。对知识的主动推送的实现过程中,用户的行为挖掘是关键,主要是运用关联规则挖掘技 术在待挖掘的数据库(web数据库、已有资源数据库),根据挖掘任务进行行为模式的挖掘,关联挖掘算法是至关重要的,关联挖掘的结果就是从用户历史数据中挖掘出用户兴趣模式 群。当用户登录进入我的“个人中心”时,系统从历史信息挖掘出用户未来信息需求,依据 数据挖掘结果形成用户兴趣模型,并将符合用户需求的知识推送给用户,同时将用户对知识 资源访问的记录以日志方式记录入库,后台再通过对这些积累的日志的分析关联挖掘出更新 模式库的关联规则。关联规则算法与爬虫技术的结合关联规则算法:Apriori经典算法(算法描述,存在瓶颈:耗时、繁琐)Apriori更新算法FUP(算法描述)协同的体现:主要体现在交流所展现的知识的浏览权限上,通过创建项目讨论组的形式,如 果是该项目组的组员,就可以进来参与讨论与知识共享,否则就没有权限小论文提纲:题目:面向船舶设计的Web数据挖掘研究1、引言(船舶设计知识、数据挖掘简介,数据挖掘的优势)2、数据挖掘的过程3、Web数据挖掘实现方式:网络爬虫,3.1网络爬虫的运行原理3.2网络爬虫运行过程(与船舶设计知识结合的过程图),爬虫是根据知识内容的不同以及结 构的不同定制的3.3网络爬虫代码,包含算法的讲解重点:网络爬虫通过文献阅读发现,网络爬虫主要是运用在电子商务网站知识,例如对产品价格、购买 数量、商品评论等信息的搜集与展示,将网络爬虫技术运用在船舶设计知识是一个很值得研 究的课题。网络爬虫是一个自动抓取网页的计算机程序,首先需要我们设定爬虫选择范围,根据设定的 条件抓取相应网站上的网页,从一个或若干初始网页的URL开始,连续不断地抽取正在爬 虫正在爬行所在页面上的新URL地址放入到待抓取队列,直到满足条件停止。首先选择比较有权威的船舶设计知识相关网站(如中国船舶网、*船舶设计研究院),对爬 虫设定爬行范围,然后主要采用基于文本的挖掘算法,对爬虫设定选择条件,自动搜集已选 主流船舶设计网站上的设计知识信息或资讯,将设计信息有规律地组织起来(以数据表的形 式存在于后台数据库中),集中管理,分类展示,为用户提供一个垂直搜索的展示模式。垂 直搜索就是为了满足某些塔顶人群的需求,在某一专业领域内提供的定制的信息和相关服 务。1 public void crawl() throws Throwable while (continueCrawling() CrawlerUrl url = getNextUrl();/获取待爬取队歹U中的下一个 URLif (url != null)printCrawlInfo();String content = getContent(url) /获取 URL 的文本信息/聚焦爬虫只爬取与主题内容相关的网页,这里采用正则匹配简单处理10if (isContentRelevant(content, this.regexpSearchPattern) saveContent(url, content /保存网页至本地1112/获取网页内容中的链接,并放入待爬取队列中13Collection urlStrings = extractUrls(content, url);14addUrlsToUrlQueue(url, urlStrings);15else 16System.out.println(url + is not relevant ignoring .;171819/延时防止被对方屏蔽2023closeOutputStream();Thread.sleethis.delayBetweenUrls);212224getContent 、 isContentRelevant 、 extractUrls 、数由 getNextUrl 、addUrlsToUrlQueue等几个核心方法组成(需要弄懂)25 public void crawl() throws Throwable 26 while (continueCrawling() 27 CrawlerUrl url = getNextUrl();/获取待爬取队歹U中的下一个 URL28 if (url != null) 29 printCrawlInfo();30 String content = getContent(url) /获取 URL 的文本信息3131 /聚焦爬虫只爬取与主题内容相关的网页,这里采用正则匹配简单处理32 if (isContentRelevant(content, this.regexpSearchPattern) 33 saveContent(url, content /保存网页至本地353734 /获取网页内容中的链接,并放入待爬取队列中Collection urlStrings = extractUrls(content, url);38addUrlsToUrlQueue(url, urlStrings);39else 40System.out.println(url + is not relevant ignoring .;414243/延时防止被对方屏蔽44Thread.sleethis.delayBetweenUrls);454647closeOutputStream();48整个 函数由 getNextUrl 、 getContent 、 isContentRelevant 、 extractUrls 、addUrlsToUrlQueue等几个核心方法组成49private CrawlerUrl getNextUrl() throws Throwable 50CrawlerUrl nextUrl = null;51while (nextUrl = null) & (!urlQueue.isEmpty() 52CrawlerUrl crawlerUrl =this.urlQueue.remove();5354/doWeHavePermissionToVisit:是否有权限访问该URL,友好的爬虫会根据网站提供的Robot.txt 中配置的规则进行爬取55/isUrlAlreadyVisited : URL是否访问过,大型的搜索引擎往往采用BloomFilter进行排重,这里简单使用HashMap56/isDepthAcceptable:是否达到指定的深度上限。爬虫一般采取广度优先的方式。一些网站会构建爬虫陷阱(自动生成一些无效链接使爬虫陷入死循环),采用深度限制加以避免57if (doWeHavePermissionToVisit(crawlerUrl)58& (!isUrlAlreadyVisited(crawlerUrl)59& isDepthAcceptable(crawlerUrl) 60nextUrl = crawlerUrl;61/ System.out.println(Next url to be visited is + nextUrl);626364return nextUrl;6566private String getContent(CrawlerUrl url) throws Throwable 67/HttpClient4.1的调用与之前的方式不同68HttpClient client = new DefaultHttpClient();69HttpGet httpGet = new HttpGet(url.getUrlString();70StringBuffer strBuf = new StringBuffer();71HttpResponse response = client.execute(httpGet);72if (HttpStatus.SC OK = response.getStatusLine().getStatusCode() 73HttpEntity entity = response.getEntity();74if (entity != null)75BufferedReader reader new BufferedReader(76new InputStreamReader(entity.getContent(), UTF-8);77String line null;78if (entity.getContentLength() 0)79strBunew StringBuffer(int) entity.getContentLength();80while (line = reader.readLine() != null)81strBuf.append(line);82838485if (entity != null)86entity.consumeContent();878889/将url标记为已访问90markUrlAsVisited(url);91return strBuf.toString();92对于垂直型应用来说,数据的准确性往往更为重要。聚焦型爬虫的主要特点是,只收集 和主题相关的数据,这就是isCon tent Relevant方法的作用。这里或许要使用分类预测技术, 为简单起见,采用正则匹配来代替。其主要代码如下:Java代码93 public static boolean isContentRelevant(String content,94 Pattern regexpPattern) 95 boolean retValue = false;96 if (content != null)97 /是否符合正则表达式的条件98 Matcher m = regexpPattern.matcher(content.toLowerCase();99 retValue = m.find();100 101 return retValue;102 extractUrls的主要作用,是从网页中获取更多的URL,包括内部链接和外部链接,代码如下:Java代码103 public List extractUrls(String text, CrawlerUrl crawlerUrl) 104105106Map urlMap = new HashMap();extractHttpUrls(urlMap, text);extractRelativeUrls(urlMap, text, crawlerUrl);107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150return new ArrayList(urlMap.keySet();/处理外部链接private void extractHttpUrls(Map urlMap, String text) Matcher m = httpRegexp.matcher(text);while (m.find() String url = m.group();String terms = url.splita href=);for (String term : terms) / System.out.println(Term = + term);if (term.startsWith(http) int index = term.indexOf();if (index 0)term = term.substriOig(index);urlMap.put(term, term);System.out.printHyperlink: + term);/处理内部链接private void extractRelativeUrls(Map urlMap, String text,CrawlerUrl crawlerUrl) Matcher m = relativeRegexp.matcher(text);URL textURL = crawlerUrl.getURL();String host = textURL.getHost();while (m.find() String url = m.group();String terms = url.splita href=);for (String term : terms) if (term.startsWith(/) int index = term.indexOf();if (index 0)term = term.substriOig(index);String shttp:/ + host + term; urlMap.put(s, s);System.out.printRelative url: + s);151152 如此,便构建了一个简单的网络爬虫程序,可以使用以下程序来测试它:Java代码public static void main(String args) try String url =;Queue urlQueue =new LinkedList();String regexp =java;1000L,urlQueue.addnew CrawlerUrl(url, 0);NaiveCrawler crawler new NaiveCrawler(urlQueue, 100, 5, regexp);/ boolean allowCrawl = crawler.areWeAllowedToVisit(url); / System.out.println(Allowed to crawl: + url + + / allowCrawl);crawler.crawl(); catch (Throwable t) System.out.println(t.toString(); t.printStackTrace();153154155156157158159160161162163164165166167168169
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!