论文部分内容阅读
新闻聚类系统诞生于互联网的浪潮中,是个性化新闻推荐引擎的核心部分,聚类的结果直接影响到推荐的效果。一个完整的新闻聚类系统包含了网络爬虫模块,负责数据源的获取;正文提取模块,负责数据清洗,去除噪音;聚类算法模块,负责新闻的最终分类。优质的数据源是算法有效运行的必要条件,也是实际应用中举足轻重的环节。如何设计一个抓取速度快而且网页重复率低的网络爬虫以及文本提取准确率高的正文提取算法一直是研究的热点。本文正是在此背景下,以实现一个实际可用的新闻聚类系统作为研究目标,致力于寻找高效的网页去重算法和精确的正文提取算法。本文的主要工作内容包括:首先,本文针对传统的网络爬虫架构进行了深入分析,并针对网页去重的机制进行了着重解析。在传统去重策略中,多数是在网页下载之前对URL进行去重,这样能够过滤掉相同URL的网页。但是在新闻推荐系统中,除了有大量的第一手网页,同时为数不少的二手新闻存在于互联网,比如各大网站转载其他网站的新闻。在这种情况下,虽然URL不同,整个页面也是不同的,比如由于各个网站插入的广告不同,但是完全有可能网页的正文内容是一样的。而对于读者来说,是不希望看到这种新闻内容一致的网页。针对这种情况本文给出了一种解决办法,对于下载的网页进行第二次网页去重。对于原始的HTML网页,提取出新闻标题,通过哈希检测是否存在相同标题从而丢弃相同内容的网页。通过大量实验验证了算法的有效性。在已有的去重策略基础上平均提升0.48%的去重率。其次,针对已有的正文提取算法进行了介绍,在基于统计的正文提取算法的基础上提出了基于统计与标题和正文位置关系的正文提取算法。该算法将标题的作用考虑在内,首先将<title>标签中的文本作为基准,将网页形成的DOM树中的元素与其进行比较,并将各个元素的属性考虑在内,找出最有可能的文本内容作为新闻标题。在标题确定的基础上,根据标题和正文的关系缩小了寻找正文的范围,进而提升了提取正文的正确率。并且在正文提取结束后,通过标题和正文的相似性再次验证标题的正确性,从而可以达到标题和正文互相修正的效果。通过大量的实验验证了算法的有效性,算法的平均正确率达到了97.83%,远远高于传统的正文提取算法。最后,在已有的网络爬虫和正文提取的基础上设计实现了新闻聚类系统。针对大量网页的处理设计了分布式架构,并且在Hadoop平台上实现了MapReduce模式的开发任务。整个系统包含了5个不同的MapReduce任务,分别为分词、去停用词、统计词频任务,计算每个网页的单词数目任务,计算TFIDF任务,建立网页向量任务和K-Means计算任务。每个任务在前一个任务结束后开始执行。通过轮廓系数和K的关系确定了K的取值,并且根据系统的可用性决定了一个在可接收范围内执行结束的迭代次数。通过大量的实验验证了系统的有效性和实用性,并手动检测了聚类的结果,达到了实际应用的要求。