NLP的奥秘:用 Python 揭秘人类语言与人工智能的桥梁【6000 字长文含代码示例】

news2025/2/6 17:00:21

目录

NLP 的核心任务

NLP 的发展历史

NLP 的技术与方法

传统的 NLP 技术与方法

规则基础方法:语言学的智慧

统计学习方法:数据的力量

深度学习方法:人工智能的新浪潮

NLP 的应用领域

Python在 NLP 中的应用

1、NLTK (Natural Language Toolkit)

2、spaCy

3、TextBlob

4、Gensim

5、Pattern

6、StanfordNLP

7、AllenNLP

8、其他

NLP 的挑战

NLP 的未来展望


自然语言处理(NLP)是一门交叉学科,它结合了计算机科学、人工智能和语言学的理论与技术,旨在使计算机能够理解、解释、生成和响应人类语言的内容。NLP 的目标是实现人机交互的自然化,让机器能够像人类一样处理和理解语言。仅用这一篇文章将带您深入了解 NLP 的世界,探索它的核心任务、技术、应用、Python 库实现、挑战以及未来趋势。

NLP 的核心任务

NLP 涵盖了许多任务,旨在让计算机能够像人类一样处理语言。以下是几个主要的 NLP 任务:

NLP 的发展历史

NLP 的发展历程可以追溯到 20 世纪 50 年代,经历了多个重要的阶段:

  • 规则基础方法 (1950s - 1980s):早期 NLP 系统主要依赖于语言学家制定的规则来处理语言。

  • 统计学习方法 (1980s - 2010s):随着机器学习技术的兴起,统计学习方法开始在 NLP 领域占据主导地位。

  • 深度学习方法 (2010s - 至今):深度学习技术的突破为 NLP 带来了革命性的变化,取得了显著的成果。

NLP 的技术与方法

  • 分词(Tokenization):将文本分割成句子、单词或其他可识别的语言单位。

  • 词性标注(Part-of-Speech Tagging):识别文本中每个单词的词性(名词、动词、形容词等)。

  • 句法分析(Parsing):分析句子的语法结构,确定词语之间的关系。

  • 语义分析(Semantic Analysis):理解句子或文本的意义,包括词义消歧和句子意义理解。

  • 实体识别(Named Entity Recognition, NER):识别文本中的特定实体,如人名、地点、组织名等。

  • 情感分析(Sentiment Analysis):判断文本表达的情感倾向,如正面、负面或中性。

  • 机器翻译(Machine Translation):将一种自然语言文本自动翻译成另一种语言。

  • 文本生成(Text Generation):自动生成新闻文章、故事、诗歌等文本内容。

  • 问答系统(Question Answering):根据用户的问题从大量文本中找到或生成答案。

  • 语音识别(Speech Recognition):将人类的语音转换成文本。

  • 文本摘要(Text Summarization):自动创建文本的简短摘要,保留关键信息。

传统的 NLP 技术与方法

自然语言处理的技术发展经历了漫长的历程,从早期的规则基础方法,到统计学习方法,再到如今的深度学习方法,每一次技术的进步都推动着 NLP 领域向前迈进。

规则基础方法:语言学的智慧

在 NLP 的早期阶段,语言学家扮演着重要的角色。他们通过分析语言结构和语法规则,制定出一套套规则,指导计算机如何处理语言。这些规则通常以 if-then 的形式存在,例如:

    • 如果 一个词以“ing”结尾,那么 它很可能是一个动词。

    • 如果 一个词后面跟着一个名词,那么 它很可能是一个形容词。

规则基础方法的优点是易于理解和解释,但缺点也很明显:

    • 规则制定困难: 语言规则复杂多样,很难穷尽所有情况。

    • 难以处理歧义: 规则难以处理自然语言中普遍存在的歧义现象。

    • 缺乏泛化能力: 规则难以适应不同的语言和领域。

    • 优点: 易于理解和解释。

    • 缺点:

    • 制定规则困难,难以覆盖所有语言现象。

    • 难以处理歧义。

    • 缺乏泛化能力,难以适应不同的语言和领域。

