图书馆图书可视化分析+大屏

🌟欢迎来到 我的博客 —— 探索技术的无限可能!


🌟博客的简介(文章目录)

目录

  • 摘要
  • 前言
    • 技术栈
    • 开发环境
    • 数据说明
  • 正文
    • 数据获取
    • 数据存储
    • 数据清理
    • 数据分析
    • 数据挖掘
      • 关联规则
      • 二分类预测
    • 数据可视化
      • 书籍价格区间柱状图
      • 书籍评分分布散点图
      • 书籍包装类型占比柱状图
      • 书籍出版时间分布
      • 借阅图书数量前20出版社柱状图
      • 借阅排名前20的书籍作者柱状图
      • 借阅排名前十的书籍类型占比饼图
      • 书籍书名词云
      • 可视化大屏(Flask)

摘要

        在数字化时代背景下,图书馆已经成为知识获取和共享的重要场所。然而,随着馆藏书籍数量的增加,如何高效管理和利用这些资源成为了图书馆管理者和用户面临的挑战。数据分析和可视化技术的引入为解决这一问题提供了新的途径。本文致力于通过数据分析技术和可视化手段,对图书馆书籍数据进行综合挖掘,希望通过图书分类、书籍价格及读者偏好等多维度信息,进而优化图书馆管理策略、指导书籍采购决策并提升读者服务质量。

