德克萨斯大学奥斯汀分校自然语言处理硕士课程汉化版(第十周) - 自然语言处理应用

自然语言处理应用

  • 1. 问答系统
    • 1.1. 信息检索
    • 1.2. 机器阅读理解
    • 1.3. 多跳问答
  • 2. 对话系统
  • 3. 机器翻译
  • 4. 文本摘要

1. 问答系统

在自然语言处理领域,问答系统(Question Answering,QA)是一个广泛且重要的研究方向,其目的是让计算机根据给定的上下文或者无上下文的情况下,回答用户提出的问题。QA系统广泛应用于搜索引擎、虚拟助手、在线客服等场景。

QA系统可根据各种维度进行分类:

按照输入类型:

  • 开放域问答(Open-Domain QA):回答用户提出的任意问题,通常依赖于庞大的知识库或互联网数据。
  • 封闭域问答(Closed-Domain QA):专注于特定领域的问题,如医学、法律等。

按照上下文:

  • 基于检索的问答(Retrieval-Based QA):从预先定义的文档集中检索并提取答案。
  • 基于生成的问答(Generative QA):直接生成答案,通常依赖于神经网络模型。

一个典型的QA系统通常由以下几个部分组成:

  • 问题分析(Question Analysis):识别问题的类型和关键字,理解用户意图。
  • 文档检索(Document Retrieval):从文档库中检索与问题相关的文档或段落。
  • 段落选择(Passage Selection):从检索到的文档中选择最相关的段落。
  • 答案提取(Answer Extraction)或生成:从选择的段落中提取或生成最终答案。

1.1. 信息检索

信息检索(Information Retrieval, IR)是一个广泛的领域,涉及到从大规模数据集中获取有用信息的过程。信息检索的目标是提供用户所需的信息,它通过分析和组织大规模的数据集(如文本、图像、音频、视频等),使用户能够快速找到所需的信息。文档检索是信息检索的一个子领域,具体指从文本文档集合中找到与用户查询最相关的文档。

文档检索(Document Retrieval, DR)是问答系统中的关键步骤,目的是从大量的文档库中找到与用户问题最相关的文档或段落。文档检索方法的发展从早期的简单关键词匹配到如今的复杂深度学习模型,极大提升了检索性能。

以下是文档检索的一些常用方法:

布尔检索(Boolean Retrieval):使用布尔逻辑(AND、OR、NOT)进行查询。例如,查询 “cat AND dog” 只返回同时包含"cat"和"dog"的文档。优点是简洁、直观,适用于结构化查询。缺点是无法衡量文档的相关性,返回结果较为生硬,用户体验较差。

词频-逆文档频率(TF-IDF):结合词频(TF)和逆文档频率(IDF)来衡量词语的重要性。TF表示某词在文档中的出现频率,IDF表示词语在整个文档库中的普遍程度。优点是相对简单有效,常用于初步检索和特征工程。缺点是忽略了词语的顺序和语义关系。

向量空间模型(Vector Space Model, VSM):将文档和查询表示为向量,以余弦相似度(Cosine Similarity)衡量文档与查询之间的相似度。计算方法是每个词在文档中的TF-IDF值作为向量的一个维度,然后整体作为文档向量表示。优点是较好的捕捉文档和查询的相似度。缺点是仍然忽略了词语的顺序和深层语义关系。

BM25(Best Matching 25):BM25是一种改进的概率检索模型,综合了词频(TF)和文档长度等因素,提供了一种加权检索方式。优点是对文档长度和词频进行了异常处理,提高了匹配精度。缺点是仍然依赖关键词匹配,对语义信息的捕捉较弱。
BM25 ( q , D ) = ∑ i = 1 n IDF ( q i ) ⋅ f ( q i , D ) ⋅ ( k 1 + 1 ) f ( q i , D ) + k 1 ⋅ ( 1 − b + b ⋅ ∣ D ∣ avgdl ) \text{BM25}(q, D) = \sum_{i=1}^{n} \text{IDF}(q_i) \cdot \frac{f(q_i, D) \cdot (k_1 + 1)}{f(q_i, D) + k_1 \cdot (1 - b + b \cdot \frac{|D|}{\text{avgdl}})} BM25(q,D)=i=1nIDF(qi)f(qi,D)+k1(1b+bavgdlD)f(qi,D)(k1+1)

