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

Word2vec、词向量是什么? |Gensim中word2vec模型的参数定义

前言:

        最近在忙毕设,要学习一些AI的技术。很多资料看来看去,感觉只是在大脑皮层表面略过了一下,遂还是决定采用老方法,写博客!!!对了,我也只是一个萌新,博客的内容仅代表我个人当前的理解,可能会有偏差。若有不对,感谢指正。

我学习过程用到的资料:

最简单的词向量word2vec模型原理通俗解读与代码实现实战 自然语言处理_哔哩哔哩_bilibili

【自然语言处理】Word2Vec 词向量模型详解 + Python代码实战_word2vec模型-CSDN博客

本课程详细讲解了word2vec的训练过程和方法, 不涉及数学公式, 简单易懂, 并且全程手写代码加强理解。_哔哩哔哩_bilibili


目录

一、词向量是什么?

1.1 词向量(Word Embedding)导入

1.2 用计算机描述词语注意点

1.3 词向量——计算机里描述一个词

1.4 词向量表示及其意义

二、如何训练词向量

2.1 怎么训练词向量/构建数据集?

2.2 不同模型对比 :

2.3 负采样

三、实战:调用Gensim训练WordVec模型

3.1 官方文档:

3.2 简单代码例子: 

3.3 模型重要参数讲解:


一、词向量是什么?

1.1 词向量(Word Embedding)导入

首先,Word2Vec就是 Word to vector,

单词->向量,

我们把这种向量叫做词向量。

那究竟是怎么用词向量来表示词语呢?

怎么描述一个人?

当我们尝试描述taylor swift:taylor swift、美国歌手、音乐家、作词人、金发碧眼、格莱美获奖者......我们发现,描述的信息越多,传达的意思越清楚,越能表达出我们要描述的对象。

那么当我们用向量描述词语时,肯定是,维度越多描述得越清楚。

就像用xyz坐标系描述一个点,肯定比xy准确。

1.2 用计算机描述词语注意点

当我们在计算机里描述一个词(语义为导向)的时候有什么需要注意的呢?

- 当组成词的顺序不同时,短语意思可能完全改变

自然语言处理 与  语言自然处理

虽然 ,“自然” “语言” “处理” 的 词频都是1,但是两个短语的意思完全不一样。

- 不同表示形式的词语,语义是一样

nlp 与 自然语言处理

这两个词表达的意思是完全一致,但是如果从词频、字母构成上来考虑,两个词南辕北辙。

两个词在向量表达上应该要完全一致,有没有算法能把这些问题考虑进去呢?

1.3 词向量——计算机里描述一个词

  • 人类可以直观理解汉字的语义和情感,但计算机无法直接“读懂”文字。
  • 为了让计算机处理文字,我们需要将汉字转化成它“能看懂”的形式:数字。
  • 就像描述一个人需要很多维度(身高、体重、年龄、性格等),描述一个词语也需要多个特征。
  • 因此,出现了词向量,一般是50-300维。描述的维度越多,表达的越准确。

 词向量的特点:

越相近的表达离的越近,越远的表达离得越远。假设在二维向量里表示篮球和足球,它们所处的位置应该是很相近的,因为它们都是球类运动。

正因为这一特性,可以通过以用不同方法(欧氏距离、曼哈顿距离、切比雪夫距离、余弦相似度等)来计算两个向量之间的相似度。  

通常,数据的维度越高,能提供的信息越高,从而计算的结果更可靠。

1.4 词向量表示及其意义

词向量长啥样:

queen = [0.14, 0.27, -0.09, 0.58, -0.30, 0.43, 0.31, -0.20, 0.10, 0.18, 
         -0.42, 0.39, 0.63, -0.17, 0.05, 0.21, -0.28, 0.52, 0.70, -0.07]

词向量的值有含义吗?

       词向量是一种用数值向量表示词的方法,其中向量的每个维度都是一个实数值。这些数字的含义是计算机通过模型学习出来的,目的是捕获单词之间的语义关系。词向量的维度中的数字并不直接代表具体的含义,而是通过在高维空间中表示单词之间的距离或方向来隐含地描述语义关系。

