NLP学习(一)基础篇

2023-11-13

一、 前言

2016年3月9日至15日和2017年5月23日至27日,分别在韩国首尔和中国嘉兴乌镇,韩国围棋九段棋手李世石、中国围棋九段棋手柯洁与人工智能围棋程序“阿尔法围棋”(AlphaGo)之间的两场比赛,人类均以失败告终,更是激起了各种“机器超越、控制人类”的讨论,然而机器真的懂人类进而控制人类吗?如果可以那首先必须要先让机器能理解人类的语言。那么机器是如何理解人类语言的呢?这一系列的博文将带领大家熟悉和回顾一个完整的自然语言处理过程。
首先理解什么是NLP呢?

NLP (Natural Langunge Possns,自然语言处理)是计算机科学领域以及人工智能领域的一个重要的研究方向,它研究用计算机来处理、理解以及运用人类语言(如中文、英文等),达到人与计算机之间进行有效通讯。所谓“自然”乃是寓意自然进化形成,是为了区分一些人造语言,类似C++、Java 等人为设计的语言。

二、内容

2.1 NLP技术点

接下来通过分析对象和分析内容两个不同的维度来进行表达,NLP 所包含的技术知识点如图2.1所示:
 
在这里插入图片描述
图2.1 NLP 技术知识点汇总

2.2 NLP处理过程

中文自然语言处理的过程和机器学习过程大体一致,但又存在很多细节上的不同点,下面我们就来看看中文自然语言处理的基本过程有哪些呢?

2.2.1 获取语料

语料,即语言材料。语料是语言学研究的内容。语料是构成语料库的基本单元。所以,人们简单地用文本作为替代,并把文本中的上下文关系作为现实世界中语言的上下文关系的替代品。我们把一个文本集合称为语料库(Corpus),当有几个这样的文本集合的时候,我们称之为语料库集合(Corpora)。(定义来源:百度百科)按语料来源,我们将语料分为以下两种:

1.已有语料
很多业务部门、公司等组织随着业务发展都会积累有大量的纸质或者电子文本资料。那么,对于这些资料,在允许的条件下我们稍加整合,把纸质的文本全部电子化就可以作为我们的语料库。
2.网上下载、抓取语料
如果现在个人手里没有数据怎么办呢?这个时候,我们可以选择获取国内外标准开放数据集,比如国内的中文汉语有搜狗语料、人民日报语料。国外的因为大都是英文或者外文,这里暂时用不到。也可以选择通过爬虫自己去抓取一些数据,然后来进行后续内容。

2.2.2 语料预处理

在一个完整的中文自然语言处理工程应用中,语料预处理大概会占到整个50%-70%的工作量,所以开发人员大部分时间就在进行语料预处理。下面通过数据洗清、分词、词性标注、去停用词四个大的方面来完成语料的预处理工作。

1.语料清洗
数据清洗,顾名思义就是在语料中找到我们感兴趣的东西,把不感兴趣的、视为噪音的内容清洗删除,包括对于原始文本提取标题、摘要、正文等信息,对于爬取的网页内容,去除广告、标签、HTML、JS 等代码和注释等。常见的数据清洗方式有:人工去重、对齐、删除和标注等,或者规则提取内容、正则表达式匹配、根据词性和命名实体提取、编写脚本或者代码批处理等。
2.分词
中文语料数据为一批短文本或者长文本,比如:句子,文章摘要,段落或者整篇文章组成的一个集合。一般句子、段落之间的字、词语是连续的,有一定含义。而进行文本挖掘分析时,我们希望文本处理的最小单位粒度是词或者词语,所以这个时候就需要分词来将文本全部进行分词。
常见的分词算法有:基于字符串匹配的分词方法、基于理解的分词方法、基于统计的分词方法和基于规则的分词方法,每种方法下面对应许多具体的算法。
当前中文分词算法的主要难点有歧义识别和新词识别,比如:“羽毛球拍卖完了”,这个可以切分成“羽毛 球拍 卖 完 了”,也可切分成“羽毛球 拍卖 完 了”,如果不依赖上下文其他的句子,恐怕很难知道如何去理解。
3.词性标注
词性标注,就是给每个词或者词语打词类标签,如形容词、动词、名词等。这样做可以让文本在后面的处理中融入更多有用的语言信息。词性标注是一个经典的序列标注问题,不过对于有些中文自然语言处理来说,词性标注不是非必需的。比如,常见的文本分类就不用关心词性问题,但是类似情感分析、知识推理却是需要的,下图2.2是常见的中文词性整理。
 
