【基于NLP技术的购车系统设计与实现16000字(论文)】_第1页
【基于NLP技术的购车系统设计与实现16000字(论文)】_第2页
【基于NLP技术的购车系统设计与实现16000字(论文)】_第3页
【基于NLP技术的购车系统设计与实现16000字(论文)】_第4页
【基于NLP技术的购车系统设计与实现16000字(论文)】_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于NLP技术的购车推荐系统设计与实现目录第1章绪论 第1章绪论1.1研究背景随着世界社会信息化的深入发展,网络技术融入了人们的生活,为人们创造了广阔平等的交流平台,逐步促进了其他传统行业的转型,汽车销售行业就是其中之一[1]。互联网技术的发展为消费者选购汽车提供了足够多的信息参考来源,诸如汽车之家类型的网站也为用户提供了良好的交流沟通平台。互联网中海量的用户群体带来的不仅是信息量呈几何级数地增长,随着大数据时代的到来,信息存在的方式和类型也变得多样化。对于一般汽车消费者而言,消费能力的提升和消费品味的个性化使得用户对汽车购买的偏好呈现出多样化的趋势,从大量车型和其他车友的用车体验等相关信息中来寻找发现能够满足自身需求的车型,并进行甄别和进行购车决策实在是一个糟糕的体验。随着人们生活水平的提高,据中共汽车流通协会最新公布的数据来看,消费者的购车行为特征正发生着显著变化ADDINCNKISM.Ref.{B654882CBF844dc38A751275E31E47D0}[2-5]。最大的变化之一是消费者的换车频率正逐年加快。消费者换车频率的加快,则需要以更快的速度完成购车决策的工作,但由于海量的数据信息遍布,大部分用户对各种技术参数的知识也比较缺乏,使其很难在面对琳琅满目的汽车产品时只能从部分已知品牌或车型中做决策,即按照自己的印象或经验来进行购车决策或再购车决策,而无法从所有汽车中筛选出需求车型,这在一定程度上会使消费者的体验变差。为了加快消费者获取有用信息的效率,节省获取信息所用的成本,加快消费者进行上述购车决策,亟需一种汽车分析结果来辅助消费者进行决策,从而筛选过滤信息,优化市场买卖结构,从而提升消费者的购车满意度以及销售商的推荐成本。汽车论坛的快速发展带来了众多信息,消费者面对琳琅满目的信息时,获取有用信息的成本也急剧提升。论坛帖子的内容、用车经验并没有很好的被利用起来。因此,亟需找到一种行之有效的获取实际用车经验方法,在确保产品评价标准一定的前提下,将帖子内容的关键语句展示给购车用户,从而加快消费者决策速度,节约消费者决策时间以及提升消费者购车满意度。1.2研究现状自然语言处理技术(NaturalLanguageProcessing)是现代计算机科学领域与人工智能领域中的一个重要方向。NLP是计算机科学、语言学、自动化、数学以及人工智能、知识工程等交叉学科,关注计算机和自然语言之间的相互作用ADDINCNKISM.Ref.{96F6852AB1864e2e8767B3A8D74E39D0}[6-9]。NLP技术不只是简单地帮助语言学家研究人类世界自然语言,而是研制一种能有效地实现人与计算机通过自然语言通信的计算机系统,然后将这个系统应用到机器学习、人机交互等更深层次方面,所以把它归到计算机科学技术的一部分。推荐系统及其相关技术于20世纪90年代中期开始逐渐成为了国内外学者和团队所关注的研究领域ADDINCNKISM.Ref.{1C0A8F960F41466c86C8A8D312454327}[10-12]。作为一个相对较为年轻的研究领域,推荐系统本身仍在不断发展进步中。近年来,不同的推荐系统及其改进型层出不穷,相关的研究综述工作提出了较为经典的一种分类方法ADDINCNKISM.Ref.{FC4BAF0CFEB6456fB6658D673FB2D605}[13],将推荐算法分为了六类:基于用户的、内容的、效用的、关联规则的推荐以及协同过滤算法。随着推荐系统的发展,NLP技术也逐渐进入了它的视野。如果能将NLP技术应用到实际生活中的购买推荐算法,推荐系统一定会得到巨大的发展。现有的推荐系统主要使用了基于内容的个性化推荐、基于协同过滤的个性化推荐等ADDINCNKISM.Ref.{DF24A1584B554a7497BA9ABBC7E1AFC9}[14-15],但对于汽车推荐其有效性和准确性并不是十分理想。由于消费者的换车频率不高,消费者在使用过程中的消费需求会发生很大的变化,基于内容的推荐方法不能很好的跟进这一变化。汽车作为一种高档耐用品,消费者的消费行为受自身的影响很大,在这种情况下,基于协同过滤的推荐方式也无法达到良好的推荐效果。但现有的基于自然语言处理的汽车推荐系统研究尚少,市面上更多的在研究基于用户信息的个性化推荐,即根据用户最近的浏览或者发布的信息来推测其目前可能所需要的产品ADDINCNKISM.Ref.{CEB66985034646b19ED68AA4CAD9AFC9}[16],如基于用户的社交网络及偏好与购车用途来做出个性化推荐ADDINCNKISM.Ref.{CEB66985034646b19ED68AA4CAD9AFC9}[17];针对新老用户分别做出推荐ADDINCNKISM.Ref.{CEB66985034646b19ED68AA4CAD9AFC9}[18];利用本体论根据消费者需求情形来进行相似度较高的推荐等等ADDINCNKISM.Ref.{CEB66985034646b19ED68AA4CAD9AFC9}[19-21]。经过对目前国内外研究现状的了解,可以发现基于NLP技术的购车推荐系统研究尚少,论坛有价值的信息挖掘的难度成为重要因素之一。由于汽车产品的特殊性,现有的购车推荐网站系统无法向有需要的消费者提供有效的汇总及分析功能,用户只能在海量的数据中苦苦甄别,既要分别评论帖子的褒义和贬义,也要时刻注意自己的需求是否与帖子内容相匹配。这种情况往往导致了推荐系统无法达到理想的效果,做到有效的推荐。1.3研究目的及意义汽车论坛如汽车之家的出现,让人们在线讨论汽车相关使用问题、交流用车经验变得十分方便。汽车论坛具有内容客观性、发帖自由性、主题明确性等特点,为有需求的用户在论坛中根据个性化需求进行交流讨论、深度学习奠定了良好的基础。与传统的获取需求的方式(如线下现场访问、问卷调查、电话沟通等)相比ADDINCNKISM.Ref.{300539352B864cf683EC48EE8C4C9A42}[22],汽车论坛的上述特点使其成为商业获取消费者体验信息的好渠道,汽车之家类型的网站进而成为商业获取用户购车需求的来源,但由于现有汽车购买与汽车论坛之间并没有建立系统的联系,论坛中用户的汽车使用经验没有得到很好的利用,仍需要深入了解几个具体发帖内容后,消费者才能进行购车考虑,论坛上繁多的文章使得消费者获取有用信息变得不那么容易,并没有很好的辅助消费者进行购车决策。经过对目前有关购车推荐系统的研究现状的分析,发现市场上的推荐研究中虽然已经有了众多推荐算法,但由于消费者的购买和使用周期相对较长而更换汽车的频率相对较低,现有的推荐算法应用于汽车购买销售的适用较差。同时,现有的购车推荐方法很少有利用到其他车友的用车经验,但恰巧这种信息来源是十分客观、可靠、有参考性的。本文根据论坛用户的用车经验帖子,进行文本处理分析,将有价值的分析结果展示给用户,从而辅助其进行购车决策。具体到研究内容,本研究的理论意义在于:分析和总结用户的帖子内容,设置车型评价结果确保高度专业的同时,更容易借其获取论坛用户真实的用车体验,进而减少用户进行购车决策的成本,辅助消费者完成购车决策。该项目的实际意义有两方面,一方面,该研究可以降低销售商相应的成本,并且增加汽车销售商的推广渠道;另一方面,该研究可以减少用户在汽车选择过程中的收集数据的时间,提高有价值信息的筛选效率,进一步提高消费者进行汽车选择与购买速度。1.4论文结构本文共分为5个章节,各个章节的内容组织如下:第1章绪论。首先介绍了课题研究的相关背景,接着对自然语言处理NLP、汽车推荐系统的现状进行了分析,进一步论述了本项目研究实现的目的及意义,最后梳理了论文的整体结构。第2章本章介绍了相关概念与理论知识。本章介绍了本项目开发所需要的开发环境、相关工具的介绍和准备,以及要用到的一些技术。第3章需求分析与功能设计。本章主要分析了项目的需求,并设计了系统流程,分析使用了一些相关功能开发工具,最后设计了基于NLP技术的购车推荐网站系统的界面。第4章系统功能的具体实现。本章在基础数据准备、NLP技术的具体使用、系统界面功能等方面做了具体的编程以及实现。第5章系统测试。本章针对本项目所实现的所有功能模块进行了测试,通过设计一定的测试方案,最终测试结果符合本项目的要求。第6章进行总结展望。本章对全文所实现的功能做了系统的总结,并分析了此网站系统可以改进的地方,对未来的项目功能做了展望。

