计算机毕业设计选题推荐:基于大数据的AI助手系统性软件缺陷评论挖掘与可视化、选题推荐、毕设指导、项目定制、全套源码、讲解文档、精品新项目
💖💖作者:计算机毕业设计小途
💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我!
💛💛想说的话:感谢大家的关注与支持!
💜💜
网站实战项目
安卓/小程序实战项目
大数据实战项目
深度学习实战项目
目录
AI助手系统性软件缺陷评论挖掘与可视化系统介绍
本系统名为《基于大数据的AI助手系统性软件缺陷评论挖掘与可视化》,主要想围绕软件缺陷评论数据做一条从分析到展示的流程,把评论里的缺陷类型、情感倾向、口碑结构和应用差异整理出来,再通过页面和图表让人看得更直观。系统后端提供Python+Django和Java+Spring Boot两个版本,大数据部分使用Hadoop、HDFS、Spark与Spark SQL,配合Pandas、NumPy做数据整理,数据存放在MySQL;前端使用Vue、ElementUI、Echarts以及HTML、CSS、JavaScript、jQuery完成页面交互和图表展示。功能上包括系统首页、缺陷评论分析、口碑结构分析、应用对比分析、样本统计、用户评论、评论NLP、简评数据、字段问典、数据大屏、个人信息和修改密码。缺陷评论分析主要对评论中的缺陷类型、情感倾向和时间变化做汇总,口碑结构分析把评价维度拆开看,应用对比分析用于不同应用之间的评论指标对照,评论NLP负责文本清洗、关键词和简单情感处理,数据大屏把关键指标集中展示,样本统计和简评数据等页面用来查看数据范围和字段说明。整体上,本系统是一个围绕软件缺陷评论挖掘与可视化展开的毕业设计项目,重点在于用Hadoop+Spark处理评论数据,并通过Django或Spring Boot后端把分析结果提供给前端展示,功能范围以已列出的页面和模块为准。
AI助手系统性软件缺陷评论挖掘与可视化系统演示视频
AI助手系统性软件缺陷评论挖掘与可视化系统演示图片