统计学习方法:数据的力量

随着计算机技术的进步和文本数据的爆炸式增长,统计学习方法开始在 NLP 领域占据主导地位。这些方法利用机器学习算法,从大量的文本数据中学习语言模式,并构建统计模型进行预测。常见的统计学习方法包括:

  • 常用的方法

    • 隐马尔可夫模型 (HMM)

    • 用于词性标注、语音识别等任务。

    • 支持向量机 (SVM)

    • 用于文本分类、情感分析等任务。

    • 最大熵模型 (MaxEnt)

    • 用于机器翻译、文本摘要等任务。

  • 优点:

    • 可以处理大规模数据。

    • 自动学习语言模式。

  • 缺点:

    • 需要大量的标注数据进行训练。

    • 模型的可解释性较差。

统计学习方法的优点是可以处理大规模数据,并自动学习语言模式,但缺点是需要大量的标注数据进行训练,而且模型的可解释性较差。

深度学习方法:人工智能的新浪潮

近年来,深度学习技术的兴起为 NLP 领域带来了革命性的变化。深度神经网络,特别是循环神经网络(RNNs)和 Transformer 模型,在 NLP 各项任务中取得了显著的成果。这些模型能够学习复杂的语言特征,并进行更准确的预测。

  • 常用的模型

    • 循环神经网络 (RNNs)

    • 擅长处理序列数据,例如文本和语音。

    • 长短期记忆网络 (LSTMs)

    • 一种特殊的 RNN,能够解决 RNN 的梯度消失问题。

    • Transformer 模型

    • 基于注意力机制,能够更好地捕捉句子中单词之间的关系。

  • 优点:

    • 能够处理复杂的语言现象。

    • 取得更高的准确率。

  • 缺点:

    • 需要大量的计算资源进行训练。

    • 模型的可解释性更差。

深度学习方法的优点是能够处理复杂的语言现象,并取得更高的准确率,但缺点是需要大量的计算资源进行训练,而且模型的可解释性更差。

NLP 的应用领域

NLP 应用广泛,影响着我们生活的方方面面:

  • 搜索引擎: 提高搜索结果的相关性和精确度。

  • 推荐系统: 根据用户喜好提供个性化推荐。

  • 社交媒体监控: 分析用户情绪和社会舆论。

  • 语音助手: 例如 Siri、Google Assistant 和 Alexa。

  • 自动摘要: 生成文档的简短摘要。

  • 客户服务: 通过聊天机器人自动化客户支持。

Python在 NLP 中的应用

Python 是NLP领域最受欢迎的编程语言之一,得益于其丰富的库支持。以下是几个流行的 Python 库及其示例,它们被广泛用于NLP任务:

如下代码中对于一下数据、模型等只需要下载一次,后期实现时,代码中可以追加判断实现只加载一次

1、NLTK (Natural Language Toolkit)

NLTK (Natural Language Toolkit) 是一个领先的平台,用于构建Python程序以处理人类语言数据。它提供了简单易用的接口,以及丰富的库和工具,用于处理文本的各个方面,从基本的操作到复杂的文本分析。NLTK是自然语言处理领域中最早期和最知名的Python库之一。

以下是NLTK的一些主要特点:

  1. 丰富的功能:
    NLTK包含文本处理的各个方面,包括词性标注、命名实体识别、句法分析、语义推理等。

  2. 教育资源:
    NLTK伴随着一本广受欢迎的书籍《Natural Language Processing with Python》,这本书提供了大量的教程和指导,非常适合初学者学习NLP的基础知识。

  3. 强大的社区:
    由于NLTK已经存在了很长时间,它拥有一个庞大的用户和贡献者社区,这意味着网络上有大量的教程、讨论和第三方扩展。

  4. 数据集和资源:
    NLTK提供了许多内置的文本数据集和资源,这些资源对于教学和研究都非常有用。

  5. 可扩展性:
    虽然NLTK自身包含了许多功能,但它也设计得易于扩展,可以与其他NLP和机器学习库一起使用。

  6. 适合原型开发:
    NLTK非常适合进行快速原型开发和教学目的,但在生产环境中,由于性能和可伸缩性的考虑,开发者可能会选择更高效的库,如spaCy。