第2章相关概念与技术2.1相关概念2.1.1NavicatNavicat是一套快速、可靠并价格适宜的数据库管理工具,使用于三种平台:Windows、macOS及Linux。可以用来对本地或远程的MySQL、SQLServer、SQLite、Oracle等数据库进行管理及开发。专门为简化数据库的操作而设计。它能够与一切3.21或以上版本的MySQL一起工作中,并适用绝大多数的MySQL功能,包含触发器原理、存储过程、函数、事务、视图、用户等。NavicatforMySQL为技术人员提供了一套功能齐全的专用工具。它的用户界面(GUI)设计良好,这样使用者可以用简单安全的方法快速建立,组织,访问和共享资源数据库。为本项目的数据库设计提供了很大的便利。2.1.2汽车参考词条目前人们在进行购车决策时会参考很多因素,如考虑自己的购车用处、购车预算、计划购车时间,以及对车辆的座位数、空间、油耗、科技配置、安全性、用车环境等多方面的需求。ADDINCNKISM.Ref.{4A687E6F363B46eeB69F7E0459B32B8E}[23-25]在这个背景下,本文整理了下述几个参考项。(1)车型:按照不同形状分类有微型车、小型车、紧凑车型、中等车型、高级车型、豪华车型、三厢车型、CDV车型、MPV车型、SUV车型、跑车等车型。客户在进行购车决策时,车型往往代表了用户的购车意图,通常是其最先考虑的因素。(2)品牌:在购车时,消费者往往会根据自身对品牌的了解优先进行挑选。知名品牌有如奥迪、奔驰、宝马、本田、比亚迪、宝骏、长安、大众、保时捷等,消费者对某品牌的印象好坏,或是接触程度均会影响消费者的购车决策。(3)生产商:消费者在查看汽车品牌时,也需要关注其产商,如一汽大众与上海大众,宝马(进口)与华晨宝马,虽说同为一个品牌,但价格、性能以及客户的用车体验相差巨大,所以产商也是一个要关注的重要因素。(4)价格:消费者购车时,车价一般是对购车意愿影响最大的因素。不同的人对价格的敏感程度不同,有部分车主仅仅是为了代步出行,这种预算可高可低;而有些公司商务车则需要保持牌面,需要配置较高、外观较好的中高级车型,这种购车预算则相对较高。一般分类有以下几种:10万以内、10-15万、15-25万、25-35万、35-50万、50万以上等。(5)发动机:主要有L形(直列分布形)、V形(气缸分布呈一定夹角),B形(水平对置形)以及W形(气缸分布呈W形)等。发动机排量评级通常分为1.5T、2.0T、3.0T等。下图为对消费者购车看重因素的调查结果展示:图2-1购车参考因素网络调查2.2相关技术2.2.1MySQL数据库MySQL如今早已变成大部分中小型企业及站长搭建网站的数据库首选,其内置了简易web图形管理phpmyadmin专用工具,一般配合NacicatforMySQL使用。MySQL数据库是一种C/S模型(即客户端和服务端模型),它是一种关系型数据库,它包括以下基本概念:实体(比如“一个学生”、“一本书”等)、属性、元组、分量、码(如主码:能够唯一标识某医院组的属性、候选码等)、全码(如果一个码包含了所有属性,这个码就是全码)、主属性、非主属性等2.2.2JupyterNotebookJupyterNotebook是一个开源的Web应用程序,非常方便开发者创建和共享代码文档。它提供了一个非常友好的环境,开发者可以在里面运行自己的代码并查看结果,并在其中可视化输出栏展示数据,是一个十分方便的Python代码编辑器。它含两个组成部分。一是网页应用,开发者连接到服务器后,可以在网页端编辑运行代码,并且将说明文档、公式和其他富媒体类型的工具融为一体;二是文档,即此编辑器使用中的输入输出对象,都是以文档形式出现的,操作起来十分方便。2.2.3Python功能库本项目在进行数据获取时要用到一些爬虫的功能库ADDINCNKISM.Ref.{9001B5C9D6EF4cfbA5FD842D6AD3092C}[26-28]:Requests库,它在Python内置模块的基础上进行了高度的封装,从而使得Python进行网络请求时,变得方便简洁、利于开发者分析理解,使用Requests可以很快地完成浏览器符合规定的任何操作,其作用就是请求网站获取网页数据的。BeautifulSoup库,它通过解析指定文档为开发者提供需要抓取的数据。所有经过Beautiful库解析后得到的Soup文档将按照标准缩进格式的结构输出,结果为结构化的数据,为数据过滤提取做出准备。lxml库,使用Pythonlxml库,可以创建、解析和查询XML和HTML文档。它依赖于许多其他复杂的包,如Scrapy等。另外,在爬虫过程中拼接URL链接时要使用到正则表达式(RegularExpression,简称re):正则有自己特定的语法结构,它可以很轻松地实现字符串的检索、替换、匹配验证。对于爬虫程序,从HTML网页代码里提取想要的信息使使用正则表达式就非常方便ADDINCNKISM.Ref.{E1D855EC6D714c01A42C2F34C95B06BB}[29]。正则表达式有特定的语法规则,使用者可以根据自己需求来编写表达式,然后利用此表达式去一个长字符串集中进行匹配查找。对于网页来说,使用者可以使用相关的匹配URL的正则表达式去查看网页源代码中的所有URL,进而制作爬虫程序,获取所需数据。Python还有一些用来做文本分析的功能库:比如jieba库,它是开源的、用于处理中文分词的第三方库,由于中文文本之间每个汉字都是连续书写的,我们需要通过特定的手段来获得其中的每个词组,这种手段叫做分词ADDINCNKISM.Ref.{99C584CFCB4D495c918A38CEB6F88A54}[30-31],可以通过jieba库来完成这个过程。Jieba库最强大的功能之一就是对文章出现的词汇进行计数统计,即计算词频。与此类似的还有SnowNLP库,它也可以方便的处理中文文本内容ADDINCNKISM.Ref.{D7DE037FA72A4b3fB5951A8130D49B51}[32],并且和TextBlob(主要用于英文处理)不同的是,这里没有用NLTKADDINCNKISM.Ref.{86DDA1BEC69E4bff871B4FEB96A6ED4A}[33-34],SnowNLP库中所有的算法函数都是已经实现好了的,并且自带了一些训练好的词库与字典。使用SnowNLP库来进行文本分析将变得十分方便简洁。

