人工智能任务19-基于BERT、ELMO模型对诈骗信息文本进行识别与应用
大家好,我是微学AI,今天给大家介绍一下人工智能任务19-基于BERT、ELMO模型对诈骗信息文本进行识别与应用。近日,演员王星因接到一份看似来自知名公司的拍戏邀约,被骗至泰国并最终被带到缅甸。这一事件迅速引发了社会的广泛关注。该事件也暴露出了一些深层次的诈骗绑架新套路问题和挑战。
本文研究了基于多种NLP模型的识别方法,包括BERT和ELMO模型。通过提供数据样例,详细阐述了模型训练过程,并探讨了应用场景。同时,文中还给出了完整的代码,以供读者参考。本文的研究成果为诈骗电话识别提供了新的思路和方法,具有一定的实用价值和推广意义。
文章目录
- 一、NLP 模型与诈骗电话识别概述
- 1.1 自然语言处理在诈骗电话识别中的重要性
- 1.1.1 诈骗电话的特点及危害
- 1.1.2 NLP技术的优势
- 1.2 基于NLP的诈骗电话检测方法
- 1.2.1 BERT模型简介
- 1.2.2 ELMO模型简介
- 1.3 应用前景展望
- 二、BERT 模型详解与应用
- 2.1 BERT模型的基本原理
- 2.1.1 概述
- 2.1.2 工作机制
- 2.2 BERT结构解析
- 2.2.1 架构组成
- 2.2.2 特点分析
- 2.3 BERT应用于诈骗电话识别
- 2.3.1 数据准备
- 2.3.2 特征提取与模型训练
- 2.3.3 实例展示
- 结论
- 三、ELMO 模型详解与应用
- 3.1 ELMO 模型的基本概念及其工作机制
- 3.1.1 ELMO 模型简介
- 3.1.2 双向LSTM语言模型
- 3.2 在诈骗电话识别中的优势及应用场景
- 3.2.1 相对于其他模型的优势
- 3.2.2 具体应用场景示例
- 数据样例
- 四、模型训练与优化
- 4.1 训练数据准备
- 4.1.1 数据收集
- 4.1.2 数据预处理
- 4.2 模型参数设置与调优
- 4.2.1 BERT模型训练
- 4.2.2 ELMO模型训练
- 4.3 性能优化技巧
- 五、应用实战与未来展望
- 5.1 实际应用场景及效果分析
- 5.1.1 案例一:某城市公共安全系统中的诈骗电话预警平台
- 数据预处理
- 模型训练
- 5.1.2 案例二:银行客服中心的欺诈检测机制
- 5.2 未来发展展望
一、NLP 模型与诈骗电话识别概述
随着信息技术的快速发展,电话通讯已成为日常生活中不可或缺的一部分。然而,伴随而来的电信诈骗问题也日益严重,给个人和社会带来了巨大的损失。为了有效应对这一挑战,自然语言处理(Natural Language Processing, NLP)技术被广泛应用于诈骗电话的自动识别系统中。本文将对基于多种NLP模型的诈骗电话识别进行总体介绍,并探讨BERT、ELMO等前沿模型在该领域的应用前景。
1.1 自然语言处理在诈骗电话识别中的重要性
1.1.1 诈骗电话的特点及危害
诈骗电话通常采用预设的话术来诱骗受害者泄露个人信息或转账汇款。这类通话往往具有高度伪装性和欺骗性,普通用户很难仅凭直觉判断出是否为诈骗行为。此外,犯罪分子会不断更新他们的作案手法,使得传统的基于规则的方法难以长期有效。因此,需要一种能够快速适应新变化的技术手段来提高识别准确率。
1.1.2 NLP技术的优势
NLP是一种使计算机能够理解人类语言的技术,它可以通过分析文本内容来提取有用信息。当应用于诈骗电话识别时,NLP可以从以下几个方面发挥作用:
- 语义理解:通过深度学习算法解析对话内容,识别出潜在的风险词汇或表达方式。
- 情感分析:评估说话者的情绪状态,比如紧张、不安等,这些都可能是受到威胁的表现。
- 意图识别:结合上下文环境推断出对方的真实目的,例如询问银行卡号、密码等敏感信息的行为很可能属于欺诈活动。
- 模式匹配:利用已知案例数据库中的特征模板进行比对,发现相似度高的对话片段。
1.2 基于NLP的诈骗电话检测方法
目前,在实际操作中已经有不少研究机构和企业开始尝试将NLP技术应用于反诈领域。常见的做法是先收集大量真实的通话录音作为训练样本,然后使用不同的算法对其进行标注处理,最后构建分类器用于预测新的输入数据。其中,近年来兴起的一些高级神经网络架构如BERT和ELMO展现出了优越性能。
1.2.1 BERT模型简介
BERT(Bidirectional Encoder Representations from Transformers)是由Google团队提出的一种预训练模型,其主要特点是采用双向Transformer编码器来生成上下文相关的词向量表示。相比于传统单向RNN或者LSTM结构,BERT能够在不丢失任何方向信息的前提下更好地捕捉到句子内部复杂的依赖关系。此外,通过大规模无监督预训练+少量有监督微调的方式,BERT可以在多个下游任务上达到甚至超过当前最先进水平。
1.2.2 ELMO模型简介
ELMO(Embeddings from Language Models)则是由Allen Institute for Artificial Intelligence开发的一种动态词嵌入方法。与静态词向量相比,ELMO能够根据具体的上下文场景调整每个单词的意义。具体来说,ELMO使用深层双向LSTM语言模型作为基础框架,在给定一段文本后分别从前向后和从后向前两个方向生成隐藏状态序列,再将两者组合起来形成最终的词表示。这种方法有效地解决了多义词问题,并且对于长距离依赖也有较好的支持能力。
1.3 应用前景展望
尽管现有的NLP解决方案已经在一定程度上改善了诈骗电话的检测效果,但仍存在许多待解决的问题。例如如何进一步提高模型泛化能力以应对不断变化的新类型欺诈行为;怎样降低误报率同时保证高召回率等。未来的研究可能会更加关注以下几个方向:
- 多模态融合:除了文字信息之外,还可以考虑加入语音特征、视觉图像等多种形式的数据源共同参与决策过程。
- 个性化服务:针对不同用户群体提供定制化的防护策略,增强用户体验的同时提升整体安全性。
- 实时响应机制:建立一套高效的预警系统,在发现可疑情况时立即采取行动阻止损害发生。
- 跨平台协作:加强运营商、金融机构以及政府相关部门之间的沟通合作,形成联合防控体系。
总之,随着人工智能技术特别是NLP领域的持续进步,我们有理由相信在未来几年内,基于NLP的诈骗电话识别技术将会变得更加智能高效,从而为广大用户提供更可靠的安全保障。
二、BERT 模型详解与应用
2.1 BERT模型的基本原理
2.1.1 概述
BERT(Bidirectional Encoder Representations from Transformers)是Google于2018年发布的一种预训练语言表示模型,它在自然语言处理任务上取得了革命性的进展。不同于传统的单向语言模型,如GPT系列,BERT采用双向Transformer架构来捕捉文本中的上下文信息,从而为许多下游NLP任务提供了强大的支持。
2.1.2 工作机制
BERT的核心思想在于使用深层双向Transformer编码器对大量未标注文本进行预训练。预训练过程主要包含两步:Masked Language Model (MLM) 和 Next Sentence Prediction (NSP)。其中,MLM通过随机掩盖输入序列中的一部分词汇,并让模型预测这些被遮挡的词是什么;而NSP则是判断给定的两个句子是否连续出现在原始文档中。这两个任务帮助BERT学习到了更加丰富和复杂的语言表示。
2.2 BERT结构解析
2.2.1 架构组成
- 输入层:包括WordPiece嵌入、位置嵌入及片段嵌入三部分。
- 多头自注意力机制:这是Transformer模型中最关键的部分之一,能够使模型同时关注到不同距离处的信息。
- 前馈神经网络:每个编码器内部除了自注意力模块外还包含了全连接前馈网络,用于增强模型的表达能力。
- 输出层:根据不同的应用场景设计相应的输出形式,比如分类问题会添加一个线性层加上softmax函数等。
2.2.2 特点分析
- 深度双向理解:由于采用了双向训练策略,使得BERT能够更好地理解词语之间的复杂关系。
- 迁移学习能力强:预训练后的BERT模型可以很容易地迁移到各种特定任务上,只需微调即可达到很好的效果。
- 大规模数据驱动:利用了Wikipedia以及BookCorpus等大型语料库进行预训练,保证了模型具有较强泛化能力。
2.3 BERT应用于诈骗电话识别
2.3.1 数据准备
在将BERT应用于诈骗电话识别时,首先需要收集大量的通话记录作为训练数据。这些数据通常来源于真实的用户报告或企业监控系统。对于每条记录,我们需要将其转换成适合BERT处理的形式,即按照一定的规则划分句子、标记实体等。此外,还需要对数据集进行清洗,去除无效信息,确保质量。
2.3.2 特征提取与模型训练
- 特征选择:从原始通话内容中提取有用的特征是至关重要的一步。这里可以考虑使用诸如说话人变化频率、关键词出现次数等指标。
- 微调过程:基于已经预训练好的BERT模型,我们可以通过调整其顶层结构并用特定领域的数据进一步训练,以适应具体的诈骗电话检测任务。例如,在最后几层增加一些新的全连接层,并针对正负样本(正常对话 vs. 可疑活动)设置适当的损失函数。
2.3.3 实例展示
假设我们有一段来自真实世界的通话记录:“您好,请问您是李先生吗?我是来自某银行客服中心的小张……” 对于这段话,经过适当的数据预处理后,我们可以将其输入到经过微调的BERT模型中。如果该模型之前已经被训练得当,则能够准确地判断出这是一次潜在的诈骗尝试。
结论
通过上述介绍可以看出,BERT不仅在理论上具备深厚的理论基础,而且在实践中也展现了广泛的应用价值。尤其是在像诈骗电话识别这样要求高精度和时效性的场景下,BERT以其独特的优势成为了不可或缺的技术手段之一。未来随着研究深入和技术进步,相信BERT将在更多领域发挥重要作用。
三、ELMO 模型详解与应用
3.1 ELMO 模型的基本概念及其工作机制
3.1.1 ELMO 模型简介
ELMO(Embeddings from Language Models)是一种能够生成上下文相关的词向量的方法,由艾伦人工智能研究所于2018年提出。相比于传统的词嵌入技术如Word2Vec或GloVe,这些方法生成的是静态词向量,即每个单词只有一个固定的向量表示,而ELMO可以根据单词所在的上下文动态地调整其向量表示,从而更好地捕捉到语境信息。
3.1.2 双向LSTM语言模型
ELMO的核心在于使用了双向长短期记忆网络(BiLSTM)来构建语言模型。这里的“双向”意味着同时考虑了一个句子从前到后的顺序以及从后往前的逆序两种方向的信息流动。通过这种方式,ELMO能够获得更加全面且富含上下文的词汇表示。具体来说,在前向LSTM中,模型学习到了一个词在它之前出现的所有词基础上的意义;而在后向LSTM里,则是基于该词之后的所有词语来理解这个词语的意思。最终,将这两个方向上得到的隐藏状态结合在一起作为输出。
3.2 在诈骗电话识别中的优势及应用场景
3.2.1 相对于其他模型的优势
- 更好的上下文理解能力:由于采用了双向LSTM架构,ELMO可以有效地利用整个句子甚至更广泛的上下文环境来推断出某个词的具体含义。
- 灵活性强:不同于BERT等预训练模型需要固定长度输入的特点,ELMO支持变长序列输入,这使得它非常适合处理像电话对话这样可能存在长短不一情况的数据。
- 易于集成:ELMO提供了一种简单的接口用于与其他现有系统相结合,无论是传统机器学习算法还是复杂的深度神经网络结构。
3.2.2 具体应用场景示例
假设我们正在开发一套自动检测疑似诈骗电话的服务。在这个场景下,可以通过以下步骤运用ELMO模型:
-
数据收集与预处理:首先需要收集大量的真实通话录音,并对其进行转写成文本形式。接着对文本进行清洗,去除无意义字符、停用词等。
-
特征提取:利用已训练好的ELMO模型对每段对话文本产生相应的特征向量。这里特别强调的是,对于同一个词在不同情境下的表达可能会有很大差异,因此采用上下文敏感的方式非常关键。
-
分类器训练:选择合适的监督学习算法(如SVM、随机森林等),以从上述步骤获取到的特征为基础训练分类器,用来区分正常通话与潜在的欺诈行为。
-
性能评估与迭代优化:通过对测试集上的表现进行评价来不断调整和完善整个系统的设计。
数据样例
考虑如下一段对话:
客户: 你好,请问你是银行客服吗?
骗子: 是的,我是来自中国工商银行的工作人员。最近发现您的账户存在异常活动...
在这段话中,“工作人员”这个词单独来看可能是正面的,但如果结合前后文尤其是提到“异常活动”的时候,就很可能暗示着这是一个试图获取个人财务信息的骗局。此时,ELMO就能很好地捕捉这种细微的变化,并为后续决策提供更多有价值的线索。
通过深入解析ELMO的工作机制并探讨其在诈骗电话识别领域的独特价值,我们可以看到这项技术不仅理论基础扎实,而且实践效果显著。未来随着更多高质量标注数据的积累和技术手段的进步,相信基于ELMO及其他先进自然语言处理技术构建的安全防护体系将会越来越完善。
四、模型训练与优化
在前几部分中,我们已经对BERT和ELMO这两种重要的自然语言处理(NLP)模型进行了详细的介绍,并探讨了它们在诈骗电话识别中的应用潜力。本章将重点讨论如何有效地训练这些模型以及通过哪些方法可以进一步优化其性能,以达到更高的识别准确率。
4.1 训练数据准备
4.1.1 数据收集
高质量的数据是训练任何机器学习模型的基础。对于BERT和ELMO这类复杂的深度学习模型来说更是如此。针对诈骗电话识别这一特定应用场景,我们需要收集大量的电话对话记录作为原始材料。这些资料可以从公开数据库获取,也可以通过合作的方式从电信运营商那里获得。值得注意的是,在此过程中必须严格遵守隐私保护法律法规,确保所有操作都在合法合规的前提下进行。
4.1.2 数据预处理
得到原始录音文件后,接下来的任务是对数据进行预处理。这一步骤主要包括以下几个方面:
- 文本转换:使用自动语音识别技术将音频转化为文字形式。
- 去噪清洗:去除无意义的杂音干扰信息,比如背景音乐、环境噪声等。
- 标注工作:给每条记录打上标签,区分正常通话与涉嫌欺诈的行为。这个过程可能需要人工参与来保证准确性。
- 特征提取:根据实际需求选择合适的特征向量表示方式,例如词袋模型或TF-IDF值等。
4.2 模型参数设置与调优
4.2.1 BERT模型训练
BERT采用Transformer架构设计而成,具有强大的语义理解能力。但在正式开始训练之前,有几个关键参数需要设定好:
- 学习率:控制梯度下降算法中每次迭代更新权重的速度大小。初始值通常设置得较小,随后逐渐减小直至收敛。
- 批次大小:每个epoch内用于计算损失函数并反向传播更新网络参数的小批量样本数量。过大过小都不利于训练效果。
- 最大序列长度:指代输入到模型中的句子的最大token数目。考虑到计算资源限制,一般不超过512个tokens。
- 掩码比例:在预训练阶段随机遮盖掉一部分词汇让模型预测缺失位置的内容。推荐范围为0.1至0.3之间。
除了上述基本配置之外,还可以尝试调整层数、隐藏层尺寸等高级选项来探索不同结构下模型的表现差异。此外,引入更先进的优化策略如AdamW也能有效加速收敛速度同时避免陷入局部极值点。
4.2.2 ELMO模型训练
相较于传统的单向RNN/CNN模型,ELMO采用了双向LSTM结构从而能够更好地捕捉上下文关系。它的训练流程大致相同于BERT但也有细微差别:
- 首先需要构建字符级的语言模型作为基础组件。
- 然后在此之上叠加两层或多层的BiLSTM网络形成深层编码器。
- 最后输出端会结合前后向状态信息生成最终表示。
同样地,在具体实现时也需要关注学习率衰减机制的选择、正则化项的应用等问题。
4.3 性能优化技巧
为了进一步提升诈骗电话检测系统的整体效能,我们可以采取以下几种措施来进行优化:
- 集成学习:结合多个不同类型或版本的模型输出结果做出最终决策。这样不仅能够提高鲁棒性还能充分利用各自的优势互补不足之处。
- 迁移学习:利用已有的大规模通用领域语料库预先训练好的权重作为初始化起点,然后再基于目标领域的少量标注数据进行微调。这种方法特别适合解决冷启动问题。
- 主动学习:当面对大量未标记样本时,可以通过不确定性采样等方式挑选出最具代表性的例子交由专家审核确认,然后将其加入训练集中重新训练模型。
- 增量式更新:随着时间推移新的欺诈手段不断涌现,因此定期更新训练集并调整相关参数就显得尤为重要。这要求我们建立一套完善的持续监控体系以快速响应变化趋势。
综上所述,通过精心设计实验方案合理安排各项任务顺序,并灵活运用多种先进技术手段,我们完全有可能大幅度改善现有解决方案的效果,使其更加适应复杂多变的实际场景需求。
五、应用实战与未来展望
随着自然语言处理(NLP)技术的不断进步,基于多种NLP模型如BERT和ELMO等在诈骗电话识别领域的应用越来越广泛。这些先进的技术不仅极大地提高了诈骗电话检测的准确性,还为打击电信诈骗提供了强有力的支持。本节将通过几个实际应用案例来展示这些模型的效果,并探讨该领域未来可能的发展方向。
5.1 实际应用场景及效果分析
5.1.1 案例一:某城市公共安全系统中的诈骗电话预警平台
在一个大型城市的公共安全体系中,利用了融合了BERT和ELMO两种深度学习架构的混合模型来构建了一个高效的诈骗电话预警平台。该项目旨在通过自动分析来电内容,及时发现潜在的诈骗行为并警告受害者或相关部门采取措施。为了训练这一复合模型,项目团队收集了大量的真实通话记录作为正样本(已知诈骗电话),同时从普通商业服务对话中选取数据作为负样本。
数据预处理
- 对原始音频文件进行了转文字转换。
- 清洗文本,去除无关信息如问候语等。
- 将文本分割成句子级别以适应模型输入格式。
模型训练
- 首先使用无标签的数据集对ELMO进行预训练,以捕捉更广泛的上下文信息。
- 然后采用标注好的诈骗电话数据对BERT进行微调。
- 最终将两个经过调整后的模型组合起来形成最终预测系统。
实验结果显示,相比于单独使用任一模型,这种结合方式能够显著提高分类精度,特别是在复杂多变的真实场景下表现尤为出色。此外,通过对误报率和漏检率的持续监控与优化,该系统能够在保证高召回率的同时维持较低的错误报警次数。
5.1.2 案例二:银行客服中心的欺诈检测机制
许多金融机构都在其客户服务流程中引入了基于NLP的自动化解决方案来增强安全性。一个典型例子是某国际知名银行在其呼叫中心部署了一套基于BERT算法开发的反欺诈工具。该工具能够实时监听客户与座席之间的对话,一旦检测到可疑活动立即发出警报。
- 工作原理:首先,系统会根据历史数据建立正常交流模式;当出现异常情况时(例如频繁提及敏感词汇或表现出不寻常的行为模式),便会触发进一步审查。
- 成效评估:自从实施以来,这家银行报告称因诈骗造成的损失减少了约30%,而客户满意度也有所提升,因为他们感到自己的资金更加安全了。
5.2 未来发展展望
尽管当前基于NLP的诈骗电话识别技术已经取得了显著成就,但仍有很大的改进空间和发展潜力:
- 更精细的情感分析:现有的模型主要侧重于文本内容的理解,未来可以加强对于说话人情绪状态的捕捉能力,这有助于更准确地区分真正的威胁与误会。
- 跨语言支持:目前大多数研究集中在英语或其他少数几种主流语言上,拓展至更多语种尤其是小众语言将是下一个重要课题。
- 隐私保护机制:如何在保证高效检测的同时尊重个人隐私权利也是必须面对的问题之一。采用差分隐私等先进技术可以在一定程度上缓解这方面担忧。
- 自适应学习能力:面对日益变化复杂的欺诈手段,开发具有较强自我更新能力的学习框架变得尤为重要。这意味着系统需要具备快速吸收新知识并对现有模型做出相应调整的能力。
总之,随着人工智能及相关技术的不断发展和完善,我们有理由相信,在不远的将来,人们将能够享受到更加安全可靠的通信环境。
相关文章:
人工智能任务19-基于BERT、ELMO模型对诈骗信息文本进行识别与应用
大家好,我是微学AI,今天给大家介绍一下人工智能任务19-基于BERT、ELMO模型对诈骗信息文本进行识别与应用。近日,演员王星因接到一份看似来自知名公司的拍戏邀约,被骗至泰国并最终被带到缅甸。这一事件迅速引发了社会的广泛关注。该…...
ESP-IDF学习记录(5) 画一块esp32-c3 PCB板
最近看了半个多月,趁着嘉立创官方活动,研究esp32-c3规格书,白嫖PCB 和元器件。原本计划按照官方推荐的搞个四层板,结果打样太贵,火速改成双层板,用了官方的券。小于10*10,也可以使用嘉立创的免费打样。 下面…...
Day04-后端Web基础——Maven基础
目录 Maven课程内容1. Maven初识1.1 什么是Maven?1.2 Maven的作用1.2.1 依赖管理1.2.2 项目构建1.2.3 统一项目结构 2. Maven概述2.1 Maven介绍2.2 Maven模型2.2.1 构建生命周期/阶段(Build lifecycle & phases)2.2.2 项目对象模型 (Project Object Model)2.2.3 依赖管理模…...
ASP.NET Core - 日志记录系统(一)
ASP.NET Core - 日志记录系统(一) 一、日志记录二、ASP.Net Core 的日志记录2.1. 日志记录系统的接入2.2 记录日志2.3 基本配置2.3.1 日志级别2.3.2 全局输出配置2.3.3 针对特定日志提供程序的配置2.3.6 显式设置2.3.4 配置筛选原理2.3.5 日志作用域 一、…...
Linux 各个服务启动命令
目录 redis后台启动rocketMq后台启动mongodb后台启动mysql后台启动 redis后台启动 ./redis-server ./redis.confrocketMq后台启动 #关闭Nameserver sh bin/mqshutdown namesrv #关闭Broker sh bin/mqshutdown broker #启动namesrv nohup sh bin/mqnamesrv -n 127.0.0.1:9876 …...
24-25-1-单片机开卷部分习题和评分标准
依据相关规定试卷必须按评分标准进行批改。 给分一定是宽松的,能给分一定给,如有疑问也可以向学院教务办申请查卷。 一部分学生期末成绩由于紧张或其他原因导致分数过低,也是非常非常遗憾的。 个人也是非常抱歉的。 开卷考试 简答题 第一…...
Apache Hop从入门到精通 第二课 Apache Hop 核心概念/术语
1、apache hop核心概念思维导图 虽然apache hop是kettle的一个分支,但是它的概念和kettle还是有一些区别的,下图是我根据官方文档梳理的appache hop的核心概念思维导图。 2、Tools(工具) 1)Hop Conf Hop Conf 是一个…...
网络安全 | Web安全常见漏洞和防护经验策略
关注:CodingTechWork 引言 OWASP (Open Web Application Security Project) Top 10是Web应用最常见的安全风险集合,帮助开发人员和安全专家识别和防止最严重的网络安全问题。以下是基于OWASP Top 10的Web安全防护经验策略与规则集。Web开发者必须对潜在…...
Unity 3D游戏开发从入门进阶到高级
本文精心整理了Unity3D游戏开发相关的学习资料,涵盖入门、进阶、性能优化、面试和书籍等多个维度,旨在为Unity开发者提供全方位、高含金量的学习指南.欢迎收藏。 学习社区 Unity3D开发者 这是一个专注于Unity引擎的开发者社区,汇聚了众多Un…...
浅谈云计算14 | 云存储技术
云存储技术 一、云计算网络存储技术基础1.1 网络存储的基本概念1.2云存储系统结构模型1.1.1 存储层1.1.2 基础管理层1.1.3 应用接口层1.1.4 访问层 1.2 网络存储技术分类 二、云计算网络存储技术特点2.1 超大规模与高可扩展性2.1.1 存储规模优势2.1.2 动态扩展机制 2.2 高可用性…...
No.1|Godot|俄罗斯方块复刻|棋盘和初始方块的设置
删掉基础图标新建assets、scenes、scripts文件夹 俄罗斯方块的每种方块都是由四个小方块组成的,很适合放在网格地图中 比如网格地图是宽10列,高20行 要实现网格的对齐和下落 Node2D节点 新建一个Node2D 添加2个TileMapLayer 一个命名为Board&…...
二 RK3568 固件中打开 ADB 调试
一 usb adb Android 系统,设置->开发者选项->已连接到计算机 打开,usb调试开关打开 通过 usb otg 口连接 开发上位机 (windows/linux) 上位机安装 adb 服务之后 , 通过 cmd/shell: #1 枚举设备 adb devices #2 进入 android shell adb shell # 3 验证上传下载…...
鸿蒙报错Init keystore failed: keystore password was incorrect
报错如下: > hvigor ERROR: Failed :entry:defaultSignHap... > hvigor ERROR: Tools execution failed. 01-13 16:35:55 ERROR - hap-sign-tool: error: Init keystore failed: keystore password was incorrect * Try the following: > The key stor…...
Java学习笔记(二十三)
1 CacheEvict CacheEvict是Spring框架中用于清空缓存的注解。以下是对CacheEvict注解的详细介绍: 1.1 作用 CacheEvict注解的主要作用是删除缓存中的数据。在方法执行后或执行前(根据配置),它可以清空指定的缓存项或整个缓存区…...
TIOBE编程语言排行靠前的编程语言的吉祥物
Python的吉祥物:小蟒蛇 Python语言的吉祥物是一只名叫"Pythonidae"(或简称"Py")的小蟒蛇。这个吉祥物由Tobias Kohn设计于2005年,它的形象借鉴了真实的蟒蛇,但加入了一些可爱和友善的特点。小蟒蛇…...
Redis集群部署详解:主从复制、Sentinel哨兵模式与Cluster集群的工作原理与配置
集群部署形式 1、主从复制1.1 工作机制1.2 配置实现1.3 优缺点1.4 部署形式1.5 主从复制优化 2、Sentinel 哨兵模式2.1 工作机制2.2 配置实现2.3 优缺点2.4 哨兵机制选举流程2.5 脑裂问题解决方案 3、Redis Cluster3.1 工作机制3.2 配置实现3.3 优缺点3.4 故障转移3.5 哈希槽为…...
Dubbo泛化调用
本文记录下利用dubbo泛化调用实现网关server收http请求,然后转发给dubbo服务,然后收到dubbo响应的功能原理。 关键点1:dubbo泛化调用。可根据(注册中心地址、接口名,方法名,参数类型)唯一确定一个dubbo服务…...
SpringBoot工程快速启动
1.问题导入 以后我们和前端开发人员协同开发,而前端开发人员需要测试前端程序就需要后端开启服务器,这就受制于后端开发人员。 为了摆脱这个受制,前端开发人员尝试着在自己电脑上安装 Tomcat 和 Idea ,在自己电脑上启动后端程序&a…...
Docker实践:部署Docker管理工具DockerUI
Docker实践:部署Docker管理工具DockerUI 前言一、DockerUI介绍1.1 DockerUI概述1.2 镜像说明 二、检查本地Docker环境三、拉取DockerUI镜像四、创建DockerUI容器五、访问DockerUI六、DockerUI的基本使用6.1 查询宿主机容器情况6.2 查询Docker镜像列表6.3 查看容器配…...
【优先算法】滑动窗口--(结合例题讲解解题思路)(C++)
目录 1. 例题1:最大连续1的个数 1.1 解题思路 1.2代码实现 1.3 错误示范如下:我最开始写了一种,但是解答错误,请看,给大家做个参考 2. 将 x 减到 0 的最小操作数 2.1解题思路 2.2代码实现 1. 例题1ÿ…...
嵌入式系统Linux实时化(四)Xenomai应用开发测试
1、Xenomai 原生API 任务管理 Xenomai 本身提供的一系列多任务调度机制,主要有以下一些函数: int rt_task_create (RT_TASK task, const char name, int stksize, int prio, intmode) ; 任务的创建;int rt_task_start(RT_TASK task, void(entry)(void cookie), void cookie…...
深度剖析RabbitMQ:从基础组件到管理页面详解
文章目录 一、简介二、Overview2.1 Overview->Totals2.2 Overview->Nodesbroker的属性2.3 Overview->Churn statistics2.4 Overview->Ports and contexts2.5 Overview->Export definitions2.6 Overview->Import definitions 三、Connections连接的属性 四、C…...
算法每日双题精讲 —— 二分查找(二分查找,在排序数组中查找元素的第一个和最后一个位置)
🌟快来参与讨论💬,点赞👍、收藏⭐、分享📤,共创活力社区。 🌟 别再犹豫了!快来订阅我们的算法每日双题精讲专栏,一起踏上算法学习的精彩之旅吧!💪…...
Golang—— error 和 panic
本文详细介绍Golang的两种错误处理机制:error 和 panic。 文章目录 Golang 的错误处理机制概述error特点代码示例基本用法创建 error panic特点运行时错误示例defer 和 recover 的结合使用代码示例基本用法创建 panic panic 的执行机制 error 和 panic 的对比生产环…...
xcrun: error: invalid active developer path 解决
在拉取 github 代码时,提示如下报错: xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun 原因是:这是由于 Xcode command line t…...
Jmeter配置服务代理器 Proxy(二)
1.创建脚本记录器 2.配置:Jmeter代理、端口、记录目标等 3.配置谷歌浏览器代理 浏览器配置代理的详细教程可参考:使用whistle代理-CSDN博客 4.启动Jmeter记录器 点击ok后弹出这个界面,生成了证书: 5.给浏览器安装Jmeter代理的证书…...
小黑工具人日常积累中:sqlserver中切割字符串,取首个子串
SELECTSUBSTRING(表名字, 1, CHARINDEX(分隔符, 字段名) - 1) AS FirstPart FROM表名字 WHERECHARINDEX(分隔符, 字段名) > 0继续尝试: 提取第二个子串 窗口函数...
港科夜闻 | 香港科大与微软亚洲研究院签署战略合作备忘录,推动医学健康教育及科研协作...
关注并星标 每周阅读港科夜闻 建立新视野 开启新思维 1、香港科大与微软亚洲研究院签署战略合作备忘录,推动医学健康教育及科研协作。根据备忘录,双方将结合各自于科研领域的优势,携手推动医学健康领域的交流与合作。合作方向将涵盖人才培训、…...
掌握Golang strings包:高效字符串处理指南
掌握Golang strings包:高效字符串处理指南 引言为什么要学习和掌握strings包本教程的目标 基本用法strings包概述导入strings包常用函数列表及简要介绍 字符串创建与基本操作创建字符串字符串连接:Join重复字符串:Repeat修改字符串࿱…...
关于husky8.0 与 4.0的配置
husky的场景使用很多,一般大多场景是在配置git commit 命令拦截hook, 校验 commit-msg 格式规范。以下环境默认:git > 2.27.0, node >14 1、安装huskey8.0.1 npm install --save-dev husky8.0.1 2、初始化配置文件 在package.json scripts 属性…...
【RK3588 Linux 5.x 内核编程】-Linux内核数据结构详解(双向链表、基数树、位数组)
Linux内核数据结构详解(双向链表、基数树、位数组) 文章目录 Linux内核数据结构详解(双向链表、基数树、位数组)1、双向链表2、基数树3、位数组3.1 Linux内核中的位数组和位操作3.2 位数组声明3.3 特定于架构的位操作3.4 常见的位操作Linux内核提供了不同的数据结构实现,如…...
3.Qt Quick-QML地图引擎之v4.3版本(新增动态轨迹线/海图/天地图街道/天地图卫星)
在上个版本Qt Quick-QML地图引擎之v4版本(新增多模型切换/3D模型欧拉角模拟)_qt加载3d地图-CSDN博客更新了3D模拟功能,在4.3版本增加动态轨迹线、三个地图(海图/天地图街道/天地图卫星)。 4.3版本已经支持qt6 cmake版本,而4.3版本以下支持qt5版本&#x…...
使用WebdriverIO和Appium测试App
1.新建项目 打开Webstorm新建项目 打开终端输入命令 npm init -y npm install wdio/cli allure-commandline --save-dev npx wdio config 然后在终端依次选择如下: 然后在终端输入命令: npm install wdio/local-runnerlatest wdio/mocha-frameworkla…...
前端组件开发:组件开发 / 定义配置 / 配置驱动开发 / 爬虫配置 / 组件V2.0 / form表单 / table表单
一、最早的灵感 最早的灵感来自sprider / 网络爬虫 / 爬虫配置,在爬虫爬取网站文章时候,会输入给爬虫一个配置文件,里边的内容是一个json对象。里边包含了所有想要抓取的页面的信息。爬虫通过这个配置就可以抓取目标网站的数据。其实本文要引…...
工具推荐:PDFgear——免费且强大的PDF编辑工具 v2.1.12
PDFgear——免费且强大的PDF编辑工具 v2.1.12 软件简介 PDFgear 是一款 完全免费的 PDF 软件,支持 阅读、编辑、转换、合并 以及 跨设备签署 PDF 文件,无需注册即可使用。它提供了丰富的 PDF 处理功能,极大提升了 PDF 文件管理的便捷性和效…...
【Unity3D】【已解决】TextMeshPro无法显示中文的解决方法
TextMeshPro无法显示中文的解决方法 现象解决方法Assets 目录中新建一个字体文件夹在C:\Windows\Fonts 中随便找一个中文字体的字体文件把字体文件拖到第一步创建的文件夹中右键导入的字体,Create---TextMeshPro---Font Asset,创建字体文件资源把 SDF文件…...
【Unity】使用UniRx来快速完成Unity中的信号层开发工作。
访问官方 网址:https://github.com/neuecc/UniRx/ UniRx(Unity反应式扩展)是.NET 反应式扩展的重新实现。官方 Rx 实现很棒,但在 Unity 上不起作用,并且存在 iOS IL2CPP 兼容性问题。此库修复了这些问题,并…...
FPGA工程师成长四阶段
朋友,你有入行三年、五年、十年的职业规划吗?你知道你所做的岗位未来该如何成长吗? FPGA行业的发展近几年是蓬勃发展,有越来越多的人才想要或已经踏进了FPGA行业的大门。很多同学在入行FPGA之前,都会抱着满腹对职业发…...
配置Kubernetes从节点与集群Calico网络
在上一篇博客中,我们成功安装并初始化了Kubernetes的主节点,并且看到了集群初始化成功的标志信息。接下来,我们将继续安装从节点(worker nodes),以构建一个完整的Kubernetes集群。 步骤回顾 在上一步中&a…...
【SH】Xiaomi9刷Windows10系统研发记录 、手机刷Windows系统教程、小米9重装win10系统
文章目录 参考资料云盘资料软硬件环境手机解锁刷机驱动绑定账号和设备解锁手机 Mindows工具箱安装工具箱和修复下载下载安卓和woa资源包第三方Recovery 一键安装Windows准备工作创建分区安装系统 效果展示Windows和Android一键互换Win切换安卓安卓切换Win 删除分区 参考资料 解…...
【Qt】01-了解QT
踏入QT的殿堂之路 前言一、创建工程文件1.1 步骤介绍1.2 编译介绍方法1、方法2、编译成功 二、了解框架2.1 main.cpp2.2 .Pro文件2.2.1 注释需要打井号。2.2.2 F1带你进入帮助模式2.2.3 build文件 2.3 构造函数 三、编写工程3.1 main代码3.2 结果展示 四、指定父对象4.1 main代…...
STC的51单片机LED点灯基于KEIL
前言: 该文源于回答一个朋友的问题,代码为该朋友上传,略作修改,在此说明问题以及解决问题的思路,以减少新手错误。 电路图: 该位朋友未上传电路图,说明如下: stc8g1k08a-sop8控制…...
AV1视频编解码简介、码流结构(OBU)
我的音视频/流媒体开源项目(github) 目录 一、AV1编码技术 二、AV1码流结构(OBU) 三、IVF文件格式 四、ffmpeg支持AV1 五、关于常见格式对AV1的封装 一、AV1编码技术 AV1是由开放媒体联盟(AOM,Alliance for Open Media)在2018年发布的,AV1的前身…...
Service Work离线体验与性能优化
Service Work离线体验与性能优化 引言 先放个意外事件,万事开头难🤣🤣🤣 原计划是分享离线应用与数据资源缓存的应用实践,结果发现这一技术已被web标准废弃 曾经做过一个PC应用,业务需求要求应用具备容灾…...
linux之进程信号(初识信号,信号的产生)
目录 引入一、初识信号(信号预备知识)1.生活中的信号2.Linux中的信号3.信号进程得出的初步结论 二、信号的产生1.通过终端输入产生信号拓展: 硬件中断2.调用系统函数向进程发信号3.硬件异常产生信号4.软件条件产生信号拓展: 核心转储技术总结一下: 引入 一、初识信…...
为深度学习创建PyTorch张量 - 最佳选项
为深度学习创建PyTorch张量 - 最佳选项 正如我们所看到的,PyTorch张量是torch.Tensor PyTorch类的实例。张量的抽象概念与PyTorch张量之间的区别在于,PyTorch张量为我们提供了一个可以在代码中操作的具体实现。 在上一篇文章中,我们看到了…...
MySQL 与 Redis 数据一致性 2
1. 强一致还是最终一致?2. 先写 MySQL 还是先写Redis?case 1 3. 缓存(Redis)更新还是清除?更新策略更新策略会有数据不一致问题?数据不一致的概率与影响如果使用监听binlog更新数据还会出现数据不一致问题?binlog的消费问题 使用消息队列行不行?其他方案总结: 数据不一致…...
Git | git reset命令详解
关注:CodingTechWork 引言 Git 是一款非常流行的分布式版本控制工具,它帮助开发者有效地管理代码历史,支持多种功能来帮助团队协作、追踪修改和维护代码质量。git reset是 Git 中最强大、最复杂的命令之一,它的主要作用是重置当前…...
Linux高并发服务器开发 第十四天(dup/duo2/fcntl 进程 pcb进程控制块 环境变量)
目录 1.dup 和 dup2 1.1dup 1.2dup2 2.fcntl 3.进程 3.1进程和程序 3.2并发 3.3cpu 3.5pcb进程控制块 3.6进程状态 4.环境变量 1.dup 和 dup2 1.1dup - 将 文件描述符 ,复制产生“新文件描述符” 并返回。新、旧文件描述符,指向同一文件。 …...
[MySQL | 二、基本数据类型]
基本数据类型 一、数值类型举例表结构1. 整数类型zerofill属性 与 int(n) 中 n 的关系 2.bit类型3. 小数类型float类型decimal类型 二、字符串类型1. char2. varchar如何选择定长或变长字符串? 3. 日期时间类型(date datetime timestamp)4. enum枚举类型5. set多选类…...