【自然语言处理(NLP)】介绍、发展史
文章目录
- 介绍
- 发展史
- 1. 规则驱动时期(20世纪50年代-80年代)
- 技术特点
- 标志性成果
- 2. 统计方法兴起(1990年代-2000年代)
- 技术特点
- 标志性成果
- 3. 神经网络复兴(2010年代初至今)
- 技术特点
- 标志性成果
- 4. 集成与应用深化(现阶段及未来)
- 技术特点
- 标志性趋势
- ONE HOT
- TF-IDF
- N-gram
- n-gram 的定义
- n-gram 的应用
- n-gram 的构建过程
- 优点与局限
- 优点
- 局限
- 分布式
- 共现矩阵
- 共现矩阵的基本概念
- 构建共现矩阵
- 应用场景
- 挑战与改进
- NNLM
- NNLM的基本概念
- 历史发展
- 应用
- 挑战
- word2vec
- Word2Vec 的工作原理
- 训练过程
- 特点和优势
- 应用实例
- 限制
个人主页:道友老李
欢迎加入社区:道友老李的学习社区
介绍
自然语言处理(Natural Language Processing,NLP)是计算机科学领域与人工智能领域中的一个重要方向。它研究的是人类(自然)语言与计算机之间的交互。NLP的目标是让计算机能够理解、解析、生成人类语言,并且能够以有意义的方式回应和操作这些信息。
NLP的任务可以分为多个层次,包括但不限于:
- 词法分析:将文本分解成单词或标记(token),并识别它们的词性(如名词、动词等)。
- 句法分析:分析句子结构,理解句子中词语的关系,比如主语、谓语、宾语等。
- 语义分析:试图理解句子的实际含义,超越字面意义,捕捉隐含的信息。
- 语用分析:考虑上下文和对话背景,理解话语在特定情境下的使用目的。
- 情感分析:检测文本中表达的情感倾向,例如正面、负面或中立。
- 机器翻译:将一种自然语言转换为另一种自然语言。
- 问答系统:构建可以回答用户问题的系统。
- 文本摘要:从大量文本中提取关键信息,生成简短的摘要。
- 命名实体识别(NER):识别文本中提到的特定实体,如人名、地名、组织名等。
- 语音识别:将人类的语音转换为计算机可读的文字格式。
NLP技术的发展依赖于算法的进步、计算能力的提升以及大规模标注数据集的可用性。近年来,深度学习方法,特别是基于神经网络的语言模型,如BERT、GPT系列等,在许多NLP任务上取得了显著的成功。随着技术的进步,NLP正在被应用到越来越多的领域,包括客户服务、智能搜索、内容推荐、医疗健康等。
发展史
自然语言处理(NLP)的发展史可以被分为几个关键阶段,每个阶段都有其特征和标志性成果。以下是NLP发展的一个简要历史概览:
自然语言处理(NLP)的发展史可以分为几个关键时期,每个时期都有其标志性技术和方法的突破。以下是按照时间顺序概述的 NLP 发展历程:
1. 规则驱动时期(20世纪50年代-80年代)
技术特点
- 符号主义:早期的 NLP 系统主要依赖于手工编写的规则和语法来解析文本。
- 专家系统:如 ELIZA(1966年),一个简单的聊天机器人,通过模式匹配和模板替换与用户进行对话。
- 基于语法的分析:例如 Chomsky 的生成语法理论,试图用形式化的规则描述人类语言。
标志性成果
- Shrdlu(1970年):一个能够理解自然语言指令并与虚拟世界互动的程序。
- LISP 和 PROLOG:这些编程语言为早期的 AI 和 NLP 研究提供了工具。
2. 统计方法兴起(1990年代-2000年代)
技术特点
- 数据驱动:开始转向利用统计模型从大量文本数据中学习规律。
- 机器学习算法:引入了朴素贝叶斯分类器、最大熵模型、支持向量机(SVM)、条件随机场(CRF)等。
- n-gram 模型:用于语言建模,预测序列中下一个词的概率。
标志性成果
- 隐马尔可夫模型 (HMM):广泛应用于语音识别和词性标注。
- IBM Model:一系列翻译模型,推动了统计机器翻译的进步。
- WordNet:一个英语词汇数据库,促进了语义关系的研究。
3. 神经网络复兴(2010年代初至今)
技术特点
- 深度学习:循环神经网络(RNN)、长短期记忆网络(LSTM)、门控循环单元(GRU)等架构成为主流。
- 词嵌入:Word2Vec(2013年)、GloVe(2014年)等技术将单词映射到连续向量空间,捕捉语义信息。
- 注意力机制:允许模型聚焦于输入的不同部分,提高了性能。
标志性成果
- seq2seq 模型:由编码器-解码器结构组成,成功应用于机器翻译。
- BERT(Bidirectional Encoder Representations from Transformers, 2018年):预训练的语言表示模型,显著提升了多项 NLP 任务的表现。
- GPT 系列:大规模无监督预训练模型,在多个下游任务上展示了强大的泛化能力。
4. 集成与应用深化(现阶段及未来)
技术特点
- 多模态融合:结合视觉、音频等多种感知模式,实现更复杂的人机交互。
- 强化学习:探索在对话系统中的应用,以优化长期奖励为目标。
- 伦理与透明度:关注模型的公平性、隐私保护以及解释性问题。
标志性趋势
- 大规模预训练模型:如 T5、ELECTRA 等,进一步增强了模型的能力。
- 微调与迁移学习:使得预训练模型可以快速适应特定领域或任务。
- 持续学习:研究如何让模型在不遗忘旧知识的情况下不断学习新知识。
NLP 的发展历程反映了从基于规则的方法逐渐过渡到数据驱动、特别是深度学习主导的方法。随着计算资源的增长和技术进步,NLP 正在变得越来越强大,并且正在越来越多地融入我们的日常生活之中。
ONE HOT
- 优点:开创了文本处理
- 缺点
- 对“也”这种高频但无意义的词缺乏处理
- 纯统计,无前后文关系
TF-IDF
- 优点:解决了高频但无意义的词的处理
- 缺点:顺序带来的含义问题
N-gram
n-gram 是一种在自然语言处理(NLP)、概率论和统计学中用于处理文本或语音序列的简单而有效的方法。它基于这样一个假设:一个词(或字符)出现的概率只依赖于它前面的 (n-1) 个词(或字符)。通过这种方式,n-gram 模型可以用来预测下一个可能出现的词,或者计算给定序列的概率。
n-gram 的定义
- Unigram (1-gram):单个词的频率分布,不考虑上下文。
- Bigram (2-gram):两个连续词的组合,考虑前一个词的影响。
- Trigram (3-gram):三个连续词的组合,考虑前两个词的影响。
- 更高阶的 n-gram:可以扩展到更多的连续词,如四元组、五元组等。
例如,在句子 “I love natural language processing” 中:
- Unigram 可能是 “I”, “love”, “natural”, “language”, “processing”.
- Bigram 包括 “I love”, “love natural”, “natural language”, “language processing”.
- Trigram 则有 “I love natural”, “love natural language”, “natural language processing”.
n-gram 的应用
n-gram 模型广泛应用于多种 NLP 和信息检索任务中,包括但不限于:
- 语言模型:用于估计一个词序列的概率,这在自动语音识别(ASR)、机器翻译和文本生成等领域非常重要。
- 拼写纠正:根据上下文来选择最可能的正确单词。
- 语法检查:识别不符合常规模式的词序列。
- 信息检索:提高搜索引擎的相关性排序。
- 文档分类:帮助确定文档的主题或类别。
- 机器翻译:辅助生成更流畅的目标语言句子。
n-gram 的构建过程
- 语料库准备:收集并清理大量文本数据作为训练集。
- 分词:将文本分割成单独的词或字符。
- 统计频率:计算每个 n-gram 在语料库中出现的次数。
- 平滑技术:为了处理未见过的 n-gram 或减少稀疏问题,可以采用诸如加法平滑(Laplace smoothing)、Kneser-Ney 平滑等方法。
- 概率估计:使用最大似然估计或其他方法来计算每个 n-gram 的条件概率。
优点与局限
优点
- 简单直观:易于理解和实现。
- 高效快速:适合在线处理和实时应用。
- 无需复杂特征工程:直接从文本中提取特征,减少了预处理的工作量。
局限
- 上下文窗口有限:只能捕捉局部依赖关系,难以处理长距离依赖。
- 数据稀疏问题:对于低频 n-gram,可能会遇到零概率的问题。
- 维度灾难:随着 n 的增加,可能需要极大量的数据来可靠地估计高阶 n-gram 的概率。
尽管存在这些局限,n-gram 模型仍然是许多 NLP 应用程序的基础组成部分,并且在某些场景下表现得非常出色。此外,它们也经常与其他更复杂的模型结合使用,以提升整体性能。
- 优点
- 解决了高频但无意义的词的处理
- 解决了顺序带来的含义问题
- 缺点:词表爆炸,参数爆炸
分布式
- 优点:存储量小
- 缺点:规定格式,不现实
共现矩阵
共现矩阵(Co-occurrence Matrix)是自然语言处理和信息检索领域中用于表示词汇项之间共现关系的一种统计工具。它记录了文档集合中词汇项在一定上下文窗口内共同出现的频率。这种矩阵可以用来捕捉词汇之间的语义关联,对于诸如词向量学习、主题建模、推荐系统等任务非常有用。
共现矩阵的基本概念
在一个简单的二元共现矩阵中,每一行和每一列代表一个不同的词汇项,而矩阵中的每个元素则表示对应两个词汇项在同一上下文中同时出现的次数。例如,在给定的一组文本中,“猫”和“狗”这两个词如果经常出现在同一句话或同一个段落里,那么它们对应的矩阵元素就会有一个较高的值。
构建共现矩阵
-
定义上下文:首先需要确定如何定义词汇项之间的“共现”。最常见的是使用固定大小的滑动窗口,比如以句子为单位或者设定一个特定长度的单词序列作为上下文范围。
-
初始化矩阵:创建一个空矩阵,其行列分别对应于你想要分析的所有词汇项。如果词汇表中有V个不同词汇,则会得到一个VxV的矩阵。
-
填充矩阵:遍历整个文档集,每当一对词汇项在预定义的上下文中一起出现时,就增加该对词汇项在矩阵中相应位置的计数。
-
归一化(可选):根据具体应用需求,可能需要对矩阵进行归一化处理,例如将每个元素除以总词汇数或文档总数,以便比较不同规模的数据集。
应用场景
-
词向量学习:如Word2Vec模型利用共现信息来训练词嵌入,通过预测一个词的上下文词或反之,从而捕捉词汇间的语义相似性。
-
主题建模:共现矩阵可以帮助识别出经常一起出现的词汇群组,这些群组往往反映了潜在的主题或话题。
-
推荐系统:在商品或内容推荐中,共现矩阵可以用来发现用户兴趣点之间的关联,进而提供个性化推荐。
-
语义角色标注:在更复杂的NLP任务中,如语义角色标注,共现信息有助于理解句子中不同成分之间的关系。
挑战与改进
尽管共现矩阵是一个强大的工具,但它也有一些局限性,比如稀疏性和高维度问题。随着数据量的增长,矩阵可能会变得非常庞大且大部分元素为零。为此,研究者们提出了各种优化策略,包括降维技术(如奇异值分解SVD)、负采样、以及使用更高效的存储结构等方法来应对这些问题。此外,一些现代的方法,如基于神经网络的语言模型,已经能够直接从原始文本中学习到更加丰富的词汇表征,而无需显式地构建共现矩阵。
- 优点:包含语义信息
- 缺点:
- 向量维数随词典大小线性增长,存储困难
- 数据稀疏
- 模型欠稳定(共现矩阵size变化,深度学习困难)
SVD降维
NNLM
神经网络语言模型(Neural Network Language Model,NNLM)是自然语言处理领域中一种用于预测序列中下一个词的概率分布的模型。与传统的基于n-gram的语言模型不同,NNLM利用了人工神经网络的强大表达能力来捕捉更复杂的语言结构和上下文依赖关系。
NNLM的基本概念
一个典型的NNLM由以下几个部分组成:
- 输入层:通常对应于句子或文本片段中的单词。这些单词被转换成独热编码(one-hot encoding)向量表示,每个单词在词汇表中都有唯一的索引位置,该位置对应的元素为1,其余为0。
- 嵌入层(Embedding Layer):将高维的独热编码向量映射到低维的稠密向量空间中,即所谓的词嵌入(word embeddings)。这一层能够学习到词汇之间的语义相似性。
- 隐藏层:包含一层或多层全连接层(fully connected layers),通过非线性激活函数(如ReLU、sigmoid等)进行特征变换。这些层负责捕捉输入序列中的复杂模式和依赖关系。
- 输出层:产生一个概率分布,表示给定前面所有词的情况下,下一个可能出现的词的概率。这通常是通过softmax函数实现的。
历史发展
- Bengio等人(2003年):提出了一种早期的神经网络语言模型架构,它首次引入了词嵌入的概念,并证明了这种模型可以有效捕捉长距离依赖关系。
- CBOW和Skip-gram(2013年):由Mikolov等人提出的Word2Vec模型进一步简化了NNLM,分别使用连续词袋模型(Continuous Bag-of-Words, CBOW)和跳字模型(Skip-gram)来进行高效训练。
- RNN及其变体(LSTM, GRU等):循环神经网络及其改进版本允许更好地处理序列数据,并且能缓解传统前馈神经网络难以捕捉长序列依赖的问题。
- Transformer(2017年):引入自注意力机制(self-attention mechanism),极大地提升了模型对长距离依赖的建模能力,成为当前最先进的语言模型基础架构之一。
应用
NNLM广泛应用于各种NLP任务,包括但不限于:
- 机器翻译:构建从源语言到目标语言的映射,提升翻译质量。
- 语音识别:提高转录准确度,特别是在嘈杂环境或口音变化较大的情况下。
- 文本生成:例如自动摘要、聊天机器人对话生成等。
- 情感分析:帮助理解文本的情感倾向,辅助决策制定。
挑战
尽管NNLM带来了显著的进步,但它们也面临着一些挑战:
- 计算成本:训练大型神经网络需要大量的计算资源和时间。
- 过拟合风险:如果没有适当的正则化手段,模型可能会过度适应训练数据而泛化能力差。
- 解释性问题:相比于规则基系统,NNLM往往被视为“黑箱”,难以直观理解其内部运作机制。
随着技术的发展,研究者们不断探索新的方法和技术来克服这些挑战,使得NNLM更加实用和高效。
- 优点:结合上文的深度学习模型
- 缺点:未结合下文,隐层多,计算量大
word2vec
Word2Vec 是一种用于生成词向量(word embeddings)的流行技术,它通过神经网络模型将词汇表中的每个单词映射到一个低维、稠密的向量空间中。这些向量不仅能够表示单词的语义信息,还能捕捉词汇间的相似性和关系。Word2Vec 模型由 Google 在 2013 年提出,并迅速成为自然语言处理(NLP)领域的一个重要工具。
Word2Vec 的工作原理
Word2Vec 主要基于两个模型架构:
-
连续词袋模型 (Continuous Bag-of-Words, CBOW):
- 输入:上下文词(即目标词周围的词)。
- 输出:预测中心词。
- 过程:给定一段文本中的某些词作为上下文,CBOW 模型试图预测位于这些上下文词中间的目标词。换句话说,它根据周围词来猜测当前词是什么。
-
Skip-gram:
- 输入:单个中心词。
- 输出:预测上下文词。
- 过程:与 CBOW 相反,Skip-gram 模型接受一个中心词作为输入,并尝试预测该词周围的多个上下文词。这意味着对于每个输入词,模型会生成一系列输出词的概率分布。
两种模型的核心思想是通过最大化共同出现的词对之间的概率来进行训练,从而使得具有相似上下文的词在向量空间中有相近的位置。
训练过程
- 负采样(Negative Sampling):为了提高训练效率,Word2Vec 使用了一种称为负采样的技巧。它不是更新所有非目标词的概率,而是随机选择一小部分“负例”进行更新。这大大减少了计算量。
- 层次化 softmax(Hierarchical Softmax):另一种加速训练的方法是使用层次化 softmax,它构建了一个二叉树结构来代替传统的 softmax 层,降低了每次迭代所需的计算次数。
特点和优势
- 高效性:相比于以前的方法,如隐狄利克雷分配(LDA),Word2Vec 可以更快速地训练大规模数据集。
- 捕捉语义关系:生成的词向量可以很好地表示词汇间的语义关系,例如,“king - man + woman ≈ queen”这样的线性关系。
- 广泛适用性:由于其简单性和有效性,Word2Vec 已被应用于多种 NLP 任务,包括但不限于机器翻译、情感分析、问答系统等。
应用实例
- 推荐系统:利用词向量捕捉用户兴趣偏好,为用户提供个性化内容推荐。
- 信息检索:增强搜索引擎的能力,使搜索结果更加精准。
- 文本分类:帮助理解文档的主题或类别,辅助自动分类。
限制
尽管 Word2Vec 提供了强大的词向量表示方法,但它也有一些局限性:
- 无法处理多义词:一个单词可能有多个含义,但 Word2Vec 给出的是单一的向量表示,不能区分不同上下文下的不同意义。
- 依赖于上下文窗口:Word2Vec 只考虑固定大小的上下文窗口内的词,可能忽略了更广泛的上下文信息。
- 静态词嵌入:对于同一个词,无论出现在什么位置,Word2Vec 都会产生相同的向量表示,这在某些情况下可能不够灵活。
随着深度学习的发展,后续出现了更多先进的词嵌入方法,比如 ELMo、BERT 等,它们能够动态地生成基于上下文的词向量,进一步提升了 NLP 任务的表现。不过,Word2Vec 仍然是理解和入门词向量概念的重要起点。
- 优点:速度快,计算量小,cpu上就能跑
- 缺点:全局信息不足,多义词问题未解决
相关文章:

【自然语言处理(NLP)】介绍、发展史
文章目录 介绍发展史1. 规则驱动时期(20世纪50年代-80年代)技术特点标志性成果 2. 统计方法兴起(1990年代-2000年代)技术特点标志性成果 3. 神经网络复兴(2010年代初至今)技术特点标志性成果 4. 集成与应用…...

1.CSS的三大特性
css有三个非常重要的三个特性:层叠性、继承性、优先级 1.1 层叠性 想通选择器给设置想听的样式,此时一个样式就会覆盖(层叠)另一个冲突的样式。层叠性主要是解决样式冲突的问题。 <!DOCTYPE html> <html lang"en&…...

【分布式日志篇】从工具选型到实战部署:全面解析日志采集与管理路径
网罗开发 (小红书、快手、视频号同名) 大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等…...

基于springcloud汽车信息分析与可视化系统
基于Spring Cloud的汽车信息分析与可视化系统是一款旨在整合、分析汽车相关数据并以直观可视化方式呈现的应用系统。 一、系统架构 该系统基于先进的Spring Cloud架构构建,充分利用其分布式、微服务特性,确保系统具备高可用性、可扩展性和灵活性。Spri…...

TOGAF之架构标准规范-信息系统架构 | 数据架构
TOGAF是工业级的企业架构标准规范,信息系统架构阶段是由数据架构阶段以及应用架构阶段构成,本文主要描述信息系统架构阶段中的数据架构阶段。 如上所示,信息系统架构(Information Systems Architectures)在TOGAF标准规…...