第3章需求分析与功能设计3.1系统分析3.1.1系统需求分析本项目的设计要考虑以下几方面的需求:(1)功能性需求:本项目需要完成用户的需求获取及匹配、爬虫获取汽车之家网站的车型基本数据、口碑论坛帖子内容的文本处理及分析等功能。向本系统的用户(购车消费者)呈现出来的是一个网站系统,在本系统内,用户可以进行车型数据的查询以及获取随机推荐,并且可以选择查看某具体车型的详细信息。上述功能可以简化用户通过其他方式获取有价值信息的流程,更快的帮助用户获取有效的参考信息,更好的辅助用户进行购车决策。(2)非功能性需求:作为对功能性需求的补充,此项目还需要完成网页的逻辑实现以及功能实现、MySQL数据库的管理,将用户可以进行的操作定义为某页面功能,并将具体功能需求与网页、数据库联系在一起,形成一个完整的网站系统。本系统的简略需求分析图如下所示:图3-1系统需求分析图3.1.2系统流程分析本项目要设计实现一个网页系统,在网页的基础上实现了用户的个性化筛选、随机推荐、以及最终某具体车型的分析结果展示功能。用户在登录到本系统后,进入主界面,通过主界面的导航栏,可以进入到相应的子界面,开始自己的个性化筛选或是查阅系统生成的随机推荐车型,用户在此子界面上可以选择查看某一具体车型的详细信息,进入到系统的分析结果界面。流程图如下所示:图3-2系统流程设计图本项目的功能模块的分为以下几个部分,首先是用户需求的获取与匹配,本文主要使用JSP页面脚本来监听用户提交的筛选表单,从本项目的数据库中选出符合用户个性化要求的车型,将其基础配置展示给用户。然后是某具体车型的分析结果界面展示,用户在筛选过后可以选择查看某一具体车型的详细信息,进入到该车型的分析结果界面,本项目主要研究的就是对于帖子内容的文本分析,在此界面上显示的数据是论坛相关帖子的分析结果。分析结果将会把文本内容中的关键语句展示给用户,用户可以快速的查看论坛用户对某车型的具体用车体验,利用这些信息来快速的进行购车决策。另外,在安全需求方面,本项目作为一个小型购车推荐系统,不涉及任何联网或者财产安全问题,因此对安全性的需求比较低。数据库方面,因为不涉及和服务器数据交换,所有操作都针对本地MySQL数据库,故不会涉及个人隐私数据,不需要对数据进行特别保护。3.2数据库的设计本项目在对数据库中的表设计上,需要建立的表主要为车型统计表(即car表)、车型概述表(即carresult表)。设置类型carid为主键,通过carid将两张表建立连接。表3-1为车型配置统计表,用于用户在此项目推荐网站进行初步筛选及匹配,数据来源于汽车之家官网各车型的爬虫数据,主要记录了车型名称、产商、车辆类型、发动机、参考价格(最低)等信息,并设置carid车型编号为主键,方便对数据库进行操作。表3-1车型配置统计表字段名称字段含义字段类型是否可空默认值主键是否唯一1carid车型编号int否Null是是2carname车型名称varchar否Null否否3carmaker汽车产商varchar否Null否否4cartype车辆类型varchar否Null否否5carengine发动机float否Null否否6carprice参考价格(最低)float否Null否否表3-2为车型概述表,在用户选择查看某车型的详细分析结果后,会将此车型的详细的分析结果展示给用户,它包含车型编号(与表3-1对应)、车型名称、推荐等级、车型优点、车型缺点、分析结果等。其中,按照设计,推荐等级为此车型的综合评分,车型优点以及车型缺点处的数据主要从汽车之家口碑处获取,而分析结果处主要展示帖子内容的文本处理结果,会包含用户的一系列真实用车感受。其中,推荐等级、车型优点、车型缺点数据来源于汽车之际口碑评价数据,经爬虫获取。而分析结果数据来源于对论坛或口碑帖子内容的分析,经过一系列NLP流程得到。表3-2车型评价概述表字段名称字段含义字段类型是否可空默认值主键是否唯一1carid车型编号int否Null是是2carname车型名称varchar否Null否否3carlevel推荐等级varchar否Null否否4caradvan车型优点varchar否Null否否5cardisad车型缺点varchar否Null否否6caranalyse分析结果varchar否Null否否3.3网络爬虫的介绍及使用本项目基础数据来源于网络爬虫程序自动获取,数据取自汽车之家官方网站。网络爬虫程序基于HTML超文本标记语言,原理是模仿人的行为,来获取页面中某一个所需要的数据包,进而在某链接中获取项目所需信息。利用页面开发者工具可以调试分析页面各个组成部分。通用网络爬虫的工作流程如下:(1)选取一个初试URL链接(2)抓取网页相应元素(3)提取新的URL,并放到待抓取的URL队列中(4)判断此时获取到的数据是否满足项目条件,不满足则继续重复执行第二第三步,直至满足条件结束。在获取好所需信息后,需要将其导入上节设计好的数据库中。图3-3即为通用爬虫程序的工作流程图:图3-3通用网络爬虫工作流程图本文分析了汽车之家网站的页面元素构成,最后设计了分为三步完成的爬虫数据获取程序。由于汽车之家网站界面较多,而所需数据涉及到多个子界面,需要分析界面链接的URL链接购车及其之间的联系,要“清洗”去掉页面无关修饰元素,仅仅使用最基础的、本项目所用得到的页面元素,经调试分析,将整个过程分成三个部分:(1)首先清洗“找车”界面,在此界面,仅需使用产品库(汽车品牌首字母排序)的数个链接URL,爬取汽车之家各个品牌(譬如宝马)汽车对应的链接。(2)进入第一步获取的品牌链接后,可以看到此品牌所有的具体车型的链接,接下来要设计爬虫循环获取每个具体车型的URL,再次拼接URL并进入其所指页面,来获取其特定的基本参数、配置信息。(3)经第二步得到的链接,进入各具体车型(如宝马1系)页面,此时要分析页面元素结构,爬取每个汽车系列的参数(如宝马1系的发动机,价格,变速箱,颜色,用户评分等等)。3.4NLP技术的步骤介绍在使用NLP技术时,需要关注项目的需求ADDINCNKISM.Ref.{D83D643924304bd09C63381C5FFCAA0D}[35]。本文NLP设计流程主要为,获取到汽车之家论坛、口碑的论坛帖子文本数据后,通过文本分析处理,来提取帖子内容的摘要,进而将文本的主要内容传入数据库,用作某具体车型的分析结果,供用户查阅。按照项目设计,在输入一段长文本时,经过自然语言处理技术,可以将文本的主要内容(或者用户的主要想法)输出出来。在自然语言处理过程中,一般要有如图3-4所示的工作流程:(1)获取原始文本,来源为网页文本、新闻、报告等(2)利用分词算法处理原始文本(3)对文本中无用的或者对理解文本没意义的字符进行清洗(4)对英文需要进行标准化处理,将多个单词统一为同一单词(5)特征提取:将标准化之后的词,表示为向量的形式(6)利用各种AI的算法进行建模分析(7)对上一步的模型进行测试,挑选最优模型图3-4NLP工作流程对本项目来说,原始文本为汽车之家口碑、论坛文本,接下来利用分词进行数据的预处理,然后选择算法来实现提取文本内容的关键句。之后将此分析结果传入数据库,为后续网页功能实现做准备。3.5网页界面设计3.5.1基础信息一栏界面(主界面)作为此项目的主界面,基础信息一栏界面左侧设有数个导航按钮,可以分别点击并进入对应的子界面,完成其对应的功能。本项目未设计引导界面,所以用户所看到的第一个系统界面即为此界面。另外,它将MySQL数据库保存的内容全部展示了出来,用作基础信息供用户查阅。所设功能有以下几个,界面设计如图3-5所示:(1)基础车型配置信息展示(2)页面跳转,进入初步筛选界面(3)页面跳转,进入随机推荐界面(4)页面刷新图3-5主页面设计图3.5.2初步筛选界面用户在主界面点击左侧导航处“初步筛选”按钮,可进入“初步筛选界面”,顶部有“您好,请进行你的初步筛选!”,提醒用户以及进入初步筛选子界面。用户在此界面的几个下拉选择框中选择自己的意向车型等,此界面将设有必选项和非必选项,可以个性化的满足用户的筛选。在此页面会利用JSP的form表单提交功能,来与后台数据库进行数据匹配。用户可以点击“立即提交”按钮,进入初步推荐界面。也可以点击“重置”按钮,重置表单内容。界面设计如图3-6所示:图3-6筛选界面设计图3.5.3推荐界面用户可以点击主界面左侧导航栏“随机推荐”按钮,可以进入“随机推荐”界面,顶部有“以下为随机推荐数据,供查阅”,提醒用户已经进入随机推荐子界面。本界面数据会根据JAVA功能库的随机数方法,随机推荐数个保存在数据库中的车型给用户,用户可以像查看主界面一样,查看这些车型的基础配置信息,并且可以点击右上角的“back”按钮返回到主界面。用户也可以在初步筛选子界面点击提交后,进入“初步推荐界面”,此界面包含在前一页面中用户筛选出符合要求的车型配置信息。值得注意的是,此界面与“随机推荐界面”属与同一级界面,均向用户展示符合条件(随机或是个性化筛选)的车型信息。另外,两个界面均含有页面跳转功能。每行推荐数据设有“查看详细分析资料”按钮,用户点击后可以进入最终的分析结果页面,给用户展示最终的分析结果,供其参考。界面设计如图3-7所示:图3-7推荐界面设计3.5.4分析结果界面在初步推荐界面或是随机推荐界面,点击某行具体车型右侧的“查看详细分析资料”按钮,可以进入本次项目的分析结果页面。此界面需要用到本项目的第二张表,carresult表,此表存有车型编号、车型名称,此外还存有推荐等级、车型总结(优点与缺点)、分析结果等信息。此处推荐等级、车型总结来源于对口碑评价的爬虫数据,而分析结果则来源于对评论文本内容的自然语言处理分析。在此页面,用户可以查看数据库中已经保存了的,对某具体车型(如宝马1系)的论坛帖子内容分析结果,根据论坛帖子评论的客观性,用户可以获取比较真实的车型分析结果,并据此来辅助进行购车决策。界面设计如图3-8所示:图3-8分析结果界面设计第4章系统功能的具体实现4.1基础数据准备4.1.1爬虫程序实现网络爬虫程序通过web客户端发送request到达web服务端,web服务端的response通过web网络中转给web客户端,其中request是通过一定的协议格式封装成的数据包,其中常见的应用层协议有http(s)/ftp等。需要注意的是,爬虫程序运行时要表现的像用户的行为一样,本质就是需要模拟浏览器或者客户端,让程序的行为在服务器看起来更像人一样操作。实现原理流程如下图所示:图4-1爬虫实现原理在此网站界面调试开发者工具,可以获得服务器返回的数据包,在找到所需要的数据包后,打开其所指URL。如图4-2所示,图4-2目标URL所指界面图4-2即此时获取到的界面为经过“清洗”后的干净页面,不含其他HTML页面元素修饰,清洗后的页面对于分析网页结构、数据获取、制作爬虫程序有很大帮助,可以直接复制它的链接进行爬取。第一段爬虫的结果及个子页面(汽车具体品牌)的URL如图4-3所示。图4-3爬虫结果URL展示由于爬虫程序过程类似,即根据上阶段结果拼接生成新的URL,接着继续爬取页面,获取所需的页面元素数据。最终得到的车型基本数据如图4-4所示。图4-4车型参数统计结果展示为了后台数据统计、编号方便,数据库仅保存了汽车之家官网下宝马、奔驰等品牌的所有车型。车型基础配置信息表中,保留了车型名称、产商、车辆类型、发动机(最低配)、参考价格(最低)等参考词条。在汽车详情表中,保留了推荐等级、车型优点、车型缺点、分析结果等信息。4.1.2数据库的链接在爬虫获取过各具体车型的基本配置信息后,需要将数据导入到MySQL数据库,以便系统使用及快速地改进。接下来就需要将数据库的数据链接到网页端,本项目网页制作使用JSP、JavaScript、Java等语言完成,需要完成数据库的链接及数据显示工作。与传统的未封装的数据库链接相比,本项目使用到了Java的DAO设计模式,它可以分别将对数据库操作的三个功能,数据库链接类、DAO实现类(SQL语句)、VO实体类(包含属性和表中字段)进行单独封装,提高了程序的可读性以及代码的可移植性。下面代码为本项目的java封装功能包以及具体功能实现的部分展示:Connectioncon=null; PreparedStatementpsta=null; ResultSetrs=null; ArrayListlist=newArrayList(); Stringsql11="select*fromcar"; try{ con=DATAcon.getConnection(); psta=con.prepareStatement(sql11); rs=psta.executeQuery(); while(rs.next()){ Userobj=newUser(); obj.setcarid(rs.getString(1)); obj.setcarname(rs.getString(2)); obj.setcarmaker(rs.getString(3)); obj.setcartype(rs.getString(4)); obj.setcarengine(rs.getString(5)); obj.setcarprice(rs.getString(6)); list.add(obj); }其中con为新建一个数据链接,用于网页连接到数据库,psta用数据链接类中的sql语句查询方法,查询表car中的全部内容,obj为返回的用户类对象,其中包含数据表中每行的具体内容。在数据操作封装完成后,可以很轻易的在页面端调用封装库中的Java方法,来实现项目的一系列功能。4.2NLP技术的应用4.2.1自然语言处理SnowNLP库做文本分析,首先要先获取项目的语料库(Corpus),也就是我们要分析的所有文档的集合。本项目的文本数据集合,来自于汽车之家某具体车型论坛以及口碑内容。在成功获取一部分文本数据后,需要进行数据的预处理,即分词操作。从此处开始,有多种算法可以实现分词及之后文本分析的操作。下面做简单介绍。jieba库可以有效的完成分词等文本数据处理操作,它处理分词时精确模式、全模式以及搜索引擎模式。但是以上三种模式并不完全能满足本项目的功能需求,关于汽车使用经验的帖子,或多或少会包含一些常用词库中所没有的专业术语,需要额外导入项目所需的停用词库、词典。另外,作为比较基础的分词工具,用jieba库来做文本分析显得比较困难。在实现文本数据处理的其他操作时,SnowNLP库更为方便、快捷,它可以方便的处理中文文本内容,它是将TextBlob(针对英文分析)改进后的针对中文的自然语言处理库。SnowNLP库中所有的算法函数都是已经实现好了的,这是它的一个优点,并且自带了一些训练好的词库与字典,这样在编写算法的时候会显得十分简洁好用。除了处理中文分词、它还实现了关键词提取、文本摘要等功能。经比较,最终选用SnowNLP库作为本项目实现文本分析的工具。下一节介绍具体算法的实现。4.2.2TextRank算法TextRank算法是一种基于图的的排序算法ADDINCNKISM.Ref.{AFDEA60EEAB74f50A1F4CDFF55864C94}[36-38],功能为关键词抽取和提取文档摘要,它是经过PageRankADDINCNKISM.Ref.{DFD0DA3066624651B1433AC229F15A71}[39]算法(谷歌的网页重要性排序算法)改进得来的,它可以更充分的利用文本元素之间的关系。它能够从一个给定的文本中抽取出该文本的关键词,并利用抽取式的自动文摘方法抽取出该文本的关键句。TextRank算法的基本思想是将文档看作一个词的网络,该网络中的链接表示词与词之间的语义关系。TextRank算法的核心计算公式如4-1所示:其中,WS(Vi)表示句子i的权重,WjiQUOTEWji表示两个句子的相似度,WS(VjWS(Vi)=(1−d)+d∗本项目主要使用到了TextRank算法的关键句抽取(sentenceextraction)功能ADDINCNKISM.Ref.{18193E6E21484ba494EEAC3F0783F15F}[40]。句子抽取任务主要针对的是自动摘要这个场景,将每一个sentence作为一个顶点,根据两个句子之间的内容重复程度来计算他们之间的“相似度”,以这个相似度作为联系,由于不同句子之间相似度大小不一致,在这个场景下构建的是以相似度大小作为edge权重的有权图。衡量句子之间相似性的公式如4-2所示:Similarity(Si,Sj公式中,Si,Sj分别表示两个句子,wk表示句子中的词,公式右侧的分子表示的是出现在两个句子中的相同词的个数,公式的分母表示对句子中词的个数求对数之和。这样设计的fromsnownlpimportnormalfromsnownlpimportsegfromsnownlp.summaryimporttextrankif__name__=='__main__': t=normal.zh2hans(text1) sents1=normal.get_sentences(t1) doc=[] print('') forsentinsents1: words1=seg.seg(sent) words1=normal.filter_stop(words) doc.append(words1) rank11=textrank.TextRank(doc1) rank11.solve() forindexinrank11.top_index(5): print(sents1[index]) keyword_rank=textrank.KeywordTextRank(doc) keyword_rank.solve() print('') forwinkeyword_rank.top_index(5): print(w)上述即为使用SnowNLP中库的TextRank算法来实现文本关键句提取功能的代码。其中用到了SnowNLP库中的seg模块方法,seg.seg(sent)语句实现了对文本的分词处理,过程中也使用到了SnowNLP库中的停用词表,最后使用到了textrank模块封装好的KeywordTextRank方法,统计了权重排名前5的关键句,并将其按序输出。下面进行简单的输入输出测试,输入数据为宝马1系口碑的帖子内容,输出结果如图4-5所示:图4-5输入及输出数据展示此处的输入数据为宝马1系口碑评价完整帖子内容,输出数据为这段文本数据的摘要信息。从这权重排名前5的分析结果语句,可以提炼出文本的核心内容,从数个结果语句中,用户可以清楚的了解到某具体车型的实际用车体验。4.3系统功能实现4.3.1主界面的实现根据本文第三章的分析设计,本网站系统需要实现以下五个页面:主页面、初步筛选界面、初步推荐界面、随机推荐界面、分析结果页面。网页开发用到了Eclipse开发环境开发JSP动态网站,利用Java语言定义实现具体所需的功能资源包,用JavaScript语言编写页面功能脚本。另外,所有页面均使用到了layui-前端框架,来对页面进行渲染优化。其中在主界面,调用上节封装完成的DAO库中的get方法,从数据库中获取每一行的信息并显示到页面上。在主界面有数个子界面链接,利用HTML的页面跳转功能的实现了页面间的逻辑关系。下述代码为主页面调用User的get方法,用于将数据展示在网页前端。 <tdstyle="width:10%;text-align:center"><B><%=obj.getcarid()%></B></td> <tdstyle="width:20%;text-align:center"><B><%=obj.getcarname()%></B></td> <tdstyle="width:30%;text-align:center"><B><%=obj.getcarmaker()%></B></td> <tdstyle="width:15%;text-align:center"><B><%=obj.getcartype()%></B></td> <tdstyle="width:15%;text-align:center"><B><%=obj.getcarengine()%>T</B></td> <tdstyle="width:10%;text-align:center"><B><%=obj.getcarprice()%>w</B></td>其中以上六列分别显示出的内容为车型编号carid,车型名称carname,产商carmaker,车辆类型cartype,发动机carengine以及参考价格carprice。在主界面的左端设置有两个页面导航按钮,点击即可进入到目标页面,右侧为数据库中的车型信息展示,主界面实现如图4-6所示:图4-6基础信息一栏界面(主界面)4.3.2筛选界面的实现在筛选界面,利用了HTML的form表单与自定义的数据传输方法,来实现页面跳转时的页面间传参,并设置有必填项与非必填项的输入框,自定义了非规范操作的提醒,以及填写完成后的重置输入与数据提交按钮。点击提交后根据页面间的传参,来获取用户的筛选要求,从而生成对数据库操作的select语句,实现自动筛选功能。layui.use(['layer','form'],function(){varform=layui.form;form.on('select(firstselect)',function(data){layer.alert("你选择了"+data.value)});form.on('submit(formDemo)',function(data){/data.field是一个json对象,批量获取表单的值{'表单的name':'对应的值'}layer.msg(JSON.stringify(data.field));上述代码实现了页面用户所选数据信息的监听提交,从而从数据库中进行匹配推荐。初步筛选页面实现了对用户个性化需求的获取以及页面参数传输,为推荐界面的指定数据显示做了准备。初步筛选界面实现如图4-7所示:图4-7初步筛选界面4.3.3推荐界面的实现经第三章节的分析,随机推荐界面与初步推荐界面为同级界面,点击“查看详细分析资料”按钮,可进入最终的分析结果页面。在初步推荐界面,利用的时初步筛选界面所生成的SQL语句,页面右侧展示的结果为符合筛选要求的数据;而在随机推荐界面,利用Java的Random()函数,实现了随机推荐功能,向用户展示的是不固定数量的随机车型信息。如下述代码所示,利用随机数函数实现随机推荐页面的随机车型推荐。<% SETdaodao=newSETdao();ArrayListlist=dao.findAll();Randomr=newRandom();inti1=r.nextInt(10);//生成[0,10]区间的整数 %>随机推荐界面与初步推荐界面较为类似,仅展示其一,随机推荐界面实现如图4-8所示:图4-8随机推荐界面4.3.4分析结果界面的实现随机推荐界面与主界面、初步推荐界面的数据展示原理一致,只是用到数据库的第一张表,car表,利用Java的动态数组ArrayList,在查找数据库完成后,生成一个数组对象,然后在页面端循环将数组内容打印出来。分析结果界面则是简单的表格应用,利用数据库的第二张表carresult表,根据前一级的页面(随机推荐界面、初步推荐界面)传输的carid参数,进而筛选信息,展示一系列分析结果给用户。其中,分析结果页面也用到了已封装好的java方法,用于操作数据表carresult。在JSP实现页面可以方便的调用函数,进而对数据库使用select操作语句,完成指定信息的显示。分析结果界面实现如图4-9所示:图4-9分析结果界面展示至此,项目所需的五个页面及其对应的功能已实现完成。

第5章系统测试5.1测试目的及测试方案系统测试要包含功能完整性测试、系统兼容性测试、性能测试以及用户界面测试等方面,本项目实际需要的测试为功能测试以及用户界面测试。功能测试部分主要测试此网页系统在获取及匹配用户需求信息模块,以及界面数据输出展示、界面逻辑跳转模块。用户界面测试方面主要测试界面显示的完整性,以及测试数据是否出现格式错乱等。此次测试的资源包含:测试环境(chrome浏览器、Tomcat服务器)、测试数据(想要了解“宝马1系”车型信息的购车用户A)。预计的测试结果为用户A点击进入界面后,点击初步筛选或是随机推荐,进入推荐界面,选择查看“宝马1系”的详细信息,最终成功获取到了其他用户的真实用车体验,从而进行了购车决策。5.2基于NLP技术的购车推荐系统的测试用户在登陆界面,输入用户名、密码后点击登录即可进入项目的主界面。登陆界面与主界面不涉及具体数据测试,不做展示。主界面测试数据用例为宝马品牌,界面输出展示宝马品牌各车型的配置信息。用户点击左侧导航栏的“随机推荐”按钮,即可进入随机推荐界面。同样的,点击“初步筛选”可以进入初步筛选界面。图5-1随机推荐界面测试结果图5-2初步筛选界面测试输入数据在初步筛选界面,本测试用例填写了两个必填项,一个非必填项。车型选择处(必选项一)选择了“大型SUV”,发动机选择了“3.0T”,预算一栏(必选项二)选择了“>=100w”。点击立即提交进入“初步推荐界面”。图5-3初步推荐界面测试输出数据如上图所示,初步推荐界面测试过程输出的数据,符合筛选界面的筛选要求,需要注意的是,数据库中仅保留了宝马、奔驰的各车型信息,用于快速的系统测试,故筛选出的结果仅有两项。随机推荐界面、初步推荐界面都含有“查看详细分析资料”按钮,点击即可进入本项目的“分析结果界面”,本次测试以随即推荐界面的“宝马1系、华晨宝马、紧凑车型、1.5T、20.58w”为例,点击按钮跳转,查看其分析结果如下图所示。图5-4分析结果界面测试输出数据用户此时可以看到“宝马1系”的详细分析结果,其推荐等级为4.45分(满分为5.0);车型优点:加速强劲、油耗低、座椅舒服、配置丰富、车身运动派、行驶稳定性好、储物空间设计合理;车型缺点:胎噪大、后排空间小、方向盘轻重不合适;分析结果:1.真的这个车的定位就注定它的空间不会怎么样。2.后排乘坐空间也是有一定的一个影响。3.但是不得不说驾驶舒适性还是很不错的。4.外观整体我还是很喜欢满意的。5.这个车整体操作还是很不错的动力方面是我最满意的地方这款车虽然不是特别完美的但是我认为是同级别性价比最高的一辆车了。需要购车的用户在查看过分析结果后,结合车型基础配置信息,可以很快的获取“宝马1系”车型的优缺点,以及其他车友的真实的用车体验。至此,本次系统测试结束。经上述实例的测试分析,可以初步得出结论:在本系统的帮助下,用户可以很快的查看某具体车型,而不需要去了解论坛、口碑的帖子的具体内容。本系统成功地提升了消费者获取车型信息、评价的效率,对用户进行购车决策提供了有效的帮助。

第6章总结与展望6.1本文总结本文研究设计的汽车推荐系统主要实现了论坛数据获取及数据分析、用户需求获取、文本分析及内容推荐。具体研究内容如下:(1)汽车车型配置获取。本项目设计爬虫程序,对各品牌、各车型进行数据获取,并根据设置的相关参考词条导入数据库,用于用户进行初步筛选。(2)汽车论坛发帖分析。对用户购车推荐的数据主要基于汽车论坛,如“汽车之家”网站。本文对汽车之家论坛进行了详细分析,利用文本分析,进行结果分类得到相关参考项,并根据分析结果建立数据库进行数据准备,利用其数据的客观性,并进行数据可视化处理,供用户购车挑选时进一步参考。(3)购车消费者需求获取及匹配。利用本项目的网页来获取用户的相关需求,根据用户所选每一类参考项,进行筛选计算,得到最终的需求信息,从数据库中进行匹配,返回一系列推荐车型给用户。(4)根据用户需求进行推荐。在获取用户的需求后,在数据库中进行文本筛选、信息匹配,最终得出数个车型推荐给用户参考,并将相关的发帖内容分析结果付给用户参考。6.2本文展望在此次设计中,本项目通过Python的一些功能库来实现数据获取及分析,利用JavaScript脚本语言设计了网页,基本完成了基于NLP技术的购车推荐系统的要求,但随着科技的发展和进步,研究永无止境。本系统后续还有许多要优化的方向。(1)对于汽车之家论坛文本数据的获取,未能实现智能爬虫爬取,而是手动获取部分数据,可以更进一步优化,根据所推荐车型,用户点击某具体车型后,可以据此设计拼接URL,并设计爬虫程序破解界面字体的反爬虫设置,进而实实时的文本评论分析,使系统变得更加完善。(2)对于汽车车型评价的参考项,本项目仅涉及了一些基础配置,之后可以添加更多的车型评价专用参考项,以达到更加客观、具体的推荐。

ADDINCNKISM.LBib参考文献[1]石晓洲.“80后”汽车消费市场需求和营销创新研究[J].中国集体经济,2010(3):74-75.[2]张文广,周孙锋.消费者购车行为的影响因素分析[J].汽车工业研究,2012(2):38-40.[3]汪雯.经济疲软购车行为呈现理性回归[N].贵阳日报.2008-11-17.[4]熊倬,李兴国.家庭购车行为影响因素研究[J].市场周刊(理论研究),2014(9):44-47.[5]韩雅娟.汽车企业数字营销发展趋势[J].互联网周刊,2020(23):32-34.[6]AltharRaghavendra-Rao,SamantaDebabrata,KaurManjit,等.SoftwareSystemsSecurityVulnerabilitiesManagementbyExploringtheCapabilitiesofLanguageModelsUsingNLP.[J].Computationalintelligenceandneuroscience,2021:69-74.[7]PutriTsarina-Dwi.Intelligenttransportationsystems(ITS):AsystematicreviewusingaNaturalLanguageProcessing(NLP)approach.[J].Heliyon,2021:46-51.[8]SenguptaArindam,CaoSiyang.mmPose-NLP:ANaturalLanguageProcessingApproachtoPreciseSkeletalPoseEstimationUsingmmWaveRadars.[J].IEEEtransactionsonneuralnetworksandlearningsystems,2022:38-43.[9]邱德钧,冯霞.谓词逻辑视角下HanLP中文分词中对歧义的处理[J].科学经济社会,2020,38(1):33-38.[10]SharafMarwa,HemdanEzz-El-Din,El-sayedAyman,等.Asurveyonrecommendationsystemsforfinancialservices[Z],2022:16-19.[11]ZhouJilei,JiangGuanran,DuWei,等.Profilingtemporallearninginterestswithtime-awaretransformersandknowledgegraphforonlinecourserecommendation[Z],2022:13-18.[12]KimHyojung,ChoInho,ParkMinjung.Analyzinggenderlessfashiontrendsofconsumers’perceptionsonsocialmedia:usingunstructuredbigdataanalysisthroughLatentDirichletAllocation-basedtopicmodeling[Z],2022:1-2.[13]PandharbalePriya-B.,MohantySachi-Nandan,JagadevAlok-Kumar.Recentwebservicerecommendationmethods:Areview[Z],2021:24-28.[14]王洪伟,段友祥.面向微博的个性化内容推荐算法研究[J].计算机与数字工程,2022,50(1):152-156.[15]陈卓.基于评论文本情感分析和概率模型的汽车推荐系统研究[D].重庆大学,2016.[16]ChenZhuo,FengYong,LiHeng.ANovelTop-KAutomobilesProbabilisticRecommendationModelUsingUserPreferenceandUserCommunity[C]//2014InternationalConferenceonComputerEngineeringandApplication(ICCEA):IEEE:3-6.[17]付正.个性化推荐算法在汽车销售领域的应用研究[D].上海应用技术学院,2015.[18]富丽娜.关联规则算法研究及其在汽车销售网站的应用[D].大连理工大学,2007.[19]曾珠.基于客户行为差异的汽车售后服务推荐研究[D].武汉理工大学

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论