当前位置: 首页 > news >正文

02.C1W1.Sentiment Analysis with Logistic Regression

目录

  • Supervised ML and Sentiment Analysis
    • Supervised ML (training)
    • Sentiment analysis
  • Vocabulary and Feature Extraction
    • Vocabulary
    • Feature extraction
    • Sparse representations and some of their issues
  • Negative and Positive Frequencies
  • Feature extraction with frequencies
  • Preprocessing
    • Preprocessing: stop words and punctuation
    • Preprocessing: Handles and URLs
    • Preprocessing: Stemming and lowercasing
  • Putting it all together
    • General overview
    • General Implementation
  • Logistic Regression Overview
  • Logistic Regression: Training
    • 图形化
    • 数学化
  • Logistic Regression: Testing
  • opt. Logistic Regression:Cost Function
  • 作业注意事项

Supervised ML and Sentiment Analysis

Supervised ML (training)

在这里插入图片描述
模型吃参数 θ θ θ来映射特征 X X X以输出标签 Y ^ \hat Y Y^,之前讲过太多,不重复了

Sentiment analysis

SA任务的目标是用逻辑回归分类器,预测一条推文的情绪是积极的还是消极的,如下图所示,积极情绪的推文都有一个标签:1,负面情绪的推文标签为0
在这里插入图片描述
在这里插入图片描述
大概步骤如上图:

  1. 处理训练集中的原始tweets并提取有用的特征 X X X
  2. 训练Logistic回归分类器,同时最小化成本函数
  3. 使用训练好的分类器对指定推文进行情感分析预测

Vocabulary and Feature Extraction

Vocabulary

假设有训练集中有m条推文:
在这里插入图片描述
则词表(库)可表示为所有不重复出现的所有单词列表,例如上面的I出现两次,只会记录一次:
在这里插入图片描述

Feature extraction

这里直接简单使用单词是否出现来对某个句子进行特征提取:
在这里插入图片描述
如果词表大小为10W,则该句子的特征向量大小为1×10W的,单词出现在句子中,则该词的位置为1,否则为0,可以看到,句子的特征向量非常稀疏(称为稀疏表示Sparse representation)。

Sparse representations and some of their issues

稀疏表示使得参数量大,对于逻辑回归模型,需要学习的参数量为n+1,n为词表大小,进而导致以下两个问题:
在这里插入图片描述

Negative and Positive Frequencies

将推文语料库分为两类:正面和负面 ;
计算每个词在两个类别中出现的次数。
假设语料如下(四个句子):

Corpus
I am happy because I am learning NLP
I am happy
I am sad, I am not learning NLP
I am sad

对应的词表如下(八个词):

Vocabulary
I
am
happy
because
learning
NLP
sad
not

对语料进行分类:

Positive tweetsNegative tweets
I am happy because I am learning NLPI am sad, I am not learning NLP
I am happyI am sad

按类型构造词频表(小伙伴们可以自行写上对应的数字,例如:happy数字为2)
在这里插入图片描述

在这里插入图片描述
总表如下:
在这里插入图片描述
接下来就是要利用以上信息来进行特征提取。

Feature extraction with frequencies

推文的特征可由以下公式表示:
在这里插入图片描述
其中freqs函数就是上节表中单词与情感分类对应的频率。
例子:
I am sad, I am not learning NLP
对应正例词频表(图中应该是下划线):
在这里插入图片描述
可以算出正例词频总和为:3+3+1+1=8
对应负例词频表:
在这里插入图片描述
可以算出负例词频总和为:3+3+1+1+2+1=11
则该推文的特征可以表示为三维向量:
X m = [ 1 , 8 , 11 ] X_m=[1,8,11] Xm=[1,8,11]
这样的表示去掉了推文稀疏表示中不重要的信息。

Preprocessing

数据预处理包括:
Removing stopwords, punctuation, handles and URLs;
Stemming;
Lowercasing.
中心思想:去掉不重要和非必要信息,提高运行效率

Preprocessing: stop words and punctuation