前言

        本文在数字化和信息化快速发展的背景下,图书馆如何利用数据分析与可视化方法来挖掘和优化书籍借阅数据。主要内容包括数据的重要性、数据分析的应用、当前挑战等,具体如下:

  1. 数据的重要性:在当代社会,数据已成为一种宝贵的资源。图书馆积累的借阅数据反映了阅读偏好、流通情况及藏书结构等信息。
  2. 数据分析的应用:数据分析与可视化是大数据时代的关键工具,尤其在图书馔领域,它们能揭示借阅行为规律并直观展示信息,对提升运营效率和服务体验至关重要。(
  • 数据预处理:对原始数据进行清洗、验证和归一化的必要性,以提高数据分析的准确性和一致性。这包括去除重复、错误或不完整的记录,将来自不同渠道的数据合并到统一格式中,便于分析等。
  • 复杂数据分析:系统应包含先进的分析工具,能够执行包括描述性统计、趋势分析和关联规则在内的多种分析方法,以揭示图书流通和用户行为的深层次特征。
  • 可视化与交互:通过Flask框架设计直观的可视化方案来展示分析结果,使非技术用户也能轻松理解复杂的数据关系,并提供丰富的交互能力,让用户能基于自己的需求进一步探索数据。
  1. 当前挑战:图书馆面临数字资源增长和用户需求多样化的双重挑战,需要深入分析书籍数据以应对这些挑战。
  2. 研究目标:本研究旨在通过数据分析和可视化深入探讨图书馆书籍数据的隐藏信息,如流通趋势和借阅模式,以提供管理支持和改善服务质量。

技术栈

  • Pandas
  • Pyecharts
  • Matplotlib
  • Flask
  • Apriori算法
  • 二分类

开发环境

类别配置
处理器Intel® Core(M) i7-10875H CPU @ 2.30GHz
已安装的内存(RAM)16.0 GB (15.8 GB 可用)
系统类型64 位操作系统, 基于 x64 的处理器
显示适配器Intel® UHD Graphics 630
NVIDIA GeForce GTX 1650
磁盘驱动器NVMe INTEL SSDPEKNW51
WDC WD10SPSX-22A6WTO
开发工具PyCharm 2022.2.2
数据库系统MySQL 8.0.26
服务器软件Flask 2.1.0
数据分析库Pandas 2.2.2
NumPy 1.23.3
Pyecharts 2.0.5
Matplotlib 3.9.0
Jinja2 3.1.3
Seaborn 0.13.2
前端库HTML
CSS
JavaScript (ES6)

数据说明

字段名释义分析
book_rankid书籍的排名或ID,用于区分不同的书籍。
book_author作者记录了创作书籍的个人或团队的名称。
book_rating评分基于读者评价的平均分数,反映了书籍的受欢迎程度和质量。
book_discounted_price优惠价在促销或折扣期间书籍的销售价格。
book_paper纸张书籍使用的纸张类型,可能影响读者购买决策。
book_type类型如小说、教科书、自助指南等,帮助读者快速识别内容类别。
book_name书名书籍的主要标识,用于识别和索引。
book_publisher出版社出版书籍的公司或机构,其声誉可能影响读者对书籍质量的预期。
book_comment_count评论数可以作为书籍受欢迎程度的一个指标。
book_discount_rate优惠力度表示书籍原价与优惠价之间的折扣百分比。
book_packaging包装书籍的包装方式,可能涉及书籍的外观保护或特殊包装需求。
book_desc简述对书籍内容的简短描述,帮助读者理解书籍的主题和内容。
book_publish_time出版时间书籍的出版日期,对于寻找最新或特定时期出版物的读者很重要。
book_price定价书籍的正常销售价格,不含任何优惠。
book_format开本书籍的尺寸格式,影响阅读体验和携带方便性。
book_set套装若书籍属于系列或套装,此字段标明,对成套购买的读者有吸引力。

        数据集中可能存在缺失值或异常值,这可能由于录入错误、系统故障或其他因素造成。因此,在进行深入分析之前,必须进行数据清洗和预处理,以确保分析结果的准确性和可靠性。

正文

数据获取

        本文是直接采用数据集,没有进行爬取,下面提供爬取的示例

        Python脚本通过requests库向特定网站发送请求,借助BeautifulSoup解析返回的HTML页面,从而抓取图书信息。这些信息包括排名、书名、简介、作者等数据,随后被组织成一个对象。最终,这个包含图书信息的数据集被导出并保存为一个CSV文件,以便后面进一步存储于分析。整个过程中,只需要提供网站的地址和相应的请求头信息,确保能够成功获取数据。其流程图如图所示。

在这里插入图片描述

#!/usr/bin/env python
# coding: utf-8# 导入包
import time
import requests
import pandas as pd
from bs4 import BeautifulSoup# 定义爬取函数
def get_book_data(url, headers):r = requests.get(url, headers=headers)r.encoding = r.apparent_encoding# 使用BeautifulSoup解析网页soup = BeautifulSoup(r.text, 'html.parser')# 提取图书信息book_list = []for row in soup.find_all('tr')[1:]:cols = row.find_all('td')book_rank = cols[0].text.strip()book_name = cols[1].text.strip()book_desc = cols[2].text.strip()book_author = cols[3].text.strip()book_publisher = cols[4].text.strip()book_publish_time = cols[5].text.strip()book_rating = cols[6].text.strip()book_comment_count = cols[7].text.strip()book_price = cols[8].text.strip()book_discounted_price = cols[9].text.strip()book_discount_rate = cols[10].text.strip()book_format = cols[11].text.strip()book_paper = cols[12].text.strip()book_packaging = cols[13].text.strip()book_set = cols[14].text.strip()book_type = cols[15].text.strip()book_list.append([book_rank, book_name, book_desc, book_author, book_publisher, book_publish_time, book_rating,book_comment_count, book_price, book_discounted_price, book_discount_rate, book_format,book_paper, book_packaging, book_set, book_type])# 将数据转换为DataFramedf = pd.DataFrame(book_list, columns=['排名', '书名', '简述', '作者', '出版社', '出版时间', '评分', '评论数', '定价', '优惠价', '优惠力度', '开本','纸张', '包装', '套装', '类型'])return df# 请求头
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36','cookie':'登录图书馆,添加自己浏览器的cookie'# 替换为实际的图书网址
}
url ='https://example.com/books'  # 替换为实际的图书网址
df = get_book_data(url, headers)
# 保存数据为CSV文件
df.to_csv('CSV文件文件名.csv', index=None, encoding='utf-8-sig')  # 使用utf-8-sig编码以避免中文乱码问题