在这里插入图片描述

图2.2 中文词性
常见的词性标注方法可以分为基于规则和基于统计的方法。其中基于统计的方法,如基于最大熵的词性标注、基于统计最大概率输出词性和基于 HMM 的词性标注。

4.去停用词
停用词一般指对文本特征没有任何贡献作用的字词,比如标点符号、语气、人称等一些词。所以在一般性的文本处理中,分词之后,接下来一步就是去停用词。但是对于中文来说,去停用词操作不是一成不变的,停用词词典是根据具体场景来决定的,比如在情感分析中,语气词、感叹号是应该保留的,因为他们对表示语气程度、感情色彩有一定的贡献和意义。

2.2.3 特征工程

做完语料预处理之后,接下来需要考虑如何把分词之后的字和词语表示成计算机能够计算的类型。显然,如果要计算我们至少需要把中文分词的字符串转换成数字,确切的说应该是向量话。有两种常用的表示模型分别是词袋模型和词向量。

词袋模型(Bag of Word, BOW),即不考虑词语原本在句子中的顺序,直接将每一个词语或者符号统一放置在一个集合(如 list),然后按照计数的方式对出现的次数进行统计。
词向量是将字、词语转换成向量矩阵的计算模型。目前为止最常用的词表示方法是 One-hot,这种方法把每个词表示为一个很长的向量。

2.2.4 特征选择

同数据挖掘一样,在文本挖掘相关问题中,特征工程也是必不可少的。在一个实际问题中,构造好的特征向量,是要选择合适的、表达能力强的特征。文本特征一般都是词语,具有语义信息,使用特征选择能够找出一个特征子集,其仍然可以保留语义信息;但通过特征提取找到的特征子空间,将会丢失部分语义信息。所以特征选择是一个很有挑战的过程,更多的依赖于经验和专业知识,并且有很多现成的算法来进行特征的选择。目前,常见的特征选择方法主要有 DF、 MI、 IG、 CHI、WLLR、WFO 六种。

2.2.5 模型训练

在特征向量选择好之后,接下来要做的事情当然就是训练模型,对于不同的应用需求,我们使用不同的模型,传统的有监督和无监督等机器学习模型, 如 KNN、SVM、Naive Bayes、决策树、GBDT、K-means 等模型;深度学习模型比如 CNN、RNN、LSTM、 Seq2Seq、FastText、TextCNN 等。这些模型在后续的分类、聚类、神经序列、情感分析等示例中都会用到。下面是在模型训练时需要注意的几个点。

1.注意过拟合、欠拟合问题,不断提高模型的泛化能力。

过拟合:模型学习能力太强,以至于把噪声数据的特征也学习到了,导致模型泛化能力下降,在训练集上表现很好,但是在测试集上表现很差。
常见的解决方法有:

增大数据的训练量;
增加正则化项,如 L1 正则和 L2 正则;
特征选取不合理,人工筛选特征和使用特征选择算法;
采用 Dropout 方法等。
欠拟合:就是模型不能够很好地拟合数据,表现在模型过于简单。
常见的解决方法有:

添加其他特征项;
增加模型复杂度,比如神经网络加更多的层、线性模型通过添加多项式使模型泛化能力更强;
减少正则化参数,正则化的目的是用来防止过拟合的,但是现在模型出现了欠拟合,则需要减少正则化参数。
2.对于神经网络,注意梯度消失和梯度爆炸问题。

