登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 外文翻译 > 电子信息类 > 通信工程 > 正文

基于hadoop平台的分布式网络爬虫研究与实现外文翻译资料

 2022-10-24 22:10:01  

英语原文共 9 页,剩余内容已隐藏,支付完成后下载完整资料


摘要

通过网络迅速和广泛的扩散的信息增加了大量的非结构化的自然语言文本资源。在过去十年中人们对发现、访问和分享这样一个庞大的知识资源表现出了极大的兴趣。出于这个原因,对于许多商业和研究领域在合理的时间内处理非常大的数据量成为一个重大的挑战,一个至关重要的需求。近年来,分布式系统、计算机集群和并行计算模式已经越来越多地应用于,因为他们在数据密集型环境使计算性能显著改善,如大数据挖掘和分析。自然语言处理,尤其是文本注释的任务和关键特征提取,是一种具有高计算要求的应用领域;因此,这些任务可以利用并行体系结构的明显优势。本文提出一种分布式框架爬行网络文档和自然语言处理任务并行的方式运行。系统是基于Apache Hadoop生态系统及其并行编程模式,称为MapReduce。具体,我们实现了一个MapReduce改编的门应用程序和框架(一种广泛使用的开源工具文本工程和NLP)。验证还提供从多节点的Hadoop集群中的web文档中提取关键词和短语的解决方案。对网页和文档的真实语料库进行了性能可伸缩性的评估。

1.介绍

现今信息社会处理非常大的数据的存储库 (公共和私人数据的形式,包括人工和自动生成的内容)。在2014年由由MC数字宇宙(EMC)发起,由国际数据公司(IDC)统计报告:数字宇宙每两年翻一番,并且从2013年的4.4字节开始,到2020年规模将达到40泽字节(即。40万亿G字节)。由于网络的不断扩张、物联网及相关信息技术、信息与通信技术世界,因此数字用户的经验很大程度上被用数据驱动的方法来提取和管理知识所影响。

对大量数据的访问打开了新的视角和挑战。实际上,大数据这个词不仅指大小,但也意味着其他方面(大数据中总结4 V范式:体积,品种、速度和准确性)等数据的可靠性和一致性,以及数据编码多种异构格式,往往缺乏互操作性。

所有这些原因,目前红外工具和应用程序必须能够规模数据集的兴趣,在大多数情况下,网络规模。我们正在面临日益增长的需求和要求,有效地处理大量数据,信息的数量,可以存储和分析正迅速增加。此外,约85%的数字信息在互联网上以非结构化形式[2]。

这是一个具有挑战性的应用领域自动信息检索(IR)的解决方案。实际上,注释和提取高水平特色已成为极其费时和低效的操作是手动完成的。无论如何,从文本中提取信息的能力是现在要求从市场来提高效率和竞争力。

一个可行的方法来处理大数据处理以更有效的方式是“分而治之”的概念所代表的[3]。基本思想是把一个大问题分割成更小的子问题,在某种程度上,这些子问题是独立的,它们可以被不同的线程处理相比。这方面,同时与多处理器体系结构和网络的发展速度,导致分布式体系结构和并行计算模式的应用到大数据挖掘和处理。实际上,单一CPU-based甚至多核心CPU-based算法显示不够快速数据处理等应用领域信息技术[4]。

另一方面,典型的并行编程的缺点是非常低级语言的使用以及程序员来处理通信和同步的必要性问题[5]。并行解决方案也适用于搜索引擎和索引系统;例如,按照(我自己的搜索引擎)[6]平台是专门设计用于运行在并行体系结构,利用文档分区方式来表述数据并行处理技术。摩斯使用任务并行和方式来表述数据并行处理方法增加对数据存储和计算资源的使用效率。弹性的搜索是最近的一个开源的分布式搜索引擎,设计为可伸缩,接近实时的能力和提供全文搜索功能[7]。

集群并行计算模型的开发和商品连接的计算机表示一个具有成本效益的解决方案来提高时间表演大数据处理。几个提议的解决方案中,Apache Hadoop生态系统最近聚集相当分散的兴趣。它被设计来支持分布式应用、大规模数据处理和存储,提供高可伸缩性。数据访问和管理依赖于Hadoop分布式文件系统(HDFS),建模在Google文件系统——GFS[8]。MapReduce编程范式是Hadoop的HDFS文件系统的核心。它提供了一个简单、透明的方式为程序员编写应用程序并行执行在商品硬件集群。

NLP技术允许自动提取机读信息从非结构化自然语言数据和知识,这是在许多应用领域的基础上,如:理解和监督分类的文本文档[9],内容提取[10],推荐设计工具和决策支持系统,查询扩张[11],提问时间框架和情感分析。最后一类是捕获最近越来越感兴趣,因为它代表一个最广泛使用的技术方法的了解用户的行为在社交媒体监测,看来矿业和目标市场营销。