推文实例(广告植入警告):
@YMourri and @AndrewYNg are tuning a GREAT AI model at https://deeplearning.ai!!!
假设停用词表如下(词表通常包含的停用词比实际语料中的停用词要多):

Stop words
and
is
are
at
has
for
a

交叉比较去掉停用词中的内容后:
@YMourri @AndrewYNg tuning GREAT AI model https://deeplearning.ai!!!
假设标点表如下:

Punctuation
,
.
:
!

去掉标点后结果如下:
@YMourri @AndrewYNg tuning GREAT AI model https://deeplearning.ai
际这两个表可以合并在一块,当然有些任务标点符号也包含重要信息,因此是否去掉标点要根据实际需要来做。

Preprocessing: Handles and URLs

这里继续对标识符和网址进行处理,通常这些内容对于SA任务而言,并不能提供任何情绪价值。
上面的推文处理后结果如下:
tuning GREAT AI model
可以看到,去掉非必要信息后,得到结果是一条正面的推文。

Preprocessing: Stemming and lowercasing

Stemming 是一种文本处理技术,目的是将词汇还原到其基本形式,即词干。例如,将 “running” 还原为 “run”。
Lowercasing 是将所有文本转换为小写,以消除大小写带来的差异,便于统一处理。
例如第一个单词词干为tun:
在这里插入图片描述
第二个单词:
在这里插入图片描述
这样处理能减少词库中单词数量。最后推文处理后结果为:
[tun, great, ai, model]

Putting it all together

General overview

本节将对整组推文执行特征提取算法(Generalize the process)
根据之前的内容:数据预处理,特征提取,我们可以将下面推文进行处理:

I am Happy Because i am learning NLP @deeplearning
↓ Preprocessing后
[happy, learn, nlp]
↓ Feature Extraction后
[1,4 ,2]

其中,1 是Bias,4是Sum positive frequencies,2是Sum negative frequencies

对于多条推文则有:
在这里插入图片描述
最后的多个特征向量就可以组合成一个矩阵,大小为m×3,矩阵每一行都对应一个推文的特征向量
在这里插入图片描述

General Implementation

freqs =build_freqs(tweets,labels) #Build frequencies dictionary,已提供
X = np.zeros((m, 3 )) #Initialize matrix X
for i in range (m): #For every tweetp_tweet = process_tweet(tweets[i]) #Process tweet,已提供X[i, :]= extract_features(train_x[i], freqs)#需要在作业中自己实现

Logistic Regression Overview

最开始的有监督的机器学习中,回顾了主要步骤,这里我们只需要将中间的预测函数替换为逻辑回归函数Sigmoid即可。
在这里插入图片描述
Sigmoid函数形式为:
h ( x ( i ) , θ ) = 1 1 + e − θ T x ( i ) h(x^{(i)},\theta)=\cfrac{1}{1+e^{-\theta^Tx^{(i)}}} h(x(i),θ)=1+eθTx(i)1
i为第i条数据
θ是参数
x是数据对应的特征向量
图像形式为:
在这里插入图片描述
其函数值取决于 θ T x ( i ) \theta^Tx^{(i)} θTx(i)
在这里插入图片描述
例如:
@YMourri and @AndrewYNg are tuning a GREAT AI model
预处理后结果为:
[tun, ai, great, model]
根据词库进行特征提取后可能得到以下结果:
x ( i ) = [ 1 3476 245 ] and θ = [ 0.00003 0.00150 − 0.00120 ] \begin{equation*} x^{(i)} = \begin{bmatrix} 1 \\ 3476 \\ 245 \end{bmatrix} \quad \text{and} \quad \theta = \begin{bmatrix} 0.00003 \\ 0.00150 \\ -0.00120 \end{bmatrix} \end{equation*} x(i)= 13476245 andθ= 0.000030.001500.00120
带入sigmoid函数后得到:
在这里插入图片描述

Logistic Regression: Training