数据存储

        本文是直接采用数据集,没有进行爬取,下面提供爬取后存储的示例

        通过Python的pandas库读取刚刚爬取保存好的名为“书籍Top500.csv”的CSV文件,接着利用pymysql库将文件中的数据导入到名为’books_db’的MySQL数据库中。我们首先需要定义了与数据库建立连接和关闭连接的辅助函数,然后创建一个函数来逐行插入数据至数据库预设的’books’表。最终通过调用函数实现数据的批量存储操作。其存储流程图如图所示。

在这里插入图片描述

import pandas as pd
import pymysql# 读取csv文件
data = pd.read_csv("书籍Top500.csv")# 连接数据库,需要先在数据库中定义好一张表
def get_con():con = pymysql.connect(host='localhost', user='数据库用户名', password='数据库密码', database='books_db', charset='utf8')#                                   修改user='数据库用户名', password='数据库密码', database='数据库名'cursor = con.cursor()return con, cursor# 关闭数据库
def con_close(con, cursor):if cursor:cursor.close()if con:con.close()# 将数据存储到数据库
def save_to_database(data):con, cursor = get_con()for index, row in data.iterrows():sql = f"INSERT INTO books (排名,书名,简述,作者,出版社,出版时间,评分,评论数,定价,优惠价,优惠力度,开本,纸张,包装,套装,类型) " \f"VALUES ({row['排名']}, '{row['书名']}', '{row['简述']}', '{row['作者']}', '{row['出版社']}', '{row['出版时间']}', {row['评分']}, {row['评论数']}, {row['定价']}, {row['优惠价']}, {row['优惠力度']}, '{row['开本']}', '{row['纸张']}', '{row['包装']}', '{row['套装']}', '{row['类型']}')"cursor.execute(sql)con.commit()con_close(con, cursor)# 调用函数将数据存储到数据库
save_to_database(data)

存储到数据库后数据库查看情况如图所示。

在这里插入图片描述

数据清理

查看数据集中缺失值的分布情况。

在这里插入图片描述
        可以看到 ‘简述’ 列有缺失值,我们可以通过dropna()函数指定要删除的列为"简述",然后使用subset参数来限制只删除"简述"列中的缺失值。

删除 ‘简述’ 列中的缺失值后:
在这里插入图片描述

检查数据集中是否存在重复的行,并计算重复行的总数
在这里插入图片描述

书名处理

new_name = []
for name in df['书名'].tolist():new_name.append(name.split('(')[0])
df['书名_new'] = new_name

类型处理

new_typs = []
for typ in df['类型'].tolist():new_typs.append(typ.split('-')[0])
df['类型_new'] = new_typs

定价处理

df['定价区间'] = pd.cut(df['定价'], bins=[0, 20, 30, 40, 50, 60, 1000], labels=['20元以下', '20-30元','30-40元', '40-50元','50-60元','60元以上'])

数据分析

        首先读取数据集的基本信息,接着获取检获取数据集的基本信息(如列数、行数、每列的数据类型)
在这里插入图片描述
        该数据集共有500条记录,包含16个字段,每个字段的非空值数量均为500。其中,5列是数值型变量(包括整型和浮点型),11列是字符串型变量。数据集占用的内存大小为62.6MB。

对于数据集中各数值型列的描述性统计量
在这里插入图片描述
        变量呈现出一定程度的正偏态分布,有几个极端高值拉高了平均值,但大部分数据集中在相对较低的值域内。

数据挖掘

关联规则

        基于书籍数据进行关联规则挖掘的。首先,它导入了必要的库和函数,然后读取了书籍数据并进行了预处理。接着,使用Apriori算法挖掘频繁项集,并生成关联规则。最后,根据最小置信度和最小支持度阈值筛选关联规则,并输出满足条件的关联规则、支持度和置信度。