NLP是数据密集型应用领域拥有大量的计算需求和日益增长的复杂性,可以受益的分布式框架和并行编程模式,假设容错机故障。实际上,自从NLP算法产生的结果可能非常耗时,至关重要的是,从故障中恢复为了不失去中间计算结果。NLP程序通常是在一个不同的插件和工具的管道执行负责一个特定的任务。最密集的任务之一是文本注释,它被定义为添加结构化语言信息的过程(语法、形态和句法功能注释的单词和短语)[12]自然语言数据。

文本注释是更高层次的基础任务提取关键词和关键词等,这被定义为一组单个词的识别或小短语可以描述文档的一般主题[13]。关键字注释内容广泛用于提取和总结,为了生产机器可读的语料库,以及构建基于内容的多方面的搜索查询。目前,大部分的web文档还没有分配任何关键字或关键词。然而,有必要设计和实现高效和可扩展的自动化解决方案,因为人工注释结果是一个高度不仅费时而且效率不高的过程。当前集成NLP架构往往容易拥堵信息相关的问题和损失[14]。几项研究在文学展示现有的NLP工具和框架并不适合处理非常大的全集,因为他们的主要设计重点并不是面向可伸缩性[15]。

本文提出了一种扩展和改进版本的工作[16]。该系统允许通用NLP的执行应用程序,通过使用开源GATE4 APIs [17]通过执行MapReduce多节点的Hadoop集群。本文的组织结构如下:第二节概述的相关工作和国家艺术所涉及的主要研究领域,在第三节,提出系统的国内外发展状况和我国国情分析了势在必行;描述在第四节中,系统的验证报告,进行真正的集团奥拉在线检索。最后,第五部分是结论和未来的工作注意事项。

2.相关工作

自动关键字提取的任务处理自动注释有关,局部从文本中单词和短语的文档[18]。这个活动,这是与NLP方法紧密相连,最近的文献中一直得到广泛的研究。现有的解决方案通常分为四类,根据不同的处理方法:统计,语言、机器学习和混合方法[19]。统计方法通常基于估计的简单的特性(如、条款位置,频率、POS-tag共存,红外光谱的相关措施,如TF-IDF[20])和更复杂的模型(如。贝叶斯网络,再采用[21])。NLP技巧基于语言解决方案的基础,通常对统计方法提供更准确的结果,尽管他们计算更昂贵的[22]。

语言的方法包括词法分析,语法分析,利用语义特征[23]。机器学习方法治疗关键字提取任务作为一个监督学习问题,他们使用不同的技术,如朴素贝叶斯算法[24],遗传算法,最小二乘支持向量机(二)[25]。混合方法依赖于两者的结合前面提到的解决方案,可能的启发式知识像注释列表、地名表,黑名单[26]。基于POS-tag过滤[27]。训练数据集和语料库可以共同使用外部资源,例如词汇知识存储库(维基百科[28],DBpedia等等)。图论方法通常从输入文档中提取图并使用一个基于排名函数来确定节点的相关性作为关键术语[29]。

他们已经被证明能够有效地在自然语言数据结构信息和关系模型。神经网络被用来设计关键词[21]和[30]关键词提取系统。基于主题聚类用于内容提取和文本摘要方法;这通常涉及将候选关键词分组为主题或领域[31、32]。

并行计算应用NLP任务研究自90年代:涌和摩尔多瓦[33]提出了平行的基于内存的解析器称为平行,语义网络上实现阵列处理机(吸附)。万。娄伊泽[34]提出了一种并行解析方法依赖于一个工作窃取多线程策略在共享内存的多处理器环境中。Hamonet人意识到Ogmios[15],平台内的专业领域文档注释一个分布式语料库;在这种情况下,扩展功能提供分发数据分布式处理(作为替代方法)。系统提供NLP功能如单词和句子分割、命名实体识别、词类和句法解析。金达尔等。[5]开发了一种基于并行NLP系统学习Java(约翰逊)模型[35](NLP应用程序开发平台),并使用Charmthorn;thorn;[36]作为并行编程范式。Koshik[37]这个多语言NLP平台设计了大型规模和自然语言查询非结构化文档Hadoop-based集群分布。它支持多种类型的算法,比如文本标记,依赖解析器和共同引用的能手。

使用Hadoop分布式体系结构的优势和它的MapReduce编程模型能够有效地通过向集群添加廉价的硬件规模。

商业工具也被提出:信息技术雷达是一种软件解决方案实现在Hortonworks Sandbox Hadoop上NLP和情绪分析的分布。Beemoth是一个开源平台,基于Apache Hadoop大规模文档处理,采用第三方NLP工具(包括门、Tika和UIMA)。GATECloud[38]是GATE软件套件的适应云计算环境中使用PaaS的范例。