神经信息检索(Neural Information Retrieval):利用深度学习方法,捕捉文档和查询的深层语义关系。常用模型有,DSSM(Deep Structured Semantic Model)采用深度网络分别将查询和文档表示为向量,然后计算它们之间的相似度。DRMM(Deep Relevance Matching Model)专注于局部匹配信息,逐级捕捉匹配的细节。

基于预训练语言模型的检索方法,以BERT为例,BERT预训练模型捕捉了深层次的语义信息。一种方法是直接BERT语义搜索,使用BERT将文档和查询转化为嵌入向量,通过计算向量相似度进行检索。还有一种方法是二阶段检索(Re-Ranking),第一阶段使用传统检索方法如BM25,第二阶段使用BERT进行文档重排序。优点是捕捉到更丰富的语义信息,提升检索精度。缺点是计算复杂度较高,查询时间较长。

1.2. 机器阅读理解

答案提取是问答系统中的关键步骤,其目的是从检索到的文档或段落中识别并提取出能够回答用户问题的具体答案。答案提取的方法主要分为提取式(Extractive)和生成式(Generative)两大类。生成式方法在大模型之前效果有限,在大模型之后就成了核心了,以至于名字都已生成为核心了,就是大模型时代的检索增强生成(Retrieval Augmented Generation)。因此以下主要介绍抽取式答案提取,即机器阅读理解(Machine Reading Comprehension, MRC)。

传统方法包括:规则和模板匹配,基于事先定义的规则和模板识别答案。例如,通过正则表达式匹配日期、数字、实体等。基于词汇重叠和相似度计算:通过计算问题和文本中的词汇重叠度或相似度进行答案提取,典型方法包括TF-IDF、BM25等。

深度学习方法有:指针网络(Pointer Networks)通过端到端的神经网络直接从文本中选择答案的起始和结束位置。例如BiDAF(Bidirectional Attention Flow)模型。跨度提取(Span Extraction)使用模型预测文本中的一个连续片段作为答案。例如SQuAD数据集中广泛应用的模型。

预训练语言模型方法以BERT为例,BERT通过预训练的大规模语言模型,编码问题和文本的复杂语义关系,从而高效地进行答案提取。这类方法在各种公开QA数据集上表现优越,大大提升了答案提取的准确性。BERT的答案提取过程:

  1. 输入处理:将问题和文本拼接,并添加特殊标记([CLS]、[SEP])。
  2. 编码表示:使用BERT模型将整个输入序列编码为高维向量表示。
  3. 位置预测:在编码表示的基础上,直接预测答案的起始和结束位置。

1.3. 多跳问答

多跳问答(Multi-hop Question Answering, Multi-hop QA)是一种高级问答任务,它要求系统在不同的文档或文本片段之间进行信息整合,以回答复杂的、需要多步推理的问题。与单一文档或单步问答(单跳问答)相比,多跳问答要求系统能够处理更复杂的推理链条,正确理解和关联多个相关信息源。

多跳问答指的是这样一种情况:一个问题无法单靠一个文档或段落中的信息回答出来,而需要从多个文档或多个文本片段中提取和整合信息。例如,问“马云的公司创建于哪一年?”,可能需要从两个文档中分别找到“马云是阿里巴巴的创始人”和“阿里巴巴创建于1999年”,然后结合起来回答问题。再比如,问题:“莎士比亚的出生地和哥伦布发现新大陆的年份相差多少年?”需要的信息:1. 莎士比亚的出生年份(1564年)2. 哥伦布发现新大陆的年份(1492年)。最终回答:(1564-1492)= 72年

多跳问答的挑战:

  • 综合推理:需要跨越多段文本进行推演和整合,要求系统具备强大的逻辑推理能力。
  • 信息检索:需要从大量文档中正确识别和筛选相关段落,确保信息的完整和相关。
  • 词语消歧和指代消解:处理同一实体的不同词汇表达方式,以及解决代词如“他”、“她”等的指代问题。
  • 信息冗余:不相关的信息可能干扰答案的提取和推理,需要过滤掉无关数据。