上一节内容中,我们使用了给定的参数 θ \theta θ来计算推文的结果,这一节我们将学会如何通过训练逻辑回归模型来找到最佳的参数 θ \theta θ(梯度下降)。

图形化

先将问题简化,假设LR模型中只有两个参数 θ 1 \theta_1 θ1 θ 2 \theta_2 θ2则函数的参数图像为下左,下右为Cost函数的迭代过程:
在这里插入图片描述
刚开始,我们初始化两个参数 θ 1 \theta_1 θ1 θ 2 \theta_2 θ2,对应的Cost值为:
在这里插入图片描述
根据GD方向进行参数更新,100次后:
在这里插入图片描述
200次后:
在这里插入图片描述
若干次后:
在这里插入图片描述
直到最佳cost附近:
在这里插入图片描述

数学化

整个梯度下降过程可以表示为下图,注意左右是一一对应关系,结合起来看:
在这里插入图片描述

Logistic Regression: Testing

使用验证集计算模型精度,并了解准确度指标的含义。
现在我们手上有验证集: X v a l , Y v a l X_{val},Y_{val} Xval,Yval,以及训练好的参数 θ \theta θ
先计算sigmoid函数值(预测值): h ( X v a l , θ ) h(X_{val},\theta) h(Xval,θ)
然后判断验证集中每一个数据的预测值是否大于阈值(通常为0.5):
p r e d = h ( X v a l , θ ) ≥ 0.5 pred=h(X_{val},\theta)\ge 0.5 pred=h(Xval,θ)0.5
在这里插入图片描述
最后的预测结果是一组矩阵:
在这里插入图片描述
有了预测结果,就可以将其与标签 Y v a l Y_{val} Yval比较,计算准确率:
∑ i = 1 m ( p r e d i = = y v a l ( i ) ) m \sum_{i=1}^m\cfrac{(pred^{i}==y^{(i)}_{val})}{m} i=1mm(predi==yval(i))
m是验证集中数据个数
分子如下图所示,绿色是预测正确,黄色是预测不正确的:
在这里插入图片描述
正确率计算实例:
假设计算的预测值与标签如下:
在这里插入图片描述
分子则为:
在这里插入图片描述
正确率: a c c u r a c y = 4 5 accuracy=\cfrac{4}{5} accuracy=54

opt. Logistic Regression:Cost Function

