基于知识图谱的垃圾自动分类系统设计与实现(Python+语音识别)

目 录
摘 要 I
Abstract II
第1章 绪论 1
1.1 选题背景及意义 1
1.1.1 选题背景 1
1.1.2 选题意义 1
1.2 国内外研究现状及发展趋势 2
1.2.1 国内研究现状 2
1.2.2 国外研究现状 3
1.2.3 发展趋势 4
1.3 本文研究主要内容及章节安排 4
1.3.1 研究主要内容 4
1.3.2 章节安排 5
第2章 相关理论及技术基础 7
2.1 知识图谱理论 7
2.2 Python技术基础 7
2.3 MySql数据库技术 8
2.4 语音识别技术 8
第3章 需求分析 10
3.1 功能需求分析 10
3.2 性能需求分析 11
3.3 用户需求分析 11
3.4 可行性分析 12
第4章 系统设计 13
4.1 系统模块总体设计 13
4.1.1 前台系统功能模块设计 13
4.1.2 后台系统功能模块设计 14
4.2 数据库设计 16
4.2.1 数据分析与知识图谱构建 16
4.2.2 数据库的详细设计 17
第5章 系统实现 20
5.1 系统运行平台设置 20
5.2系统基本功能设计与实现 20
5.2.1 登录模块设计与实现 20
5.2.2 系统信息展示 22
5.2.3 垃圾自动分类实现 23
5.2.4 用户信息维护模块 24
第6章 系统测试 26
6.1 软件测试 26
6.2 本系统测试 27
6.2.1 用户注册测试 27
6.2.3 用户注册模块的测试 27
6.2.2 垃圾分类管理模块的测试 29
结 论 31
参考文献 32
致 谢 33
1.3 本文研究主要内容及章节安排
1.3.1 研究主要内容
本文的主要研究内容是设计与实现一个基于知识图谱的垃圾自动分类系统。该系统旨在利用知识图谱技术,结合Python编程语言和MySql数据库技术,实现对用户上传的音频文件进行识别并自动进行垃圾分类。
首先,本文将构建垃圾类别的知识图谱,包括垃圾的属性、类别和关系等信息的定义和存储。这需要对现有的垃圾分类标准和数据进行深入的分析和整理,以确保知识图谱的准确性和完整性。
其次,本文将利用Python编程语言和机器学习算法,实现对音频文件的语音识别和转换。通过提取音频文件中的特征信息,系统能够将其转换为可处理的文本数据,为后续的分类提供基础。
接着,本文将利用知识图谱和文本分类算法,对识别出的文本数据进行分类。通过比对知识图谱中的垃圾类别和文本数据中的关键词、上下文等信息,系统能够判断垃圾所属的类别,并给出相应的分类结果。
最后,本文将设计并实现一个用户友好的界面,方便用户上传音频文件并查看分类结果。同时,系统还将提供数据分析和可视化功能,帮助用户更好地理解垃圾分类的情况和趋势。
在研究过程中,本文将重点关注系统的准确性、效率和稳定性等方面的问题,通过实验验证系统的性能,并不断优化和改进算法和模型。
1.3.2 章节安排
本文的章节安排如下:
第一章:绪论。介绍选题背景及意义,国内外研究现状及发展趋势,以及本文的研究主要内容和章节安排。
第二章:相关理论与技术基础。介绍知识图谱、Python技术、MySql数据库技术、语音识别技术等相关理论和技术基础,为后续的系统设计和实现提供理论支持。
第三章:垃圾自动分类系统需求分析。分析垃圾自动分类系统的功能需求、性能需求和用户需求,为后续的系统设计提供指导。
第四章:垃圾自动分类系统设计。详细介绍垃圾自动分类系统的架构设计、功能设计、数据库设计等方面,为系统的实现提供详细的方案。
第五章:垃圾自动分类系统实现。介绍垃圾自动分类系统的具体实现过程,包括知识图谱的构建、语音识别的实现、文本分类的实现以及用户界面的开发等。
第六章:系统测试与性能分析。对垃圾自动分类系统进行测试,分析系统的准确性和效率等性能指标,并提出改进方案。
第七章:总结与展望。总结本文的研究工作,指出研究中存在的不足和未来的研究方向,为后续的研究提供参考。
通过以上章节的安排,本文将对基于知识图谱的垃圾自动分类系统进行全面而深入的研究,为垃圾分类技术的发展提供新的思路和解决方案。

import time

from django.shortcuts import render

