APP下载

基于智能移动终端的农产品供需对接系统

2015-11-30蔡昭权庄冬梅

惠州学院学报 2015年3期
关键词:爬虫帖子供需

李 慧,蔡昭权,徐 涛,胡 辉,庄冬梅

(惠州学院 计算机科学系,广东 惠州 516007)

1 引言

我国的农业生产主要是农户小规模分散经营,这与我国大市场大流通的要求相矛盾,对于农村来说,市场消息相对闭塞,农民生产的产品多数在本地的农贸市场进行交易,这就容易造成市场过度饱和,农产品价格降低甚至造成大量堆积的严重后果[1]。

目前国内农产品交易信息化普遍存在以下问题:(1)大部分农产品市场信息网站信息量大且杂,主要面向批发商到经营者,不能直接惠及农民[2];(2)大部分农产品网上交易平台提供了商品对接,但使用不方便,查找信息不够智能,主要面向大农户需求[3];(3)基于中国移动等运营商的农业资讯平台存在收费高和信息更新速度慢等问题,并且供需信息不能全部群发[4]。

针对上述问题,本文设计一个基于智能移动终端的农产品对接系统,为农民提供最新的农业市场信息和农产品供需关系的自动对接服务,使得农民能够快速方便得获得市场信息,且能够让农产品为外部市场所知,从而促进农产品的流通,满足现阶段我国农村农业生产销售的需求。

2 系统框架

基于智能移动终端的农产品供需对接系统与其他在线交易平台相比,其特色之处为实现供需关系的自动连接和对供需用户的推荐功能。该系统采用的MVC(Model-View-Controller)三层架构,模型层通过JavaBean来实现,视图层通过JSP页面产生,控制层主要联系模型层和视图层,由一个Servlet实现。MVC把显示模块和功能模块通过分层的方式隔离开来,提高系统的可扩展性,如图1所示。

图1 MVC体系结构

图2 系统结构图

该系统结构框架如图2所示,主要分以下三部分实现。

(1)用户与数据库的交互

系统给用户提供了一个信息展示和获取信息的平台,实现了在线聊天和自动推荐等功能,用户不需要主动查找,就能获取自己需要的信息。系统的架构和普通论坛类似,但比较简洁,只有两个板块,供给板块和需求板块,颠覆传统论坛的板块里分主题块的思路。

由于很多农产品本身的类别多种多样,有些商品根本无法归于某个类,所以系统中的每条信息包含的属性要比其他网站系统的多[5],因此确定信息之间的逻辑关系,设计良好的数据结构是用户与数据库能进行正常交互的关键。良好的数据结构是指符合数据库设计的范式要求,在还原数据间逻辑关系的前提下,将数据的冗余度降至最低,同时需要兼顾到实现功能的执行效率。

(2)数据库与索引器的交互

系统采用Lucene进行全文检索,将搜索引擎的技术引进网站系统,对数据库的数据进行索引,对每一条新的供需帖子进行全站的检索,摆脱了网站靠数据库模糊匹配关键字的问题,做到了最准确、最人性化的推荐,方便用户阅读。同时,为了更好地进行索引和检索,系统进行良好的分词,研究常用分词算法,并选择最有效率的算法。

(3)爬虫与数据库的交互

当系统的有效帖子数量低于某个阈值时,为了能更好地向用户进行推荐,让用户获得有用的信息,需要从其他同类网站进行抓取新闻和建立索引,以获取相关的信息,这里需要研究网络爬虫和信息抽取器的实现。

3 系统实现

3.1 网站系统实现

系统为了增加客户量、提高使用程度、减少开发和维护量,采用B/S模式。整个系统的核心分为前台和后台模块的设计。

前台模块包括:(1)用户注册、登录模块,通过手机号注册,每个手机号对应唯一的账号,可以防止恶意注册;(2)发帖回帖模块,分为供应帖子和需求帖子板块,并以列表的形式体现;(3)浏览模块,用户可以浏览帖子和信箱,其中信箱里的消息是系统推荐给用户的;(4)聊天模块,通过该模块用户可以联系推荐给他的用户。

后台模块包括:(1)论坛设置模块,设置论坛分页及用户相关参数;(2)管理板块模块,管理员对论坛的帖子进行审核;(3)管理用户模块,管理员赋予用户特定的权限后,用户才能对论坛的相关功能进行使用。

