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

机器阅读理解:抽取式问答、多选问答与自由生成问答

点击“AladdinEdu你的AI学习实践工作坊”注册即送-H卡级别算力沉浸式云原生集成开发环境80G大显存多卡并行按量弹性计费教育用户更享超低价。一、引言让机器阅读并理解人类语言是人工智能皇冠上的明珠之一。早在1950年图灵在其划时代论文《Computing Machinery and Intelligence》中就将“问答”作为检验机器智能的重要标准。七十余年后的今天随着深度学习和大规模预训练模型的突破性进展机器阅读理解已从实验室走向现实应用在搜索引擎、智能客服、教育辅导、法律文书分析等领域大放异彩。机器阅读理解任务的形式非常直观给定一段文本和一个与文本内容相关的问题系统需要自动找出或生成答案。例如文本阿尔伯特·爱因斯坦1879年3月14日出生于德国乌尔姆。他于1921年获得诺贝尔物理学奖以解释光电效应闻名。问题爱因斯坦在哪一年获得诺贝尔奖答案1921年这一看似简单的任务实则蕴含了语言理解的多重挑战词义消歧、指代消解、逻辑推理、多跳关联、常识融合等。根据答案的产出形式机器阅读理解通常分为三种主流范式抽取式问答答案必须是原文中的一个连续片段。这是最经典、研究最充分的范式代表数据集如SQuAD。多选问答给定若干候选选项模型从中选出正确答案。答案可能不在原文中直接出现需要推理和常识支持。代表数据集如RACE、MCTest。自由生成问答答案由模型自由生成不受原文片段的限制。这要求模型具备强大的文本生成能力。代表数据集如NarrativeQA、MS MARCO生成任务。本文将对这三种范式逐一深入剖析。第二节介绍机器阅读理解的任务基础与主流数据集第三节详述抽取式问答的技术演进第四节探讨多选问答的核心方法第五节深入自由生成问答的前沿进展第六节进行三种范式的对比分析第七节讨论挑战与未来方向。二、机器阅读理解基础2.1 任务形式化定义给定一篇文档PassageP ( p 1 , p 2 , … , p m ) P (p_1, p_2, \dots, p_m)P(p1​,p2​,…,pm​)和一个问题QuestionQ ( q 1 , q 2 , … , q n ) Q (q_1, q_2, \dots, q_n)Q(q1​,q2​,…,qn​)机器阅读理解系统的目标是输出答案A AA。抽取式问答A AA是P PP中的一个连续子序列p s t a r t … p e n d p_{start} \dots p_{end}pstart​…pend​。多选问答A AA是候选答案集合{ C 1 , C 2 , … , C k } \{C_1, C_2, \dots, C_k\}{C1​,C2​,…,Ck​}中的一个选项。自由生成问答A AA是自由文本序列不限于原文片段。在某些设置中问题可能不附带文档系统需要依靠内部知识闭卷问答但多数MRC研究仍以给定文档为前提开卷问答。2.2 主流评测数据集数据集范式规模特点SQuAD 1.1抽取式10万问题维基百科文章答案必在原文SQuAD 2.0抽取式15万问题新增“不可回答”问题NewsQA抽取式10万问题CNN新闻答案更长更复杂RACE多选9.7万问题中国中学生英语阅读理解题MCTest多选2640问题童话故事需常识推理NarrativeQA自由生成4.6万问题基于长篇小说摘要自由生成答案MS MARCO抽取/生成100万问题真实Bing搜索查询答案自由形式HotpotQA多跳抽取11.3万问题需整合多篇文档的信息DROP数值推理9.6万问题需进行加减、计数、排序等离散推理2.3 评价指标精确匹配预测答案与标准答案完全一致的比例。适用于抽取式和生成式有时过于严格。F1值预测答案与标准答案的词级重叠F1分数。抽取式问答最常用。准确率多选问答的标准指标。BLEU / ROUGE / METEOR用于评价生成式答案的质量。BERTScore基于预训练模型上下文嵌入的语义相似度指标更适合生成式答案。三、抽取式问答抽取式问答是机器阅读理解中研究最深入、方法最成熟的范式。其核心是训练一个模型给定P PP和Q QQ预测答案在P PP中的起始位置和结束位置。3.1 早期方法基于特征与浅层匹配在深度学习普及之前抽取式问答主要依赖特征工程。系统会提取词汇重叠特征如问题词在文档中的TF-IDF、句法特征、依存关系特征等然后用分类器判断每个候选句或候选片段是否为答案。这类方法在早期TREC QA评测中占据主流但性能受限于特征覆盖率和稀疏性。3.2 神经阅读理解的开端Attention Reader深度学习引入MRC的标志性工作是Attention Sum Reader和Stanford Attentive Reader。其基本架构如下编码层用双向LSTM分别对文档P PP和问题Q QQ进行编码。注意力层计算问题表示与文档每个词表示之间的注意力权重。常用的双线性注意力为α i softmax ( p i ⊤ W q ) \alpha_i \text{softmax}(\mathbf{p}_i^\top \mathbf{W} \mathbf{q})αi​softmax(pi⊤​Wq)其中q \mathbf{q}q是问题LSTM的最终隐藏状态或池化向量。答案预测注意力权重最高的文档词位置被视为答案起始然后结合上下文预测结束位置。这些早期模型证明了神经网络端到端学习在MRC中的潜力但由于LSTM对长文本的建模能力有限准确率很快遇到瓶颈。3.3 BiDAF与DrQA交互式注意力与开放域探索BiDAFSeo et al., 2017是预训练模型时代前最具影响力的抽取式MRC模型之一。它引入了双向注意力流Context-to-Query注意力对文档中的每个词计算其与问题词的相关性加权聚合问题信息。Query-to-Context注意力对问题中的每个词计算其与文档词的相关性加权聚合文档信息。这种双向交互使得文档和问题的表示深度融合。BiDAF在SQuAD 1.1上取得了77.3%的F1值成为经典基线。DrQAChen et al., 2017则首次系统探索了开放域问答给定一个问题先从大规模语料库如维基百科中检索相关文档再应用MRC模型抽取答案。这种“检索-阅读”两阶段框架至今仍是开放域问答的主流范式。3.4 BERT时代预训练模型颠覆式提升2018年BERT的问世彻底改变了抽取式问答的格局。BERT通过在超大规模语料上进行掩码语言模型和下一句预测预训练习得了强大的语言理解和上下文表示能力。将BERT应用于抽取式问答极其简单输入构造[CLS] 问题 [SEP] 文档 [SEP]编码经过多层Transformer编码得到每个token的上下文表示。答案预测在BERT顶层添加两个全连接层一个预测起始位置概率一个预测结束位置概率对文档部分的每个token输出两个logits分别经过softmax得到起始和结束位置分布。训练目标最大化正确起始和结束位置的对数似然。BERT在SQuAD 1.1上首次超越了人类基准F1值91.2% vs 人类91.2%SQuAD 2.0上也达到89.3% F1。此后RoBERTa、ALBERT、ELECTRA等改进版预训练模型不断刷新榜单。代码示例基于BERT的抽取式问答HuggingFacefromtransformersimportBertTokenizer,BertForQuestionAnsweringimporttorch tokenizerBertTokenizer.from_pretrained(bert-large-uncased-whole-word-masking-finetuned-squad)modelBertForQuestionAnswering.from_pretrained(bert-large-uncased-whole-word-masking-finetuned-squad)defanswer_question(question,passage):inputstokenizer(question,passage,return_tensorspt,max_length512,truncationTrue)withtorch.no_grad():outputsmodel(**inputs)start_logitsoutputs.start_logits end_logitsoutputs.end_logits start_idxtorch.argmax(start_logits)end_idxtorch.argmax(end_logits)# 将token id转回文本答案input_idsinputs[input_ids][0]answer_tokensinput_ids[start_idx:end_idx1]answertokenizer.decode(answer_tokens,skip_special_tokensTrue)returnanswer passageAlbert Einstein was born in Ulm, Germany on March 14, 1879. He won the Nobel Prize in Physics in 1921.questionIn which year did Einstein win the Nobel Prize?print(answer_question(question,passage))# 输出: 19213.5 不可回答问题处理SQuAD 2.0引入了“不可回答”问题即文档中不包含答案。处理策略主要有联合训练BERT输出中加入一个可回答性分类头训练时同时优化跨度预测损失和可回答性二分类损失。阈值判断根据模型预测的起始/结束位置概率的乘积或最佳跨度的得分设定阈值低于阈值则判定为无答案。特殊答案标记如增加一个[CLS]位置的答案跨度代表“无答案”。这些方法使模型能够有效识别知识的边界避免“强行作答”。3.6 多跳推理与离散推理标准抽取式问答通常要求答案在单一段落中连续出现。但多跳问答如HotpotQA要求模型综合多篇文档中的信息才能推导出答案。解决方案包括图神经网络将多文档中的实体和句子构建为图利用GCN进行多跳信息聚合。递归检索-阅读根据当前推理状态迭代检索新文档并更新答案候选。思维链提示引导LLM逐步推理并输出推理路径。离散推理如DROP数据集涉及数值计算如“A队得分65B队得分72A队落后几分”抽取式模型需集成数值推理模块如为BERT添加数值运算层。四、多选问答多选问答给定一个问题、一篇文档和多个候选选项模型需选出唯一正确选项。与抽取式相比多选问答更强调比较与推理能力正确答案往往不是原文的直接复述。4.1 任务形式与挑战多选问答的输入通常为( P , Q , C 1 , C 2 , … , C k ) (P, Q, C_1, C_2, \dots, C_k)(P,Q,C1​,C2​,…,Ck​)输出为正确选项索引。主要挑战包括选项间的细微差异错误选项常包含部分正确信息或似是而非的表述。常识依赖许多多选问答需借助外部常识才能做出正确选择如物理常识、社会规范。长距离依赖文档可能很长如RACE中的长篇文章关键信息分散各处。4.2 经典神经方法在BERT出现之前主流方法采用比较聚合架构分别对文档、问题和每个选项进行编码。通过注意力机制计算每个选项与文档的匹配表示。将匹配表示聚合输入分类器输出各选项得分。例如Convolutional Spatial Attention Model使用CNN提取文档-选项匹配矩阵中的模式。Co-Matching Network则让文档和选项进行多层次交互匹配。4.3 基于BERT的多选问答BERT在多选问答上的标准做法是将P PP、Q QQ和每个C i C_iCi​拼接输入BERT取[CLS]输出接线性层得到一个得分s i s_isi​最后通过softmax对所有选项得分归一化得到选择概率。由于每个选项需独立输入BERT当选项数较多时计算开销大。优化方法包括共享文档-问题编码先对文档和问题进行编码再分别与各选项交互。双塔架构分别编码文档-问题和选项通过点积计算相似度。DUMAZhu et al., 2020提出了一种多维注意力架构在多个MRC多选数据集上取得SOTA。它将文档和选项的交互扩展为多头、多维度显著提升了推理细粒度。4.4 融入常识知识多选问答常需要常识支撑。研究者尝试从外部知识库如ConceptNet或预训练语言模型中获取常识。知识图谱注入将选项和文档中的实体链接到知识图谱提取相关三元组作为附加文本输入模型。知识嵌入增强如KagNet使用GCN对提取的子图进行编码再与BERT表示融合。生成式常识推理利用COMET等常识生成模型为问题补充推断信息。4.5 多选问答的代码示例简化版fromtransformersimportBertTokenizer,BertForMultipleChoiceimporttorch tokenizerBertTokenizer.from_pretrained(bert-base-uncased)modelBertForMultipleChoice.from_pretrained(bert-base-uncased)defanswer_mcq(question,passage,choices):# 构建输入[CLS] passage question [SEP] choice_i [SEP]input_ids[]attention_masks[]forchoiceinchoices:textpassage question encodedtokenizer(text,choice,truncationTrue,max_length512,paddingmax_length,return_tensorspt)input_ids.append(encoded[input_ids])attention_masks.append(encoded[attention_mask])input_idstorch.cat(input_ids,dim0).unsqueeze(0)# [1, num_choices, seq_len]attention_maskstorch.cat(attention_masks,dim0).unsqueeze(0)withtorch.no_grad():outputsmodel(input_idsinput_ids,attention_maskattention_masks)predtorch.argmax(outputs.logits,dim-1).item()returnchoices[pred]passagePhotosynthesis is the process by which plants use sunlight to synthesize foods.questionWhat do plants need for photosynthesis?choices[Water only,Sunlight,Soil nutrients,Oxygen]print(answer_mcq(question,passage,choices))# 输出: Sunlight五、自由生成问答抽取式问答要求答案严格来自原文但现实世界中理想的答案往往需要综合多处信息、进行概括或推理并以自然流畅的语言表达。自由生成问答正是为此而生。5.1 任务定义与挑战给定文档P PP和问题Q QQ生成答案序列A ( a 1 , a 2 , … , a l ) A (a_1, a_2, \dots, a_l)A(a1​,a2​,…,al​)。答案可以是原文中不存在的词汇可以是多个原文片段的拼接或改写。主要挑战内容保真度生成的答案必须忠实于原文不能出现幻觉Hallucination。信息整合当答案需要多文档或多段落信息时模型必须准确定位并融合。生成质量答案需语言流畅、简洁、完整。5.2 基于Seq2Seq的生成模型在预训练生成模型出现前自由生成问答主要采用带有注意力机制的序列到序列模型。编码器读入文档和问题解码器逐词生成答案。为提高对原文的保真度研究者引入了拷贝机制允许解码器直接从原文复制词汇。指针生成网络See et al., 2017是这一思路的代表它在每个生成步计算一个拷贝概率决定是从词表生成还是从原文复制。训练时使用负对数似然损失。5.3 预训练生成模型的统治BART、T5、GPT系列等预训练Seq2Seq模型将自由生成问答推向了新高度。以T5为例它将所有NLP任务统一为“文本到文本”格式。对于生成式问答输入为question: {Q} context: {P}输出为答案文本。T5在大规模语料上进行Span Corruption预训练具备了强大的文本理解和生成能力。BART则采用去噪自编码器预训练在生成任务上同样表现出色。在MS MARCO生成任务和NarrativeQA上微调后的T5/BART大幅超越传统Seq2Seq模型。5.4 检索增强生成对于知识密集型问答单靠模型参数存储的知识可能不够准确或已过时。检索增强生成框架结合了检索器和生成器RAGLewis et al., 2020先用问题检索相关文档然后将文档和问题输入BART生成答案。RAG在开放域问答上取得了SOTA且答案可溯源。REALM、Atlas等模型进一步将检索和生成联合训练实现端到端优化。5.5 大型语言模型的零样本生成GPT-4、Claude、文心一言等超大规模语言模型在零样本或少样本提示下可直接进行自由生成问答无需微调。用户只需提供包含文档和问题的提示模板模型即可输出高质量答案。这极大地降低了定制化问答系统的开发门槛但幻觉问题仍待解决。5.6 代码示例基于T5的生成式问答fromtransformersimportT5Tokenizer,T5ForConditionalGeneration tokenizerT5Tokenizer.from_pretrained(t5-base)modelT5ForConditionalGeneration.from_pretrained(t5-base)defgenerate_answer(question,context):input_textfquestion:{question}context:{context}inputstokenizer(input_text,return_tensorspt,truncationTrue,max_length512)outputsmodel.generate(**inputs,max_length50,num_beams4,early_stoppingTrue)answertokenizer.decode(outputs[0],skip_special_tokensTrue)returnanswer contextThe Great Wall of China was built over centuries to protect against invasions.questionWhy was the Great Wall built?print(generate_answer(question,context))# 输出可能: to protect against invasions六、三种范式的对比分析维度抽取式问答多选问答自由生成问答答案形式原文连续片段预设选项之一自由文本典型数据集SQuAD, NewsQARACE, MCTestNarrativeQA, MS MARCO核心技术跨度预测起始/结束选项比较与排序Seq2Seq生成输出可控性高答案必在原文高限定选项低可能产生幻觉推理复杂度较低较高需比较推理高需整合与生成评估难度容易精确匹配/F1容易准确率困难语义相似度应用场景搜索引擎片段、客服知识库标准化考试、教育评测对话助手、长文总结问答人类表现91.2% F1 (SQuAD 1.1)94.5% Acc (RACE)评估主观性较强七、挑战与未来展望7.1 鲁棒性与泛化能力当前MRC模型在分布内数据上表现出色但对对抗性扰动、领域迁移、低资源语言泛化能力不足。研究因果推理、不变风险最小化等方法提升鲁棒性是重要方向。7.2 可解释性与可信问答尤其在医疗、法律等领域用户不仅需要答案更需要模型给出证据依据和推理过程。可解释MRC要求模型高亮支持答案的文本片段或输出自然语言推理链。7.3 多模态阅读理解现实世界中的文档往往图文并茂。多模态MRC要求模型同时理解文本和图像信息来回答问题如从产品说明书图文、学术论文图表中抽取答案。这需要跨模态对齐与推理能力。7.4 长文本与多文档阅读理解真实应用场景如合同分析、文献综述常涉及数百页的文档。如何高效处理超长上下文、在多文档间进行复杂跳转和冲突消解是工程落地必须解决的难题。Longformer、BigBird等长序列模型已迈出第一步。7.5 持续学习与知识更新世界知识不断演进MRC模型应具备持续学习能力在不遗忘旧知识的前提下吸收新信息。同时模型需能够识别“知识过期”问题并主动检索最新信息。7.6 大模型时代的范式重构以GPT-4为代表的大语言模型正在重新定义MRC用户不再需要精心设计模型架构只需通过提示工程即可完成复杂的阅读理解和推理任务。未来MRC研究的重心可能从“如何设计更好的模型”转向“如何更好地利用和约束大模型”以及“如何构建高质量的检索增强系统以弥补大模型的知识盲区”。八、结语机器阅读理解是检验自然语言理解能力的试金石。从早期基于规则的问答系统到神经网络驱动的抽取式、多选式模型再到今日大语言模型赋能的自由生成问答MRC技术经历了从“匹配”到“理解”从“复述”到“生成”的深刻跃迁。每一种范式都有其独特的应用场景和技术魅力共同推动着智能问答系统向人类水平迈进。尽管取得了令人瞩目的成就但当前的MRC系统在鲁棒性、可解释性、跨模态理解等方面仍与人类存在显著差距。随着预训练模型规模的持续增长和多模态技术的融合发展未来的机器阅读理解系统将更加通用、可靠和智能成为人类获取知识、辅助决策的得力伙伴。参考文献主要工作列举Seo, M., Kembhavi, A., Farhadi, A., Hajishirzi, H. (2017). Bidirectional attention flow for machine comprehension.ICLR.Chen, D., Fisch, A., Weston, J., Bordes, A. (2017). Reading Wikipedia to answer open-domain questions.ACL.Devlin, J., Chang, M. W., Lee, K., Toutanova, K. (2019). BERT: Pre-training of deep bidirectional transformers for language understanding.NAACL.Rajpurkar, P., Zhang, J., Lopyrev, K., Liang, P. (2016). SQuAD: 100,000 questions for machine comprehension of text.EMNLP.Lai, G., Xie, Q., Liu, H., Yang, Y., Hovy, E. (2017). RACE: Large-scale reading comprehension dataset from examinations.EMNLP.Kočiský, T., Schwarz, J., Blunsom, P., Dyer, C., Hermann, K. M., Melis, G., Grefenstette, E. (2018). The NarrativeQA reading comprehension challenge.TACL.See, A., Liu, P. J., Manning, C. D. (2017). Get to the point: Summarization with pointer-generator networks.ACL.Lewis, M., Liu, Y., Goyal, N., Ghazvininejad, M., Mohamed, A., Levy, O., … Zettlemoyer, L. (2020). BART: Denoising sequence-to-sequence pre-training for natural language generation, translation, and comprehension.ACL.Raffel, C., Shazeer, N., Roberts, A., Lee, K., Narang, S., Matena, M., … Liu, P. J. (2020). Exploring the limits of transfer learning with a unified text-to-text transformer.JMLR.Lewis, P., Perez, E., Piktus, A., Petroni, F., Karpukhin, V., Goyal, N., … Kiela, D. (2020). Retrieval-augmented generation for knowledge-intensive NLP tasks.NeurIPS.点击“AladdinEdu你的AI学习实践工作坊”注册即送-H卡级别算力沉浸式云原生集成开发环境80G大显存多卡并行按量弹性计费教育用户更享超低价。