在这里插入图片描述
从给出的关联规则结果中,我们可以得出以下结论:

  1. 中国儿童文学和童书之间有强烈的关联,置信度为1.0,支持度为0.046。这意味着在中国儿童文学的书籍中,有很高的概率会出现童书类别的书籍。
  2. 中国当代小说和小说之间也有强烈的关联,置信度为1.0,支持度为0.046。这表明中国当代小说中有很大比例属于小说类别。
  3. 中国现当代随笔和文学之间的关联非常强,置信度为1.0,支持度为0.066。这说明中国现当代随笔主要属于文学类别。
  4. 小学阅读和中小学用书之间存在完全的关联,置信度为1.0,支持度为0.064。这意味着小学阅读类别的书籍全部属于中小学用书类别。
  5. 中小学用书和小学阅读之间的关联也较强,置信度为0.711,支持度为0.064。这表示在中小学用书类别中,有较高比例的书籍属于小学阅读类别。
  6. 大陆漫画和动漫/幽默之间的关联非常强,置信度为1.0,支持度为0.032。这表明大陆漫画主要属于动漫/幽默类别。
  7. 外国儿童文学和童书之间也有强烈的关联,置信度为1.0,支持度为0.036。这意味着外国儿童文学书籍中有很大概率属于童书类别。
  8. 社会小说和小说之间的关联非常强,置信度为1.0,支持度为0.036。这表明社会小说主要属于小说类别。
  9. 绘本/图画书和童书之间的关联也非常强,置信度为1.0,支持度为0.068。这意味着绘本/图画书主要属于童书类别。
    所以这些关联规则揭示了不同类型的书籍之间的关联关系,可以帮助我们更好地了解书籍分类和推荐书籍。

二分类预测

        通过逻辑回归模型预测借阅童话书籍的概率,并计算了测试集上的准确率。它使用了评分、评论数、定价和优惠价作为特征,将类型为"童书-绘本/图画书"的书籍标记为正例,其他书籍标记为负例。通过训练集拟合模型,并在测试集上进行预测,最终输出了预测的准确率。

        结果显示借阅童话书籍的准确率为96%。96%的高准确率表明模型在区分童话书籍与其他类型书籍方面表现良好,能够有效地根据特征(评分、评论数、定价、优惠价)来识别出童话书籍。

        利用逻辑回归模型的预测概率,并绘制了ROC曲线。首先读取数据并进行特征选择和标签定义,然后划分训练集和测试集。接着使用训练集训练逻辑回归模型,获取模型在测试集上的预测概率。最后计算ROC曲线的真正率(TPR)和假正率(FPR),并绘制ROC曲线。

在这里插入图片描述

        我们可以看到ROC曲线下的面积(AUC)为0.66,表明模型性能略高于随机猜测。曲线上的点揭示了不同阈值下的性能变化。理想模型的ROC曲线紧贴左上角,但此模型的曲线显示出它在某些阈值下能较好地区分正负例,而在其他阈值下则表现不佳。总体而言,该模型有提升空间,调整阈值可帮助找到最佳平衡点,以减少误判并提高正确识别率。

数据可视化

书籍价格区间柱状图

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

        柱状图清晰展示了图书馆不同价格区间内书籍的数量分布,其中“20元以下”区间的书籍数量最多,达到120本,而“60元以上”区间的书籍数量最少,仅有20本。其他价格区间的书本数量依次递减,反映出价格与数量之间存在一定的负相关关系。

  • 经济因素:价格较低的书籍可能更容易被普通读者接受,因此需求较大,导致库存较多。相反,价格较高的书籍可能因为其独特性或稀缺性,使得购买者较少,从而库存较少。
  • 出版策略:出版商可能会根据市场需求来决定书籍的定价。如果某一价格区间的书籍需求大,出版商会增加该区间的书籍生产量以满足市场需求。
  • 消费心理:消费者在购买书籍时往往希望获得更多的性价比。价格较低的书籍提供了更高的性价比,因此更受欢迎。
  • 库存管理:图书馆或书店为了减少库存损失和提高资金周转率,可能会优先处理那些长时间滞销、价格较高的书籍,从而导致这些书籍的数量减少。

书籍评分分布散点图

在这里插入图片描述

