胡天姿,王 慧,王 涛,谢望新,王 凯,战凯歌,韩奇峰
(佳木斯大学信息电子技术学院,黑龙江 佳木斯 154007)
随着学习英语的热潮与移动互联的发展,英语学习类App正在兴起,而我国人工智能技术的不断创新以及软硬件升级等方面的整体推进,使得我国未来学习软件得到了快速发展,将呈现出百花齐放、百家争鸣的竞争格局[1,2]。但就目前国内应用市场中出现的英语学习软件功能较为单一,不能在用户阅读英文文章的同时为用户抓取有效信息,一味地机械记忆单词,没有依据用户习惯推荐个性化学习内容,使得用户在学习英语的过程尤为枯燥,进而降低了用户学习英语的热情[3-5]。因此,本文结合大数据技术、人工智能技术设计一款为用户抓取所需英语资料的多功能英语学习App,避免用户以通篇查单词的方式阅读文章,提高用户的学习效率。
本App适用不同用户需求,如备考四、六级英语考试,雅思、托福考试,考研以及阅读各种专业期刊、前沿资料等。此外,为了达到本App的开发目标与效果,本App提供多种功能,从各个方面满足用户需求,提高用户英语学习兴趣,具体功能如下:
1) 词库智能选择功能:本App能根据不同的受众群体(如四六级备考生、考研生)提供不同的词库选择,为其在阅读文章的过程中以高亮显示的方式通过App屏幕界面显示相应词库的单词,并显示出单词释义,帮助用户快速、准确、有效的获取信息,节省用户查阅时间。
2) 影视自主配音功能:用户选择词库后,可以选择App内提供的高频词汇电影片段或上传自己喜爱的电影片段进行配音,使用户感受视听说的完美结合,体验学习英语的乐趣。
3) 看新闻忆单词功能:用户可以观看App中每天推送的新闻外刊短视频,在观看新闻的同时,可以点击字幕将生词加入生词本,对单词进行查漏补缺记忆。
4) 曲线救“词”功能:根据艾宾浩斯遗忘曲线计算时间间隔,在记忆遗失点提醒用户复习单词,从而达到最好的用户体验度。
具体软件功能如图1所示。
图1 软件功能模块图
技术方面,本产品的预计设计与实现用到了JAVA语言技术、移动端软件设计技术、C#、xaml、数据库技术等。软件主要分前端和后端两个部分。
1) 前端部分:软件的前端部分主要是用户界面,包括:登录界面、单词识别界面、新闻取词界面、影视配音界面、生词本界面、历史文章界面、优质资源分享界面。软件在不同的平台实现需要不同的语言支持。由于Android和IOS端是现在用户使用最多的平台,也是软件发展最具价值潜力的地方,因此本App的主要应用平台为移动设备端。前端开发主要用到了Java语言技术。由于《用户界面设计基本指南》第三版提供了一个全面的、循序渐进的指南,建立用户友好的系统界面[6]。因此,本文采取了软件GUI界面,该界面的设计兼顾了美学,从荷兰画家彼埃·蒙德里安的作品中找到的灵感,用简单的几何和对比鲜明的色彩呈现每个功能模块,使得每个界面都优雅大方,简洁明了,极大的优化了用户的体验。软件的各个前端界面跳转,如图2所示。
图2 界面跳转图
软件使用序列化、反序列化技术,在每次刷新界面时,都读取工程文件,以完成对用户操作的页面恢复,以实现最好的用户体验。采用页面缓存技术实现历史文章的恢复功能。
2) 后端部分:软件实现时,首先要搭建本地服务器,以便存储用户数据、文章歌曲资源数据、用户上传数据等。用户注册时后台会将用户的注册信息录入,建立用户数据库。其次下载网上现有的词典(包括单词所属范围,如四级、六级、托福等关键词作为数据库的项),建立本软件所需的词典数据库。后端数据库采用SQLite,方便对数据的管理与使用,原理图如图3所示。
图3 服务器原理图
运用网页解析技术解析网页中出现的新闻文章、英文短文等数据信息并加载到本地服务器,运用文件读写技术为用户提供下载到本地功能,以便用户离线使用。同时,用户可以自己上传文章、视频,从而更方便的学习到自己想要的资料。高效性、趣味性正是本App开发的初心。上传的视频数据会在后台和用户信息关联,既可以方便自己学习,也可以让他人看到,丰富不同用户的学习素材。有了数据之后,要通过数据库查找技术,将文章、短文歌词中的单词跟数据库中用户选中的词库对比,从而找出文中需要用户掌握的单词短语,并将释义在旁边显示,以便用户学习使用。
对于生词,本产品为用户提供生词本功能。并为每个生词本中的单词添加复习标签并计时,软件会监听生词本中单词复习的间隔时间,根据艾宾浩斯遗忘曲线,在记忆遗失点提醒用户对特定的单词复习,并更新标签。
个性化推荐功能需要借助人工智能技术,根据用户的使用习惯抓取用户经常阅读的文章、听音乐的标签,从而在数据库中选择相关的数据资料,在推送界面上向用户进行个性化推荐,基于用户的兴趣偏好,采集用户行为和用户profile数据。把用户感兴趣的内容推荐给用户,给用户带来沉浸式的体验,优化用户的产品体验。个性化推荐的系统架构图如图4所示。
图4 个性化推荐系统架构
工程方面,采用模块化设计的方法。模块化设计就是把软件按照规定的原则,划分为一个个较小的、相对独立但又相互关联的模块[7]。分解、信息隐藏和模块独立性,是实现模块化设计的重要指导思想。
1) 分解:“分解”是人们处理复杂问题常用的方法。模块的接口工作量往往会随着模块数的增加而增大。每个软件都存在一个最小成本区,把模块数控制在这个范围内,可以使总开发量保持到最小。
2) 信息隐藏:“信息隐藏”是指一个模块内部的数据与过程应该对不需要了解这些数据与过程的其它模块隐藏起来。其目的是为了提高模块的独立性,当修改或维护模块时,减少把一个模块的错误扩散到其它模块中去的机会。
3) 模块独立性:“模块独立性”概括了把软件划分为模块时要遵守的准则,也是判断模块构造是否合理的标准。模块的独立性愈高,则块内联系性越强,块间联系性越弱。
本软件的设计,因用户需求分析明确,时间充足,组内成员分工明确,所以采用瀑布模型,并运用Git程序管理,以保证最终软件的质量。
瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈环。
本App通过简单的数据库对比技术解决了用户阅读通篇查词的低效问题,使得英语学习更加高效快捷,并借助特定的辅助功能,加深了英语学习的记忆,并且提高了用户英语学习的兴趣;实现了利用人工智能技术抓取用户习惯,进而对不同的用户推送个性化内容,使得英语的学习具有趣味性和针对性。本软件主要在移动端推出,受众广泛,发展潜力巨大。