2.2.6 评价指标

训练好的模型,上线之前要对模型进行必要的评估,目的让模型对语料具备较好的泛化能力。具体有以下这些指标可以参考。

1.错误率、精度、准确率、精确度、召回率、F1 衡量。

2.ROC 曲线、AUC 曲线。
ROC 全称是“受试者工作特征”(Receiver Operating Characteristic)曲线。我们根据模型的预测结果,把阈值从0变到最大,即刚开始是把每个样本作为正例进行预测,随着阈值的增大,学习器预测正样例数越来越少,直到最后没有一个样本是正样例。

2.3 NLP研究任务

NLP可以被应用于很多领城,这里大概总结出以下几种通用的应用:

机器翻译:计算机具备将一种谐育翻译成另一种语 言的能力。
情感分析:计算机能够判断用户评论是香积极。
智能问答:计算机能够正确回答输人的问题。
文摘生成:计算机能够准确日纳、总结井产生文本摘要。
文本分类计算机能够采集各种文章,进行主题分析,从而进行行自动分类。
舆论分析:计算机能够判断目前舆论的导向。
知识图谱: 知识点相互连接而成的语义网络。

2.3.1 机器翻译

机器翻译是自然语言处理中最为人所熟知的场景,国内外有很多比较成熟的机器翻译产品,比如百度翻译、Google翻译等,还有提供支持语音输人的多国语互译的产品(比如科大讯飞就出了-款翻译札)。

2.3.2 情感分析

情感分析在一些评论网站 比较有用,比如某餐饮网站的评论中会有非常多拔草的客人的评价,如果一眼扫过去满眼都是又贵又难吃,那谁还想去呢?另外有些商家为了获取大量的客户不惜雇佣水军灌水,那就可以通过自然语言处理来做水军识别,情感分析来分析总体用户评价是积极还是消极。

2.3.4 智能问答

智能问答在一-些电商网站有非常实际的价值,比如代替人工充当客服角色,有很多基本而且重复的问题,其实并不需要人工客服来解决,通过智能问容系统可以筛选掉大最重复的问题,使得人工座席能更好地服务客户。

2.3.5 文摘生成

文摘生成利用计算机自动地从原始文献中摘取文摘,全面准确地反映某文献的中心内容。这个技术可以帮助人们节省大量的时间成本,而且效率更高。

2.3.6 文本分类

文本分类是机器对文本按照-定的分类体系自动标注类别的过程。举一个例子 ,圾邮件是一种令 人头痛的顽症,困扰着非常多的互联网用户。2002 年,Paul Graham机出使用“贝叶斯推断”来过滤垃圾邮件,1000 封垃圾邮件中可以过滤掉995封并且没有一个是误判,另外这种过滤器还具有自我学习功能,会根据新收到的邮件,不断调整。也就是说收到的垃圾邮件越多,相对应的判断垃圾邮件的准确率就越高。

2.3.7 舆论分析

舆论分析可以帮助分析哪些话题是目前的热点,分析传播路径以及发展趋势,对于不好的舆论导向可以进行有效的控制。

2.3.8 知识图谱

知识图谱( Knowledge Graph/Vault)又称科学知识图谱,在图书情报界称为知识域可视化或知识领域映射地图,是显示知识发展进程与结构关系的一系列各 种不同的图形,用可视化技术描述知识资源及其载体,挖掘、分析、构建、绘制和显示知识及它们之间的相互联系。

2.4 知识结构

作为一门综合学科,NLP是研究人与机器之间用自然语言进行有效通信的理论和方法。这需要很多跨学科的知识,需要语言学、统计学、最优化理论、机器学习、深度学习以及自然语育处理相关理论模型知识做基础。作为一门杂学,NLP可谓包罗万象,体系化与特殊化并存,这里简单罗列其知识体系,如下图2.3所示:
 