这些值 无法解释 只是计算机认识它

相当于一个编码 而已 我们不用考虑它的具体含义

只需要把它训练出来

至于如何评估 如何认识 交给计算机


二、如何训练词向量

2.1 怎么训练词向量/构建数据集?

我想要我的模型学习到词应该用什么样的向量表达最合适。

我们希望,我们的神经网络再输入 “在 词向量 ” 可以得到 “模型”

让我们的神经网络 知道我们想说什么,

这就是我们想构建的一个输入输出。

理想期望:

如图所示,在词向量模型中,输入是 Thou 和 shalt,模型的任务是预测它们的下一个词是什么。

最后一层连接了 SoftMax,Softmax 层将模型的输出(每个词的得分)转化为概率分布,这样就可以得到一个关于哪个词最有可能作为下一个词的预测。

 那一个词,是不能往神经网络里输入的,那我们要往神经网络里输入什么呢?

初始化操作:首先我们有一个词库大表,每个词都有其对应的初始词向量,这个初始值是随机的。

输入输出:输入时,每个词找到其对应的词向量。输出,所预测的词的向量。

训练迭代:在这个训练过程中,不光会更新整个神经网络模型的权重参数矩阵,还会更新输入;随着训练进行,整个词库大表也会更新。越进行更新,神经网络学的越好。

数据从哪里来呢?

我们的语言是可以跨文本的,

“今天天气晴朗”,

这句话无论是在新闻、小说、日记里......都是表示一个意思。

因此我们的训练文本不用局限于某一处,一切合乎我们说话逻辑的东西,都可以作为训练数据。

怎么构建数据?

数据集构建比较容易理解,这里的滑动窗口,参数可以自己指定。不断扫描出来数据集。

2.2 不同模型对比 :

CBOW:

这个模型的训练集构建:用上下文作为输入,中间词作为输出。

Skipgram:

数据集构建:通过当前的一个词去预测上下文。

对比:

2.3 负采样

当我们的语料库很庞大时,假设有5w个词语,在最后一层softmax时,就是一个五万分类任务,是非常耗时耗力的,有没有什么改进方法呢?

给出 “not”,预测出 “thou” 在其之后

转化为:

判断 “thou” 这个词 是在“not”后面的可能性是有多大的?

那么就可以转化为01任务,1的话:是,0的话:不是。

问题来了,在我们构建训练集时,

训练集构建出来的所有标签都是1,训练出来的结果不会好。

对于2分类问题,有了1,那还缺0, 

因此,改进方案:加入一些负样本(负采样模型),正样本是训练集当中的,负样本是手动构造出来的,是一些在训练集中没有前后关系的数据词。

在 常用包gensim 中,Word2Vec 模型的negative(负采样的数量)默认为5。


三、实战:调用Gensim训练WordVec模型

3.1 官方文档:

models.word2vec – Word2vec embeddings — gensim

https://code.google.com/archive/p/word2vec/

安装gensim:

pip install gensim

3.2 简单代码例子: 

from gensim.models import Word2Vec# 示例语料库:一个简单的句子列表,每个句子是一个词的列表
sentences = [['我', '爱', '吃', '汉堡'],['狐狸', '快速', '跳跃', '在', '懒狗', '上面'],['你好', '世界'],['我', '喜欢', '机器', '学习'],['gensim', '在', '词向量', '处理中', '很棒'],['自然', '语言', '处理', '很', '有趣'],['人人', '都', '喜欢', '吃', '螺蛳粉'],
]# 训练 Word2Vec 模型
# 这里我们使用默认参数,设置 min_count=1 来保留所有词汇,vector_size=100表示词向量的维度
model = Word2Vec(sentences, vector_size=100, window=5, min_count=1, workers=4)# 获取 '螺蛳粉' 词的词向量
vector_luosifen = model.wv['螺蛳粉']
print("Word vector for '螺蛳粉':", vector_luosifen)# 使用模型找到与 'fox' 最相似的词汇
similar_words = model.wv.most_similar('螺蛳粉', topn=3)
print("Most similar words to 'fox':", similar_words)# 保存模型
model.save("word2vec.model")# 加载模型
loaded_model = Word2Vec.load("word2vec.model")# 获取已加载模型中 'fox' 的词向量
vector_fox_loaded = loaded_model.wv['螺蛳粉']
print("Loaded model's vector for '螺蛳粉':", vector_fox_loaded)