在这里插入图片描述

        从图中可以看出,图书馆大部分的书籍评分集中在4到5之间,而2和3的评分较少。这可能意味着大部分书籍的评价都是中等偏上的,而只有很少的书籍被评为很差。说明了以下几点:

  • 图书馆中大部分的书籍都获得了较高的评分,说明这些书籍在内容、质量或可读性方面得到了读者的认可。这为读者提供了高质量的阅读材料,有助于提升整体的阅读体验。
  • 图书馆可能会根据书籍的评分来选择购买或推荐给读者。因此,高评分的书籍更有可能被选中,而低评分的书籍则较少被关注。
  • 高评分的书籍可能更符合大多数读者的兴趣和需求,因此更受欢迎。相反,那些获得较低评分的书籍可能不符合大众口味或存在某些缺陷,导致其受众较小。
  • 出版社可能会根据市场反馈调整出版物的质量。如果某本书籍经常获得较高评分,出版商可能会继续投资该系列书籍;反之,如果某本书籍持续获得低分,出版商可能会考虑改进其产品。

书籍包装类型占比柱状图

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

        从图中可以看出,“平装-胶订”占据了最大的比例,为70%。接下来是“线装”,占了2%。其他类型的占比分别为:“软装”为6%,“平装-锁线订”为4%,“线装”为8%,以及“精装”为20%。说明了以下几点:

  • 平装-胶订由于其低成本和易于生产的特点,成为了图书馆中最常见的书籍装帧类型。这种类型的书籍通常价格适中,便于大规模生产和流通,因此更受读者欢迎。
  • 线装作为一种传统的书籍装帧方式,虽然在现代图书市场中占比较小,但仍有其独特的地位和价值。它代表了中国传统文化的一部分,可能在特定领域或古籍收藏中有其特定的应用。
  • 精装书通常被视为高品质、高档次的图书,因此它们在图书馆中的占比相对较高。这些书籍往往采用精美的封面设计和高质量的纸张,适合作为礼品或珍藏。
  • 不同的书籍装帧类型反映了市场对于不同类型书籍的需求。例如,学术著作和专业书籍可能更倾向于使用平装-胶订,而文学作品和艺术类书籍可能更多采用精装。

书籍出版时间分布

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

        这折线图表示了不同时间点的书籍出版数量。图中的Y轴代表书籍的数量,而X轴代表不同的时间点。

        从图中可以看出,有几个时间点的书籍出版数量明显增多,例如在2015年、2016年和2021年等。而在其他时间点,如2018年和2019年,出版数量则相对较低。

        说明了图书出版业可能存在周期性波动,其中某些年份可能会有更多的新书推出,而其他年份则相对较少。这种周期性可能与市场需求、经济状况或出版政策等因素有关。

        某些特殊的事件或趋势可能导致特定时间点书籍出版数量的增加。例如,某个年份可能有重要的文化活动、学术会议或社会运动,吸引了更多的出版商和作者推出新作品。

借阅图书数量前20出版社柱状图

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

        这是一张展示排名前20的出版社借阅图书数量的柱状图,其中“某合出版社”和“湖南文艺出版社”的借阅量显著领先,大部分出版社的借阅数量集中在10到20之间,反映出各社之间的借阅情况存在一定的差距。

借阅排名前20的书籍作者柱状图

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

        从图中可以看出,大部分的作者数量集中在6-9之间,而有些作者的借阅量则相对较低。具体来说,刘震云、作译者、汪曾祺和宫崎骏等作者的借阅量明显高于其他作者,说明他们的书在读者中非常受欢迎。而赫尔曼•黑塞、冯骥才、季羡林和莫言等作者虽然也有一定的借阅量,但与前几位相比略显不足。至于老舍、北岛和京极漫画等作者,他们的借阅量较低,可能是由于他们的作品受众相对较少或与其他热门作者存在竞争。总的来说,这张图表为我们提供了一个关于不同作者作品受欢迎程度的直观印象。

借阅排名前十的书籍类型占比饼图

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

        这张饼图展示了“借阅排名前十的书籍类型占比”。从图中可以看出,童书和小说是最受欢迎的两个类别,分别占据了25.5%和23.4%。这可能意味着在当前的读者群体中,儿童和青少年的阅读需求非常旺盛。

        其他如心理学、哲学/宗教、文学、历史等类别也有一定的市场份额,但相对于童书和小说来说较小。这可能表示尽管这些类别的书籍在某些特定的读者群体中很受欢迎,但它们的整体市场份额仍然不如童书和小说。

书籍书名词云