多跳问答系统通常由多个模块组成,每个模块完成特定的任务。典型的系统架构包括以下步骤:

  1. 问题分析(Question Analysis):解析问题类型,确定问题的类型,如时间、位置、数量等。关键词提取,抽取关键实体和关系词。
  2. 文档检索(Document Retrieval):初步检索,使用传统检索方法如倒排索引、BM25等,快速从大量文档中筛选出初步相关的文档或文本片段。层级检索,根据初步筛选出的结果,进行更细致的文档过滤和排序。
  3. 段落选择(Passage Selection):段落评分,通过关键词匹配和语义相似度计算,对文档中的段落进行排名,选择最相关的多个段落。跨文档关联,识别和连接不同文档中相关联的信息片段。
  4. 多跳推理(Multi-hop Reasoning):利用图神经网络(Graph Neural Networks, GNN)构建一个知识图谱,节点代表实体或概念,边代表它们之间的关系,通过图结构进行多跳推理。或者利用记忆网络(Memory Networks),记录中间步骤或已知信息,通过多层记忆进行推理。还可以使用强化学习(Reinforcement Learning, RL),通过学习合理的多跳路径,从而优化推理过程。
  5. 答案抽取(Answer Extraction):综合分析结合多个片段的信息,进行逻辑推理,提取最终答案。最终进行答案整合,验证和整合多跳推理的结果,生成最终答案。
  • 问答系统相关研究

MCTest: A Challenge Dataset for the Open-Domain Machine Comprehension of Text

SQuAD: 100,000+ Questions for Machine Comprehension of Text

Adversarial Examples for Evaluating Reading Comprehension Systems

Reading Wikipedia to Answer Open-Domain Questions

Latent Retrieval for Weakly Supervised Open Domain Question Answering

Natural Questions

HotpotQA: A Dataset for Diverse, Explainable Multi-hop Question Answering

Understanding Dataset Design Choices for Multi-hop Reasoning

Learning to Retrieve Reasoning Paths over Wikipedia Graph for Question Answering

2. 对话系统

自然语言处理中的对话系统(Dialogue Systems)或者聊天机器人(Chatbots)是能够与人类进行自然语言交互的计算机程序。它们可以用于多种场景,如智能客服、信息查询、虚拟助手等。

对话系统分类:

  1. 任务导向型对话系统(Task-Oriented Dialogue Systems):目的是帮助用户完成特定任务,如预订酒店、查询天气、在线购物等。其特点是往往具有明确的对话结构和目标,受限于预定义的任务范围。
  2. 开放域聊天机器人(Open-Domain Chatbots):目的是进行开放领域的自由对话,没有特定任务或目标。其特点是对话范围广泛,回答多样,有更高的创造性和灵活性。

一个典型的对话系统通常包括以下几个主要组件:

  1. 自然语言理解(Natural Language Understanding, NLU)
  • 意图识别(Intent Recognition):识别用户的意图或需求,如查询、请求、命令等。
  • 槽位填充(Slot Filling):提取用户话语中的关键信息或参数,如时间、地点、数量等。
  • 实体识别(Named Entity Recognition, NER):识别出特定的实体,如人名、地名等。
  1. 对话管理(Dialogue Management, DM)
  • 状态追踪(State Tracking):维护和跟踪当前对话的状态和上下文。一般是通过状态机、记忆网络等存储和更新对话状态。
  • 策略管理(Policy Management):确定系统在当前对话状态下应采取的动作或响应策略。常见实现有规则导向(Rule-Based),基于预定义的对话规则和逻辑。以及机器学习导向(Machine Learning-Based),通过强化学习(如DQN、策略梯度法)优化响应策略。
  • 动作选择(Action Selection):确定具体的系统动作(如查询数据库、请求更多信息、生成响应等)。根据策略管理结果,选择最适合的动作。
  1. 自然语言生成(Natural Language Generation, NLG)
  • 自然语言生成方法有模板生成(使用预定义的模板生成响应)和数据驱动生成(通过机器学习和深度学习模型生成响应)。
  1. 其他组件:知识库(Knowledge Base, KB)
  • 存储与对话相关的领域知识和数据,如FAQ、知识图谱、数据库等。

常见的开源工具和框架:

  • Rasa:特点是开源框架,支持NLU、对话管理和NLG。功能是可用于构建任务导向型和开放域对话系统。
  • Microsoft Bot Framework:特点是支持多种对话管理策略和多语言能力,集成广泛的第三方工具和服务。功能是提供丰富的API和工具,支持跨平台应用开发。
  • Google Dialogflow:特点是基于Google云平台,易于使用,支持多语言对话。功能是支持任务导向型对话系统的快速构建和部署。

早期的对话机器人是自然语言处理(NLP)的重要里程碑,这些系统虽然在技术上相对简单,但为现代智能聊天机器人和对话系统奠定了基础。