在这里插入图片描述
图2.3 知识结构
▼有法语义分析:针对目标句子,进行各种句法分析,如分词、 词性标记、命名实体识别及链接、句法分析、语义角色识别和多义词消歧等。
▼关键词抽取:抽取目标文本中的主要信息,比如从一条新闻中抽取关键信息。主要是了解是谁、于何时、为何、对谁、做了何事、产生了有什么结果。涉及实体识别、时间抽取、因果关系抽取等多项关键技术。
▼文本挖掘:主要包含了对文本的聚类、分类,信息抽取、摘要、情感分析以及对挖掘的信息和知识的可视化、交互式的呈现界面。
▼机器翻译:将输人的源语言文本通过自动翻译转化为另种语言的文本。根据输人数据类型的不同,可细分为文本翻译、语音翻译、手语翻译、图形翻译等。机器翻译从最早的基于规则到二十年前的基于统计的方法,再到今天的基于深度学习(编解码)的方法,逐渐形成了一套比较严谨的方法体系。
▼信息检索:对大规模的文档进行索引。可简单对文档中的词汇,赋以不同的权重来建立索引,也可使用算法模型来建立更加深层的索引。查询时,首先对输入比进行分析,然后在索引里面查找匹配的候选文档,再根据个排序 机制把候选文档排序,最后输出排序得分最高的文档。
▼问答系统:针对某个自然语言表达的问题,由问答系统给出一个精准的答案。需
要对自然语言查询语句进行语义分析,包括实体链接、关系识别,形成逻辑表达式,然后到知识库中查找可能的候选答案并通过一个排序机制找出最佳的答案。
▼对话系统:系统通过多回合对话,跟用户进行聊天、回答、完成某项任务。主要涉及用户意图理解、通用聊天引擎、问答引擎、对话管理等技术。此外,为了体现上下文相关,要具备多轮对话能力。同时,为了体现个性化,基于用户画像做个性化回复。

2.5 知识结构

自然语言处理可以分为以下三个层面:
(1) 第一层面:词法分析
词法分析包括汉语的分词和词性标注这两部分。之前有提过,汉语分词与英文不同,汉语书面词语之间没有明显的空格标记,文本中的句子以字竹串的方式出现,向子中心逗号分隔,句子和句子之间常以句号分隔。针对议语这种独特的书面表现形式,汉语的自然语言处理的首要工作就是要将输人的文本切分为单独的词语,然后在此技术上进行其他更高级的分析。
上述这个步骤称为分词。除了分词之外,词性标注也通常被认为是词法分析的一部分,词性标注的目的是为每一个词赋予一个类别,这个类别可以是名词(noun)、动词(verb)、形容词(adjective)等。通常来说,属于相同词性的词,在句法中承担类似的角色。
(2)第二层面:句法分析
句法分析是对输人的文本以句子为单位,进行分析以得到句子的句法结构的处理过程。对句法结构进行分析,一方面是为了帮助理解句子的含义,另一方面也为更高级的自然语言处理任务提供支持(比如机器翻译、情感分析等)。目前业界存在三种比较主流的句法分析方法:短语结构句法体系,作用是识别出句子中的短语结构以及短语之间的层次句法关系;依存结构句法体系,作用是识别句子中词与词之间的相互依赖关系;深层文法句法分析,利用深层文法,例如词汇化树邻接文法,组合范畴文法等对句子进行深层的句法以及语义分析。
上述几种句法分析,依存句法分析属于浅层句法分析,其实现过程相对来说比较简单而且适合在多语言环境下应用,但是其所能提供的信息也相对较少。深层文法句法分析可以提供丰富的句法和语义信息,但是采用的文法相对比较复杂,分析器的运行复杂度也比较高,这使得深层句法分析不太适合处理大规模的数据。短语结构句法分析介于依存句法分析和深层文法句法分析之间。
(3)第三个层面:语义分析
语义分析的最终目的是理解句子表达的真是语义。但是,语义应该采用什么表示形式一直困扰着研究者们,至今这个问题也没有一个统一的答案。语义角色标注(semantic role labeling)是目前比较成熟的浅层语义分析技术。语义角色标注一般都在句法分析的基础上完成,句法结构对于语义角色标注的性能至关重要。基于逻辑表达的语义分析也得到学术界的长期关注。出于机器学习模型复杂度、效率的考虑,自然语言处理系统通常采用级联的方式,即分词、词性标注、句法分析、语义分析分别训练模型。实际使用时,给定输入句子,逐一使用各个模块进行分析,最终得到所有结果。
近年来,随着研究工作的深人,研究者们提出了很多有效的联合模型,将多个任务联合学习和解码,如分词词性联合、词性句法联合、分词词性句法联合句法语义联合等。联合模型通常都可以显著提高分析质量,原因在于联合模型可以让相互关联的多个任务互相帮助,同时对于任何单任务而言,人工标注的信息也更多了。然而,联合模型的复杂度更高,速度也更慢。