这里只是一个简单的使用例子,真实训练中,语料库要大很多,训练出来的模型才有。

3.3 模型重要参数讲解:

1. sentences

  • 类型: iterable of iterables (例如:列表,列表的列表)
  • 说明: 输入的语料库,是一个包含句子的可迭代对象。每个句子是一个词的列表。
  • 用途: 这是模型训练的核心输入数据,必须传入。如果不传入,则必须通过 corpus_file 或其他方式提供数据。

2. corpus_file

  • 类型: str(文件路径)
  • 说明: 语料库文件的路径,文件应该以 LineSentence 格式存在(每行一个句子,句子中的词之间用空格分开)。可以用来代替 sentences 提高效率。
  • 用途: 当数据集较大时,可以将语料数据保存在文件中,通过指定这个参数来加载数据而不需要将其全部加载到内存中。

3. vector_size

  • 类型: int(默认值为 100)
  • 说明: 词向量的维度,即每个词会被表示成一个 vector_size 维的向量。
  • 用途: 控制模型的复杂度和计算效率,维度越高,模型的表达能力更强,但计算和内存开销也会增加。

4. window

  • 类型: int(默认值为 5)
  • 说明: 当前词与预测词之间的最大距离(上下文窗口大小)。
  • 用途: 定义了模型在训练时考虑的上下文范围。例如,如果 window=5,那么每个词的上下文将包括前后各 5 个词。

5. min_count

  • 类型: int(默认值为 5)
  • 说明: 忽略所有频率低于此值的词汇。
  • 用途: 这个参数用于清理语料中的稀有词汇,减少训练时不重要或噪声数据对模型的影响。

6. sg (Skip-gram)

  • 类型: {0, 1}(默认值为 0)
  • 说明: 训练算法的选择。sg=1 使用 Skip-gram 模型,sg=0 使用 CBOW 模型。
  • 用途:
    • Skip-gram(sg=1)适用于稀有词汇,模型会根据上下文预测中心词。
    • CBOW(sg=0)适用于频繁词汇,模型会根据上下文预测目标词。

7. hs (Hierarchical Softmax)

  • 类型: {0, 1}(默认值为 0)
  • 说明: 是否使用层次化 Softmax 方法来训练词向量。
  • 用途:
    • hs=1 表示使用层次化 Softmax。
    • hs=0 不使用层次化 Softmax,改为使用负采样方法(由 negative 参数控制)。

8. negative

  • 类型: int(默认值为 5)
  • 说明: 负采样的个数。如果大于 0,将启用负采样,并且会为每个正样本采样 negative 个负样本。
  • 用途: 负采样减少了每次迭代时计算的词汇量,从而提高了训练速度。通常,负样本数设为 5 到 20 之间。

9. alpha

  • 类型: float(默认值为 0.025)
  • 说明: 初始学习率。
  • 用途: 控制学习率的大小。在训练开始时,模型的学习率较高,但随着训练的进行,它会逐渐衰减。

10. min_alpha

  • 类型: float(默认值为 0.0001)
  • 说明: 学习率衰减到 min_alpha 时停止衰减。
  • 用途: 用于控制学习率的衰减速率,防止学习率过低而导致模型停止学习。

11. epochs

  • 类型: int(默认值为 5)
  • 说明: 训练的总迭代次数。也就是语料库被训练的次数。
  • 用途: 增加 epochs 值可以让模型进行更多的训练,从而提升训练效果,但同时也会增加计算开销。