NLTK的主要缺点是它的速度和效率不如一些新的库,如spaCy,而且它的一些功能可能不如这些新库那么先进或精确。然而,对于教育和研究目的,NLTK仍然是一个非常有价值的资源。

安装

pip install nltk

示例代码

import nltk
from nltk.tokenize import word_tokenize

# 下载NLTK数据(仅首次使用需要)
nltk.download('punkt')

# 分词示例
text = "This is a sentence."
tokens = nltk.word_tokenize(text)
# 输出:['This', 'is', 'a', 'sentence', '.']
print("分词示例", tokens)


# 下载 NLTK 数据(仅首次使用需要)
nltk.download('averaged_perceptron_tagger')
# 词性标注示例
tagged_tokens = nltk.pos_tag(tokens)
# 输出:[('This', 'DT'), ('is', 'VBZ'), ('a', 'DT'), ('sentence', 'NN'), ('.', '.')]
print("词性标注示例", tagged_tokens)

"""解释
'This' 的词性是 'DT'(determiner,限定词)
'is' 的词性是 'VBZ'(verb,singular present,现在时的单数形式)
'a' 的词性是 'DT'(determiner,限定词)
'sentence' 的词性是 'NN'(noun,singular or mass,名词,单数或集合名词)
'.' 的词性是 '.'( punctuation mark,标点符号)

例如,
'This' 是一个限定词,用来限定后面的名词,表明它所指的对象。
'is' 是一个动词,在这里是第三人称单数形式,表示存在。
'a' 也是一个限定词,用来修饰后面的名词 'sentence',表明它所指的对象。
'sentence' 是一个名词,表示一个句子。
'.' 是一个标点符号,表示句子的结束。

词性标注是自然语言处理中的一项基础工作,它有助于计算机理解和解释文本。
"""

2、spaCy

spaCy是一个开源的高性能自然语言处理库,专注于执行常见的NLP任务,如词性标注、命名实体识别、依存句法分析等。它的设计目标是高效且易于使用,提供了预训练的模型和词向量,并且支持多种语言。

安装

pip install spacy

示例代码

import spacy

# 下载spacy en_core_web_sm 模型(仅首次使用需要)
spacy.cli.download("en_core_web_sm")

# 加载英文模型
nlp = spacy.load("en_core_web_sm")


text = "Apple is looking at buying U.K. startup for $1 billion"
doc = nlp(text)

# 命名实体识别示例
print("命名实体识别结果:")
for ent in doc.ents:
    print(ent.text, ent.label_)  # 输出:Apple ORG, U.K. GPE, $1 billion MONEY

# 分词、词性标注示例
print("分词和词性标注结果:")
for token in doc:
    print(token.text, token.pos_)

输出结果

3、TextBlob

TextBlob是一个简单的 Python 库,用于处理文本数据。它提供了一个简单的 API 来进行常见的 NLP 任务(适合初学者),如词性标注、名词短语提取、情感分析、翻译等。TextBlob背后是 NLTK 库,它对 NLTK 进行了封装,使得接口更加友好。

安装

pip install textblob

示例代码

from textblob import TextBlob

# 文本情感分析示例【尝试不同的描述看输出结果的不同】
text = "TextBlob is a good library!"
# text = "TextBlob is a great library!"

blob = TextBlob(text)

# 返回浮点数,表示文本情感的极性。-1 表示最负面的情感,1 表示最正面的情感
sentiment = blob.sentiment.polarity
# 输出:0.875
print("情感分析结果:", sentiment)

# 返回元组,第一个值是情感极性(与 blob.sentiment.polarity 相同),第二个值是情感主观性。情感主观性是一个介于 0 和 1 之间的浮点数,其中 0 表示最客观的情感,1 表示最主观的情感。
sentiment = blob.sentiment
# 输出结果:情感分析结果:Sentiment(polarity=0.875, subjectivity=0.6000000000000001)
print("情感分析结果:", sentiment)