Databend x 沉浸式翻译 | 基于 Databend Cloud 构建高效低成本的业务数据分析体系
「沉浸式翻译」是一个非常流行的双语对照网页翻译扩展工具,用户可以用它来即时翻译外文网页、PDF 文档、ePub 电子书、字幕等。它不仅可以实现原文加译文实时双语对照显示,还支持 Google、OpenAI、DeepL、微软、Gemini、Claude 等数十家翻译平台服务的自…...

cuda的并行运算介绍
cuda是如何使用GPU并行运算的: 以一个函数为例: duplicateWithKeys << <(P 255) / 256, 256 >> > (P,geomState.means2D,geomState.depths,geomState.point_offsets,binningState.point_list_keys_unsorted,binningState.point_list_…...

「全网最细 + 实战源码案例」设计模式——抽象工厂模式
核心思想 抽象工厂模式是一种创建型设计模式,它提供一个接口,用于创建一系列相关或互相依赖的对象,而无需指定它们的具体类。抽象工厂模式解决了产品族的问题,可以管理和创建一组相关的产品。 结构 1. 抽象工厂 定义创建一些列…...

领域驱动设计(DDD)四 订单管理系统实践步骤
以下是基于 领域驱动设计(DDD) 的订单管理系统实践步骤,系统功能主要包括订单的创建、更新、查询和状态管理,采用 Spring Boot 框架进行实现。 1. 需求分析 订单管理系统的基本功能: 订单创建:用户下单创…...

leetcode 面试经典 150 题:简化路径
链接简化路径题序号71题型字符串解法栈难度中等熟练度✅✅✅ 题目 给你一个字符串 path ,表示指向某一文件或目录的 Unix 风格 绝对路径 (以 ‘/’ 开头),请你将其转化为 更加简洁的规范路径。 在 Unix 风格的文件系统中规则如下…...

基于 STM32 的智能农业温室控制系统设计
1. 引言 随着农业现代化的发展,智能农业温室控制系统对于提高农作物产量和质量具有重要意义。该系统能够实时监测温室内的环境参数,如温度、湿度、光照强度和土壤湿度等,并根据这些参数自动调节温室设备,如通风扇、加热器、加湿器…...

【Spring Boot】掌握 Spring 事务:隔离级别与传播机制解读与应用
前言 🌟🌟本期讲解关于spring 事务传播机制介绍~~~ 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客 🔥 你的点赞就是小编不断更新的最大动力 🎆那么废话…...

【Postgres_Python】使用python脚本将多个PG数据库合并为一个PG数据库
需要合并的多个PG数据库表个数和结构一致,这里提供一种思路,选择sql语句insert插入的方式进行,即将其他PG数据库的每个表内容插入到一个PG数据库中完成数据库合并 示例代码说明: 选择一个数据库导出表结构为.sql文件(…...

Tailwind CSS v4.0 发布
Holy shit its actually done ! 1 月 22 日,Tailwind CSS 正式发布了 4.0 版本,针对性能和灵活性进行了优化,重新构想了配置和定制体验,并充分利用了 Web 平台提供的最新进展。 新的高性能引擎- 完整构建速度提高 5 …...

pandas基础:文件的读取和写入
文件的读取和写入 读取csv文件 csv文件: name,age,city Alice,25,New York Bob,30,Los Angelesread_csv(filename) header:如 何处理文件的第一行。header0将第一行作为列名,headerNone表示文件中没有列名,所有行都是数据。 im…...

【MySQL — 数据库增删改查操作】深入解析MySQL的create insert 操作
数据库CRUD操作 1 CRUD简介 CURD是对数据库中的记录进行基本的增删改查操作: 2. Create 新增 语法 INSERT [INTO] table_name[(column [,column] ...)] VALUES(value_list)[,(value_list)] ... # value 后面的列的个数和类型,要和表结构匹配…...

每日OJ_牛客_小红的子串_滑动窗口+前缀和_C++_Java
目录 牛客_小红的子串_滑动窗口前缀和 题目解析 C代码 Java代码 牛客_小红的子串_滑动窗口前缀和 小红的子串 描述: 小红拿到了一个长度为nnn的字符串,她准备选取一段子串,满足该子串中字母的种类数量在[l,r]之间。小红想知道&…...

HTTP 配置与应用(局域网)
想做一个自己学习的有关的csdn账号,努力奋斗......会更新我计算机网络实验课程的所有内容,还有其他的学习知识^_^,为自己巩固一下所学知识,下次更新HTTP 配置与应用(不同网段)。 我是一个萌新小白…...

ultralytics 是什么?
ultralytics 是一个用于计算机视觉任务的 Python 库,专注于提供高效、易用的目标检测、实例分割和图像分类工具。它最著名的功能是实现 YOLO(You Only Look Once) 系列模型,特别是最新的 YOLOv8。 1. YOLO 是什么? YO…...

AI竞争:从技术壁垒到用户数据之争
标题:AI竞争:从技术壁垒到用户数据之争 文章信息摘要: AI市场呈现开放模型与封闭模型并存的双轨发展态势,但核心竞争力已从模型技术转向用户数据积累和使用习惯培养。商业模式正在多元化发展,从早期的价格战转向subsc…...

MySQL 主从复制(单组传统复制,GTID复制。双主复制)
案例环境 单组复制 master: 192.168.180.143 slave01:192.168.180.144 双组复制 master01:192.168.180.143 master02:192.168.180.144 案例过程 准备工作 关闭所有防火墙 setenforce 0 && systemctl stop firewa…...

python学opencv|读取图像(四十)掩模:三通道图像的局部覆盖
【1】引言 前序学习了使用numpy创建单通道的灰色图像,并对灰色图像的局部进行了颜色更改,相关链接为: python学opencv|读取图像(九)用numpy创建黑白相间灰度图_numpy生成全黑图片-CSDN博客 之后又学习了使用numpy创…...

vue3 中如何监听 props 中的值的变化
在 Vue 3 中,你可以使用 watch 函数来监听组件的 props 值的变化。watch 函数允许你观察一个或多个响应式数据源,并在这些数据源发生变化时执行回调函数。 以下是一个示例,展示了如何在 Vue 3 中使用 watch 来监听 props 中的值的变化&#…...

Scrapy之一个item包含多级页面的处理方案
目标 在实际开发过程中,我们所需要的数据往往需要通过多个页面的数据汇总得到,通过列表获取到的数据只有简单的介绍。站在Scrapy框架的角度来看,实际上就是考虑如何处理一个item包含多级页面数据的问题。本文将以获取叶子猪网站的手游排行榜及…...

hive 自动检测、自动重启、记录检测日志、自动清理日志
最终效果 定时检测hive运行状态,进程不存在或者进程存在但是不监听端口的hiveserver2,自动重新拉起每次检测脚本执行的日志都会保存在log目录下.check文件,每一个月一个文件每月15日,删除2月前的检测日志开启hive自带日志输出后&…...

HFSS同轴替换波端口
波端口仿真正常 将波端口换成内径内径0.3mm外径0.6mm同轴之后 结果很不对 换成下面的尺寸就好了...

【2024年华为OD机试】 (C卷,100分)- 素数之积(JavaScriptJava PythonC/C++)
一、问题描述 RSA 因数分解问题 题目描述 RSA 加密算法在网络安全世界中无处不在,它利用了极大整数因数分解的困难度。数据越大,安全系数越高。给定一个 32 位正整数,请对其进行因数分解,找出是哪两个素数的乘积。 输入描述 …...

【C++模板】:如何判断自定义类型是否实现某个函数
一、引子 偶尔我们会面对这样的尴尬的场景,我们需要显示的去判断在某个自定义类型中,是否已经提供了我们期待的API接口,以避免产生“莫须有”的错误。阁下该如何破解此问题! 这里,直接给出一种通用的方法,…...

基于微信小程序的汽车保养系统设计与实现(LW+源码+讲解)
专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...

电子应用设计方案102:智能家庭AI鱼缸系统设计
智能家庭 AI 鱼缸系统设计 一、引言 智能家庭 AI 鱼缸系统旨在为鱼类提供一个健康、舒适的生活环境,同时为用户提供便捷的管理和观赏体验。 二、系统概述 1. 系统目标 - 自动维持水质稳定,包括水温、酸碱度、硬度和溶氧量等关键指标。 - 智能投食&…...