AI助手系统性软件缺陷评论挖掘与可视化系统代码展示
from pyspark.sql import SparkSession; spark = SparkSession.builder.appName("DefectReviewMining").master("local[*]").getOrCreate()
def defect_review_analysis():
jdbc_url = "jdbc:mysql://localhost:3306/defect_review?useSSL=false&serverTimezone=Asia/Shanghai"
table = "review_data"
df = spark.read.format("jdbc").option("url", jdbc_url).option("dbtable", table).option("user", "root").option("password", "123456").load()
df.createOrReplaceTempView("review_tmp")
clean_df = spark.sql("SELECT review_id, app_name, review_text, rating, review_time, module_name FROM review_tmp WHERE review_text IS NOT NULL AND trim(review_text) <> ''")
clean_df.createOrReplaceTempView("review_clean")
defect_df = spark.sql("SELECT review_id, app_name, CASE WHEN lower(review_text) LIKE '%闪退%' OR lower(review_text) LIKE '%崩溃%' THEN '崩溃闪退' WHEN lower(review_text) LIKE '%卡顿%' OR lower(review_text) LIKE '%慢%' THEN '性能卡顿' WHEN lower(review_text) LIKE '%登录%' OR lower(review_text) LIKE '%密码%' THEN '登录问题' WHEN lower(review_text) LIKE '%界面%' OR lower(review_text) LIKE '%按钮%' THEN '界面交互' ELSE '其他缺陷' END AS defect_type, CASE WHEN rating <= 2 THEN 'negative' WHEN rating = 3 THEN 'neutral' ELSE 'positive' END AS sentiment, date_format(review_time, 'yyyy-MM') AS month FROM review_clean")
defect_df.createOrReplaceTempView("defect_result")
summary_df = spark.sql("SELECT app_name, defect_type, sentiment, month, count(1) AS review_count FROM defect_result GROUP BY app_name, defect_type, sentiment, month")
summary_df.createOrReplaceTempView("summary_tmp")
top_df = spark.sql("SELECT defect_type, sum(review_count) AS total_count FROM summary_tmp GROUP BY defect_type ORDER BY total_count DESC LIMIT 10")
trend_df = spark.sql("SELECT month, sum(review_count) AS month_count FROM summary_tmp GROUP BY month ORDER BY month")
summary_df.write.mode("overwrite").format("jdbc").option("url", jdbc_url).option("dbtable", "defect_summary_result").option("user", "root").option("password", "123456").save()
top_df.write.mode("overwrite").format("jdbc").option("url", jdbc_url).option("dbtable", "defect_top_result").option("user", "root").option("password", "123456").save()
trend_df.write.mode("overwrite").format("jdbc").option("url", jdbc_url).option("dbtable", "defect_trend_result").option("user", "root").option("password", "123456").save()
return {"summary": summary_df.toPandas().to_dict("records"), "top": top_df.toPandas().to_dict("records"), "trend": trend_df.toPandas().to_dict("records")}
def reputation_structure_analysis():
jdbc_url = "jdbc:mysql://localhost:3306/defect_review?useSSL=false&serverTimezone=Asia/Shanghai"
df = spark.read.format("jdbc").option("url", jdbc_url).option("dbtable", "review_data").option("user", "root").option("password", "123456").load()
df.createOrReplaceTempView("reputation_tmp")
clean_df = spark.sql("SELECT review_id, app_name, review_text, rating FROM reputation_tmp WHERE review_text IS NOT NULL AND trim(review_text) <> ''")
clean_df.createOrReplaceTempView("reputation_clean")
dim_df = spark.sql("SELECT review_id, app_name, rating, CASE WHEN lower(review_text) LIKE '%功能%' OR lower(review_text) LIKE '%模块%' THEN '功能体验' WHEN lower(review_text) LIKE '%卡%' OR lower(review_text) LIKE '%慢%' THEN '性能体验' WHEN lower(review_text) LIKE '%界面%' OR lower(review_text) LIKE '%按钮%' THEN '界面体验' WHEN lower(review_text) LIKE '%登录%' OR lower(review_text) LIKE '%密码%' THEN '账号登录' ELSE '其他体验' END AS reputation_dimension FROM reputation_clean")
dim_df.createOrReplaceTempView("reputation_dim")
structure_df = spark.sql("SELECT app_name, reputation_dimension, count(1) AS review_count, round(avg(rating), 2) AS avg_rating, sum(CASE WHEN rating <= 2 THEN 1 ELSE 0 END) AS negative_count FROM reputation_dim GROUP BY app_name, reputation_dimension")
total_df = spark.sql("SELECT app_name, count(1) AS app_total FROM reputation_dim GROUP BY app_name")
structure_df.createOrReplaceTempView("structure_tmp")
total_df.createOrReplaceTempView("total_tmp")
rate_df = spark.sql("SELECT s.app_name, s.reputation_dimension, s.review_count, s.avg_rating, s.negative_count, round(s.review_count / t.app_total * 100, 2) AS dimension_rate FROM structure_tmp s JOIN total_tmp t ON s.app_name = t.app_name")
rate_df.write.mode("overwrite").format("jdbc").option("url", jdbc_url).option("dbtable", "reputation_structure_result").option("user", "root").option("password", "123456").save()
total_df.write.mode("overwrite").format("jdbc").option("url", jdbc_url).option("dbtable", "reputation_total_result").option("user", "root").option("password", "123456").save()
return {"structure": rate_df.toPandas().to_dict("records"), "total": total_df.toPandas().to_dict("records")}
def app_compare_analysis():
jdbc_url = "jdbc:mysql://localhost:3306/defect_review?useSSL=false&serverTimezone=Asia/Shanghai"
df = spark.read.format("jdbc").option("url", jdbc_url).option("dbtable", "review_data").option("user", "root").option("password", "123456").load()
df.createOrReplaceTempView("compare_tmp")
clean_df = spark.sql("SELECT app_name, review_text, rating, review_time FROM compare_tmp WHERE app_name IS NOT NULL AND review_text IS NOT NULL AND trim(review_text) <> ''")
clean_df.createOrReplaceTempView("compare_clean")
app_df = spark.sql("SELECT app_name, count(1) AS review_count, round(avg(rating), 2) AS avg_rating, sum(CASE WHEN rating <= 2 THEN 1 ELSE 0 END) AS negative_count, sum(CASE WHEN lower(review_text) LIKE '%闪退%' OR lower(review_text) LIKE '%崩溃%' THEN 1 ELSE 0 END) AS crash_count, sum(CASE WHEN lower(review_text) LIKE '%卡顿%' OR lower(review_text) LIKE '%慢%' THEN 1 ELSE 0 END) AS lag_count FROM compare_clean GROUP BY app_name")
app_df.createOrReplaceTempView("app_metric")
defect_df = spark.sql("SELECT app_name, CASE WHEN lower(review_text) LIKE '%闪退%' OR lower(review_text) LIKE '%崩溃%' THEN '崩溃闪退' WHEN lower(review_text) LIKE '%卡顿%' OR lower(review_text) LIKE '%慢%' THEN '性能卡顿' WHEN lower(review_text) LIKE '%登录%' OR lower(review_text) LIKE '%密码%' THEN '登录问题' ELSE '其他缺陷' END AS defect_type, count(1) AS type_count FROM compare_clean GROUP BY app_name, defect_type")
defect_df.createOrReplaceTempView("app_defect")
top_defect_df = spark.sql("SELECT app_name, defect_type, type_count, row_number() OVER (PARTITION BY app_name ORDER BY type_count DESC) AS rn FROM app_defect")
top_defect_df.createOrReplaceTempView("top_defect_tmp")
top_df = spark.sql("SELECT app_name, defect_type, type_count FROM top_defect_tmp WHERE rn = 1")
compare_result = spark.sql("SELECT a.app_name, a.review_count, a.avg_rating, a.negative_count, a.crash_count, a.lag_count, t.defect_type AS top_defect_type FROM app_metric a LEFT JOIN top_df t ON a.app_name = t.app_name ORDER BY a.negative_count DESC")
compare_result.write.mode("overwrite").format("jdbc").option("url", jdbc_url).option("dbtable", "app_compare_result").option("user", "root").option("password", "123456").save()
app_df.write.mode("overwrite").format("jdbc").option("url", jdbc_url).option("dbtable", "app_metric_result").option("user", "root").option("password", "123456").save()
return {"compare": compare_result.toPandas().to_dict("records"), "metric": app_df.toPandas().to_dict("records")}
AI助手系统性软件缺陷评论挖掘与可视化系统文档展示

💖💖作者:计算机毕业设计小途
💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我!
💛💛想说的话:感谢大家的关注与支持!
💜💜
网站实战项目
安卓/小程序实战项目
大数据实战项目
深度学习实战项目
更多推荐


所有评论(0)