python优秀案例:基于机器学习算法的景区旅游评论数据分析与可视化系统,技术使用django+lstm算法+朴素贝叶斯算法+echarts可视化
中国旅游经济随着全球旅游业发展走出了新的道路,张家界的国家森林公园作为中国第一个被联合国教科文组织评审通过的世界自然遗产地、国家5A级旅游景区是吸引海内外游客旅游休闲和文化消费的热点地区。互联网和社交媒体的普及和应用使得旅游者发布的大量旅游评论的产生,他们以非结构化、非正式的信息形式记录了人们对旅游景区中服务、景观、设施、文化等方面的主观反应,具有重要的旅游体验价值,可以帮助分析和解决游客提出的管理需求,改善管理条件[1]。但传统的旅游者评论文本人工分析受到人工主观解读能力有限和重复人工解读的影响,通常处理不过来数据信息量,缺少旅游文本潜在情感倾向和主题关联性挖掘和趋势动态分析,而没有对应的旅游客源群体的需求和消费痛点处理评价和景区管理人员决策利用。
本文首先尝试应用机器学习处理自然语言的方式,设计一套用于张家界景区旅游评论的大数据分析模型,解决非结构化文本数据应用瓶颈和游客心理变化影响下的非线性游客意向自动识别、旅客情感极性分析和实时热点话题探索的问题[3]。
首先,国内众多研究机构基于携程、同程等旅游网站进行多源数据开发,针对不同评论类型可分别通过API的方式抓取用户评论数据、评分数据、订单数据等结构化数据,同时还可借助八爪鱼采集器、Python框架等方式通过网络爬虫程序从社交类媒体采集结构化的文本内容,并借助正则化、Jieba分词、分词停用词处理、主题领域词典的构建(如张一彤在研究汽车领域舆情分析时,利用各类网络信息构建汽车领域的词汇库)等方式进行数据清洗以获取高质量数据集[6]
本文提出的基于旅游文本挖掘的张家界景区在线旅游评论自动分析系统是一个建立在自然语言处理及机器学习基础上的人工智能辅助景区管理者及游客的信息感知平台,基于旅游管理及游客旅游感受的系统整体设计框架,以提升旅游体验和智慧景区建设为目标,利用requests爬取携程网上用户旅游评论信息,基于LSTM、朴素贝叶斯等模型对评论进行信息挖掘和分析:采用分词、去除停用词、TF-IDF提取特征进行数据预处理,从而对旅游评论进行文本预处理;通过情感分析模块中的情感极性判定对评论所体现的旅游体验情绪进行判定,主题分析模块对景区游客的主要关注点,如住宿设施的完善程度、景区交通等,进行分析,基于K-means聚类分析从而对用户旅游评论文本进行潜在的分类主题簇挖掘,对景区旅游体验、服务状况的优势与不足进行精准的描述,并利用基于Matplotlib可视化界面清晰直观地呈现情感分布环形图、主题词云图及聚类分析结果,通过自动化的旅游文本评价指标为景区管理者及时感知并分析在线用户反馈信息,辅助及时对景区软硬件服务进行及时调整与改进,为在线的旅游客群提供全景多角度的旅游体验与评价信息支持,形成景区形象自我优化的一个闭环,进行旅游文本信息获取、挖掘与分析过程中测试深度学习模型的有效性,并为后续开展的智慧景区与智慧旅游等领域对文本、情感信息计算及主题挖掘的技术支持。
Django是2005年被AdrianHolovaty和SimonWillison所开源的一个PythonWeb框架,它使用MTV(Model-Template-View)架构来尽量简化复杂网站的开发。它提倡代码复用(也就是减少重复编写代码的原则Don't Repeat Yourself (DRY)),同时支持高效快速的开发过程,并内置多种安全防护功能,帮助开发人员防范常见的安全威胁,如SQL注入攻击、跨站脚本攻击(XSS)以及跨站请求伪造(CSRF)等问题。Django通过提供强大管理后台、表单、身份验证以及URL设计等功能帮助开发者大大提高Web应用开发的效率和安全性。
景区评论分析系统的设计与实现中,通过request库对携程网进行发起一个请求,从而获取网页内容和数据,在利用特定的网页解析技术提取出我们想要的内容[8]。
另外可以通过设定参数中的请求头、参数、Cookie等信息等来达到防止网站的反爬。通过循环使用携程API接口或者模拟访问携程网页来获取用户评论等信息[9]。
循环神经网络(LRNN)中最为耀眼的明星非长短期记忆网络(LongShortTermMemory,LSTM)莫属,它也是构建时间序列数据处理必备的模块[10]。基于传统RNN的模型基础上引入巧妙的门控模型解决了RNN的长期依赖问题,使模型能够更好地捕捉时间序列中的长期依赖和短期依赖的变化[11]。在LSTM中,核心方程由遗忘门、输入门、输出门以及记忆单元更新方程组成[12]。通过运用权重矩阵和激活函数,这些计算方法能够从数据序列中提取出长期的依赖信息[13]。通过各部分公式组合的方式LSTM模型带给我们更加精准、可靠的预测和建模。
朴素贝叶斯是通过贝叶斯定理得出的一种简单分类模型,通常应用于文本分类。文中介绍了朴素贝叶斯模型的基础公式,并实现了朴素贝叶斯情感预测模型,说明了基于朴素贝叶斯模型进行建模在特征彼此独立假设下有着较大的优势。
为构建张家界景区旅游评论数据分析与可视化系统,需围绕数据设计核心功能模块,具体需求如下:
该部分使用requests(Python的爬虫工具)进行数据采集,针对携程网制定网页解析规则,并通过请求头、IP代理池等技术绕过防爬虫机制。数据清洗方面,利用pandas工具进行结构化转换,如通过函数实现对文本数据的评论去重、对无星级评分进行平均值补全和针对特定领域文章中的特殊符号如广告词、空格以及空行等,使用正则表达式过滤掉垃圾词和无关内容。
针对情感部分,主要设计了双LSTM结构的网络模型,词向量选择300维中文Word2Vec模型,隐藏层隐藏单元128位,采用Attention技术进行特征提取(抽取评论关键语义)[15],训练样本为人工标记的10000条景区评论,准确率达92.7%;针对主题,基于TF-IDF方法提取的关键词如“景区承载力”、“景区门票性价比”、“景区亲子项目设施”等高权重的主题簇;进一步分析提出将情感标签(positive/negative)与主题相关度,比如在负面评论中抽取到关键词“排队长”的频率是正向评论频率的4.3倍。聚类模块提供了K-means,支持对评论的聚类。
采用echarts可视化库,实现多维度动态图表(情感分布饼状图、关键词词云图、时间趋势折线图)、地理信息热力图,实现条件筛选,与图表联动;设计友好可视化界面,具备数据导出、调整参数、自定义分析等可视化展示,以供不同角色用户做决策所需,并且根据lstm情感分析模型,可以输入一句评论语句,预测该句评论的情感倾向。
设置管理员和一般用户的管理权限,提供注册、登录、添加用户等,管理员能够设置数据源、修改模型参数、添加管理员及用户等,普通用户只限查看分析结果以及简单的交互操作,保证安全性和稳定性。各功能框图如图所示:
非功能需求在实现系统基本功能之外的系统设计主要遵循四项基础性系统设计原则,能够对系统的性能和系统稳定性给出保证。系统非功能需求设计如下。
便利化原则:系统的设计初衷就是让用户使用,为用户提供简便实用的可视化分析平台,用户在打开前端后很快就能适应,根据准确的预测结果,提高用户的活跃程度。
扩展性原则:在增加功能时,需将数据与界面分离,以确保系统功能设计清晰,从而提升系统的扩展能力。
保护用户数据是安全原则的核心。我们为用户打造了一个安全的分析系统。
系统的业务流程由数据收集、数据预处理、数据分析与建模以及结果的可视化展示组成。数据采集过程包含对张家界评论数据的采集过程。数据预处理过程针对数据进行去噪处理和特征处理,保证数据的可用性。数据分析和建模过程针对采集的评论数据,利用LSTM算法获取预测结果,预测结果展示过程在前端页面进行展示结果,增强用户活跃度。业务流程图见图3.2。

4 系统设计
本系统设计了前后端分离的三层架构结构,包括表现层、业务逻辑层和数据访问层。表现层利用Django框架实现后台显示界面,并且根据响应式设计保证该系统的良好展现。表现层通过Ajax等手段向业务逻辑层请求数据,显示数据或响应用户。系统业务逻辑层是处理用户请求的逻辑业务核心,是各功能模块的实现核心。本系统将用户鉴权模块、检索模块、评论分析模块和情感分析模块组成业务逻辑层。其中评论分析模块采用Echarts可视化图表,利用聚类分析、主题分析结果将数据展示。情感分析模块采用LSTM神经网络进行实现。
数据访问层的主要职责是与MySQL数据库交互,运用ORM技术实施对数据的增、删、改、查,并且保证对数据的正确性和安全使用性。系统的数据来源分为python爬虫抓取的携程爬取的张家界评论数据和用户在系统中产生的交互数据。从安全使用性来说,系统通过用户的认证和用户权限的管理来实现保护用户的信息和系统资源。整个架构的设计理念都是遵循高内聚、低耦合原则,各个功能模块之间都是通过明确的接口来完成交互,便于系统的维护及扩展,其运行稳定可靠。
本系统对照功能实现,用户模块也就是系统使用者拥有登录注册、数据采集、数据可视化、情感预测等功能。
数据采集模块利用网络爬虫完成对携程网张家界评论的采集、解析和存储。以携程为数据源,采用Python语言,并借助网络请求库(如requests)、数据解析库(如BeautifulSoup)、数据处理库(如pandas)、数据库操作库(如pymysql、sqlalchemy)等技术加以实现。数据采集流程图如图4.1所示。

图4.1 数据采集流程图
当用户注册时,需要在注册界面上填写用户名、密码、邮箱,在注册过程中一旦需要提交操作就会把填写的信息传回服务器端,在后端接口验证其正确性,在验证正确后存入数据库中进行创建账户。而登录时,当用户填写完登录凭据,在登录过程中向服务器端请求,通过服务器端与数据库进行比对,验证其真实性,在验证通过时返回给前端是否验证成功的标志,根据标志通过响应信息修改前端相关元素,同时在用户界面显示注册或登录结果的提示。通过前后台的交互控制用户身份认证和权限控制。注册和登录的控制如图4.2所示。

图4.2 注册登录流程图
可视化过程:当系统登录用户进入可视化界面时,前端将对用户的观看请求进行打包并发送给后端服务器。后端调用可视化的服务程序,程序会读取数据库内的数据对其进行分词、统计等,产生词云图、柱状图、地图等图表。后端服务器再将图表发送至前端页面经过渲染,向用户展示数据可视化的效果。可视化的流程如图4.3所示。

图4.3 数据可视化流程图
预测模块过程主要包括3个环节:数据准备、模型训练、生成预测。首先是将数据从数据库里提取出来作为数据来源,利用LSTM算法对数据进行训练,并通过对数据集进行数据预处理、词向量转换处理等进行训练集划分,实现对数据集的训练,然后将训练完成的模型进行储存。再输入模型的对应文本等作为条件,便能达到对输入的文本进行情感倾向预测的结果。模块流程如下图4.4所示。

图4.4 情感预测流程图
根据该系统的数据库表设计,系统中的数据类型为“用户”、“评论信息”2个实体。如图4.5所示的用户信息E-R图对“用户”实体及其对应属性进行了阐述,ID、账号、密码、头像、姓名、性别、手机号、年龄都是反映系统中用户基本信息的结构的属性。

图4.5 用户E-R图
评论信息E-R图如图4.6所示,E-R图展示了“评论信息表”及其相关属性,包括id、评论、地点、综评、景色评分、趣味评分、性价比评分、套餐类型和是否VIP,用于描述用户对旅游地点的综合评价信息。

图4.6 评论信息E-R图
用户信息如表4.1所示,用户表存储用户相关数据,包括用户ID,用户名,密码,邮箱,地址,个人简介,手机号等数据,用户ID为键。
表4.1 用户表
字段名 | 类型 | 长度 | 说明 |
id | int | 0 | 用户编号(主键、自增) |
username | varchar | 255 | 用户名 |
password | varchar | 255 | 密码 |
text | 0 | 邮箱 | |
content | text | 0 | 简介 |
address | text | 0 | 地址 |
phone | text | 0 | 手机号 |
评论信息如表4.2所示,评论信息表存储了评论的相关信息,包括id、评论、地点、综述、评分、套餐类型、是否VIP等信息。其中ID为主键。
表4.2 评论信息表
字段名 | 类型 | 长度 | 说明 |
评论 | TEXT | 255 | 不为空 |
地点 | TEXT | 255 | 不为空 |
综评 | TEXT | 255 | 不为空 |
景色评分分数 | INTEGER | 255 | 不为空 |
趣味评分分数 | INTEGER | 255 | 不为空 |
性价比评分分数 | INTEGER | 255 | 不为空 |
套餐类型 | TEXT | 255 | 不为空 |
是否VIP | TEXT | 255 | 不为空 |
id | INTEGER | 0 | (主键、自增) |
5 基于LSTM和朴素贝叶斯模型的情感分析设计与实现
5.1LSTM模型算法
根据Python设计张家界景区评论数据采集模块,借助网络爬虫可对携程网评论进行抓取、解析、储存,主要是张家界景区作为数据源,应用Python语言借助网络请求库(如requests)、数据解析库(如BeautifulSoup)、数据处理库(如pandas)、数据库操作库(如pymysql、sqlalchemy)等技术实现。具体实现:利用 Python 中的 requests 库模拟浏览器请求,通过访问携程网的 API 接口(https://m.ctrip.com/restapi/soa2/13444/json/getCommentCollapseList?_fxpcqlniredt=09031028411306444964),按页数循环获取前300 页的评论数据。每页包含 10 条评论信息,程序提取评论内容、评论时间、评论地区、套餐类型、是否VIP、评分等多个字段,并将这些数据以列表形式存入 CSV 文件中。爬取核心代码如图5.1所示:

图5.1 数据采集核心代码
使用pandas库将爬取的数据存储在DataFrame中,方便后续处理和分析。利用sqlalchemy库创建数据库引擎,通过pymysql库连接MySQL数据库,将DataFrame中的数据存储到数据库表中。将爬取的数据保存到CSV文件中,通过to_csv()方法实现数据的持久化存储。将数据保存到MySQL数据库中的数据表,通过to_sql()方法实现数据的持久化存储,实现数据的长期保存和管理。数据采集结果如图5.2所示:

图5.2 数据采集结果
本论文实现了基于文本的数据预处理与数据清洗,即实现数据预览、词汇表构建、数字索引表示、词向量表示构建与数据保存功能。对原始数据进行预览,构建词汇表并对停用词与单字符词进行过滤,将文本数据表示为数字索引的形式方便后续进行深度学习模型操作,使用word2vec预训练模型构建词向量表示以加强文本数据的表征能力,将处理好的数据保存到本地数据文件,包括训练集、验证集、测试集文本数据和文本标签,方便模型后续的训练。这能够增加模型对文本数据的理解建模能力,对文本分类等任务,情感分析等任务提供了数据处理流程。停用词效果如图5.3所示、向量构建图5.4所示词:

图5.3 停用词结果

图5.4 词向量结果
模型实现流程如图5.5所示:

图5.5 模型实现流程
划分数据集。该数据集由已经分词的文本以及标签构成。其中标签2个:0代表正向标签,1代表负向标签。数据集整体被划分为训练集、测试集和验证集。其中,训练集含有19998条评价,正向和负向标签各占50%,形成了一个较为平衡的训练数据集。其中测试集含有369条评价,含有的正向和负向标签分别有182和187条;测试集主要用于判断模型在新的数据上的表现。验证集含有5629条评价,正向和负向标签分别含有2817条和2812条;验证集主要用于训练模型时对模型参数的调整以及模型效果的验证。由于数据集内部的各类别数量均衡,因此无需做类别不平衡处理,保证了模型训练与模型评估的公允性和有效性。上述的数据集划分和标签分布的依据是模型的构建与校验,构建合理的数据集可以方便且高效的构建出一个用于情感分析任务的模型。保证模型的泛化能力和准确率。训练集数据如图5.6,测试数据如图5.7所示:

图5.6 训练集数据

图5.7 测试集数据
数据准备和构建DataLoader:在数据预处理部分,经过数据预览、建立词表、转换成索引数字表示,将数据准备至训练集、验证集、测试集,将预处理数据转化为DataLoader,以批量的形式加载处理数据,包括训练集、验证集、测试集的DataLoader。
构建模型:首先构建基于LSTM模型,其参数设置包括:
- 词汇量(vocab_size):定义词汇表的大小,即不同单词的数量。
- 嵌入维度(embedding_dim):指定词嵌入的维度,用于将词汇映射到稠密向量表示。
- 隐藏维度(hidden_dim):指定LSTM隐藏层的维度大小,决定了模型的表示能力。
- 数层(num_layers):定义LSTM模型的层数,可控制模型的复杂度和表达能力。
- 输出类别数(n_class):定义模型输出的类别数量,对应情感分析任务中的正面和负面评价。
- 是否双向(bidirectional):指定是否使用双向LSTM,以更好地捕捉序列数据的上下文信息。
具体参数详细见表5.1所示:
表5.1 LSTM模型参数设计
词汇量 | 嵌入维度 | 隐藏维度 | 数层 | 输出类别数 | 是否双向 | 训练迭代周期 | 学习率 |
54848 | 50 | 128 | 2 | 2 | True | 5 | 0.0001 |
采用LSTMModel类建立基于LSTM的模型对象,并设置参数完成模型初始化。模型包含嵌入层、LSTM层以及全连接层,用于执行特征提取与情感分类的任务。
带注意力机制的LSTM模型的参数设置,除了基于LSTM模型的参数外,还需要设置注意力机制相关的参数,如注意力权重矩阵等。构建过程概述:
- 根据任务需求设置词汇量、嵌入维度、隐藏维度等参数。
- 初始化模型实例,并根据参数配置Embedding层、LSTM层、注意力机制等结构。
- 设置优化器和损失函数,准备模型进行训练。
- 训练模型监控模型性能,根据验证集准确率保存模型性能最好的模型。模型每进行一个epoch迭代完一批训练数据,计算损失,更新模型参数,然后计算训练集准确率、F1值和召回率等。在训练模型时,采用Adam优化算法和交叉熵作为损失函数,并根据训练过程中的准确度来保存模型表现最佳的参数。
模型训练过程如图5.8所示。

图5.8 训练过程
5.1.4 LSTM模型评估
模型评估流程:通过定义val_accuary()函数,用于评估模型在验证集上的性能表现。
该函数将模型、验证集数据加载器、设备、损失函数为参数,返回验证集准确率。在train()函数执行完每个epoch后,调用val_accuracy()函数来判断该模型的验证集准确率,在进行评估的时候,首先将模型置为评估模式,读取验证集数据,计算模型预测准确率。
评价函数:在val_accuary()函数内,遍历验证集数据,得出模型在验证集上的精确度,并返回准确率、F1值、召回率等数据,更加全面地对模型表现进行评价。
性能保存:在训练过程中,若模型在验证集上的准确率超过之前记录的最佳准确率,则会保存表现最佳的模型参数。
结果输出:运行训练,在训练过程中输出每个epoch的训练损失、训练准确率、F1值、召回率等以及验证集上的准确率,tqdm库实现了进度条,方便观看指标实时变化,最终模型表现如表5.2所示,测试集表现如表5.3所示:
表5.2 训练集模型效果
accuracy | val_loss | F1_score | Recall | Confusion_matrix |
79.588% | 38.522 | 77.123% | 77.049% | [[22 5][ 9 25]] |
表5.3 测试集模型效果
Test accuracy | val_loss | F1_score | Recall | Confusion_matrix |
81.301% | 2.447 | 75.098% | 75.510% | [[21 2][10 16]] |
模型训练的一个前置性工作就是如何进行数据集的划分,划分数据集决定了训练模型的好坏,也就是泛化性能的高低。本文该阶段的数据处理首先将三个标签(中性、负向、正向)不同的excel数据文件合并到一个文件中,然后利用LabelEncoder函数将文本标签转换成数字型标签(0/1/2),方便模型学习。分层划分函数(stratify=df['label'])即80%数据作为模型训练数据集,20%数据作为测试集,保证训练集和测试集包含的数据类别与原始训练数据一致,不能存在划分数据过程中,某一个类别在训练集或者测试集中所占比例过少。在本阶段方法实现过程中以示例训练数据集中的三种类别(各33%)为例,分层数据划分后训练集和测试集中所占比例各为33%,实现方法为:数据集划分时采用随机种子固定(random_state=42),使得该固定随机种子(随机种子种子就是随机初始化的固定数据点,这个固定参数保证了实验结果的可复制性,即在划分数据集中改变固定随机种子,就可能产生对分类不好的数据划分),便于之后对不同算法训练结果进行比较,适用于小规模样本所存在的一种问题,保证后续数据训练效果,
文本特征提取是进行自然语言处理的关键环节。该方法采用TF-IDF(词频-逆文档频率)方法通过TfidfVectorizer将原始文本转换成数值化特征,特征工程采用如下优化方法:
词汇过滤:加载停用词表剔除“的”“了”等无意义词,保留情感相关词汇;
N-Gram扩展:设置ngram_range=(1,2)同时提取单词和双词组合(如“服务好”和“服务不好”),捕捉上下文语义;
特征降维:限定max_features=5000保留TF-IDF权重最高的5000个特征,平衡计算效率与信息量;
正则过滤:通过token_pattern=r'(?u)\b\w\w+\b'排除单字词和特殊符号。
将训练结果形成稀疏矩阵,行表示一个样本(一个文本),列为单词的TF-IDF值。最终将文本数据转为机器可以使用的数值类型,并且经过一定的筛选和聚合,来增加区分能力,作为分类器的输入。输出的稀疏矩阵如图5.9所示:

图5.9 稀疏矩阵结果
训练器:多项式朴素贝叶斯(MultinomialNB)。假设条件独立,适合于处理离散型TF-IDF特征。调参器:网格搜索(GridSearchCV)交叉验证。
参数空间:搜索平滑系数alpha(0.1/0.5/1.0)和先验概率fit_prior(是否基于数据分布调整先验),缓解零概率问题;
交叉验证:5折验证将训练集均分5份,4份训练、1份验证,循环5次确保参数稳健性;
调优结果:以f1_weighted为优化准则,综合考虑各分目标的精确度与召回率,并尽量避免由多数类主导评测结果。将调优结束后验证集分数最高的参数集构成最优参数集模型,从而代替人工试错,保证了模型的最优偏差-方差,并有效避免了过拟合现象,即当alpha=0.5时,最可能对稀疏特征平滑最有效果,使得模型在未知样本上的表现更加稳定。

图5.10 朴素贝叶斯最佳模型参数
评估环节通过多维度指标全面验证模型性能:
分类报告:给出每类别精确度(正确预测的比例)、召回(真实样本找回的比例)、F1(两者调和平均),反映模型对小类的处理效果,如图5.11所示:

图5.11 朴素贝叶斯算法分类报告
混淆矩阵:热力图直观展示三类测试集中的真实-预测分布,对角线为正确分类数,非对角线反映“将负面误判为中性”等关键错误模式,混淆矩阵结果如下图5.12所示:

图5.12 朴素贝叶斯算法混淆矩阵结果
6 系统实现
基于Django的用户注册及登陆功能的实现是基于表单与会话的实现。用户注册窗如图6.1所示,用户登录窗如图6.2所示:
图6.1 注册窗口
图6.2 登录窗口
列表渲染单元以Jinja2模板渲染引擎和Bootstrap框架为基础,使用响应式布局(MobileFirst),即根据屏幕的宽度,自适应于台式机、笔记本电脑、平板以及移动设备(移动电话和触摸屏)。最终,数据展示的效果见图6.3:
图6.3 数据展示图
从评论指标看,多视角数据大屏集中呈现分析处理结果。数据大屏的效果如图6.4:
图6.4 数据大屏显示
主题聚类可视化:通过KMeans算法进行聚类,利用kmeans(10)进行聚类处理。效果图如图6.5:
图 6.5 聚类分析效果图
此功能提供多个模型预测情绪极性,客户端提供文本评论,选择要使用的模型(SVM、朴素贝叶斯、LSTM),通过AJAX实现通过/predict请求进行异步处理。见如图6.6所示:
7 系统测试
7.1功能测试
系统功能测试是系统质量保证的重要手段,需要在软件测试中对整个张家界景区智能分析应用系统的各项功能和业务逻辑关系进行充分验证。本文共设置12个功能点进行测试,分别是用户管理模块功能测试、动态可视化交互功能测试、情感预测精确度功能测试、文本解析功能测试、全景图片解析功能测试、深度情感解析功能测试、语音识别功能测试、关键词推荐功能测试、图像特征解析功能测试、路况分析模块功能测试、黑名单用户画像模块功能测试以及视觉化的交互结果展示功能测试。主要通过用户模拟测试的交互方式,使不同角色的用户进行相互交互,从而达到模拟目的。对每个功能点分别设置测试用例,以用户管理模块中的注册功能点为例,注册功能点的测试用例有注册正常、注册失败等测试用例。系统功能测试数据包括测试功能点可视化组件是否渲染正常、情感分类是否正常。通过测试的结果和预期结果进行对比,从而确认系统中各功能模块和功能点在复杂业务情况下的功能可靠性。系统的功能测试详见表7.1-7.4。
表7.1 注册功能测试用例
用例描述 | 测试步骤 | 预期结果 | 测试结果 |
检验注册流程的前端展示与数据入库 | 1)进入注册界面;(2)输入用户名、密码、邮箱等信息;(3)点击提交按钮;(4)确认数据库新增用户数据;(5)检查页面是否提示“注册成功”。 | 注册成功后,应在库中新增用户,前端提示创建成功。 | 通过 |
表7.2 登录功能测试用例
用例描述 | 测试步骤 | 预期结果 | 测试结果 |
验证用户登录功能是否可用,确保系统能正确识别用户身份并进入用户主页。 | (1)访问登录界面,填写有效的用户名和密码;(2)点击登录按钮,系统对输入信息进行校验;(3)验证是否跳转至用户主页面。 | 登录信息正确时,应跳转至用户主页面,并在前端显示用户已登录状态。 | 用户凭证验证成功,系统页面跳转无误,登录状态在前端正常展现。 |
表7.3 分析功能测试用例
用例描述 | 测试步骤 | 预期结果 | 测试结果 |
测试分析模块中的满意度分析功能是否能够正常准确显示生成环形图 | 1登录系统,进入分析页面 2点击生成满意度分析 | 页面显示的环形图与数据库中的数据一致 | 测试结果为通过 |
表7.4 预测功能测试用例
用例描述 | 测试步骤 | 预期结果 | 测试结果 |
检验系统情感分析模块对评论情感倾向识别的准确性。 | 登录系统:访问预测功能页面。 输入要预测的评论文本,点击预测 | 情感分析结果与实际 情感一致。 | 情感分析模块输出结果符合预期,正、负、中性情感分类准确。 |