提出了其他并行计算环境: Spark框架[39]最初一直在伯克利加州大学开发的支持应用程序实现无环数据流模型(如迭代算法和应用程序需要低延迟数据共享进程)。Spark介绍编程转换弹性分布式数据集(抽样)[40],这是只读集合的对象分布在集群的机器。容错是重建丢失的数据依赖家族提供的信息(不需要数据复制)。抽样可以在内存存储数据,以及定义持久性策略。Gopalani和Arora[41]有火花和Hadoop表演在k - means聚类算法相比,显示出Spark优于Hadoop在不同的集群配置。

3. 系统架构

该系统旨在执行一个通用的NLP应用真实语料在分布式体系结构。开源门嵌入式Java api用于执行NLP的任务。本文的具体设计案例POS-annotated从非结构化文本中提取关键词和关键词。然而,其他门应用程序可以执行,用非常小的修改代码,为了正确地设置所需的输出特性,根据不同的用例可能会改变。开放源码Apache Hadoop框架已经选择的实现一个高效、可扩展的解决方案,以提高性能对单个节点的架构,也提供数据完整性和故障处理。HDFS文件系统被安装在多节点集群商品(在第四节将提供更多细节)。通常情况下,集群是由一个主节点,将任务分配给不同的客户(数据节点),监督他们的执行进展并处理数据失败。此外数据节点负责数据存储。该系统架构的概述是图1中所示。

MapReduce编程范式用于并行化爬虫工作,NLP的执行任务和最终的输出在外部SQL数据库。Theproposed架构作为输入接收两个绝对文件路径:第一个点位置的本地文件系统上门所需应用程序和插件存储;另一个点在一个文本文件包含种子的url抓取模块。不同的模块异步工作;事实上,爬行阶段和关键字/关键词提取过程可以独立计划和执行。

最后,一个专门的程序存储在外部SQL数据库中提取关键词和关键词。整个系统架构是在Java中实现。在接下来的部分,描述将遵循的主要模块构成拟议的框架,列出如下:

网络爬虫模块负责爬行网页和文档,包含用户定义的种子从一个输入文本文件的url。

关键词和短语器模块主要负责两个操作。首先是MapReduce环境中上门所需应用程序的执行和后续的存储在HDFS中提取关键词和关键词。第二个操作是在相应的领域语料库,通过计算TF-IDF相关性函数,对关键字和关键词的相关性估计,这是一个信息检索中广泛采用的度量。

数据库存储模块最后储存提取到的关键字,关键词和相应的元数据到外部SQL数据库。

我们正在计划不久提出系统的源代码发布,与开源许可证。

3.1. MapReduce

让我们首先回忆MapReduce编程范式的基本原则。更全面和详细的参考,请参阅[42、43]。继承的basicconcepts函数式编程,MapReduce的基础的想法是要执行的过程划分为更小的工作,由映射器和减速器计算原语。映射器和还原剂实现map和reduce函数,分别定义要执行的特定的原子任务的输入数据。

根据HDFS块大小,Hadoop分区输入数据,分成固定大小的部分(默认设置为64 MB)。MapReduce工作分配一个地图任务为每个部分。基本的数据结构在MapReduce是由键值对所描述。实际上,输入和输出的map和reduce函数是由键值对构成,可以任意定义为数值,字符串,或更复杂的对象,比如数组,列表等。Map函数生成,作为一个中间输出,代表逻辑记录的键/值对输入数据来源(例如,假设它是一个数据库,那么它可以是一个文本行中输入一个文本文件,或一行)。随后,一种洗牌分类过程将合并与相同键相关的中间值。Reduce函数/相位中输入的排序对(它被定义为一个特殊的图输出键),执行输入数据所需的处理容量。整个过程可以总结为以下符号[36]:

Map: (k1, v1) - list{k2, v2}

Map: (k1, v1) - list{k2, v2}

Reduce: (k2, list{v2}) - list{k3, v3}

MapReduce的设计介绍了一个复杂性参与共同并行的管理框架的概念。这允许程序员只关注正确定义的map和reduce函数,而低水平约束(如并行化、工作分配和通信问题在集群节点)之间是完全透明和自动管理的Hadoop生态系统。无论如何,假设整个计算过程可以看作一种执行问题,通过一个键/值的方法可以解决。

JobTracker和TaskTracker负责管理和分配任务和数据块的不同节点。JobTracker守护进程决定哪些文件流程和每个节点分配任务; 它也在运行时监控所有任务TaskTrackers运行原子任务,并且向JobTracker发回任务进展的报道。如果任务失败,JobTracker将会根据不同的Tasktra

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[152339],资料为PDF文档或Word文档,PDF文档可免费转换为Word

您需要先支付 30元 才能查看全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图