12. workers

  • 类型: int(默认值为 3)
  • 说明: 训练时使用的线程数。
  • 用途: 设置为更高的值(如 4 或 8)可以加速训练,尤其是在多核 CPU 上。

13. cbow_mean

  • 类型: {0, 1}(默认值为 1)
  • 说明: 只有在使用 CBOW 模型时(sg=0)有效。它决定了如何聚合上下文词向量。
    • cbow_mean=1:使用上下文词向量的平均值。
    • cbow_mean=0:使用上下文词向量的和。
  • 用途: 这个参数影响训练的速度和模型的效果。

14. sample

  • 类型: float(默认值为 1e-3)
  • 说明: 控制高频词的下采样阈值。频率大于此值的词汇会被随机下采样。
  • 用途: 通过对高频词进行下采样来减少训练时的计算负担,避免模型过于关注高频词而忽略了低频词。

15. max_vocab_size

  • 类型: int(默认值为 None
  • 说明: 控制词汇表的大小。当词汇量大于该值时,将对低频词进行剪枝。
  • 用途: 在处理极其庞大的语料库时,使用这个参数可以节省内存并加速训练过程。

相关文章:

Word2vec、词向量是什么? |Gensim中word2vec模型的参数定义

前言: 最近在忙毕设,要学习一些AI的技术。很多资料看来看去,感觉只是在大脑皮层表面略过了一下,遂还是决定采用老方法,写博客!!!对了,我也只是一个萌新,博客的…...

<工具 Claude Desktop> 配置 MCP server 连接本地 SQLite, 本机文件夹(目录) 网络驱动器 Windows 11 系统

也是在学习中... 起因: 抖音博客 艾克AI分享 他的视频 #143《Claude开源MCP彻底打破AI的信息孤岛》 提到: Claude开源的MCP太强了,视频后面是快速演示,反正看了好几遍也没弄明白。菜单都不一样,感觉用的不是同一家 Claude. 探…...

Android10 设备死机的问题分析和解决

最近客户反馈一个问题,设备偶现死机。最后解决,在此记录。 目录 一死机的现象 二死机的类型 三 死机问题分析 1 死机现象的梳理 2 死机日志 1)日志分析一 2 日志分析二(正确方案) 一死机的现象 设备死机&#x…...

Linux操作系统性能优化

Linux操作系统性能优化 1. TCP连接出现大量ESTABLISHED连接解决方法 1. TCP连接出现大量ESTABLISHED连接解决方法 TCP协议规定,对于已经建立的连接,网络双方要进行四次握手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于…...

【图像处理】用Python和OpenCV实现简单的图像增强与特征提取

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 图像处理是计算机视觉领域的重要基础,而图像增强和特征提取是其中的关键技术。本文将详细探讨如何使用 Python 和 OpenCV 实现图像增强与特征提取。通过具体示例,我们将介绍滤波、直方图均衡化、边缘检测…...

【技术学习网站】

小黄鸭:面试鸭 - 程序员求职面试刷题神器,高频编程题目免费刷 编程导航:编程导航 - 程序员一站式编程学习交流社区,做您编程学习路上的导航员 博客园:博客园 - 开发者的网上家园 前端开发:HTTP 缓存 - H…...

程序员需要具备哪些知识?

程序员需要掌握的知识广泛而深厚,这主要取决于具体从事的领域和技术方向。不过,有些核心知识是共通的,就像建房子的地基一样,下面来讲讲这些关键领域: 1. 编程语言: 无论你是搞前端、后端、移动开发还是嵌…...

架构10-可观测性

零、文章目录 架构10-可观测性 1、可观测性 (1)可观测性的背景 **历史沿革:**可观测性最初由匈牙利数学家鲁道夫卡尔曼提出,用于线性动态控制系统。后来,该概念被引入到计算机科学中。**现代意义:**在分…...

Active RIS-Aided ISAC Systems: Beamforming Design and Performance Analysis