在数据库连接方式上,系统采用连接池技术,在初始化启动db.properties文件中配置的连接池,如果程序还需要连接,则从该池中取出一个连接使用,使用完返回连接池,这样不仅这些连接可以重复使用,而且还提高了效率。

3.2 Lucene全文检索实现

系统中智能供需对接功能的实现基于Lucene全文检索。Lucene是一个高性能的信息搜索库,可以为本系统中的应用程序添加索引和搜索能力,也可以根据系统特点选定所需的核心功能[6]。

系统使用Lucene索引数据库,首先需要创建一个数据库表,添加相关的记录,然后通过JDBC连接数据库,创建数据流,最后按照数据表中记录顺序,循环添加纪录,创建索引。帖子数据库表格式如表1所示。

表1 帖子实体在数据库中的存储结构

在索引前必须对帖子内容进行分词,本系统采用IK-CAnalyzer中文分词器来实现。IK-CAnalyzer的实现是基于逆向最大匹配法的分词方法和分词词典进行的。

在对帖子进行搜索时,需要把新增加的每一条帖子作为一个搜索项。如果帖子过长,进行分词后,需要进行命名,把帖子中出现的名词、地名等关键词提取出来当作检索词,然后通过索引查询,索引出符合要求的帖子。检索查询过程流程如图3所示。

图3 检索查询过程基本流程示意图

3.3 爬虫实现

为了能够定向抓取一些资讯网发布的供求消息,系统设计实现了一个网络爬虫程序。当本站点的信息不足时,作为额外的索引项,用户可以通过这些消息的链接访问到自己想获取的信息[7]。

爬虫抓取网页的顺序采用宽度优先的方法。整个宽度优先爬虫过程就是一系列的种子节点开始,把这些网页中的“子节点”(超链接)提取出来,放入队列中依次顺序进行抓取,被处理过的链接需要放入一个表内(通常为visited表)。每次新处理一个链接之前,需要查看这个链接是否已经在了这个visited表内,如果存在,证明链接已经处理过,跳过,不做处理,否则进行下一步处理。网络爬虫程序抓取网页流程图如图4所示。

图4 抓取网页流程图

对不同的网页,要抽取其中的有用的信息,需要编写特定的内容抽取器。抽取正文在网络爬虫程序中具有重要意义,如果不能很好得提取文章网页的有效内容,那么抓下来的网页就根本没有利用价值。抽取的方法有很多种,如配置模板、视觉匹配、关键字识别等。在本系统中,由于是定向抓取几个网站的信息,因此采用了基于配置模板的内容解析方法,为每个网站配置一个模板来抽取其中的供给和需求信息,然后写入数据库,再由索引器构建索引。

4 结论

本文设计实现的基于移动智能终端的农产品供需对接系统,经试用推广后,反映效果良好,为用户提供最新的农业市场信息和农产品供需关系的自动对接服务。本系统属于农业信息化的范畴,为改变农村“信息贫穷导致物质贫穷”的局面做出了贡献。

[1]王俊辉,曹静,凡静,等.基于Android手机系统的农村信息服务平台[J].江苏农业科学,2013,41(4):370-371,405.

[2]张军,尚敏,陈剑,等.基于3G技术的智能农业远程监控与管理系统[J].计算机测量与控制,2011,19(5):1058-1061.

[3]钱建平,杨信廷,李明等.以PDA为终端的便携式农产品智能配送系统[J].农业工程学报,2009,25(10):298-302.

[4]LU Yingrong,YANG Yinsheng,LU Feng,et al.Study on distribution patternsof E-businessbased agricultural products logistics[C]∥Shaping Business Strategy in a Networked World 2004,2004:169-174.

[5]韩蓄,张景,等.基于角色的个性化门户网站设计与实现[J].计算机工程应用,2005,4:153-155,226

[6]顾珺.基于Nutch的用户行为分析搜索引擎的实现[J].科技资讯,2009,15(5):20,22.

[7]周脚根,边馥苓.一种基于位置的移动服务系统的设计与实现[J].武汉大学学报,2006,31(4):352-355.

猜你喜欢

爬虫帖子供需
利用网络爬虫技术验证房地产灰犀牛之说
供需紧张局势拉动煤炭价格上涨
基于Python的网络爬虫和反爬虫技术研究
供需略微宽松 价格波动缩窄
油价上涨的供需驱动力能否持续
我国天然气供需呈现紧平衡态势
大数据环境下基于python的网络爬虫技术
暴力老妈
基于Heritrix的主题爬虫在互联网舆情系统中应用
高手是这样拍马屁的