三、总结

自然语言处理(NLP)是计算机科学,人工智能,语言学关注计算机和人类(自然)语言之间的相互作用的领域。因此,自然语言处理是与人机交互的领域有关的。在自然语言处理面临很多挑战,包括自然语言理解,因此,自然语言处理涉及人机交互的面积。在NLP诸多挑战涉及自然语言理解,即计算机源于人为或自然语言输入的意思,和其他涉及到自然语言生成。
现代NLP算法是基于机器学习,特别是统计机器学习。机器学习范式是不同于一般之前的尝试语言处理。语言处理任务的实现,通常涉及直接用手的大套规则编码。
许多不同类的机器学习算法已应用于自然语言处理任务。这些算法的输入是一大组从输入数据生成的“特征”。一些最早使用的算法,如决策树,产生硬的if-then规则类似于手写的规则,是再普通的系统体系。然而,越来越多的研究集中于统计模型,这使得基于附加实数值的权重,每个输入要素柔软,概率的决策。此类模型具有能够表达许多不同的可能的答案,而不是只有一个相对的确定性,产生更可靠的结果时,这种模型被包括作为较大系统的一个组成部分的优点。
自然语言处理研究逐渐从词汇语义成分的语义转移,进一步的,叙事的理解。然而人类水平的自然语言处理,是一个人工智能完全问题。它是相当于解决中央的人工智能问题使计算机和人一样聪明,或强大的AI。自然语言处理的未来一般也因此密切结合人工智能发展。
这篇文章就到这里了,欢迎大佬们多批评指正,也欢迎大家积极评论多多交流。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NLP学习(一)基础篇 的相关文章

  • 生成易于记忆的随机标识符

    与所有开发人员一样 我们在日常工作中不断处理某种标识符 大多数时候 它与错误或支持票有关 我们的软件在检测到错误后 会创建一个包 该包的名称由时间戳和版本号格式化 这是创建合理唯一标识符以避免混淆包的一种廉价方法 例子 错误报告 20101
  • 用于估计(一元)困惑度的 NLTK 包

    我正在尝试计算我所拥有的数据的困惑度 我正在使用的代码是 import sys sys path append usr local anaconda lib python2 7 site packages nltk from nltk co
  • 快速NLTK解析成语法树

    我正在尝试将数百个句子解析为语法树 我需要快速完成 问题是如果我使用 NLTK 那么我需要定义一个语法 而我不知道我只知道它会是英语 我尝试使用this https github com emilmont pyStatParser统计解析器
  • 快速 shell 命令删除文本文件中的停用词

    我有一个 2GB 的文本文件 我正在尝试从此文件中删除经常出现的英语停用词 我有 stopwords txt 包含这样的 a an the for and I 使用 shell 命令 例如 tr sed 或 awk 执行此操作的快速方法是什
  • 阻止斯坦福核心 NLP 服务器输出它收到的文本

    我正在运行一个斯坦福核心自然语言处理 http stanfordnlp github io CoreNLP server java mx4g cp edu stanford nlp pipeline StanfordCoreNLPServe
  • SpaCy 中的自定义句子边界检测

    我正在尝试在 spaCy 中编写一个自定义句子分段器 它将整个文档作为单个句子返回 我编写了一个自定义管道组件 它使用以下代码来执行此操作here https github com explosion spaCy issues 1850 但
  • 如何在Python中使用多处理来加速循环执行

    我有两个清单 列表 A 包含 500 个单词 列表 B 包含 10000 个单词 我正在尝试为列表 A 找到与 B 相关的相似单词 我正在使用 Spacy 的相似函数 我面临的问题是计算需要很长时间 我是多处理使用的新手 因此请求帮助 如何
  • 如何提取句子中的主语及其各自的从属短语?

    我正在尝试在句子中进行主题提取 以便我能够根据主题获得情感 我在用nltk在 python2 7 中用于此目的 以下面的句子为例 Donald Trump is the worst president of USA but Hillary
  • Fine-Tuning DistilBertForSequenceClassification:不是学习,为什么loss没有变化?权重没有更新?

    我对 PyTorch 和 Huggingface transformers 比较陌生 并对此尝试了 DistillBertForSequenceClassificationKaggle 数据集 https www kaggle com c
  • 除非 POS 显式,否则 WordNetLemmatizer 不会返回正确的引理 - Python NLTK

    我正在对 Ted 数据集成绩单进行词形还原 我注意到一些奇怪的事情 并非所有单词都被词形还原 要说的是 selected gt select 哪个是对的 然而 involved gt involve and horsing gt horse
  • 如何使用FeatureUnion转换PipeLine中的多个特征?

    我有一个 pandas 数据框 其中包含有关用户发送的消息的信息 对于我的模型 我感兴趣的是预测消息的缺失收件人 即给定消息的收件人 A B C 我想预测还有谁应该成为收件人的一部分 我正在使用 OneVsRestClassifier 和
  • 计算机AI算法写句子?

    我正在寻找有关处理文本句子或在创建在正常人类语言 例如英语 中有效的句子时遵循结构的算法的信息 我想知道这个领域是否有我可以学习或开始使用的项目 例如 如果我给一个程序一个名词 为其提供同义词库 相关单词 和词性 以便它理解每个单词在句子中
  • Python NLP 英式英语与美式英语

    我目前正在用Python 进行NLP 工作 然而 在我的语料库中 既有英式英语也有美式英语 实现 实现 我正在考虑将英式英语转换为美式英语 但是 我没有找到一个好的工具 包来做到这一点 有什么建议么 我也找不到包 但试试这个 请注意 我必须
  • R 中带有变音符号的字符列表

    我试图将字符串中的电话 字符 出现次数制成表格 但变音符号单独作为字符制成表格 理想情况下 我有一个国际音标的单词列表 其中包含大量变音符号以及它们与基本字符的几种组合 我在这里给出了仅包含一个单词的 MWE 但对于单词列表和更多类型的组合
  • 在 Python 中识别大型字符串列表中的项目之间的文本相似性的最有效方法是什么?

    下面的代码实现了我想要实现的结果 有一个称为 引理 的字符串列表 其中包含特定类别单词的可接受形式 另一个列表称为 形式 包含在不同时期和特定语言的不同方言的大量文本中发现的单词的许多拼写变体 对于 forms 中的每个单词 我想获取 le
  • 如何使用WordNet或与wordnet相关的类别来实现基于类别的文本标记?

    如何使用wordnet按单词类别标记文本 java作为接口 Example 考虑以下句子 1 计算机需要键盘 显示器 CPU才能工作 2 汽车使用齿轮和离合器 现在我的目标是 例句必须标记为 第 1 句话 电脑 电子键盘 电子中央处理器 电
  • Spacy提取特定名词短语

    我可以在 python 中使用 spacy 来查找具有特定邻居的 NP 吗 我想要文本中前后都有动词的名词短语 您可以合并名词短语 这样它们就不会单独标记化 分析依存解析树 查看相邻标记的 POS gt gt gt import spacy
  • 在Python中表示语料库句子的一种热门编码

    我是 Python 和 Scikit learn 库的初学者 我目前需要从事一个 NLP 项目 该项目首先需要通过 One Hot Encoding 来表示一个大型语料库 我已经阅读了 Scikit learn 关于 preprocessi
  • BERT 获取句子嵌入

    我正在复制代码这一页 https colab research google com drive 1yFphU6PW9Uo6lmDly ud9a6c4RCYlwdX 我已将 BERT 模型下载到本地系统并获取句子嵌入 我有大约 500 00
  • 如何在 scikit-learn 的 SVM 中使用非整数字符串标签? Python

    Scikit learn 具有相当用户友好的用于机器学习的 python 模块 我正在尝试训练用于自然语言处理 NLP 的 SVM 标记器 其中我的标签和输入数据是单词和注释 例如 词性标记 而不是使用双精度 整数数据作为输入元组 1 2