文章目录 II. SYSTEM MODELC. Active RIS Model III. PROBLEM FORMULATIONA. Radar Performance MetricC. Optimize Φ V. PERFORMANCE ANALYSIS OF THE RADAR SINR IN ACTIVE RIS-AIDED SENSING SYSTEMSA. Simplified System SettingB. Power Scaling Law AnalysisC. Active R…...

oracle 11g中如何快速设置表分区的自动增加

在很多业务系统中,一些大表一般通过分区表的形式来实现数据的分离管理,进而加快数据查询的速度。分区表运维管理的时候,由于人为操作容易忘记添加分区,导致业务数据写入报错。所以我们一般通过配置脚本或者利用oracle内置功能实现…...

HCIA-openGauss_1_4基本功能介绍

openGauss支持标准SQL SQL是用于访问和处理数据库的标准计算机语言,SQL标准的定义分成核心特性以及可选特性,绝大部分的数据库都没有100%支撑SQL标准。openGuass支持SQL2003标准语法,支持主备部署的高性能可用关系型数据库。openGauss数据库…...

el-menu导航三级数据结构及数据展示

1:数据展示 <el-col><el-menu:default-active"$route.path"class"el-menu-vertical-demo"routerunique-openedbackground-color"#545c64"text-color"#fff"active-text-color"#ffd04b"><div v-for"item …...

全面解析 Transformer:改变深度学习格局的神经网络架构

目录 一、什么是 Transformer&#xff1f; 二、Transformer 的结构解析 1. 编码器&#xff08;Encoder&#xff09; 2. 解码器&#xff08;Decoder&#xff09; 3. Transformer 模型结构图 三、核心技术&#xff1a;注意力机制与多头注意力 1. 注意力机制 2. 多头注意力&…...

R语言机器学习论文(二):数据准备

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载导入数据一、数据描述二、数据预处理(一)修改元素名称(二)剔除无关变量(三)缺失值检查(四)重复值检查(五)异常值检查三、描述性统计(一)连续变量数据情…...

Linux之socket编程(一)

前言 网络通信的目的 我们已经大致了解了网络通信的过程: 如果主机A想发送数据给主机B, 就需要不断地对本层的协议数据单元(PDU)封装, 然后经过交换设备的转发发送给目的主机, 最终解封装获取数据. 那么网络传输的意义只是将数据由一台主机发送到另一台主机吗&#xff1f; …...

STM32之SDIO通讯接口和SD卡(九)

STM32F407 系列文章 - SDIO-To-SD Card&#xff08;九&#xff09; 目录 前言 一、SDIO接口 二、SD卡 三、实现程序 1.SD卡结构体参数说明 2.头文件定义 3.函数sd_init() 4.函数HAL_SD_MspInit() 5.函数get_sd_card_info() 6.函数get_sd_card_state() 7.函数sd_read…...

【Rust在WASM中实现pdf文件的生成】

Rust在WASM中实现pdf文件的生成 前言概念和依赖问题描述分步实现pdf转Blob生成URL两种方式利用localstorage传递参数处理图片Vec<u8>到pdf格式的Vec<u8>使用rust创建iframe显示pdf的Blob最后 前言 实现了一个通用的前端jpg转pdf的wasm,因为动态响应框架无法直接打…...

蓝桥杯真题——砍竹子(C语言)

问题描述 这天, 小明在砍竹子, 他面前有 n 棵竹子排成一排, 一开始第 ii 棵竹子的 高度为 ​.他觉得一棵一棵砍太慢了, 决定使用魔法来砍竹子。魔法可以对连续的一 段相同高度的竹子使用, 假设这一段竹子的高度为 H, 那么用一次魔法可以,把这一段竹子的高度都变为, 其中 [x]表…...

技术栈4:Docker入门 Linux入门指令

目录 1.Linux系统目录结构 2.处理目录的常用命令 3.Docker概述 4.Docker历史 5.Docker基本组成 6.Docker底层原理 7.Docker修改镜像源 8.Docker基本命令 在学习docker之前我们先要熟悉Linux系统&#xff0c;推荐阅读&#xff1a;Linux笔记&#xff08;狂神说&#xff0…...