相关文章:

机器阅读理解:抽取式问答、多选问答与自由生成问答

点击 “AladdinEdu,你的AI学习实践工作坊”,注册即送-H卡级别算力,沉浸式云原生集成开发环境,80G大显存多卡并行,按量弹性计费,教育用户更享超低价。 一、引言 让机器阅读并理解人类语言,是人工…...

实时AI视频生成已突破24fps?2026奇点大会现场Demo实测:端侧部署方案、WebGPU加速路径与iOS/Android兼容性避坑指南

第一章:实时AI视频生成已突破24fps?2026奇点大会现场Demo实测:端侧部署方案、WebGPU加速路径与iOS/Android兼容性避坑指南 2026奇点智能技术大会(https://ml-summit.org) 在2026奇点大会主会场A3展台,Luma Labs联合高通与苹果工…...

OBS Studio实战:SRT推流配置全解析与性能优化

1. SRT协议与OBS推流基础认知 第一次接触SRT协议是在去年帮一个电竞战队调试直播系统时。当时他们需要把比赛画面从上海传到洛杉矶的服务器,普通RTMP推流延迟高达3秒,选手操作和海外观众看到的画面完全不同步。换成SRT后延迟直接降到800毫秒以内&#xf…...

多模态旅游推荐到底难在哪?SITS2026团队亲述:97.3%的失败源于这4类跨模态对齐陷阱

第一章:SITS2026案例:多模态旅游推荐 2026奇点智能技术大会(https://ml-summit.org) 场景背景与数据构成 SITS2026(Smart Itinerary and Tourism System 2026)是面向亚太地区游客的下一代旅游推荐系统,融合文本游记、…...

生成式AI应用用户流失率飙升的真正原因:不是模型不准,而是这6个隐性体验缺口未被填补

第一章:生成式AI应用用户体验设计的核心范式转变 2026奇点智能技术大会(https://ml-summit.org) 传统UI/UX设计以“确定性交互”为前提——用户操作触发预设响应,界面状态可穷举、反馈可预测。生成式AI彻底颠覆了这一根基:系统输出具有概率性…...

HTMX 4.0 发布:革新 Web 开发,性能与体验双提升!

更简单的 Web 开发HTMX 长期以来被认为功能已趋于完备,是成功达成宏伟目标且广受赞誉、在生产环境广泛部署的项目。HTMX 2.0 曾被视为最终版本,其创造者承诺不会有 HTMX 3.0。但 HTMX 团队摒弃旧引擎,采用基于 JavaScript 的 Fetch API 的新引…...

如何用 credentials 参数决定 Fetch 是否携带本地的 Cookie

Fetch 请求是否携带 Cookie 由 credentials 参数显式控制,默认为 omit(不发 Cookie)。same-origin 仅同源时发送,include 则始终发送且需服务端配合 CORS 头。Fetch 请求是否携带 Cookie,由 credentials 参数控制。它不…...

JavaScript中字符串toLowerCase与toUpperCase规范

toLowerCase() 和 toUpperCase() 基于 Unicode 简单映射,不考虑 locale;toLocaleLowerCase() 和 toLocaleUpperCase() 支持语言环境,如土耳其语的 ?/i、德语的 ?→SS。JavaScript 中 toLowerCase() 和 toUpperCase() 的行为看似简单&#x…...

2025届必备的五大AI辅助写作神器解析与推荐

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek DeepSeek身为前沿AI模型,能够显著提高论文写作效率。于选题环节,借助…...

专科大二学生的变成学习规划和愿景

自我介绍专科大二学生,主修计算机网络专业,目前处于技术积累与升学准备阶段。对编程充满热情,希望通过系统学习和实践提升技术能力,为未来职业发展或专升本考试打下坚实基础。编程目标以专升本(升学)为核心…...

CSS如何用Less实现多维度的样式复用_结合混合与继承技术实现

真正复用Less混合需参数化条件分支作用域隔离:带默认参数的混合(如.btn-style(color: #007bff))、when条件判断、显式传参避免外部变量污染;extend用于静态语义归类,mixin用于动态样式生成;&表示当前层…...

Pandas GroupBy:将分组数据聚合为列表并赋值到新列

本文详解如何在 Pandas 中对 DataFrame 按多列分组后,将某列(如产品名)聚合为列表(list)或字符串,并正确广播回原始数据——避免 ValueError: Cannot set a DataFrame with multiple columns 等常见错误。 …...

SQL如何筛选出分组记录数大于N的结果_使用HAVING

WHERE用于分组前过滤行,HAVING用于GROUP BY后筛选分组结果;COUNT(*)等聚合值只能在HAVING中使用,WHERE中不可用,且HAVING必须紧跟GROUP BY。WHERE 不能用在分组后筛选,必须用 HAVINGWHERE 是在分组前过滤行&#xff0c…...

z—算法基础:时空复杂度()

背景 在软件开发的漫长旅途中,"构建"这个词往往让人又爱又恨。爱的是,一键点击,代码变成产品,那是程序员最迷人的时刻;恨的是,维护那一堆乱糟糟的构建脚本,简直是噩梦。 在很多项目中…...

vmware各种版本下载链接-github

vmware各种版本下载链接-github官方各种版本,不使用官网,官网的特别慢,去github上面,比较全,下载比较快linux 和window版本https://github.com/201853910/VMwareWorkstation/releases...

图解微积分:用牛顿-莱布尼兹公式打通定积分与不定积分的任督二脉

图解微积分:用牛顿-莱布尼兹公式打通定积分与不定积分的任督二脉 微积分常被称为"数学的语言",而定积分与不定积分则是这门语言中最精妙的两个语法结构。想象一下,当你面对一条蜿蜒的曲线时,不定积分告诉你"这条曲…...

分布式系统中的命名与保护:构建高效安全的命名空间与加密机制

1. 分布式系统中的命名空间设计 第一次接触分布式系统时,最让我头疼的就是命名问题。想象一下,你要在几十台服务器上管理数百万个文件,每个文件可能有多个别名,还要支持跨机器访问——这就像在迷宫般的图书馆里找书,而…...

app自动打电话功能基本实现

...

终极指南:3步实现Figma到AE的无缝设计转换

终极指南:3步实现Figma到AE的无缝设计转换 【免费下载链接】AEUX Editable After Effects layers from Sketch artboards 项目地址: https://gitcode.com/gh_mirrors/ae/AEUX AEUX是一款革命性的设计转动画工具,它能将Figma和Sketch中的设计图层无…...

如何快速解锁AI编程工具完整功能:Cursor Pro激活终极解决方案指南

如何快速解锁AI编程工具完整功能:Cursor Pro激活终极解决方案指南 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reach…...

【SITS2026实战白皮书】:首次公开智能客服多模态落地的7大技术断点与3步闭环优化法

第一章:SITS2026案例:智能客服多模态应用 2026奇点智能技术大会(https://ml-summit.org) SITS2026(Smart Interactive Technical Support 2026)是面向金融与电信行业落地的智能客服标杆项目,其核心突破在于构建端到端…...

深入解析Pintos优先级捐赠机制:从理论到实践

1. 优先级反转问题与捐赠机制 我第一次在Pintos里遇到优先级反转问题时,系统直接卡死了——高优先级线程H等着低优先级线程L释放锁,但L根本抢不到CPU。这种场景就像救护车被堵在卡车后面,而卡车司机正在等红灯。操作系统课程里把这个现象称为…...

Go语言的依赖管理

Go语言的依赖管理 1. 依赖管理的基础概念 1.1 什么是依赖管理 依赖管理是指管理项目依赖的第三方库和模块的过程包括依赖的添加、更新、移除和版本控制确保项目在不同环境中能够正确构建和运行 1.2 Go语言依赖管理的发展 GOPATH模式:早期的依赖管理方式Go Modules&a…...

Doris Catalog实战指南:从创建到多源数据联邦查询

1. Doris Catalog核心概念解析 Doris Catalog是Apache Doris实现多源数据联邦查询的核心组件,简单理解它就像是数据世界的"图书馆管理员"。想象一下,你走进一个巨大的图书馆,里面有来自不同出版社(数据源)的…...

别再自己造轮子了!用大疆Cloud API的MQTT示例项目,快速搞定无人机状态订阅

别再重复造轮子!用大疆Cloud API的MQTT示例项目快速订阅无人机状态 去年接手一个农业巡检项目时,团队花了三周时间逆向解析无人机通信协议。直到发现大疆官方GitHub仓库里那个带着灰尘的MQTT示例项目,我们才意识到自己走了多少弯路——原来只…...

爱毕业aibiye等品牌依托互联网技术,打造了便捷高效的论文辅导解决方案

核心工具对比速览 工具名称 核心优势 适用场景 降重效果 处理速度 aibiye 专业术语保留度高 理工科论文 40%→7% 快速 aicheck 逻辑结构保持好 社科类论文 38%→6% 极快 askpaper 上下文连贯性强 人文类论文 45%→8% 中等 秒篇 多语种支持 外语论文 42%…...

VSCode插件配置避坑:Live Server指定用Chrome打开,别再用默认浏览器了

VSCode开发者必备:Live Server精准调用Chrome的终极配置指南 每次启动Live Server时,Edge或Safari突然跳出来打断你的工作流?这可能是VSCode开发者最恼人的"小问题"之一。想象一下:当你正在调试一个CSS动画,…...

以数字化服务为核心,爱毕业aibiye等机构持续优化用户体验,赢得广泛认可

核心工具对比速览 工具名称 核心优势 适用场景 降重效果 处理速度 aibiye 专业术语保留度高 理工科论文 40%→7% 快速 aicheck 逻辑结构保持好 社科类论文 38%→6% 极快 askpaper 上下文连贯性强 人文类论文 45%→8% 中等 秒篇 多语种支持 外语论文 42%…...

Umi-CUT:三分钟掌握批量图片去黑边的终极解决方案

Umi-CUT:三分钟掌握批量图片去黑边的终极解决方案 【免费下载链接】Umi-CUT 项目地址: https://gitcode.com/gh_mirrors/um/Umi-CUT 在数字内容创作和日常工作中,处理大量图片的黑边、尺寸调整和压缩任务常常耗费大量时间。Umi-CUT是一款开源的批…...

【工业控制系统网络安全系列课程】第2课-工业控制系统的网络安全风险-过程控制漏洞利用(二)典型漏洞利用路径-物理过程影响攻击

【工业控制系统网络安全系列课程】第2课-工业控制系统的网络安全风险-过程控制漏洞利用(二)典型漏洞利用路径-物理过程影响攻击 严正声明 本文章方法和工具只用于学习和交流,严禁使用文章中的方法在未经许可的情况下对生产系统进行方法验证…...