ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

django电商评论大数据情感分析与产品改进建议系统65911-计算机课程设计、毕业设计

django电商评论大数据情感分析与产品改进建议系统65911-计算机课程设计、毕业设计 前言✨博主介绍一线全栈工程师毕设实战引路人。技术栈覆盖Java、Python、C#、PHP、Node.js及UniApp跨端开发擅长多语言项目落地与架构设计。持续分享毕设源码、开题报告、技术选型心得与职场踩坑经验。用工程化思维写代码帮你把毕设做成作品集。精彩专栏 推荐订阅海量实战库源码任你选 坐拥Java项目2000套海量实战库源码任你选 坐拥Python项目1000套海量实战库源码任你选 坐拥小程序/app项目500套✅获取源码请私信✅感兴趣的可以先收藏起来还有大家在毕设选题项目以及论文编写等相关问题都可以找我咨询希望帮助更多的人❤️系统实现普通用户功能实现商品信息浏览与交互功能实现普通用户可以查询到商品列表也可以收藏或者点赞感兴趣的商品。进入商品详情页之后用户可以对整个商品进行详细的了解在此基础上发表自己的意见并参与社区的互动。商品信息列表界面情感分析记录管理功能实现用户可以查看自己提交过的所有的情感分析历史记录也可以对以往的历史记录进行管理。系统可以接受用户的新的情感分析任务完成之后可以查看具体的感情极性、置信度和改进建议等详细的结果。分析记录界面个人评论管理功能实现用户可以集中管理自己发布的所有的商品评论可以按照条件进行查询以及重置筛选。系统有评论删除、评论详情查看等功能利于用户对自身的言论记录进行管理。评论管理界面管理员功能实现商品信息后台管理功能实现管理员有对系统内所有商品信息进行管理的权利可以实现新增、修改和删除等功能。管理员可以查询到商品列表并可看到每一件商品下用户的评价内容为之后的运营决策提供数据支持。商品信息管理界面平台分析记录管理功能实现管理员可以查询并管理全平台用户产生的一切情感分析记录并且可以进行删除操作。系统可以管理员直接添加新的分析记录也可以查看每一项记录所对应的情感分析结果详情。分析记录列表界面数据信息与批量处理功能实现管理员可以对系统的全部核心数据信息进行统一的管理包括查询、删除等操作。系统具备对标准数据文档进行下载的功能也支持批量导入外部数据。系统在导入时会自动调用情感分析接口对新的数据进行情感分析。数据信息管理界面多维数据可视化分析功能实现系统后台集成有多个维度的数据可视化模块用不同的图表来显示分析的结果。本模块可以对商品的价格和销量进行统计展示、分析次数的时间序列统计、基于词云的产品关键词提取、各种情感评论的占比分析以及综合性的分析结果统计报表。数据分析界面数据库参考CREATE TABLE article_type ( type_id smallint(5) unsigned NOT NULL AUTO_INCREMENT COMMENT 分类ID, display smallint(4) unsigned NOT NULL DEFAULT 100 COMMENT 显示顺序, name varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT COMMENT 分类名称, father_id smallint(5) unsigned NOT NULL DEFAULT 0 COMMENT 上级分类ID, description varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 描述, icon text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT 分类图标, url varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 外链地址, create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间, update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 更新时间, PRIMARY KEY (type_id) USING BTREE ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_general_ci COMMENT文章分类; DROP TABLE IF EXISTS praise; CREATE TABLE praise ( praise_id int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 点赞ID, user_id int(11) unsigned NOT NULL DEFAULT 0 COMMENT 点赞人, create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间, update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 更新时间, source_table varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 来源表, source_field varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 来源字段, source_id int(10) unsigned NOT NULL DEFAULT 0 COMMENT 来源ID, status tinyint(1) NOT NULL DEFAULT 1 COMMENT 点赞状态:1为点赞0已取消, img varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL, title varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL, PRIMARY KEY (praise_id) USING BTREE ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_general_ci COMMENT点赞; DROP TABLE IF EXISTS hits; CREATE TABLE hits ( hits_id int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 点赞ID, user_id int(11) unsigned NOT NULL DEFAULT 0 COMMENT 点赞人, create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间, update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 更新时间, source_table varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 来源表, source_field varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 来源字段, source_id int(10) unsigned NOT NULL DEFAULT 0 COMMENT 来源ID, PRIMARY KEY (hits_id) USING BTREE ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_general_ci COMMENT用户点击; DROP TABLE IF EXISTS comment; CREATE TABLE comment ( comment_id int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 评论ID, user_id int(11) unsigned NOT NULL DEFAULT 0 COMMENT 评论人ID, reply_to_id int(11) unsigned NOT NULL DEFAULT 0 COMMENT 回复评论ID, content longtext CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT 内容, nickname varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 昵称, avatar varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 头像地址, create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间, update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 更新时间, source_table varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 来源表, source_field varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 来源字段, source_id int(10) unsigned NOT NULL DEFAULT 0 COMMENT 来源ID, hidden tinyint(4) DEFAULT 0 COMMENT 是否隐藏, sticky tinyint(4) DEFAULT 0 COMMENT 是否置顶, PRIMARY KEY (comment_id) USING BTREE ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_general_ci COMMENT评论; DROP TABLE IF EXISTS user; CREATE TABLE user ( user_id int(8) unsigned NOT NULL AUTO_INCREMENT COMMENT 用户ID, state smallint(1) unsigned NOT NULL DEFAULT 1 COMMENT 账户状态(1可用|2异常|3已冻结|4已注销), user_group varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 所在用户组, login_time timestamp NULL DEFAULT NULL COMMENT 上次登录时间, phone varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 手机号码, phone_state smallint(1) unsigned NOT NULL DEFAULT 0 COMMENT 手机认证(0未认证|1审核中|2已认证), username varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT COMMENT 用户名, nickname varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT COMMENT 昵称, password varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT COMMENT 密码, email varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT COMMENT 邮箱, email_state smallint(1) unsigned NOT NULL DEFAULT 0 COMMENT 邮箱认证(0未认证|1审核中|2已认证), avatar varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 头像地址, open_id varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 针对获取用户信息字段, create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间, vip_level varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 会员等级, vip_discount double(10,2) DEFAULT 0.00 COMMENT 会员折扣, integral int(11) DEFAULT 0 COMMENT 积分, balance double(10,2) DEFAULT 0.00 COMMENT 余额, ip varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT IPv4/IPv6地址, device_hash varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 设备指纹, emergency_name varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 紧急联系人, emergency_mobile varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 紧急联系电话, PRIMARY KEY (user_id) USING BTREE ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_general_ci COMMENT用户账户; CREATE TABLE commodity_information(commodity_information_id int(11) NOT NULL AUTO_INCREMENT COMMENT 商品信息ID, commodity_number varchar(64) NOT NULL UNIQUE comment 商品编号, name_of_commodity varchar(64) comment 商品名称, commodity_class_nameification varchar(64) comment 商品分类, commodity_price double(8,2) DEFAULT 0 comment 商品价格, merchandise_sales double(8,2) DEFAULT 0 comment 商品销量, commodity_picture varchar(255) comment 商品图片, commodity_description text comment 商品描述, hits int(11) DEFAULT 0 NOT NULL comment 点击数, praise_len int(11) DEFAULT 0 NOT NULL comment 点赞数, collect_len int(11) DEFAULT 0 NOT NULL comment 收藏数, comment_len int(11) DEFAULT 0 NOT NULL comment 评论数, recommend int(11) DEFAULT 0 NOT NULL comment 智能推荐, create_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间, create_by int(11) DEFAULT 1 NOT NULL comment 创建用户ID, update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 更新时间, PRIMARY KEY (commodity_information_id))ENGINEInnoDB DEFAULT CHARSETutf8mb4 comment 商品信息;代码参考# 分析记录 class Analysis_records(controllerClass): def __init__(self, config{}): 构造函数 param {Object} config 配置参数 config_init { # 选择的模板那路径模板 tpl: ./analysis_records/, # 注册API get_api: [], # 注册post api路由 post_api: [], # 选择的服务 service: analysis_records, } config_temp config config_temp.update(config_init) super(Analysis_records , self).__init__(config_temp) # 商品分类 class Commodity_class_nameification(controllerClass): def __init__(self, config{}): 构造函数 param {Object} config 配置参数 config_init { # 选择的模板那路径模板 tpl: ./commodity_class_nameification/, # 注册API get_api: [], # 注册post api路由 post_api: [], # 选择的服务 service: commodity_class_nameification, } config_temp config config_temp.update(config_init) super(Commodity_class_nameification , self).__init__(config_temp) # 商品信息 class Commodity_information(controllerClass): def __init__(self, config{}): 构造函数 param {Object} config 配置参数 config_init { # 选择的模板那路径模板 tpl: ./commodity_information/, # 注册API get_api: [], # 注册post api路由 post_api: [], # 选择的服务 service: commodity_information, } config_temp config config_temp.update(config_init) super(Commodity_information , self).__init__(config_temp) # 协同过滤算法 def Get_hits_list(self, ctx): query dict(ctx.query) service self.service if user_id in query: user_id query.pop(user_id) if user_id : return self.Get_list(ctx) else: examine_state if examine_state in query: examine_state query.pop(examine_state) # 查询该用户常点击 hitsSource SELECT COUNT( hits_id ) AS hits_count, source_id FROM hits WHERE source_table commodity_information AND user_id user_id GROUP BY source_id hitsSourceList service.run(hitsSource) # 判断是否为空,代表当前用户暂无点击数据那么取其他用户的最常点击 if len(hitsSourceList) 0: hitsSource SELECT COUNT( hits_id ) AS hits_count, source_id FROM hits WHERE source_table commodity_information GROUP BY source_id hitsSourceList service.run(hitsSource) table_name commodity_information table_id commodity_information_id type_name commodity_class_nameification # 二次处理-如果依旧为空则取添加时间前12条数据 if len(hitsSourceList) 0: sql SELECT * FROM table_name if examine_state ! : sql sql where examine_state examine_state sql sql ORDER BY create_time DESC LIMIT 0,12 list service.run(sql) return {result: {list: list, count: len(list)}} else: # 对用户点击量进行排序取得最大值 max 0 maxSourceId 0 for o in hitsSourceList: hitsCount float(o[hits_count]) if hitsCount max: max hitsCount maxSourceId o[source_id] # 查询该用户点击最大值的种类 typeSql SELECT type_name FROM table_name WHERE table_id str(maxSourceId) typeList service.run(typeSql) # 如果为空则取添加时间前12条数据 if len(typeList) 0: sql SELECT * FROM table_name if examine_state ! : sql sql where examine_state examine_state sql sql ORDER BY create_time DESC LIMIT 0,12 list service.run(sql) return {result: {list: list, count: len(list)}} else: # 查询该种类的数据 typeName typeList[0][type_name] sql SELECT * FROM table_name WHERE type_name typeName if examine_state ! : sql sql and examine_state examine_state ORDER BY create_time DESC limit 0,12 else: sql sql ORDER BY create_time DESC limit 0,12 resultList service.run(sql) # 如果为空则取添加时间前12条数据 if len(resultList) 0: sql SELECT * FROM table_name if examine_state ! : sql sql where examine_state examine_state sql sql ORDER BY create_time DESC LIMIT 0,12 list service.run(sql) return {result: {list: list, count: len(list)}} else: # 对结果排序-冒泡排序 n len(resultList) for i in range(n): # 是否发生交换 swapped False for j in range(n-i-1): if resultList[j][hits] resultList[j1][hits]: resultList[j], resultList[j1] resultList[j1], resultList[j] swapped True if not swapped: # 没有发生交换则说明数组已有序,停止冒泡 break if len(resultList) 12: # 判断是否有12条-如果不足则计算其他类型和用户当前点击最多的余弦相似度依次往下取得数据 typeCosSql SELECT type_name FROM table_name WHERE type_name typeName GROUP BY type_name typeCosList service.run(typeCosSql) if len(typeCosList) 0: for o in typeCosList: o[cosSim] self.similar(typeName, o[type_name], 2) # 冒泡根据相似度排序 cosn len(typeCosList) for i in range(cosn): # 是否发生交换 swapped False for j in range(n - i - 1): if j cosn - 1: if typeCosList[j][cosSim] typeCosList[j 1][cosSim]: typeCosList[j], typeCosList[j 1] typeCosList[j 1], typeCosList[j] swapped True if not swapped: # 没有发生交换则说明数组已有序,停止冒泡 break # 逐条加入数据 for o in typeCosList: sql SELECT * FROM table_name WHERE type_name o[type_name] if examine_state ! : sql sql and examine_state examine_state sql sql ORDER BY create_time DESC LIMIT 0, str(12 - len(resultList)) list service.run(sql) if len(list) 0: resultList.extend(list) return {result: {list: resultList, count: len(resultList)}} return self.Get_list(ctx) # 计算余弦相似度 def similar(self, s, t, f): print(s) print(t) if not s or not t: return 0 if s t: return 100 if len(s) len(t): l len(s) else: l len(t) n len(s) m len(t) d np.zeros((n1, m1)) if not f: f 2 def min(a, b, c): if a b: if a c: return a else: return c else: if b c: return b else: return c if n 0: return m if m 0: return n for i in range(0, n1, 1): d[i][0] i for j in range(0, m1, 1): d[0][j] j for i in range(1, n1, 1): si s[i - 1: i] for j in range(1, m1, 1): tj t[j - 1: j] if si tj: cost 0 else: cost 1 d[i][j] min(d[i - 1][j] 1, d[i][j - 1] 1, d[i - 1][j - 1] cost) res (1 - d[n][m] / l) * 100 return {:.2f}.format(res)前端基于Vue.js框架构建用户界面使用HTML5、CSS3和JavaScript实现页面结构与交互逻辑通过Vue Router管理路由Vuex或Pinia维护全局状态。采用Element UI或Vant组件库快速搭建界面Axios封装HTTP请求实现与后端的数据通信。后端基于Django框架搭建遵循MTVModel-Template-View模式同时结合DRFDjango REST Framework实现RESTful API。Model层定义数据模型并与数据库交互View层通过DRF的视图集ViewSet或通用视图GenericView处理请求并结合序列化器Serializer完成数据的序列化与反序列化Service层可选封装复杂业务逻辑保持视图层简洁。使用Django内置的认证系统或djangorestframework-simplejwt结合JWT实现用户认证与权限控制。数据库采用MySQL存储持久化数据Redis缓存热点信息以提升系统性能。开发工具使用PyCharm开发后端VSCode或HBuilderX开发前端Git进行版本管理pipenv或poetry管理后端依赖npm管理前端依赖。源码获取私信联系我即可~大家点赞、收藏、关注、评论啦精彩专栏 推荐订阅海量实战库源码任你选 坐拥Java项目2000套海量实战库源码任你选 坐拥Python项目1000套海量实战库源码任你选 坐拥小程序/app项目500套✅获取源码请私信✅感兴趣的可以先收藏起来还有大家在毕设选题项目以及论文编写等相关问题都可以找我咨询希望帮助更多的人❤️
返回列表