在这里插入图片描述

在这里插入图片描述

        我们可以看到各种书名和作者名,它是图书馆热门书籍列表。这种类型的图像通常用于展示关键词、主题或任何特定数据集中的高频词汇。

可视化大屏(Flask)

在这里插入图片描述

        图书馆大数据可视化分析系统的可视化大屏可以更直观地展示数据和信息。它整合了各类数据,包括销售、借阅量、分类比例以及随时间变化的趋势等,为图书馆管理者提供了一个全方位的视角来了解当前图书馆的书籍运营情况。这不仅有助于图书馆管理员全面了解图书馆的运作状况,也能够让管理员及时发现问题并进行处理,确保图书馆的运营流畅无阻。此外,通过大屏上的分类比例数据,管理员可以更科学地进行图书采购和分类策略的制定,从而提高工作效率。数字统计表和进度条的设计使得数据的交互性增强,让用户能更好地理解和使用数据,从而提升用户体验。


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/28617.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

质疑标普,理解标普,加入标普

上周我在文章里提到过,标普信息科技LOF(161128)出现套利机会。每天申购卖出,到现在一个账户56*6336润。 得益于美股七巨头轮流领涨,161128依旧坚挺,每天溢价都是10%,成交量1个多亿,场内新增份额才400万份&…

路由器虚拟服务器有什么作用

现如今在IPv4时代,由于公网IP地址的匮乏,约有70%的电脑都处于内网中,上网需要通过路由器。如果反过来想要访问身处内网的电脑,我们就需要在路由器里开放相应的端口才能实现。而这开放端口的功能,在路由器里就叫做虚拟服…

NASA数据:南极海洋生物资源