ELIZA由麻省理工学院的约瑟夫·温森鲍姆在1966年开发,工作原理主要是基于简单的模式匹配和替换规则进行对话。最著名的脚本是模仿罗杰斯心理疗法,这种对话模式常通过反复问用户问题来促进用户的自我表达。

示例对话

用户:我很不开心。
ELIZA:你为什么不开心?

特点

  • 规则驱动:使用一组预定义的规则和简单的正则表达式进行模式匹配。
  • 限制对话范围:通过将用户的话语与预定义模式匹配,反应一般较为表面。
  • 无理解能力:ELIZA并没有真正理解用户的输入,只是机械地进行匹配和响应。

PARRY由斯坦福大学的肯尼斯·科尔比在1972年开发的,工作原理是使用一组逻辑规则和推理机制来生成对话。PARRY被设计成模仿偏执型精神分裂症患者的思维和行为。

示例对话

用户:你认为有人在跟踪你吗?
PARRY:是的,我感觉很多人都在监视我。

特点

  • 心理模型:PARRY有一个简化的心理模型,可以通过特定的逻辑和推理规则模拟精神分裂症患者的对话模式。
  • 推理机制:不像ELIZA简单的模式匹配,PARRY可以基于一定的推理机制生成响应。
  • 更具一致性:相比ELIZA,PARRY在特定场景下的对话更加一致和连贯。

Racter由多伦多大学的William Chamberlain和Thomas Etter在1984年开发的,工作原理主要是使用简单的句法结构来生成句子,尝试模拟人类逻辑。Racter基于预定义的文法规则和词汇生成文本。

示例对话

用户:你好,Racter。
Racter:你好,我是Racter,你今天感觉怎么样?

特点

  • 生成文本:Racter可以生成较为复杂的文本,包括诗歌和短文。
  • 有限理解:尽管文本生成较为复杂,但并不真正理解上下文或语义。
  • 对话系统相关研究

Wizard of Wikipedia: Knowledge-Powered Conversational agents

Task-Oriented Dialogue as Dataflow Synthesis

A Neural Network Approach to Context-Sensitive Generation of Conversational Responses

A Diversity-Promoting Objective Function for Neural Conversation Models

Recipes for building an open-domain chatbot

3. 机器翻译

机器翻译(Machine Translation, MT)是自然语言处理中的一个重要领域,旨在利用计算机自动将一种语言的文本翻译成另一种语言。经过多年的研究和发展,机器翻译经历了几个重要的阶段,从最初的规则基础方法到如今的深度学习模型。

  1. 基于规则的方法(Rule-Based Machine Translation, RBMT):在机器翻译的早期阶段,翻译系统主要依赖于大量的语言学规则和词典。这些系统手动构建规则来解析源语言(source language)文本并生成目标语言(target language)的译文。

特点:

  • 需要大量的人力资源来构建和维护语言规则。
  • 对特定领域、特定语言对的翻译效果较好。
  • 可解释性强,但难以扩展和适应新的语言对。

基于统计的方法(Statistical Machine Translation, SMT):在20世纪90年代和21世纪初,统计机器翻译成为主流。SMT利用统计模型来自动学习源语言和目标语言之间的翻译规则,通常基于大量的平行文本(Parallel Corpora)。

核心技术:

  • 词对齐(Word Alignment): 确定源语言和目标语言词语之间的对应关系。
  • 语言模型(Language Model): 确定目标语言文本的流利度。
  • 翻译模型(Translation Model): 通过最大化译文的概率生成最佳翻译。

优点:

  • 通过数据驱动方法减少了对手动规则的依赖。
  • 能够处理不同的语言对和领域。

缺点:

  • 对数据质量和数量有较高要求。
  • 翻译结果有时不够自然和连贯。

基于神经网络的方法(Neural Machine Translation, NMT):进入2010年代,深度学习技术的兴起带来了神经机器翻译的大发展。NMT通过训练神经网络来自动完成翻译任务,取得了显著的进展。

核心技术:

  • 序列到序列(Sequence-to-Sequence, Seq2Seq)模型:包括编码器(Encoder)和解码器(Decoder),初期模型采用了RNN(循环神经网络)架构。
  • 注意力机制(Attention Mechanism): 提高了长句子翻译的效果,通过选择性关注源语言句子的不同部分,提高了翻译的质量。
  • 变换器(Transformer)模型: 使用自注意力机制和并行化计算,极大地提升了翻译效率和质量。Transformer发表的论文《Attention is All You Need》成为该领域的里程碑。

