1、个性化音乐推荐系统设计与实现个性化音乐推荐系统设计与实现摘要21世纪是信息化时代,随着信息技术和网络技术的发展,信息化已经渗透到人们日常生活的各个方面,与人们的日常生活早已建立了离不开的联系。对网络音乐服务来说,不管是音乐下载服务,或者是网络音乐电台服务,都需要用到优秀的内容推荐系统去辅助整个系统。个性化音乐推荐系统是目前最流行的应用方法之一。同时音乐成为重要的媒介与朋友交流文化,所以很多SNS应用当中将音乐服务添加到里面。本系统采用SSH框架组合进行设计,基于Java Web技术,系统使用UML建模。本系统的功能模块主要包括:音乐上传、单曲管理、个人信息维护、收集歌曲信息、音乐检索以及系统推
2、荐等。音乐上传利用JavaScript脚本定义了一个函数,单曲管理在action中定义一个方法,系统推荐是利用协同过滤算法来进行的。整个系统主要实现了从用户注册和登录、检索音乐到收听音乐、评分音乐,个性化推荐的整个音乐系统,管理员可使用系统后台对音乐歌曲信息进行修改、会员信息修改、系统推荐等进行有效的管理。很大程度上提高了对音乐管理的效率,符合了广大用户们的基本需求。关键词:SSH框架,音乐系统,协同过滤,MVC模式DESIGN AND INPLEMENTATION OFPERSONALIZED MUSIC RECOMMENDATION SYSTEMAbstractThe 21st centu
3、ry is the era of information, with the development of information technology and network technology, it has penetrated into every aspect of daily life, with people in daily life has been inextricably linked to the establishment.For the Internet music service, whether it is music download service, or
4、 network music radio service, all need to use the excellent content recommendation system to support the whole system. Personalized music recommendation system is one of the most popular applications. At the same time music has become an important medium of communication with friends culture, so man
5、y SNS applications when the music services added to the inside.The system uses a combination of SSH framework design, based on Java Web technology,system used UML modeling. Site function modules include: Music upload, music management,personal information maintenance, collecting music information, m
6、usic search and system recommend.The entire site is simple, user-friendly, flexible and practical. The main achievement of the user registration and login, retrieve music to listen to music, the whole comment is called online music listening processes, and system administrators can use the backgroun
7、d information on the goods, membership information, message information, and effective management. Greatly improving the efficiency of music management, in line with the needs of customers.Keywords: SSH Framework,Music System,Collaborative Filtering,MVC Pattern1 绪论 11.1 项目背景 11.2 系统开发的意义 21.3 国内外音乐系
8、统现状 31.3.1全球音乐系统系统发展情况 31.3.2中国音乐系统发展现状 31.3.3网络音乐系统市场发展趋势 42 技术准备 62.1 Java Web 62.1.1 Servlet技术 62.1.2 JSP技术 82.1.3 JSTL标签 92.1.4 JSP 2.0自定义标签 92.1.5 Filter过滤器 102.2 MVC模式 112.3 Spring框架 122.4 AJAX技术 123 系统分析与设计 143.1 系统简介 143.2 系统框架设计 143.3 功能需求 153.3.1面向管理的需求定义 163.3.2面向体验的需求定义 173.3.3面向维护的需求定义
9、183.4个性化音乐推荐系统设计 213.4.1 音乐上传设计 223.4.2 单曲管理设计 223.4.3 收集歌曲信息设计 223.4.4 音乐检索设计 223.4.5 音乐推荐设计 233.5数据库设计 233.5.1 数据库概念结构设计(E-R图) 233.5.2 音乐推荐系统数据库表设计 254 系统技术实现 304.1 音乐上传功能的实现 314.2 收集歌曲信息功能的实现 324.3 单曲管理功能的实现 334.3.1 播放功能的实现 354.3.2 下载功能的实现 354.4音乐推荐功能的实现 364.4.1所用数据表 374.4.2实现过程 375 总结 41参考文献 43致
10、谢 45译文及原文 461 绪论1.1 项目背景信息技术改变了了人们的生活方式,是当今信息化时代便捷人们生活的一项伟大创举。在生活节奏越来越快的今天,人们对娱乐便捷的需求也越来越强烈。日益发展的网格技术与信息技术,各种音乐推荐系统也是逐渐应运而生。用信息技术与互联网技术相结合的音乐网站,其便利性、数据存储安全性、共享性、数据容量等,明显优于传统的磁带与CD。计算机科学技术日益发展,它早已深入到人类社会的每个角落里,而且发挥着越来越不可代替的作用,利用传统方式的存储数据资料的方式已经逐渐离我们而去。设计本系统的目的是为了改善那些原有网站的的缺点,为用户提供一个使用更好更便利的在线音乐平台系统,并
11、且在协调不同的用户偏好方面也可以做的更好。此外,系统能提供给管理员一个清晰简明的界面,合理安排音乐分类信息,并根据用户的要求和信息;根据用户的某些特点,为用户提供一些更能产生共鸣的音乐。自古以来,音乐就一直伴随着人们的日常生活,古有笙箫唢呐,今有吉他萨克斯,如今人们听音乐大多通过手机、音乐播放器,或是直接在电脑上在线收听,连mp3,mp4都很少有人使用。人们也在不断地对音乐的形式进行创新和发展,21世纪初,人们还通过磁带或是光盘收听音乐,而今天数字音乐以遍及全球,人们大多通过互联网来收听音乐,换句话说,互联网是今天最流行的数字音乐的音乐介质和最大载体。Java技术是在Web开发领域中,表现极其
12、出色的技术之一,由于在Web开发领域中的杰出表现,Java技术近年来的发展非常迅猛,越来越多的网站使用Java进行开发。例如众所周知的淘宝网,随着就业务规模的不断扩大,php架构有些不能适应现在的用户需求,所以淘宝高层曾经考虑过将淘宝网转型成为Java平台架构,这无疑是对Java技术的一种巨大的肯定。在中国交通领域中,有许多在线购票网站,首当其冲的就是国家铁道部的12306网站,它隶属于国家机关,对技术的要求十分高,就连如此重要的网站也是使用SSH框架开发的,而SSH框架是隶属于Java平台。虽然有许多重要且成功的网站都是使用Java技术进行开发的,但由于Java技术过于复杂等原因,现有音乐网
13、站多是通过php等其他语言进行编写的。此外,这些音乐网站也几乎没有将最新的HTML5标准适用于网站中最重要的音频解码方面,而仍使用Windows自带的解码控件,这节省了网站开发的难度,但却十分不利于Android和iOS端的手机用户在该网站上获得良好的音乐体验。1.2 系统开发的意义此系统使用JAVA WEB技术, 采用SSH框架和MYSQL数据库作为工具进行开发解决方案,实现了B/S模式的个性化音乐推荐系统的设计。利用web服务器和客户自己的浏览器,为用户提供在线音乐系统平台,通过浏览器在网站上直接检索音乐、收听音乐、对音乐评分等,这些功能可以让用户得到更好的音乐体验,让用户在一天24小时的
14、时间内都可以在在线音乐系统中收听自己喜欢的音乐。网站的规则是根据目前商业网站的成熟规则进行设计的,主要功能为网上在线音乐收听,再加上留言等功能,此外能提供给管理者一个简单的界面,可以合理安排音乐分类信息,并根据用户的要求和信息;根据用户的某些特点,为用户提供一些更能产生共鸣的音乐。是一个综合性在线音乐系统网站。由于Java平台技术在当今时代已经逐渐取代php等其他技术成为Web开发的主流,而且通过SSH框架对Web网站进行编程开发的案例也更多更好,以此为背景,通过学习SSH框架,进行一个音乐网站的设计具有非常重要的意义。对Java平台技术加深深刻理解的最好方法,便是学会Hibernate OR
15、M框架的映射关系维护和加载策略,在学会这个技术后,对使用Spring的基本整合配置对系统架构优化进行掌握和了解,在有了一定的技术基础后研究MVC思想(Struts 2.x框架)实现及标签库的使用方法,有很多音乐网站在页面复用方面并没有重点进行研究和开发,而本音乐网站在此方面进行了很多的研究并达到了很高的复用标准,这是对充分理解软件工程的复用思想的很好体现,在充分理解了复用思想后,对网站的开发提供了许多实践经验;如何设计并实现一个网站特有的音乐播放器是网站开发的重点之一,最终决定使用JavaScript/HTML5/CSS和对细小的图片进行素材处理来进行开发,实现一个原创的音乐播放器,可以很好地
16、帮助流媒体空间的跨平台开发;根据用户需求,要求网站在设计模式中必须具有开闭原则(对扩展开放,对修改关闭),在实现开闭原则的方法上,网站决定通过码表实现数据字典扩展功能从而完成这项技术要求。(1)在软件工程领域中设计理论和方法来分析个性化音乐推荐系统的发展过程中,使音乐网络领域在面向对象的方法研究中做出了实质性的贡献。(2)个性化音乐推荐系统使视图模型抽象方法、建模过程、模型表示等多个点的出发构建建了科学和有效的系统。(3)从个性化音乐推荐系统的结构,过程和可视化功能的统一建模语言UML元素来看,个性化音乐推荐系统设计的可视化功能提供了方法和技术支持。1.3 国内外音乐系统现状在设计整个系统之前
17、,我们对国内外的预测系统进行了调研,希望吸取它们的优秀设计功能。个性化音乐推荐系统市场需求,以不断探索自己的发展模式来看,在解决了现有的版权等一系列音乐市场的问题后,个性化音乐推荐系统市场规模必然会增大,与此同时的传统模式的音乐专辑的销售情况就变得不容乐观了。1.3.1中国音乐系统发展现状个性化音乐推荐系统在中国,虽然一直被关注着,但它似乎并没有走出亏损的底部。然而,尽管它一直在底部,但并没有阻止个性化音乐推荐系统服务供应商探讨行业的发展模式。 从A8,发展到XX音乐和新浪音乐以及爱国者推出的音乐超市和腾讯QQ独特的平台和服务相结合,中国的音乐系统永不放弃在对个性化音乐推荐产业的热情。有声音认
18、为,随着4G市场的到来,未来的音乐服务将有什么办法打造产业链,但如何以创新模式在4G时代,这些不确定因素决定了中国的个性化音乐推荐系统仍然需要很长的路要走。2012 年,中国在线音乐系统市场规模仅为 3.8亿元,与传统唱片的市场规模不可相提并论。近年来预计,2014 年以后国内在线音乐系统市场将进入健康发展阶段,2013 年中国在线音乐系统市场规模超过 5 亿元,年增长率超过 60%,预计 2014 年将达 7.5 亿元。盗版一直是中国音乐市场的一个很大的敌人,它严重影响着在中国音乐的发展,2014年,中国个性化音乐推荐系统的市场规模仅仅是2.8亿元。近年来,政策调控加大,利益的各项业务间的合
19、理有效分配在产业链,有效政策法规的颁布和实施,将对中国的在线音乐系统市场产生积极的影响。预计2017年个性化音乐推荐系统市场之后将进入良性发展阶段,2015年中国音乐推荐系统市场规模超过5亿人民币,超过60的年均速度增长,预计在2016年将达到8.5亿的市场规模。1.3.2网络音乐系统市场发展趋势网络开始成为释放原创音乐的重要途径。 2001年3月6日0时,MP3格式的中国第一个网络歌曲出现在人们的生活空间中,开始了音乐网亮相的序幕。经过10多年的发展,今天的互联网和移动互联网已成为唱片公司的歌曲和视频发布推广的主要路径,网络首发的歌曲也成为在线音乐服务提供商吸引用户,用户聚集的重要手段之一。
20、网上商店已经成为最新的无线音乐下载的亮点之一。国际知名的apple公司开发了在线应用程序商店模式,google,blackberry,samsung等厂商纷纷跟进,nokia,motorola,lenovo等移动终端运营商已经投入巨资,试图开辟属于自己的一片天地。中国移动,中国电信,中国联通等通信运营商,也开始建立自己的在线软件商店。社区网站的音乐带来的变化和方式转变。人人网,赛我网等快速发展的社交阶层网站的代表,嵌入式网络音乐播放器插件和用户分享,口碑传播模式,以促进音乐的网络传输改造,让中小型CD公司和非主流创作者可以更容易地传播他们的作品。社区网站的粘贴性和互动性将带来互联网音乐传播的巨
21、大变化。互联网音乐将从一个简单统一向个性化发展。互联网音乐服务的形式已经从纯粹的音乐内容,发展到现在的提供音乐共享交换阶段。更多的网友不满意被动地听音乐,而是热衷于分享。在未来的网络音乐将发展到精密推荐音乐的阶段,用户需要实现智能网络音乐内容提供商推荐音乐。该网络音乐内容服务提供商和运营商提出了更高的要求,用户需要准确识别的行为,和智能地为用户提供分类服务。音乐云将成为热门的服务,未来尚不明确。A8音乐在2011年年初提出的音乐云服务的理念,开始了中国网络音乐云前奏,其他厂商纷纷效仿。所谓“云音乐”,简单来说是通过音乐软件的用户可存储在云音乐内容中的各种设备,如移动电话,个人电脑和电视的播出,
22、共享,而不需要用户再耗时从计算机内存中拷贝到其他终端设备。2 技术准备本系统中的设计部分主要使用JAVA WEB(SERVLET、JSP自定义标签、JSTL标签等)开发技术;对于系统的业务控制层我们使用STRUCTS2框架实现软件设计MVC思想中的业务的控制流转;本系统的数据持久层使用HIBERNATE框架进行系统托管;在系统架构方面,本系统使用WEB开发中常用的SPRING框架。如下章节将对上述关键开发技术进行必要的阐述。2.1 Java WebJava技术中最为核心的技术就是Java SE1(Java 2 Platform Standard Edition),Java SE技术多被用于企业
23、开发Java应用程序。随着计算机技术的发展Java开发技术在互联网得到了极大的发展,目前来看来说是应用最为广泛、开发技术占有率最高开发技术,当我们掌握了Java SE的主要内容后,面向Web开发时主要使用的是Java EE,Java EE是Java Web的主要开发技术。Web开发技术主要有两个最为重要内容:客户端(CLIENT)和服务器(SERVER)端。Java Applet是Java客户端的应用之一,Java Applet实际应用中使用得相对来说较少;对于服务器端的应用来说却显得异常丰富,最为人们熟知的如SERVLET技术、过滤器、JSP自定义标签等,下文中将详细介绍这些技术。2.1.1
24、 Servlet技术随着动态页面技术在上个世纪末开始流行,动态页面技术为Web开发技术带来了一次成功的大变革,它不仅极大的节省了人力成本,使得开发人员专注于静态页面维护的工作转移到如何使页面更加高效上来。对于动态展示的Web应用程序可以根据来自使用者的不同页面请求,依据不同请求动态地返回所需要的结果集。我们称之为公共网关接口程序CGI,而这是一种用于系统产生动态页面的程序代码。实现页面的动态输出功能的公共网关接口程序是运行在系统的服务器端,Java开发语言可以用来编写绝大部分的CGI程序,但是Java 程序编写的CGI执行效率相对来说较低。因为要执行Java程序编写的CGI程序,不仅要在操作系
25、统中运行CGI程序,还必须在操作系统中运行Java Virtual Machine,Java虚拟机,首先要在操作系统中运行Java虚拟机,然后才能在Java虚拟机中执行Java CGI程序,对于操作系统来说资源的浪费是非常大的。而CGI程序是运行在服务器端的程序,其执行效率是系统管理者非常关心的问题。因为CGI技术存在上述的弊端,也为了有效的解决CGI的执行效率问题,Java所属的公司SUN公司又推出了一套SERVLET技术规范2。SERVLET的本质是一种改进之后的CGI程序接口,引入SERVLET的主要目的就是为了减少系统的资源消耗,减少对JVM的依赖和不必要的频繁交互性操作,从而从资源消
26、耗方面来提高程序效率。SERVLET技术对于CGI程序的主要改进的地方有:SERVLET运行所需资源较少,此时操作系统只为SERVLET程序提供唯一的进程和JVM就可以满足程序运行所需的资源;当客户有多次请求同一个相同动态页面的请求结果集, SERVLET程序将只加载一个Java类来处理相同的请求;原始的CGI程序于WEB服务器交互方面不能直接进行有效的交互,SERVLET程序可以于WEB服务器交互,而且SERVLET程序还可以使不同程序进行共享数据。由此我们可以总结出,SERVLET技术在应用程序的性能方面提升是明显的。SERVLET技术处理Java Web客户断请求与数据的处理过程如图2-
27、1所示。图2-1 Java Web请求响应过程二十世纪九十年代末期,Java的所属SUN公司为了让SERVLET技术适应商业发展,建立了一套有效开发API成之为Java Servlet API,这就使得SERVLET技术具有了更好的跨平台性和较好的可移植性。在计算机科学技术的发展过程中任何一项技术都有自己的突出点和短板SERVLET在生成客户请求的网页时,需要在HTML标签中嵌套上JAVA程序代码。这时如果HTML标签中发生个CSS样式细小的变化将导致SERVLET中的Java类不得不重新进行修改。而实际应用中HTML页面的展现必须与Servlet后台代码的侧重点不同,因而这种关联关系会让后台
28、代码Java代码的维护非常麻烦。2.1.2 JSP技术JSP3(Java Server Pages)最大的特点是将静态的HTML标签技术和动态的页面技术相结合,它不仅能够扩展SERVLET API接口,还在继承原有技术上全面保留Java API,在页面的展现形式上更加趋近于HTML技术。当我们从JSP页面文件的布局上可以非常清楚地看到它与HTML静态网页在布局格式上几乎一致,然而于HTML静态页面相比JSP文件中却可以在任意符合JSP语法的地方嵌入Java程序代码,这样就可以轻松的实现SERVLET程序逻辑。那么在SERVLET应用程序中不易被提取出来的HTML标签代码在JSP页面中能够以较为
29、直接的显示方式展现给开发设计人员,这非常有利于前台页面的有效的结构和展示的设计。如果对TOMCAT服务器的Web服务器下的WEB/APP目录中的JSP文件进行解析,可以发现每一个JSP文件都将存在一个.java的文件于JSP文件相对。而且当开发人员或用户对JSP文件的HTML标签进行部分修改,系统将没有必要重新启动TOMCAT服务器就可以直接刷新更改后的页面直接看到效果。这跟SERVLET技术有很大的区别,主要是由于被修改的静态代码对Servlet程序代码没有起到作用,这时我们就不需要重新对JSP进行编译,所以直接刷新浏览器即可重新显示页面的更改。当来自用户的请求系统中的某个JSP页面时,We
30、b容器将会按照以下三个步骤进行处理:首先将开发人员编写好的动态JSP文件通过Web容器中的SERVLET转换引擎转换成为*.java源代码;然后通过Java虚拟机将*.java源代码文件翻译成为机器能够识别的字节码文件(二进制);最后当客户端发来页面请求时,WEB容器将按照已经编译好的二进制字节码文件进行处理,将生成的HTML页面代码反馈给客户端中显示。总的来说,JSP技术是一种更接近于视图层、更加易于表现的Servlet程序代码。二者在本质上并没有明显的区别,但是JSP技术为使用者和开发人员提供了丰富的标签库,例如JSTL标签、自定义标签等更加灵活便捷的标签。2.1.3 JSTL标签JSTL
31、4全称为JSP Standard Tag Library,JSP标准标签库。由于这是基于JSP标准的标签库文件,与STRUCT2等标签库相比,JSTL标准标签库所提供的功能虽然并不是特别丰富,但是JSTL标准标签库的适用性却非常广泛。JSTL标签库主要为用户提供CORE标签库、FN方法库、XML标签库和FMT标签库、SQL标签库等5个部分的内容。首先CORE标签库为开发人员提供诸如为了达到实现循环效果后台代码中可以使用标签的for循环语句;FMT标签库主要用于控制标签库的标签格式化输出等;FN方法库提供多种方法来丰富开发者操作例如fn:contains()、fn:split()等;开发者可以使用对数据库操作的支持SQL标签库对数据库进行操作,如使用sql:trans
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1