Antarctic Marine Living Resources (AMLR) program 南极海洋生物资源许可证 南极海洋生物资源保护委员会公约区受到管制。任何打算从该区域捕获海洋生物的人都必须获得许可证。 简介 美国是南极海洋生物资源保护委员会(Commission for the Conservation of Anta…

JVM面试重点-2

16. 吞吐量优先和响应时间优先的回收器是哪些? 吞吐量优先:Parallel Scavenge Parallel Old(多线程并行)->简称: PSPO -> JDK1.8默认响应时间优先:ParNew CMS(并发回收垃圾&#xff09…

VMware 桥接网络突然无法上网

VMware 桥接网络突然无法上网 0. 问题1. 解决方法 0. 问题 昨天,VMware 桥接网络正常使用,今天突然无法上网。 1. 解决方法 打开VMware的虚拟网络编辑器,将桥接模式的网络从“自动”改成你要使用的网卡,问题解决。 完成&#…

通过命令行启动MySQL

通过命令行启动MySQL 右击,选择管理员运行 停止MySQL net stop你的服务名称 net stop MySQL启动MySQL net start你的服务名称 net start MySQL

ElasticSearch地理空间数据了解

ElasticSearch地理空间数据了解 使用场景 Elasticsearch 的地理空间数据处理功能在现代社会中有着广泛的应用,以下是一些常见的使用场景和方向: 1. 位置搜索和导航 本地服务发现:应用程序可以使用 Elasticsearch 查找用户附近的餐馆、商店…

【java分布式计算】分布式计算程序设计基础

期末复习 自留 重点只抓考点 目录 基本技术 SOCKETS网络套接字 多线程 数据序列化 Java I/O流 集合容器 范型 内部类、匿名类、Lambda(代码) 项目构建管理工具 高级技术 注解(代码) 反射(代码)…

C语言笔记第15篇:文件操作

1、为什么使用文件? 如果没有文件,我们写的程序的数据是存储在电脑的内存中,如果程序退出,内存回收,数据就丢失了,等再次运行程序,是看不到上次程序的数据的,如果要将数据进行持久化…

【PL理论】(29) OOP:面向对象编程 | 案例研究:C++ 中的类 | 继承 | 继承和指针 | Object-oriented Programming

💭 写在前面:本章我们将进入 Object-oriented Programming,面向对象编程的讲解,探讨 C 中的类,继承等。 目录 0x00 面向对象编程 0x01 C语言中的结构体 0x02 案例研究:C 中的类 0x03 术语 0x04 继承&…

PHP调用阿里云OSS的SDK封装成服务的完整指南与问题解决

在现代Web开发中,使用云存储来管理和存储大量的静态文件已经成为常态。阿里云OSS(对象存储服务)是其中一个非常受欢迎的选择。在这篇文章中,我们将详细讲解如何在PHP项目中集成并使用阿里云OSS SDK。 #### 一、前期准备 在开始之…

vue3轮播图怎么做

先看效果 实现代码 <n-carouseleffect"card"dot-type"line"draggable:autoplay"!isHovered":current-index"currentIndex"prev-slide-style"transform: translateX(-150%) translateZ(-450px);opacity:1"next-slide-st…

【MySQL】(基础篇十三) —— 联结

联结 本文介绍什么是联结&#xff0c;为什么要使用联结&#xff0c;如何编写使用联结的SELECT语句。介绍如何对被联结的表使用表别名和聚集函数。 SQL最强大的功能之一就是能在数据检索查询的执行中联结&#xff08;join&#xff09;表。联结是利用SQL的SELECT能执行的最重要…

springboot+vue+mybatis教师工作审核系统+PPT+论文+讲解+售后

随着社会不断进步与发展&#xff0c;生活节奏不断加快&#xff0c;信息已经成为我们生活中不可缺少的一部分&#xff0c;很多学校需要掌握大量的信息来了解特定学生的需求&#xff0c;传统的做法是组织大量的人力物力对学生散发调查表&#xff0c;然后对收集的信息进行统计并得…

基于Matlab的BP神经网络的车牌识别系统(含GUI界面)【W7】

简介&#xff1a; 本系统结合了图像处理技术和机器学习方法&#xff08;BP神经网络&#xff09;&#xff0c;能够有效地实现车牌的自动识别。通过预处理、精确定位、字符分割和神经网络识别&#xff0c;系统能够准确地识别各种车牌图像&#xff0c;并在智能交通管理、安防监控等…

LeetCode 338.比特位计数

各位朋友们&#xff0c;大家好啊&#xff0c;今天此题我用的方法比较好理解&#xff0c;但时间复杂度比较高如果大家觉得可以的话&#xff0c;不妨给个免费的赞吧&#xff0c;谢谢了^ _ ^ 1.题目要求如图所示: 2.做题步骤: 1.先计算总共多少个数: int count 0;int number 0;…

25 avl树

目录 底层结构avl树的概念节点定义插入旋转验证删除全性能 1. 底层结构 前面对map/multimap/set/multiset进行了简单的介绍&#xff0c;在其文档介绍中发现&#xff0c;这几个容器有几个共同点是&#xff1a;其底层都是按照二叉搜索树来实现的&#xff0c;但是二叉搜索树有自…

用Copilot画漫画,Luma AI生成视频:解锁创意新玩法

近年来&#xff0c;随着人工智能技术的不断发展&#xff0c;各种创意工具也层出不穷。今天&#xff0c;我们就来介绍一种全新的创作方式&#xff1a;使用Copilot画漫画&#xff0c;再将漫画放入Luma AI生成视频。 Copilot&#xff1a;你的AI绘画助手 Copilot是一款基于人工智…

使用sherpa-ncnn进行中文语音识别(ubuntu22)

获取该开源项目的渠道&#xff0c;是我在b站上&#xff0c;看到了由csukuangfj制作的一套语音识别视频。以下地址均为csukuangfj在视频中提供&#xff0c;感谢分享&#xff01; 新一代Kaldi RISC-V: VisionFive2 上的实时中英文语音识别_哔哩哔哩_bilibili 开源项目地址&…

如何将扫描的 PDF 转换为 Word

您是否正在寻找一种可靠且轻松的方式将扫描的 PDF 文档转换为可编辑的 Word 文件&#xff1f;要将 PDF 转换为可编辑的 Word 文档&#xff0c;神奇之处在于光学字符识别(OCR)。 使用 PDFgear&#xff0c;您可以无缝地将扫描的 PDF 转换为 Word&#xff0c;无论是在线还是离线。…