论文部分内容阅读
随着国内物流行业的蓬勃发展,在线物流平台的营运方式成为主流,每天都会有海量的货运信息和承运信息发布到各个承运平台上,而对互联网上的数据进行抓取和分析,也成为比较常见的商业行为。在实习企业惠龙易通的集配平台内,利用人工构建包装器的方式对物流站点进行数据抓取,但由于手工构建包装器繁琐且难以维护,因此,在现有系统的基础上,降低人工投入、提高包装器构建的自动化程度是课题研究的主要问题。论文针对企业现有系统的缺点和问题,通过对爬虫技术、WEB信息抽取技术以及分布式技术的研究,结合物流承运平台页面结构复杂、重复的特点,设计并实现了一个包装器规则自动化构建、根据规则自动采集数据,对采集的数据去重、存储的分布式信息抽取系统,并在采集的数据的基础上搭建了一个基于近义词语义转换的检索服务。论文的主要工作如下:(1)物流信息抽取规则的自动化构建:针对物流平台页面列表多且结构复杂的特点,对“标签路径”算法进行了改进,通过优化“标签路径比”的计算方式,提高正文节点和噪音节点的区分度,从而提高了标签提取的准确度;针对物流术语表达不规范的问题,将TD-IDF算法提取的特征值转化为国家颁布的物流标准术语,减少特征值歧义,从而提高VSM算法对页面主题相似度计算的准确度;针对标签路径无法直接提取页面数据的问题,将CSS选择器和正文列表的标签路径进行结合,设计并使用“标签路径类选择器”的方式生成了抽取规则,使标签路径可以准确地表示每一个元素。(2)分布式物流信息抽取系统设计:搭建了基于Scrapy-redis的分布式爬虫系统。应用抽取规则对某一个站点进行抓取时,为了使爬虫停留在当前站点内进行爬行,对框架内“爬行策略”组件进行了重写,设计“异源过滤”的策略过滤异源URL地址;为了减少“待爬取队列”管理对内存的开销,利用“布隆过滤器”对待爬URL队列进行过滤;为了降低细微表述差异对去重的影响,使用局部敏感哈希算法“SimHash”对物流信息进行去重,并将该算法的特征值提取过程和TD-IDF算法进行合并,并增加语义特征。通过对相关模块的重构,提高了原爬虫框架的工作效率。(3)分布式抽取系统的实现及性能测试:使用Python对包装器生成和爬虫系统进行开发,使用Node.js开发可视化网站界面。对中国物通网进行实际爬取分析,并对抓取过程在分布式环境及单机环境中进行测试比较。测试结果表明,优化后分布式系统整体运行效率比之前提高了11%;修改后的待爬队列去重误判率仅有0.047%。整个系统的运行效率可以达到预期目标和效果。最后根据测试结果,对系统中存在的不足提出了下一步的优化方向。