在这段代码中,blob.sentiment.polarity 和 blob.sentiment 两种写法都是用来进行文本情感分析的。但是它们返回的结果是略有不同的。

  1. blob.sentiment.polarity:这个写法会返回一个介于 -1 和 1 之间的浮点数,表示文本情感的极性。-1 表示最负面的情感,1 表示最正面的情感。在提供的示例中,情感分析的结果是 0.8,表示这是一个积极的情感。

  2. blob.sentiment:这个写法会返回一个元组,其中包含两个值。第一个值是情感极性(与 blob.sentiment.polarity 相同),第二个值是情感主观性。情感主观性是一个介于 0 和 1 之间的浮点数,其中 0 表示最客观的情感,1 表示最主观的情感。在提供的示例中,情感主观性值是 0.2,表示这是一个相对主观的情感。

总结一下,blob.sentiment.polarity 和 blob.sentiment 的主要区别在于后者还会返回情感主观性值。

4、Gensim

Gensim是一个专注于主题建模和文档相似性处理的 Python 库。它使用了高效的算法来处理大型文本集合,能够实现如Latent Semantic Analysis (LSA), Latent Dirichlet Allocation (LDA), 和 word2vec 等算法。

安装

pip install gensim
pip install numpy

代码示例1

  • 适用场景:单文档

使用 preprocess_string 对给定的文本进行预处理。preprocess_string 是 gensim.parsing.preprocessing 模块中的一个函数,它可以移除文本中的停用词,转换为小写等。

  • 产生的作用结果:

预处理后的文本被用于创建一个包含该预处理文本的词典和语料库。这可以更好地处理单文档,因为它可以更好地保留文档的结构和信息。

from gensim import corpora
from gensim.models import LdaModel
from gensim.parsing.preprocessing import preprocess_string

# 文本预处理
text = "Gensim is a Python library for topic modeling, document indexing, and similarity retrieval with large corpora."
preprocessed_text = preprocess_string(text)

# 创建语料库
dictionary = corpora.Dictionary([preprocessed_text])
corpus = [dictionary.doc2bow(preprocessed_text)]

# 训练LDA主题模型
lda_model = LdaModel(corpus, num_topics=1, id2word=dictionary)
print("LDA主题模型结果:", lda_model.print_topics())

代码示例 2

  • 适用场景:多文档

将每个文档拆分为单词列表。这是基于 bag of words(词袋模型)的预处理方式,它忽略了单词的顺序和上下文信息,仅将文档视为单词的集合。

  • 产生的作用结果:

预处理后的文本被用于创建一个词典和语料库,其中每个文档都被视为单词的集合。这可以更好地处理多文档,因为它可以更好地发现文档之间的相似性和主题。

from gensim import corpora, models
from gensim.models import LdaModel
from gensim.parsing.preprocessing import preprocess_string

# 文档集合
documents = ["This is a document.", "This is another document."]

# 构建词典和创建语料库
texts = [[word for word in document.lower().split()] for document in documents]
dictionary = corpora.Dictionary(texts)
corpus = [dictionary.doc2bow(text) for text in texts]

# 训练 LDA 主题模型
lda_model = models.LdaModel(corpus, id2word=dictionary, num_topics=2)
print("LDA主题模型结果:", lda_model.print_topics())

5. Transformers (by Hugging Face)

Transformers 库由 Hugging Face 公司开发,提供了大量预训练的模型,如BERT、GPT、RoBERTa、T5等,这些模型可以用于文本分类、信息抽取、问答系统、文本生成等多种NLP任务。Transformers库的一个关键特点是它支持多种深度学习框架,如T tensorFlow 和 PyTorch。

安装

pip install transformers
pip install tensorflow 或 pip install torch torchvision torchaudio

示例代码

from transformers import pipeline

# 加载文本生成模型
generator = pipeline("text-generation")

