APP下载

基于Android的农药科普APP设计与实现*

2022-05-24葛成鹏王翊同李鸿强

机械工程与自动化 2022年2期
关键词:服务器端页面标签

葛成鹏,邹 其,王翊同,李鸿强

(河北建筑工程学院 数理系,河北 张家口 075000)

0 引言

农药是重要的农业生产资料,农药的生产、经营和使用与保障农产品的有效供给、农业生产稳定发展息息相关。但是,农药也是一把双刃剑,过分依赖化学农药,以及农药的不科学使用等也带来了农业面源污染、生态环境破坏及农产品质量安全等一系列问题。加强农药管理以及农药知识科普宣传,对于实施乡村振兴战略,促进质量兴农、绿色兴农意义重大。

从农药专业人员到农药使用者,农药知识科普渠道不畅,随着计算机技术的发展,通过农业信息化,研发一款将农药使用者与农药专业人员联系起来的农药手机应用程序将是一件有意义的兴农举措,可打通农药知识科普渠道,提高农药知识科普效率,方便农民科学、合理、安全、高效使用农药,从而推动农业增产、农民增收及农村人居环境整治。

本研究开发一款致力于帮助农药的使用人员和专业人员之间互相沟通的APP,结合MySQL数据库[1],使用人员不仅可以查询到自己需要的科普信息,而且能够与专业人员进行实时交流,及时地针对性地解决问题。

1 系统的设计与实现

1.1 总体设计

农药科普APP设有2种角色,分别为农药的使用人员和专业人员,他们有不同的功能和权限。

农药的使用人员:注册和登录、查询科普信息、人机对话、与专业人员实时交流。农药使用人员功能图如图1所示。

图1 农药使用人员功能图 图2 农药专业人员功能图

农药专业人员:注册和登录、发布科普信息、对使用人员进行指导。农药专业人员功能图如图2所示。

具体使用流程如下:用户登录进APP时,可以正常地浏览APP里的农药科普信息,使用人员和专业人员之间可以进行问题解答,以及发布最新的新闻信息。当用户想发布问题或解决问题时,如果没有登录会自动跳越到登录注册页面,用户在注册时区分使用人员和专业人员。当用户点击搜索按钮时,会跳出一些农药推荐,是一段时间内搜索最多的一批农药科普信息。

1.2 开发工具介绍

PHP的选项与其语法一样,具有很高的灵活性。使用PHP,可以在只有shell用户权限的环境下创建完善的服务器端程序,或者在被严格限制环境下使用它来完成服务器端包含(Server-Side Includes)而无需承担太大的风险。所以在本研究里,PHP用于服务器端的编写,安全性高。

1.3 主要功能模块实现

1.3.1 农药知识搜索模块

农药知识搜索模块是该APP必备的模块。用户在搜索栏里输入要搜索农药的名称,通过模糊匹配算法将用户所要查询的内容呈现给用户。在字符串比对上,首先想到的是KPM算法,但原生的KPM算法只能判断两个字符串的包含关系,但“匹配度”并不是用是否包含来表示,比如“are”与“abrce”,虽然有包含关系但并不匹配。因此,匹配度由两个字符串的最长公共子序列来比对更准确。

在计算匹配度前,我们需要先去除里面的冗余信息,提高其匹配的准确度,比如“安徽昊源尿素”中,“安徽昊源”就是冗余信息,我们只需要比对“尿素”即可。因此在比对前对于一些常见的冗余信息,应去除掉。我们可以将一些冗余信息放在redundances中,将str里的冗余信息提前去除。去除冗余信息的代码如下:

StringBuilder stringBuilder = new StringBuilder(str);

for (String redundance : redundances) {

int index = stringBuilder.indexOf(redundance);

if (index != -1) stringBuilder.replace(index, index+redundance.length(), "");

}

return stringBuilder.toString();

在提前去除掉一些冗余信息后,我们还需要对阈值的设置进行支持。重合率高过阈值时我们就可以认定为两个字符串匹配,指向同一个农药。阈值设置的代码如下:

double sa = coincidenceRate(str1, str2, length);

return sa >= threshold;

具体操作过程如下:用户进入APP首页,点击最上方的搜索栏,在里面输入要搜索的农药名称,然后点击搜索按钮,页面会跳转到一个单独的页面,里面显示相匹配的农药知识。在开发程序里的com.our.nyxx包里的SearchKnowledgeListActivity.java中为搜索按钮添加监听事件,当监听事件被触发时,调用里面的Onclick方法,获取输入的内容,以其为根据从服务器端获取与之匹配的农药知识,然后跳转页面,通过initdata方法将他们显示到页面上。搜索模块运行界面如图3所示。

图3 搜索模块运行界面

1.3.2 搜索农药推荐模块

农药推荐模块通过用户搜索农药来进行反馈,这不仅能方便用户查看农药信息,而且能够反映今年病虫害情况,便于来年及时防治。要提高APP推荐结果的质量,就必须采集大量的用户搜索农药记录。利用三元组集合表示用户搜索农药记录,主要步骤如下:①收集用户搜索的农药数据;②统计被搜索次数最多的农药;③针对具体的使用人员,根据搜索的农药标签找到最匹配的农药推送给使用人员。

设P(a,i)为用户a对农药i的标记,则有:

(1)

其中:na,b为用户a搜索标签b的次数,nb,i为农药i被搜索为标签b的次数。

但随着搜索次数的增加,热门标签的权重值会发生改变,影响APP推荐的结果。因此采用一些算法对其进一步改进,找到IDF(逆文本频率指数)值低的标签降低其所占权重:

(2)

推荐系统中最重要的就是相似度计算,本文运用皮尔逊相关系数公式来表示两个变量X和Y间的协方差和标准差的商,即推荐结果和用户预期的相关性。皮尔逊相关系数为:

(3)

r>0为正相关,r<0为负相关,r越大表示线性相关程度越强[5]。

1.3.3 在线指导模块

使用人员进入在线指导界面,点击发布留言,通过开发程序k writewordsActivity.java里的上传存储sendwords方法将所要发布的内容存储进数据库,再通过呈现initview方法将里面的内容呈现到APP里的指导模块下。专业人员可以通过点击问题下的评论按钮,对其进行解答。在线指导运行界面如图4所示。

图4 在线指导运行界面

2 结束语

本文对农药科普APP进行了详细的需求分析,阐述了该APP的设计与开发流程,着重介绍了3个核心模块的实现方法。这样的APP的出现能够很好地帮助农药使用人员防治病虫害,对农业的贡献不可小觑,具有一定的实用价值。

猜你喜欢

服务器端页面标签
刷新生活的页面
答案
Linux环境下基于Socket的数据传输软件设计
让Word同时拥有横向页和纵向页
无惧标签 Alfa Romeo Giulia 200HP
不害怕撕掉标签的人,都活出了真正的漂亮
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计
让衣柜摆脱“杂乱无章”的标签
科学家的标签