可选看内容:逻辑成本函数(又称二元交叉熵函数),公式为:
J ( θ ) = − 1 m ∑ i = 1 m [ y ( i ) log ⁡ h ( x ( i ) , θ ) + ( 1 − y ( i ) ) log ⁡ ( 1 − h ( x ( i ) , θ ) ] J(\theta)=-\cfrac{1}{m}\sum_{i=1}^m\left[y^{(i)}\log h(x^{(i)},\theta)+(1-y^{(i)})\log (1-h(x^{(i)},\theta)\right] J(θ)=m1i=1m[y(i)logh(x(i),θ)+(1y(i))log(1h(x(i),θ)]
1 m ∑ i = 1 m \cfrac{1}{m}\sum_{i=1}^m m1i=1m中,m是样本数量,这里是将所有训练样本的cost进行累加,然后求平均。
对于中括号的第一项 y ( i ) log ⁡ h ( x ( i ) , θ ) y^{(i)}\log h(x^{(i)},\theta) y(i)logh(x(i),θ),不同取值有不同结果,总体而言,负例样本 y ( i ) = 0 y^{(i)}=0 y(i)=0,无论预测值 h ( x ( i ) , θ ) h(x^{(i)},\theta) h(x(i),θ)是什么这项为0,而预测值与标签值相差越大,Cost越大:
在这里插入图片描述
在这里插入图片描述

对于中括号的第二项 ( 1 − y ( i ) ) log ⁡ ( 1 − h ( x ( i ) , θ ) (1-y^{(i)})\log (1-h(x^{(i)},\theta) (1y(i))log(1h(x(i),θ),正例样本 y ( i ) = 1 y^{(i)}=1 y(i)=1,无论预测值 h ( x ( i ) , θ ) h(x^{(i)},\theta) h(x(i),θ)是什么这项为0,同样预测值与标签值相差越大,Cost越大:
在这里插入图片描述
在这里插入图片描述

由于中括号里面的log是针对0-1之间的值,所以得到的结果是负数,为保证Cost函数是正值(这样才能求最小),在最前面加上了负号。

作业注意事项

nltk.download(‘twitter_samples’)失败可以到:
https://www.nltk.org/nltk_data/
手工下载twitter_samples.zip后放corpora目录,不用解压

utils.py文件可以在Assignment中找到

相关文章:

02.C1W1.Sentiment Analysis with Logistic Regression

目录 Supervised ML and Sentiment AnalysisSupervised ML (training)Sentiment analysis Vocabulary and Feature ExtractionVocabularyFeature extractionSparse representations and some of their issues Negative and Positive FrequenciesFeature extraction with freque…...

Stable Diffusion秋叶AnimateDiff与TemporalKit插件冲突解决

文章目录 Stable Diffusion秋叶AnimateDiff与TemporalKit插件冲突解决描述错误描述:找不到模块imageio.v3解决:参考地址 其他文章推荐:专栏 : 人工智能基础知识点专栏:大语言模型LLM Stable Diffusion秋叶AnimateDiff与…...

PCL 渐进形态过滤器实现地面分割

点云地面分割 一、代码实现二、结果示例🙋 概述 渐进形态过滤器:采用先腐蚀后膨胀的运算过程,可以有效滤除场景中的建筑物、植被、车辆、行人以及交通附属设施,保留道路路面及路缘石点云。 一、代码实现 #include <iostream> #include <pcl/io/pcd_io.h> #in…...

第十四届蓝桥杯省赛C++B组E题【接龙数列】题解(AC)

需求分析 题目要求最少删掉多少个数后&#xff0c;使得数列变为接龙数列。 相当于题目要求求出数组中的最长接龙子序列。 题目分析 对于一个数能不能放到接龙数列中&#xff0c;只关系到这个数的第一位和最后一位&#xff0c;所以我们可以先对数组进行预处理&#xff0c;将…...

Ubuntu 20.04.4 LTS 离线安装docker 与docker-compose

Ubuntu 20.04.4 LTS 离线安装docker 与docker-compose 要在Ubuntu 20.04.4 LTS上离线安装Docker和Docker Compose&#xff0c;你需要首先从有网络的环境下载Docker和Docker Compose的安装包&#xff0c;然后将它们传输到离线的服务器上进行安装。 在有网络的环境中&#xff1a…...

vue3+ts 写echarts 中国地图

需要引入二次封装的echarts和在ts文件写的option <template><div class"contentPage"><myEcharts :options"chartOptions" class"myEcharts" id"myEchartsMapId" ref"mapEcharts" /></di…...

【设计模式】【行为型模式】【责任链模式】

系列文章目录 可跳转到下面链接查看下表所有内容https://blog.csdn.net/handsomethefirst/article/details/138226266?spm1001.2014.3001.5501文章浏览阅读2次。系列文章大全https://blog.csdn.net/handsomethefirst/article/details/138226266?spm1001.2014.3001.5501 目录…...

超越所有SOTA达11%!媲美全监督方法 | UC伯克利开源UnSAM

文章链接&#xff1a;https://arxiv.org/pdf/2406.20081 github链接&#xff1a;https://github.com/frank-xwang/UnSAM SAM 代表了计算机视觉领域&#xff0c;特别是图像分割领域的重大进步。对于需要详细分析和理解复杂视觉场景(如自动驾驶、医学成像和环境监控)的应用特别有…...

享元模式(设计模式)

享元模式&#xff08;Flyweight Pattern&#xff09;是一种结构型设计模式&#xff0c;它通过共享细粒度对象来减少内存使用&#xff0c;从而提高性能。在享元模式中&#xff0c;多个对象可以共享相同的状态以减少内存消耗&#xff0c;特别适合用于大量相似对象的场景。 享元模…...

【机器学习】大模型训练的深入探讨——Fine-tuning技术阐述与Dify平台介绍

目录 引言 Fine-tuning技术的原理阐 预训练模型 迁移学习 模型初始化 模型微调 超参数调整 任务设计 数学模型公式 Dify平台介绍 Dify部署 创建AI 接入大模型api 选择知识库 个人主页链接&#xff1a;东洛的克莱斯韦克-CSDN博客 引言 Fine-tuning技术允许用户根…...

【Linux从入门到放弃】探究进程如何退出以进程等待的前因后果

&#x1f9d1;‍&#x1f4bb;作者&#xff1a; 情话0.0 &#x1f4dd;专栏&#xff1a;《Linux从入门到放弃》 &#x1f466;个人简介&#xff1a;一名双非编程菜鸟&#xff0c;在这里分享自己的编程学习笔记&#xff0c;欢迎大家的指正与点赞&#xff0c;谢谢&#xff01; 进…...

QT5 static_cast实现显示类型转换

QT5 static_cast实现显示类型转换&#xff0c;解决信号重载情况...

【ES】--Elasticsearch的翻页详解

目录 一、前言二、from+size浅分页1、from+size导致深度分页问题三、scroll深分页1、scroll原理2、scroll可以返回总计数量四、search_after深分页1、search_after避免深度分页问题一、前言 ES的分页常见的主要有三种方式:from+size浅分页、scroll深分页、search_after分页。…...

3.js - 纹理的重复、偏移、修改中心点、旋转

你瞅啥 上字母 // ts-nocheck // 引入three.js import * as THREE from three // 导入轨道控制器 import { OrbitControls } from three/examples/jsm/controls/OrbitControls // 导入lil.gui import { GUI } from three/examples/jsm/libs/lil-gui.module.min.js // 导入twee…...

RS232隔离器的使用

RS232隔离器在通信系统中扮演着至关重要的角色&#xff0c;其主要作用可以归纳如下&#xff1a; 一、保护通信设备 电气隔离&#xff1a;RS232隔离器通过光电隔离技术&#xff0c;将RS-232接口两端的设备电气完全隔离&#xff0c;从而避免了地线回路电压、浪涌、感应雷击、静电…...

一切为了安全丨2024中国应急(消防)品牌巡展武汉站成功召开!

消防品牌巡展武汉站 6月28日&#xff0c;由中国安全产业协会指导&#xff0c;中国安全产业协会应急创新分会、应急救援产业网联合主办&#xff0c;湖北消防协会协办的“一切为了安全”2024年中国应急(消防)品牌巡展-武汉站成功举办。该巡展旨在展示中国应急&#xff08;消防&am…...

【面试系列】PHP 高频面试题

欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;欢迎订阅相关专栏&#xff1a; ⭐️ 全网最全IT互联网公司面试宝典&#xff1a;收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来&#xff1a;详细讲解AIGC的概念、核心技术、…...

JAVA极简图书管理系统,初识springboot后端项目

前提条件&#xff1a; 具备基础的springboot 知识 Java基础 废话不多说&#xff01; 创建项目 配置所需环境 将application.properties>application.yml 配置以下环境 数据库连接MySQL 自己创建的数据库名称为book_test server:port: 8080 spring:datasource:url:…...

MySQL 重新初始化实例

1、关闭mysql服务 service mysqld stop 2、清理datadir(本例中指定的是/var/lib/mysql)指定的目录下的文件&#xff0c;将该目录下的所有文件删除或移动至其他位置 cd /var/lib/mysql mv * /opt/mysql_back/ 3、初始化实例 /usr/local/mysql/bin/mysqld --initialize --u…...

VCS编译bug汇总

‘typedef’ is not expected to be used in this contex 注册前少了分号。 Scope resolution error resolution : 声明指针时 不能与类名同名&#xff0c;即 不能声明为adapter. cannot find member "type_id" 忘记注册了 拼接运算符使用 关键要加上1b&#xff0…...

【2024LLM应用-数据预处理】之如何从PDF,PPT等非结构化数据提取有效信息(结构化数据JSON)?

&#x1f970;大家知道吗,之前在给AI大模型"喂数据"的时候,我们往往需要把非结构化数据(比如PDF、PPT、Excel等)自己手动转成结构化的格式,这可真是太累人儿了。&#x1f975; 幸好现在有了Unstructured这个神级库,它内置的数据提取函数可以帮我们快速高效地完成这个…...

冯雷老师:618大退货事件分析

近日冯雷老师受邀为某头部电商36名高管进行培训&#xff0c;其中聊到了今年618退货潮的问题。以下内容整理自冯雷老师的部分授课内容。 一、引言 随着电子商务的蓬勃发展&#xff0c;每年的618大促已成为消费者和商家共同关注的焦点。然而&#xff0c;在销售额不断攀升的同时…...

JAVA基础教程DAY0-基础知识

JAVA语言的特点 简单性、面向对象、安全性、跨平台性、支持多线程、分布性 面向对象编程&#xff08;Object-Oriented Programming&#xff0c;简称OOP&#xff09;是一种编程范式&#xff0c;它通过将数据和操作这些数据的方法封装在一起&#xff0c;以创建对象的形式来组织代…...

鸿蒙开发Ability Kit(程序访问控制):【安全控件概述】

安全控件概述 安全控件是系统提供的一组系统实现的ArkUI组件&#xff0c;应用集成这类组件就可以实现在用户点击后自动授权&#xff0c;而无需弹窗授权。它们可以作为一种“特殊的按钮”融入应用页面&#xff0c;实现用户点击即许可的设计思路。 相较于动态申请权限的方式&am…...

【信息系统项目管理师】18年~23年案例概念型知识

文章目录 18上18下19上19下20上20下21上21下22年上22年下23年上 18上 请简述 ISO 9000 质量管理的原则 领导作用、 过程方法、 管理的系统方法、 与供方互利的关系、 基于事实的决策方法、 持续改进、 全员参与、 以顾客为关注焦点 概念 国家标准(GB/T 1 9000 2008)对质量的定…...

什么是字符串常量池?如何利用它来节省内存?

字符串常量池是Java中一个非常重要的概念&#xff0c;尤其对于理解内存管理和性能优化至关重要。想象一下&#xff0c;你正在管理一家大型图书馆&#xff0c;每天都有无数读者来借阅书籍。 如果每本书每次借阅都需要重新印刷一本&#xff0c;那么图书馆很快就会陷入混乱&#…...

Selenium自动化测试20条常见异常+处理方案

常见的Selenium异常 以下是所有Selenium WebDriver代码中可能发生的一些常见Selenium异常。 1、ElementClickInterceptedException 由于以某种方式隐藏了接收到click命令的元素&#xff0c;因此无法正确执行Element Click命令。 2、ElementNotInteractableException 即使目…...

verilog将信号和常数拼接起来

正确的拼接 1 s_axis_data_tdata {32b0000_0000_0000_0000_0000_0000_0000_0000,32b0011_1111_1000_0000_0000_0000_0000_0000}; 2 注意&#xff0c;信号的两部分都要用{}花括号括起来 s_axis_data_tdata {{32{1b1}},{32b0100_0000_0000_0000_0000_0000_0000_0000}}; 3…...

OpenSSH远程代码执行漏洞 (CVE-2024-6387)

1. 前言 OpenSSH是一套基于安全外壳&#xff08;SSH&#xff09;协议的安全网络实用程序&#xff0c;它提供强大的加密功能以确保隐私和安全的文件传输&#xff0c;使其成为远程服务器管理和安全数据通信的必备工具。 OpenSSH 自 1995 年问世近 20 年来&#xff0c;首次出现了…...

高薪程序员必修课-java并发编程的bug源头

前言 Java并发编程虽然强大&#xff0c;但也容易引发复杂的bug。并发编程的bug主要源自以下几个方面&#xff1a;竞态条件、死锁、内存可见性问题和线程饥饿。了解这些bug的源头及其原理&#xff0c;可以帮助开发者避免和解决这些问题。以下是详细的讲解和相应的示例。 1. 竞态…...

c++:#include 某文件.h底层如何寻找其.cpp实现

在C中&#xff0c;当你编写了一个头文件&#xff08;如MyLibrary.h&#xff09;和对应的实现文件&#xff08;如MyLibrary.cpp&#xff09;时&#xff0c;其他源文件&#xff08;如main.cpp&#xff09;只需要包含头文件&#xff08;#include "MyLibrary.h"&#xff…...

uniapp中如何进行微信小程序的分包

思路&#xff1a;在uniapp中对微信小程序进行分包&#xff0c;和原生微信小程序进行分包的操作基本上没区别&#xff0c;主要就是在pages.json中进行配置。 如图&#xff0c;我新增了一个包diver-page 此时需要在pages.json中的subPackages数组中新增一项 root代表这个包的根…...

win10下安装PLSQL14连接Oracle数据库

问题背景 在使用Oracle开发过程中&#xff0c;经常会使用工具来连接数据库&#xff0c;方便查询、处理数据。其中有很多工具可以使用&#xff0c;比如dbeaver、plsql等。本文主要介绍在win10环境下&#xff0c;plsql14的安装步骤以及安装过程中遇到的一些问题。 安装步骤及问题…...

高考失利咨询复读,银河补习班客服开挂回复

补习班的客服在高考成绩出来后&#xff0c;需要用专业的知识和足够的耐心来回复各种咨询&#xff0c;聊天宝快捷回复软件&#xff0c;帮助客服开挂回复。 ​ 前言 高考成绩出来&#xff0c;几家欢喜几家愁&#xff0c;对于高考失利的学生和家长&#xff0c;找一个靠谱的复读补…...

java 代码块

Java中的代码块主要有三种类型&#xff1a;普通代码块、静态代码块、构造代码块。它们的用途和执行时机各不相同。 普通代码块&#xff1a;在方法内部定义&#xff0c;使用一对大括号{}包围的代码片段。它的作用域限定在大括号内&#xff0c;每当程序执行到该代码块时就会执行其…...

vue中避免多次请求字典接口

vuex缓存所有字典项 背景vuex管理所有字典项调用字典接口处理字典项数据的filter页面中使用字典 背景 每次用到字典都需要通过对应的字典type调用一次字典接口&#xff0c;当一个页面用到字典项很多时&#xff0c;接口请求炒鸡多&#xff0c;会导致接口响应超时。 本篇文章改为…...

Snappy使用

Snappy使用 Snappy是谷歌开源的压缩和解压的开发包&#xff0c;目标在于实现高速的压缩而不是最大的压缩 项目地址&#xff1a;GitHub - google/snappy&#xff1a;快速压缩器/解压缩器 Cmake版本升级 该项目需要比较新的cmake&#xff0c;CMake 3.16.3 or higher is requi…...

跨越重洋:在Heroku上配置Pip镜像源的终极指南

&#x1f310; 跨越重洋&#xff1a;在Heroku上配置Pip镜像源的终极指南 Heroku是一个支持多种编程语言的云平台即服务&#xff08;PaaS&#xff09;&#xff0c;它允许开发者部署和管理应用程序。然而&#xff0c;由于Heroku的服务器位于海外&#xff0c;直接使用Python的包管…...

SpringBoot + 虚拟线程,性能炸裂!

一、什么是虚拟线程 虚拟线程是Java19开始增加的一个特性&#xff0c;和Golang的携程类似&#xff0c;一个其它语言早就提供的、且如此实用且好用的功能&#xff0c;作为一个Java开发者&#xff0c;早就已经望眼欲穿了。 二、虚拟线程和普通线程的区别 “虚拟”线程&#xf…...

Java Character类

Character是char的包装类 转义序列 Character类的方法...

Python中的爬虫实战:猫眼电影爬虫

随着互联网技术的快速发展&#xff0c;网络上的信息量越来越庞大。猫眼电影作为国内领先的电影数据平台&#xff0c;为用户提供了全面的电影信息服务。本文将介绍如何利用python编写简单的猫眼电影爬虫&#xff0c;获取电影相关数据。 爬虫概述 爬虫&#xff0c;即网络爬虫&a…...

WAIC2024 | 华院计算邀您共赴2024年世界人工智能大会,见证未来科技革新

在智能时代的浪潮汹涌澎湃之际&#xff0c;算法已成为推动社会进步的核心力量。作为中国认知智能技术的领军企业&#xff0c;华院计算在人工智能的广阔天地中&#xff0c;不断探索、创新&#xff0c;致力于将算法的潜力发挥到极致。在过去的时日里&#xff0c;华院计算不断探索…...

数据库原理之数据库基本概念

目录 前言 基本概念 数据库完整性 前言 今天我们来看看数据库的基本概念&#xff0c;帮助大家对数据库有一点点最基本的了解 基本概念 4个基本概念 数据data&#xff1a;描述事物的符号&#xff0c;数据库中存储的基本对象。 数据库Database&#xff1a;长期存储在计算机…...

vue2项目的打包以及部署

打包 当我们写好vue2的项目后&#xff0c;可以通过npm build来对项目进行打包 npm build 打包完成后我们可以看到在当面目录下生成了dis目录,src下的文件都会被打包进这个目录里&#xff0c;当然打包后的文件我们不能直接在浏览器打开&#xff0c;需要进行部署 部署 1.新建一个…...

Java的全局异常处理代码

第一步&#xff1a;先写一个异常管理类: package com.example.firefighting.exceptions;import com.example.firefighting.utils.Result; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerA…...

Hi3861 OpenHarmony嵌入式应用入门--LiteOS semaphore作为锁

CMSIS 2.0 接口中的 Semaphore&#xff08;信号量&#xff09;是用于嵌入式系统中多线程或中断服务例程&#xff08;ISR&#xff09;之间同步和共享资源保护的重要机制。Semaphore 是一种用于控制对多个共享资源访问的同步机制。它可以被看作是一个计数器&#xff0c;用于跟踪可…...

注意!年龄越大,社交圈子越窄?其实这是老人的理性选择!数学家告诉你:何时该跳槽,何时该坚守!你必须知道的三个智慧:让你的人生更加精彩!

我们到底应该在什么情况下探索新事物&#xff0c;什么情况下专注于已有的东西呢&#xff1f;本质上来说&#xff0c;这个问题就是在询问&#xff0c;你究竟应该耗费精力去探索新的信息&#xff0c;还是专注从既有的信息中获取收获&#xff1f; 有人采访了临终的老人&#xff0c…...

[SwiftUI 开发] 嵌套的ObservedObject中的更改不会更新UI

1. 发生问题的demo 业务逻辑代码 class Address: ObservableObject {Published var street "123 Apple Street"Published var city "Cupertino" }class User: ObservableObject {Published var name "Tim Cook"Published var address Addr…...

全面了解机器学习

目录 一、基本认识 1. 介绍 2. 机器学习位置 二、机器学习的类型 1. 监督学习 2. 无监督学习 3. 强化学习 三、机器学习术语 1. 训练样本 2. 训练 3. 特征 4. 目标 5. 损失函数 四、机器学习流程 五、机器学习算法 1. 分类算法 2. 聚类算法 3. 关联分析 4. …...

作为图形渲染API,OpenGL和Direct3D的全方位对比。

当你在网页看到很多美轮美奂的图形效果&#xff0c;3D交互效果&#xff0c;你知道是如何实现的吗&#xff1f;当然是借助图形渲染API了&#xff0c;说起这个不就不得说两大阵营&#xff0c;OpenGL和Direct3D&#xff0c;贝格前端工场在本文对二者做个详细对比。 一、什么是图形…...