# 文本生成示例
text = "In the beginning"
result = generator(text, max_length=50)
print("情感分析结果:", result[0]["generated_text"])

# 加载情感分析模型
classifier = pipeline("sentiment-analysis")

# 文本情感分析示例
text = "Transformers is an exciting library for NLP tasks."
result = classifier(text)
print("情感分析结果:", result)

5、Pattern

Pattern 是一个用于 Python 的 Web 挖掘模块,它提供了 NLP 工具、机器学习、网络爬虫和数据挖掘功能。它可以用于情感分析、词性标注、命名实体识别等任务,并且包含了一些用于数据检索和处理的API。

安装

pip install pattern

代码示例

from pattern.en import parse, Sentence, entiment

# 情感分析示例
text = "This is a great day!"
print("情感分析结果:", sentiment(text))  # 输出:(0.7, 0.0)

# 句法分析示例
text = "Pattern is a web mining and natural language processing module for Python."
sentence = Sentence(text)
parsed_sentence = parse(sentence, lemmata=True)
print("句法分析结果:", parsed_sentence)

6、StanfordNLP

StanfordNLP是斯坦福大学开发的一个NLP库,它提供了一系列语言处理工具。它是CoreNLP Java库的Python封装,支持多种语言的NLP任务,如词性标注、命名实体识别等。

安装

pip install allennlp

代码示例

import stanfordnlp

# 加载英文模型
nlp = stanfordnlp.Pipeline(lang="en")

# 句法分析示例
text = "This is a sentence."
doc = nlp(text)
print(doc.sentences[0].print_dependencies())

7、AllenNLP

AllenNLP是由Allen Institute for AI开发的一个开源NLP研究库,专注于深度学习和NLP。它提供了一系列预训练模型和框架,用于语义角色标注、文本蕴含、机器阅读理解等高级NLP任务。

安装

pip install allennlp

代码示例

from allennlp.predictors.predictor import Predictor

# 加载命名实体识别模型
predictor = Predictor.from_path("https://storage.googleapis.com/allennlp-public-models/ner-model-2020.02.10.tar.gz")

# 文本命名实体识别示例
text = "AllenNLP is a powerful library for NLP tasks."
result = predictor.predict(sentence=text)
print("命名实体识别结果:", result)

8、其他

  1. Scikit-learn:
    虽然Scikit-learn主要是一个机器学习库,但它也提供了一些基础的NLP功能,如特征提取、文本预处理等。它广泛用于分类、回归、聚类等任务,并且与其他Python科学计算包(如NumPy和SciPy)有良好的集成。

  2. Flair:
    Flair是一个由Humboldt University of Berlin开发的NLP库,它提供了一种简单而强大的方法来使用预训练的模型。Flair的特点是它的词嵌入方法,它结合了经典的词嵌入和最新的上下文化词嵌入技术。

  3. Flair:
    Flair是一个由Humboldt University of Berlin开发的NLP库,它提供了一种简单而强大的方法来使用预训练的模型。Flair的特点是它的词嵌入方法,它结合了经典的词嵌入和最新的上下文化词嵌入技术。
     

总结:选择合适的 NLP 库取决于您的具体需求和项目要求。每个库都有其优势和局限性,需要根据任务的类型、性能要求、易用性和社区支持等因素进行选择。

NLP 的挑战

尽管 NLP 取得了巨大进步,但仍然面临一些挑战:

  • 歧义解析: 自然语言的歧义性,同一句话在不同语境下可能含义不同。

  • 多语言处理: 世界上语言众多,开发能够处理多种语言的 NLP 系统是一项挑战。

  • 语言变化: 语言随着时间推移而演变,需要 NLP 系统不断适应。

  • 文化差异: 不同文化背景下的语言使用存在差异,需要 NLP 系统理解和适应。

NLP 的未来展望

NLP 发展迅速,未来将会更加智能和灵活:

  • 多模态学习: 将 NLP 与视觉和听觉信息结合,实现更丰富的交互体验。

  • 更强大的语言模型: 能够更好地理解和生成自然语言。

  • 个性化 NLP: 为用户提供更定制化的语言体验。