优点:

  • 能够生成更加自然和流畅的译文。
  • 减少了对特定领域和语言对的依赖,具有良好的泛化能力。

著名系统:

  • Google翻译(Google Translate):采用了先进的NMT技术,支持多种语言的高质量翻译。
  • DeepL:被认为在某些语言对上比Google翻译效果更佳。

近期发展

  • 多语言模型(Multilingual Models):如Facebook的M2M-100,不需要单独训练每个语言对,可以处理多种语言对的翻译。
  • 大规模预训练模型(Pre-trained Models): 如OpenAI的GPT-3和Google的T5,通过大规模预训练提高了机器翻译的能力。

随着计算能力和算法的进一步发展,机器翻译将在以下几个方面继续提升:

  • 质量和流畅度:提高更加自然和准确的翻译质量。
  • 低资源语言:改善对那些数据量较少语言的翻译效果。
  • 实时翻译:提高实时翻译系统的速度和准确性。
  • 跨模态翻译:结合图像、语音等多模态的信息进行翻译。
  • 机器翻译相关研究

HMM-Based Word Alignment in Statistical Translation

Pharaoh: a beam search decoder for phrase-based statistical machine translation models

Minimum Error Rate Training in Statistical Machine Translation

Revisiting Low-Resource Neural Machine Translation: A Case Study

In Neural Machine Translation, What Does Transfer Learning Transfer?

Multilingual Denoising Pre-training for Neural Machine Translation

Large Language Models Are State-of-the-Art Evaluators of Translation Quality

4. 文本摘要

文本摘要(Text Summarization)是自然语言处理中的一个重要任务,旨在自动生成简洁明了的摘要,从而概括出原始文本的主要内容。文本摘要技术主要分为两大类:抽取式摘要(Extractive Summarization)和生成式摘要(Abstractive Summarization)。

抽取式摘要通过选择和提取原文中的关键句子或段落生成摘要,而不改变原文的文字顺序和表述方式。

核心技术:

  • 词频统计(Term Frequency, TF):通过统计词频来判断句子的权重。
  • TF-IDF(Term Frequency-Inverse Document Frequency):结合词频与逆文档频率,衡量词语在文档中的重要性。
  • 图模型(Graph-based Models):如TextRank算法,利用图结构表示句子之间的关系,通过迭代计算句子的重要性。
  • 特征工程与机器学习:通过设计多种特征(如句子位置、词袋模型、句子长度等),训练分类器来选取重要句子。

优点:

  • 简单易实现,对资源没有过高要求。
  • 保持原文的句子结构,减少语法错误。

缺点:

  • 难以生成自然流畅的摘要。
  • 无法重构和压缩信息,只能准确抽取。

生成式摘要通过理解原文并生成新的语句,从而用简洁的语言概括出原文的核心内容。

核心技术:

  • 基于规则和模板的方法: 早期的方法依赖预定义的规则和模板,但适用性较差,泛化能力弱。
  • 序列到序列模型:是生成式摘要的基础,初期基于LSTM(长短期记忆网络)和GRU(门控循环单元)。
  • 注意力机制:改进了Seq2Seq模型,能够动态关注输入文本的不同部分,提高了生成质量。
  • 变换器(Transformer)模型: 利用自注意力机制并行计算,大大提升了性能和生成效果,如BERT、GPT、T5等。
  • 预训练语言模型:BERT,GPT,T5

优点:

  • 能生成更加自然和连贯的摘要。
  • 可以合成和压缩信息,更加灵活和智能。

缺点:

  • 生成结果偶尔会出现不一致或信息遗漏。
  • 计算资源要求较高,训练过程复杂。

随着深度学习和预训练语言模型的发展,文本摘要技术取得了显著进步。近年来的研究趋势和方向包括:

  • 多模态摘要(Multimodal Summarization):结合文本、图片、视频等多模态信息生成摘要。
  • 跨语言摘要(Cross-lingual Summarization):支持不同语言间的摘要生成。
  • 人机交互优化(Human-in-the-loop Optimization):结合人工反馈持续优化摘要生成系统。
  • 无监督学习(Unsupervised Learning):f减少对标注数据的依赖,通过自监督或弱监督方法提升模型性能。