项目开发之Docker

文章目录 基础核心概念常用命令 实操1 windows11 docker mysql2 docker部署 xxljob3 container间调用异常问题4 部署mysql数据库5 docker desktop unexpected wsl error 基础 核心概念 其中的三个核心概念&#xff1a;dockerfile image/镜像 container/容器 image&#xff1a…...

状态模式的理解和实践

在软件开发中&#xff0c;我们经常遇到需要根据对象的不同状态执行不同行为的情况。如果直接将这些状态判断和行为逻辑写在同一个类中&#xff0c;会导致该类变得臃肿且难以维护。为了解决这个问题&#xff0c;状态模式&#xff08;State Pattern&#xff09;应运而生。状态模式…...

正点原子imx6ull配置MQTT客户端上传数据到Ubuntu MQTT服务器

目录 使用QT自带的MQTT模块部署客户端创建一个class专门用于MQTT客户端通讯使用QT在ui界面上生成按钮在Windows上订阅相应主题测试在imx6ull上订阅Windows发布的消息 在上一篇中介绍了在Ubuntu22.04的Docker中部署MQTT服务器&#xff0c;然后在window上测试订阅和发布&#xff…...

【联表查询】.NET开源 ORM 框架 SqlSugar 系列

.NET开源 ORM 框架 SqlSugar 系列 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列【Code First】.NET开源 ORM 框架 SqlSugar 系列【数据事务…...

CAN接口设计

CAN总线的拓扑结构 CAN总线的拓扑结构有点像485总线,都是差分的传输方式,总线上都可以支持多个设备,端接匹配电阻都是120Ω。 485和CAN通信方面最大的区别:网络特性。485是一主多从的通讯方式,CAN是多主通讯,多个设备都可以做主机。那多个设备都相要控制总线呢?…...

基于遗传优化SVM的电机参数预测matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 数据收集与预处理 4.2模型构建与训练 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 输入&#xff1a;电机结构参数x1 x2 x3 x4 x5(分别是铁心高度 铁心厚度 绕组…...

C++设计模式之代理模式

动机 在面向对象系统中&#xff0c;有些对象由于某种原因&#xff08;比如对象创建的开销很大&#xff0c;或者某些操作需要安全控制&#xff0c;或者需要进程外的访问等&#xff09;&#xff0c;直接访问会给使用者、或者系统结构带来很多麻烦。 如何在不失去透明操作对象的…...

多线程JUC 第2季 控制线程的执行顺序,依次,交替,同时