NLP 作为人工智能领域的关键技术,将继续推动人机交互的进步,并在各个领域发挥重要作用。随着技术的不断发展,NLP 的未来充满无限可能。

更多关于 AI 全栈知识,请看原文:https://www.yuque.com/lhyyh/ai

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

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

相关文章

数字孪生与企业

数字孪生技术,简而言之,就是创造一个物理实体的数字双胞胎,在虚拟世界中精确模拟现实世界的行为、过程和系统。这种技术的核心在于,它允许我们在数字环境中实时地监控、分析和优化其物理对应物的性能和效率。数字孪生的应用场景极…

node.js服务器静态资源处理

前言:node.js服务器动态资源处理见 http://t.csdnimg.cn/9D8WN 一、什么是node.js服务器静态资源? 静态资源服务器指的是不会被服务器的动态运行所改变或者生成的文件. 它最初在服务器运行之前是什么样子, 到服务器结束运行时, 它还是那个样子. 比如平…

基于springboot+vue+Mysql的校园新闻网站

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

HarmonyOS实战开发-如何实现电话服务中发送短信的功能。

介绍 本示例使用ohos.telephony.sms 接口展示了电话服务中发送短信的功能。 效果预览 使用说明: 首页点击创建联系人,弹框输入联系人姓名和电话,点击确定按钮后,联系人列表中添加该联系人;点击管理,该按钮变成取消&…

[数据结构]——二叉树——堆的实现