文本摘要技术在新闻、社交媒体、法律、医学等领域有着广泛的应用前景。未来的发展可能集中在:

  • 提高摘要的可靠性和多样性。
  • 处理低资源语言和跨领域数据。
  • 缩短训练时间和减少计算资源需求。
  • 增强摘要的解释性和用户控制能力。
  • 文本摘要相关研究

The use of MMR, diversity-based reranking for reordering documents and producing summaries

LexRank: Graph-based Lexical Centrality as Salience in Text Summarization

A Scalable Global Model for Summarization

Revisiting the Centroid-based Method: A Strong Baseline for Multi-Document Summarization

BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension

PEGASUS: Pre-training with Extracted Gap-sentences for Abstractive Summarization

Evaluating Factuality in Generation with Dependency-level Entailment

Asking and Answering Questions to Evaluate the Factual Consistency of Summaries

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/27825.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity3D TextMeshPro组件使用及优化详解

在Unity3D游戏开发中,文本渲染是一个不可或缺的部分。而TextMeshPro作为Unity的一个插件,提供了更高质量、更灵活的文本渲染功能,为开发者带来了极大的便利。本文将详细介绍TextMeshPro组件的使用技巧以及优化方法,并通过代码实例…

红队攻防渗透技术实战流程:组件安全:JacksonFastJsonXStream

红队攻防渗透实战 1. 组件安全1.1 J2EE-组件Jackson-本地demo&CVE1.1.1 代码执行 (CVE-2020-8840)1.1.2 代码执行(CVE-2020-35728)1.2 J2EE-组件FastJson-本地demo&CVE1.2.1 FastJson <= 1.2.241.2.2 FastJson <= 1.2.471.2.3 FastJson <= 1.2.801.3 J2EE-组…

帕金森病的食疗建议

帕金森病&#xff08;PD&#xff09;是一种慢性、进展性的神经退行性疾病&#xff0c;主要影响中老年人。虽然目前尚无法根治&#xff0c;但及早规范治疗可显著改善症状&#xff0c;提高患者的生活质量。饮食调理作为帕金森病综合治疗的重要组成部分&#xff0c;对于维持患者较…

jQuery中.text() 和 .val()辨析

在jQuery中&#xff0c;.text() 和 .val() 是两个用于操作DOM元素内容的常用方法&#xff0c;但它们有不同的用途和适用的元素类型。 .text() .text() 方法用于获取或设置匹配元素的文本内容。适用于以下元素&#xff1a; 普通HTML元素&#xff08;如<div>&#xff0c…

接口测试详解

接口测试详解 本文主要讲软件接口 一、什么是接口&#xff1f;硬件接口&#xff1a;硬件接口指的是硬件提供给外界的一种实体。主要作用是内部数据分离出外 部的沟通方法 目的是&#xff1a;沟通外部来改变内部的数据。如&#xff1a;USB接口&#xff0c;投影仪接口 软件接口…

速盾:linux防止ddos攻击

Linux作为一种开源操作系统&#xff0c;被广泛应用于服务器和网络设备中。然而&#xff0c;正因为其广泛使用&#xff0c;Linux服务器经常成为黑客和攻击者的目标。DDoS&#xff08;分布式拒绝服务&#xff09;攻击是一种常见的攻击方式&#xff0c;旨在通过大量恶意流量淹没目…

【CDN】逆天 CDN !BootCDN 向 JS 文件中植入恶意代码

今天在调试代码&#xff0c;突然控制台出现了非常多报错。 这非常可疑&#xff0c;报错指向的域名也证实了这一点。 因为我的 HTML 中只有一个外部开源库&#xff08;qrcode.min.js&#xff09;&#xff0c;因此只有可能是它出现了问题。 我翻看了请求记录&#xff0c;发现这…

Java -jar 运行 报 MalformedInputException: Input length = 1

Intellij IDEA 中运行正常&#xff0c;linux 运行正常&#xff0c; cmd 下运行 报&#xff1a;MalformedInputException: Input length 1 微服务项目&#xff0c;在Nacos中做了配置&#xff0c;在引用 Nacos中配置时&#xff0c;编码问题&#xff0c;导致的错误 org.yaml.sna…

【无线感知】【P3】无线感知手势识别-Ubicomp2022论文分享