一 场景1 交替执行 1.1 方案1使用completablefuture public class TestA {public static void main(String[] args) {for(int k0;k<10;k) {CompletableFuture<Void> t1 CompletableFuture.runAsync(() -> {System.out.println("A: >" Thread.curr…...

数据分析(一): 掌握STDF 掌握金钥匙-码农切入半导体的捷径

中国的半导体行业必然崛起&#xff01;看清这个大势&#xff0c;就会有很多机会。 今天&#xff0c;我们一起来了解一下半导体行业的一朵金花&#xff1a;STDF。 实际上这只是一种文件格式&#xff0c;但是当你熟练掌握解析这种文件的时候&#xff0c;你就已经打开在这个基础…...

NPM镜像详解

NPM镜像详解 什么是NPM镜像 NPM镜像&#xff08;NPM Mirror&#xff09;是一个完整的NPM包的副本服务器。由于npm的官方registry服务器部署在国外&#xff0c;国内访问可能会比较慢&#xff0c;因此使用镜像可以加快包的下载速度。 常用的NPM镜像源 npm官方镜像 https://reg…...

【springboot】 多数据源实现

文章目录 1. 引言&#xff1a;多数据源的必要性和应用场景**为什么需要多数据源&#xff1f;****应用场景** 2. Spring Boot中的数据源配置2.1 默认数据源配置简介2.2 如何在Spring Boot中配置多个数据源 3. 整合MyBatis与多数据源**配置MyBatis使用多数据源****Mapper接口的数…...

Zephyr 入门-设备树与设备驱动模型

学习链接&#xff1a;https://www.bilibili.com/video/BV1L94y1F7qS/?spm_id_from333.337.search-card.all.click&vd_source031c58084cf824f3b16987292f60ed3c 讲解清晰&#xff0c;逻辑清楚。 1. 设备树概述&#xff08;语法&#xff0c;如何配置硬件&#xff0c;c代码如…...

css实现圆周运动效果

在CSS中可以通过 keyframes 动画 和 transform 属性实现元素的圆周运动。以下是一个示例代码&#xff1a; 示例代码 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content…...

乐鑫科技嵌入式面试题及参考答案(3万字长文)

嵌入式开发为什么用 C 语言,而不用 C++ 语言? 在嵌入式开发中,C 语言被广泛使用而 C++ 相对少用有以下一些原因。 首先,C 语言具有更高的效率。嵌入式系统通常资源受限,包括处理器速度、内存容量等。C 语言的代码生成效率高,能够生成紧凑的机器码,占用较少的内存空间和处…...

这就是IoC容器

IoC(Inversion of Control,控制反转),也叫依赖注入(Dependency Injection),是一种决定容器如何装配组件的模式。使用 Spring 来实现 IoC,意味着将设计好的对象交给 Spring 容器控制,而不是直接在对象内部控制。控制反转不能很好地描述这个模式,依赖注入却能更好地描述…...

KVM OVS双网卡配置trunk模式

一、宿主机配置 1. 确保必要的软件包已安装 确保宿主机上已安装 Open vSwitch 和 VLAN 工具。如果尚未安装&#xff0c;可以使用以下命令进行安装&#xff1a; yum install openvswitch-switch vlan 2. 配置现有 OVS 桥接 br0 假设已有一个 OVS 桥接接口 br0&#xff0c;并…...

氢能源车和电动车,谁将成为未来?

很多人都觉得氢能源是未来的终极绿色能源&#xff0c;因为氢气燃烧后只产生水&#xff0c;听起来是不是很环保&#xff1f;但这只是从化学能的角度来看。实际上&#xff0c;氢能源汽车还有很多问题需要解决。氢气的制作成本高得吓人 目前&#xff0c;制作氢气最理想的方法是电…...

CTF-PWN: WEB_and_PWN [第一届“吾杯”网络安全技能大赛 Calculator] 赛后学习(不会)

附件 calculate.html <!DOCTYPE html> <html lang"en"> <head><!-- 设置字符编码为 UTF-8&#xff0c;支持多语言字符集 --><meta charset"UTF-8"><!-- 设置响应式视图&#xff0c;确保页面在不同设备上自适应显示 --&…...

解决Jupyter Notebook无法转化为Pdf的问题(基于Typora非常实用)

笔者在完成各项作业和做笔记时&#xff0c;经常用到jupyter notebook&#xff1b;其因为可以同时运行python并提供格式化的数字公式的输入方式&#xff0c;得到了广大用户的喜爱。 当我们想要将.ipynb文件导出为pdf时&#xff0c;有两种常用方法。 1.Ctrlp 2.通过File ->…...

矩阵转置        ‌‍‎‏

矩阵转置 C语言代码C 语言代码Java语言代码Python语言代码 &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; 输入一个n行m列的矩阵A&#xff0c;输出它的转置 A T A^T AT。 输入 第一行包含两个整数n和m&#xff0c;表示矩阵A的行数和列数。…...

【阅读笔记】Three ways ChatGPT helps me in my academic writing

Three ways ChatGPT helps me in my academic writing 论文地址 关于GPT进行润色的文章&#xff0c;摘取了里面的提示词做个记录。 1. Polishing academic writing&#xff08;学术润色&#xff09; 模板&#xff1a;I’m writing a paper on [topic] for a leading [discip…...

python学习笔记15 python中的类

上一篇我们介绍了python中的库 &#xff0c;学习了一些常见的内置库。详细内容可点击–>python学习笔记14 python中的库&#xff0c;常见的内置库&#xff08;random、hashlib、json、时间、os&#xff09; 这一篇我们来看一下python中的类 创建一个类 class 类的名称():de…...

3D数字化革新,探索博物馆的正确打开新方式!

3D数字化的发展&#xff0c;让博物馆也焕发新机&#xff0c;比如江苏省的“云上博物”&#xff0c;汇聚江苏全省博物馆展陈资源&#xff0c;采取线上展示和线下体验两种方式进行呈现的数字展览项目。在线上&#xff0c;用户可以通过H5或小程序进入“云上博物”数字展览空间&…...

金融数学在股市交易中的具体应用

### 1. 风险管理 - **VaR&#xff08;在险价值&#xff09;**: VaR是衡量投资组合潜在损失的指标。例如&#xff0c;如果一个投资组合的VaR为100万元&#xff0c;置信水平为95%&#xff0c;这意味着在未来的一个交易日内&#xff0c;有95%的可能性该投资组合的损失不会超过100…...

Springboot注解

什么是Spring Boot 注解 Spring Boot 注解是 Spring Boot 框架中的核心部分&#xff0c;它们用于简化配置和执行特定的编程任务。这些注解通常分为几个类别&#xff0c;包括用于 MVC 层的类注解、依赖注入注解、Web 开发常用注解、Spring Boot 常用注解、面向切面编程&#xf…...

CSS3 布局样式及其应用

深入探讨 CSS3 布局样式及其应用 引言 在现代网页设计中&#xff0c;CSS&#xff08;层叠样式表&#xff09;不仅是设计视觉样式的工具&#xff0c;也是布局的核心技术。CSS3引入了新的布局模型&#xff0c;其中Flexbox与Grid布局在满足复杂布局需求方面表现尤为出色。本文将…...

工业机器视觉-基于深度学习的水表表盘读数识别

字轮数字识别、指针读数识别&#xff08;角度换算&#xff09;、根据指针角度进行读数修正、根据最高位指针(x0.1)读数对字轮数字进行修正、得到最终读数。 基于深度学习的目标检测技术和OpenCV图像处理技术&#xff0c;可识别所有类型的表盘机械读数。...

kafka admin client 如何计算kafka发送速度

文章目录 方法 1&#xff1a;使用 AdminClient 获取消息数量示例代码&#xff1a;计算 Kafka 生产速度代码解释&#xff1a;解释&#xff1a;结果示例&#xff1a;方法 2&#xff1a;使用 Kafka JMX 监控JMX 指标&#xff1a; 总结&#xff1a; 要使用 Kafka Admin Client 来计…...

Ubuntu20.04 配置虚拟显示器和切回物理显示器

1、安装软件&#xff0c;用中软安装虚拟显示器软件 sudo apt-get install xserver-xorg-core-hwe-18.04 sudo apt-get install xserver-xorg-video-dummy2、添加配置文件 进入 /usr/share/X11/xorg.conf.d/ 文件夹下创建xorg.conf文件 # 创建xorg.conf文件 touch xorg.conf …...

【解决pycharm下site-packages文件标记为红色的问题】

怎么解决pycharm下site-packages文件标记为红色的问题 这是一个pycharm无法识别本地site-packages问题答案解释器设置路径如下&#xff1a; 这是一个pycharm无法识别本地site-packages问题 最近正在搭建一个python3requestsunittestHTMLTestRunner接口测试框架&#xff0c;发现…...

力扣-图论-2【算法学习day.52】

前言 ###我做这类文章一个重要的目的还是给正在学习的大家提供方向和记录学习过程&#xff08;例如想要掌握基础用法&#xff0c;该刷哪些题&#xff1f;&#xff09;我的解析也不会做的非常详细&#xff0c;只会提供思路和一些关键点&#xff0c;力扣上的大佬们的题解质量是非…...