1. 堆的概念及结构 如果有一个关键码的集合K { &#xff0c; &#xff0c; &#xff0c;…&#xff0c; }&#xff0c;把它的所有元素按完全二叉树的顺序存储方式存储 在一个一维数组中&#xff0c;并满足&#xff1a; < 且 < ( > 且 > ) i 0&#xff0c;1&…

如何使用OSI七层模型的思路进行Linux网络问题排障?

在运维工作中&#xff0c;我们可能经常遇到诸如服务器无法远程连接、网站无法访问等各种网络问题。此时你是否想过&#xff0c;我们常背的OSI七层模型&#xff0c;能在处理这样的实际问题中发挥什么样的作用呢&#xff1f; 基于OSI架构的方法论&#xff0c;我们可以使用自下而…

OpenHarmony轻量系统开发【5】驱动之GPIO点灯

5.1点灯例程源码 先看最简单得LED灯闪烁操作 源码结构如下&#xff1a; 第一个BUILD.gn文件内容&#xff1a; static_library("led_demo") {sources ["led_demo.c"]include_dirs ["//utils/native/lite/include","//kernel/liteos_m/c…

FL Studio v21.2.3.4004 中文永久版网盘下载(含Key.reg注册表补丁)

软件介绍 FL Studio21水果编曲软件汉化版是一款专业的音乐制作软件&#xff0c;被广泛地应用于电子音乐、hip-hop、流行乐等多种音乐类型的制作。该软件提供了丰富的音频编曲工具和音乐效果器&#xff0c;让用户可以轻松地创作出高品质的音乐作品。同时&#xff0c;这也是一款…

配置优先级标记和队列调度示例

配置优先级标记和队列调度示例 组网图形 图1 优先级标记和队列调度示例组网图 优先级标记和队列调度简介配置注意事项组网需求配置思路操作步骤配置文件 优先级标记和队列调度简介 报文进入设备之后&#xff0c;设备会根据相应的规则分配或修改报文各种优先级的值&#xff…

Spring 事务失效总结

前言 在使用spring过程中事务是被经常用的&#xff0c;如果不小心或者认识不做&#xff0c;事务可能会失效。下面列举几条 业务代码没有被Spring 容器管理 看下面图片类没有Componet 或者Service 注解。 方法不是public的 Transactional 注解只能用户public上&#xff0c…

51单片机入门_江协科技_29~30_OB记录的自学笔记_DS18B20温度传感器

29. DS18B20温度传感器 29.1. DS18B20介绍 •DS18B20是一种常见的数字温度传感器&#xff0c;其控制命令和数据都是以数字信号的方式输入输出&#xff0c;相比较于模拟温度传感器&#xff0c;具有功能强大、硬件简单、易扩展、抗干扰性强等特点 •测温范围&#xff1a;-55C 到 …

k8s的service为什么不能ping通?——所有的service都不能ping通吗

点击阅读原文 前提&#xff1a;kube-proxy使用iptables模式 Q service能不能ping通&#xff1f; A: 不能&#xff0c;因为k8s的service禁止了icmp协议 B: 不能&#xff0c;因为clusterIP是一个虚拟IP&#xff0c;只是用于配置netfilter规则&#xff0c;不会实际绑定设备&…

腾讯EdgeOne产品测评体验—Web服务全能一体化服务,主打一步到位

前言 现在网络Web攻击真的防不胜防啊&#xff0c;相信有很多独狼开发者自己建站&#xff0c;租个云服务器&#xff0c;一部署自己的服务&#xff0c;每隔一段时间内测和网站总有一个要崩。自己感觉难受不说&#xff0c;网站稍微有点要出头的时候&#xff0c;数不清的访问攻击就…

汽车车灯用肖特基二极管,选什么型号好?

肖特基二极管种类繁多&#xff0c;有低压降肖特基二极管、通用型肖特基二极管、快速恢复型肖特基二极管、高功率肖特基二极管、汽车级肖特基二极管等等&#xff0c;其中低压降肖特基二极管和汽车级肖特基二极管是二极管厂家东沃电子的核心优势产品。关于东沃电子推出的低压降肖…

FFmpeg: 自实现ijkplayer播放器--05ijkplayer–连接UI界面和ffplay.c

文章目录 ijkplayer时序图消息循环--回调函数实现播放器播放时状态转换播放停止ijkmediaPlay成员变量成员函数ijkplayer时序图 stream_open: frame_queue_init packet_queue_init init_clock 创建read_thread线程 创建video_refresh_thread线程 消息循环–回调函数实现 ui 和…

Spectral Adversarial MixUp for Few-Shot Unsupervised Domain Adaptation论文速读

文章目录 Spectral Adversarial MixUp for Few-Shot Unsupervised Domain Adaptation摘要方法Domain-Distance-Modulated Spectral Sensitivity (DoDiSS&#xff09;模块Sensitivity-Guided Spectral Adversarial Mixup (SAMix)模块 实验结果 Spectral Adversarial MixUp for F…

在线教程|低门槛部署!SUPIR 专治各种图片模糊,还能理解文本描述进行精修

家庭相册中泛黄的老照片&#xff0c;历史档案中尘封的影像资料&#xff0c;科研实验中沉淀下的图片资源…… 图像作为一种重要的信息载体&#xff0c;不仅承载了消逝的时光与故事&#xff0c;也记录着人类对历史的探索和传承。然而&#xff0c;由于早期保存条件的限制&#xf…

Go 编译构建的一些细节

Go 编译构建的一些细节 发现自己竟然没有怎么认真研究过 go 的编译构建命令。 结论前置 go run 专门用来运行命令源码文件的命令&#xff0c;一般用来运行单个文件go build 主要是用于测试编译。编译某个包或者项目&#xff0c;在当前目录下生成可执行文件go install 编译并…

(4)步态识别论文研读——用于步态识别的分层时空表示学习

论文题目Hierarchical Spatio-Temporal Representation Learning for Gait Recognition 论文地址 https://arxiv.org/abs/2307.09856 1.摘要 步态识别是一种生物特征技术&#xff0c;通过其独特的行走方式识别个体&#xff0c;适用于无约束环境&#xff0c;具有广泛的应用。…

链表OJ1——删除链表中等于给定值 val 的所有节点

题目 力扣OJ链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 解法 我们来看看这个题目啊&#xff0c;怎么做呢&#xff1f; 有两种解法 三指针法 我们完全可以定义三个指针来进行这个删除操作 假设我们要移除的是2 这样子就完成了 特殊情况 开头——假设我们…