前言&#xff1a; 本篇主要关于手势识别的方向的,主要参考 北京大学-《无线感知手势识别-Ubicomp2022论文分享》 目录&#xff1a; 技术背景 主要问题&#xff08;异质性问题&#xff09; 感知模型 EDP DPSense 实现效果 一 技术背景 基于WIFI的手势识别在智能家具,以…

遍历指定文件夹及其所有子文件夹目录,统计每种文件后缀的数量,并打印出来 python 代码

搜索所有层级的文件夹并统计每种文件后缀类型的数量,你可以使用 os 模块来递归地遍历文件夹,并使用 glob 模块来匹配文件。下面是一个示例代码,它将遍历指定目录及其所有子目录,并统计每种文件后缀的数量: import os import globdef count_file_extensions(directory):# 初…

前端BUG记录-a-spin和a-pagination

一、使用a-spin时&#xff0c;把你需要绘制样式的盒子要放在里面 <a-spin :spinning"loading"><div class"scrollable-div"></div> </a-spin> 不然样式容易效果不正确 二、a-pagination切换到第二页无效 给分页所在盒子设置ma…

Playbook角色

目录 1. 角色的目录结构 各个目录和文件的作用 2. 创建和使用角色 创建角色 使用角色 示例角色 3. 角色的优势 在Ansible中&#xff0c;角色&#xff08;Roles&#xff09;是一种高级的结构化方式&#xff0c;它允许将可重用的模块、组件以及配置整理和封装起来。角色的…

Rust 异步 trait 的实现困难

在 Rust 中&#xff0c;异步编程是使用 async/await 语法来实现的。与传统的同步编程不同&#xff0c;异步编程涉及到的特性较多&#xff0c;其中一个重要的特性是异步 trait。 异步 trait 是具有异步方法的 trait。在 Rust 中&#xff0c;trait 方法默认是同步的&#xff0c;…

ShardingSphere-proxy添加自定义分片规则(踩坑日记)

文章目录 一、新建spring boot项目二、编写代码(1) 新建一个类(2) doSharding方法详解(3) 实际例子 三、增加spi文件&#xff08;很关键&#xff09;四、打包五、把生成的文件放到ext-lib中六、yaml配置&#xff08;怎么用&#xff09;七、测试 版本环境 mysql 5.7.40 sharding…

英语复习之英语同音词总结(六)

之前的五个部分是总结的形近词&#xff0c;接下来开始总结同音词。 单词 (发音) 释义 例句 sight [saɪt] n. 视力&#xff1b;视野&#xff1b;景象 1. She has perfect sight. (她视力很好。) 2. The view from the top of the mountain is a breathtaking sight. (从山…

湘潭大学信息与网络安全复习笔记2(总览)

前面的实验和作业反正已经结束了&#xff0c;现在就是集中火力把剩下的内容复习一遍&#xff0c;这一篇博客的内容主要是参考教学大纲和教学日历 文章目录 教学日历教学大纲 教学日历 总共 12 次课&#xff0c;第一次课是概述&#xff0c;第二次和第三次课是密码学基础&#x…

[渗透测试学习] Runner-HackTheBox

Runner-HackTheBox 信息搜集 nmap扫描端口 nmap -sV -v 10.10.11.13扫描结果如下 PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.6 (Ubuntu Linux; protocol 2.0) 80/tcp open http nginx 1.18.0 (Ubuntu) 8000…

严格锁和乐观锁

严格锁和乐观锁 严格锁 含义&#xff1a; 当一个开发者正在编辑某个文件时&#xff0c;其他开发者将无法同时对该文件进行编辑。确保在某一时刻只有一个开发者能够访问和修改该文件严格锁机制通常用于那些需要高度一致性和准确性的场景&#xff0c;例如配置文件、数据库脚本…

中小制造业工厂要不要上MES系统

MES系统的主要功能包括制造数据管理、计划排产管理、生产调度管理、库存管理、质量管理、人力资源管理、工作中心/设备管理、工具工装管理、采购管理、成本管理、项目看板管理、生产过程控制、底层数据集成分析、上层数据集成分解等。通过这些模块&#xff0c;MES为企业打造一个…

mysql容器问题mbind: Operation not permitted

我使用阿里云的服务器用docker创建一个mysql容器时&#xff0c;本来运行着好好的&#xff0c;突然容器就停掉了&#xff0c;上线查看MySQL容器日志&#xff0c;显示 2024-06-08 18:25:4008:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.27-1debian10 start…