from .models import UserTable
from django.http import JsonResponse, HttpResponseRedirect
from django.core.paginator import Paginator
#from utils.mypage import Pagination



def register(request):
    """
    注册账号
    :return:
    """
    try:
        name = request.POST.get('username')
        passwd = request.POST.get('password')
        phone = request.POST.get('phone')
        user = UserTable.objects.filter(name=name)
        if user:
            return JsonResponse({'message': '用户已存在,请直接登录'}, status=403)
        UserTable.objects.create(
            name=name,
            password=passwd,
            phone=phone,
            role=2,
            description=''
        )
        response_data = {'message': '注册成功'}
        return JsonResponse(response_data)
    except Exception as e:
        print(e)
        return JsonResponse({'message': '注册失败'}, status=401)

def password(request):
    username = request.session['username']
    role_id = request.session['role']
    user_id = request.session['user_id']
    return render(request,'modify_password.html',locals())
def get_user(request):
    """
    获取用户列表信息 | 模糊查询
    :param request:
    :return:
    """
    keyword = request.GET.get('name')
    page = request.GET.get("page", '')
    limit = request.GET.get("limit", '')
    role_id = request.GET.get('position','')
    response_data = {}
    response_data['code'] = 0
    response_data['msg'] = ''
    data = []
    if keyword is None:
        results = UserTable.objects.all()
        paginator = Paginator(results, limit)
        results = paginator.page(page)
        if results:
            for user in results:
                record = {
                    "id": user.id,
                    "name": user.name,
                    "password": user.password,
                    "phone": user.phone,
                    "role": user.role,
                    'create_time': user.create_time.strftime('%Y-%m-%d %H:%m:%S'),
                    "desc": user.description,
                }
                data.append(record)
            response_data['count'] =len(UserTable.objects.all())
            response_data['data'] = data
    else:
        users_all = UserTable.objects.filter(name__contains=keyword).all()
        paginator = Paginator(users_all, limit)
        results = paginator.page(page)
        if results:
            for user in results:
                record = {
                    "id": user.id,
                    "name": user.name,
                    "password": user.password,
                    "role": user.role,
                    "phone": user.phone,
                    'create_time':  user.create_time.strftime('%Y-%m-%d %H:%m:%S'),
                    "desc": user.description,
                }
                data.append(record)
            response_data['count'] = len(users_all)
            response_data['data'] = data
    return JsonResponse(response_data)


def user(request):
    """
    跳转用户页面
    """
    username = request.session['username']
    role_id = request.session['role']
    user_id= request.session['user_id']
    return render(request, 'user.html', locals())



def login_check(request):
    """
    登录校验
    """
    response_data = {}
    name = request.GET.get('username')
    password = request.GET.get('password')
    user = UserTable.objects.filter(name=name, password=password).first()
    info = {}
    if user:
        # 将用户名存入session中
        request.session["username"] = user.name
        request.session["role"] = user.role
        request.session["user_id"] = user.id
        response_data['message'] = '登录成功'
        return JsonResponse(response_data, status=201)
    else:
        return JsonResponse({'message': '用户名或者密码不正确'}, status=401)


def edit_user(request):
    """
    修改用户
    """
    response_data = {}
    user_id = request.POST.get('id')
    username = request.POST.get('username')
    phone = request.POST.get('phone')
    UserTable.objects.filter(id=user_id).update(
        name=username,
        phone=phone)
    response_data['msg'] = 'success'
    return JsonResponse(response_data, status=201)


def del_user(request):
    """
    删除用户
    """
    user_id = request.POST.get('id')
    result = UserTable.objects.filter(id=user_id).first()
    try:
        if not result:
            response_data = {'error': '删除用户信息失败!', 'message': '找不到id为%s的用户' % user_id}
            return JsonResponse(response_data, status=403)
        result.delete()
        response_data = {'message': '删除成功!'}
        return JsonResponse(response_data, status=201)
    except Exception as e:
        response_data = {'message': '删除失败!'}
        return JsonResponse(response_data, status=403)


def change_password(request):
    """
    修改密码
    """

    user = UserTable.objects.filter(name=request.session["username"]).first()
    if user.password == request.POST.get('changePassword'):
        # 修改的密码与原密码重复不予修改
        return JsonResponse({"msg": "修改密码与原密码重复"}), 406
    else:
        # 不重复,予以修改
        UserTable.objects.filter(name=request.session["username"]).update(
            password=request.POST.get('changePassword'))
        # 清除session回到login界面
        del request.session['username']
        return JsonResponse({"msg": "success"})




在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 19
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shejizuopin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值