随机推荐

  • Flex布局--骰子布局

    Flex布局 骰子布局 1点骰子 html css box1 width 100px height 100px border 1px solid pink margin right 3px background color ffffff d
  • 2.4g 无线通讯至服务器,WiFi、2.4G、433M、GPRS无线通讯方式的区别

    原标题 WiFi 2 4G 433M GPRS无线通讯方式的区别 WiFi 2 4G 433M GPRS是目前深圳信立重点推荐的且比较常用的无线通讯方式 被大量应用于供排水管网 热力管网 农业大棚 养殖场 馆藏仓库 储罐 实验室 工厂车间
  • 判断字符串非空if(str!=null && str!=""){}

    熟手判断字符串非空一般都会做两次判断 if str null str 或者 if str null str length 0 或者 if str null str equals 为什么要这么麻烦呢 相信大家都遇到过空指针报错的情况 java
  • python异常模块raise的概念以及基本用法

    当程序出现错误 python会自动引发异常 也可以通过raise显示地引发异常 一旦执行了raise语句 raise后面的语句将不能执行 raise 用raise语句来引发一个异常 异常 错误对象必须有一个名字 且它们应是Error或Exc
  • 多视图综述以及图像检索

    1 1 算法分类 1 1 1 协同训练 该方法旨在最大限度地扩展所有观点的相互协议 并达成最广泛的共识 协同训练算法一般过程如图1所示 根据该过程对算法进行交替训练 利用先验信息或相互学习知识 使两种不同视图的一致性最大化 Co train
  • 秦九韶算法详解

    秦九韶算法 秦九韶算法是将一元n次多项式的求值问题转化为n个一次式的算法 比普通计算方式提高了一个数量级 普通算式 a x i 因为多次求幂 消耗了大量的计算时间 我们来分析一下秦九韶算法 例如 求 1 x 2x 2 3x 3 当x 2时的
  • MongoDB 数据库(一):MongoDB的介绍与安装

    目录 一 MongoDB数据库的介绍与安装 1 1 NoSQL数据库简介 1 2 MongoDB 简介 1 2 1 再议业务应用场景 1 2 2 为什么要使用 MongoDB 1 2 3 适用场景 二 安装和使用MongoDB客户端 2 1
  • C++新特性34_递归互斥量recursive_mutex与超时互斥量timed_mutex的使用(递归互斥量解决同一线程重复使用互斥量的需求;超时互斥量设置等待超时机制;解决互斥量阻塞问题)

    接上篇C 新特性33 死锁产生的原因及避免 线程在等待一个永远都不能成功的条件成立 从而进入到陷入休眠 永远不能被唤醒的状态 通过调整锁的使用顺序解决死锁问题 本篇将会学习互斥体的相关知识 C 新特性34 递归互斥量recursive mu
  • 测试开发面试题总结

    测试开发面试题 1 通过列表推导式完成下面数据类型转换 将 a 11 b 2 11 22 33 44 转换为以下格式 li1 a 11 b 2 11 22 33 44 2 Names python java php c c django u
  • 光控照明灯自动开关

    该光控照明灯自动开关电路采用继电器控制方式 可用来控制普通灯泡 日光灯 节能灯等多种照明灯具 可广泛用于车站 码头 机场等夜间需要连续照明的场所 电路结构与特点 如图所示光控照明灯自动开关电路 不仅具有结构简单 稳定可靠和安装方便等优点 而
  • LSTM这一篇就够了

    转自AI大本营https blog csdn net dQCFKyQDXYm3F8rB0 article details 82922386 短时记忆 NN 会受到短时记忆的影响 如果一条序列足够长 那它们将很难将信息从较早的时间步传送到后面
  • (2)Qt中的字符串类型

    字节数组 QByteArray 在Qt中QByteArray可以看做是C语言中 char 的升级版本 我们在使用这种类型的时候可通过这个类的构造函数申请一块动态内存 用于存储我们需要处理的字符串数据 1 构造函数 构造空对象 QByteAr
  • 记录一次合并单元格表格渲染错位问题。

    renderData this mergeSpanArr 系统名称合并的数组 this mergeSpanArrIndex 0 this zuhuSpanArr 租户合并列表 this zuhuSpanArrIndex 0 租户合并索引 l
  • 电脑怎么开启vt_华擎开启VT的方法

    第一步 重启电脑 屏幕亮起后不断按下 F2 键 进入BIOS页面 开机速度太快无法进入BIOS怎么办 第二步 在菜单中找到VT选项并开启 不同型号的主板 BIOS界面不相同 VT的叫法也不相同 1 进入BIOS页面后 找到 Advanced
  • 驾驭AI绘画:《AI魔法绘画》带你秒变顶级画手!

    同学们 抖音买家秀中的那些极具设计感的作品是怎么来的 你还在羡慕别人的绘画天赋 对着空白的画纸发呆吗 有没有想过将生硬的代码和灵动的艺术完美融合 有没有感到现代技术带来了戏剧性改变 从替代马车的汽车 到取代传统影像的数字摄影 再到今天的AI
  • Spring Expression Language(SpEL)实现ABAC鉴权模型, 动态计算实体的属性、操作类型、相关的环境来控制是否有对操作对象的权限

    author changjin wei 魏昌进 since 2022 11 26 ABAC授权模型 常用的授权模型 ABAC的访问控制 表达式语言 SpEL性能 ABAC实践 数据库设计 java程序 crud代码 security上下文
  • 使用jackson实现对象json相互转换(spring boot)

    之前的json转对象 对象转json 总是比较繁琐 不够简洁 自从接触到jackson之后 发现原来对象和json转换可以这么简单 拿一个天气预报的小例子来说明一下 如下图 若是有小误 还望指正 不说 直接上码 首先 在pom xml里弄好
  • 图像分辨率测试ISO12233 - 2017中文翻译

    译者序 目前的摄像头分辨率的测试 大多遵循ISO 12233标准 最近下载一份英文版的文档 和大家一起分享 仅供学习使用 目录 ISO 12233 Third Edition 2017 01 Foreword 前言 Introduction
  • Ant Design pro入门

    Ant Design pro入门 前言 一 了解Ant Design pro 二 使用步骤 1 快速入门 2 ant pro菜单 路由 前言 读此文章需要优先掌握知识 1 React 2 ts 3 Ant Design 一 了解Ant De
  • NLP学习(一)基础篇

    一 前言 2016年3月9日至15日和2017年5月23日至27日 分别在韩国首尔和中国嘉兴乌镇 韩国围棋九段棋手李世石 中国围棋九段棋手柯洁与人工智能围棋程序 阿尔法围棋 AlphaGo 之间的两场比赛 人类均以失败告终 更是激起了各种