自然语言处理实战项目:从理论到实现

news2024/11/15 19:48:23

一、引言

在这里插入图片描述

自然语言处理(NLP)是计算机科学、人工智能和语言学交叉的领域,旨在让计算机能够理解、处理和生成人类语言。随着互联网的飞速发展,大量的文本数据被产生,这为自然语言处理技术的发展提供了丰富的素材,同时也对其性能提出了更高的要求。在本文中,我们将详细阐述一个自然语言处理的实战项目,包括项目的各个环节,从最初的想法到最终的实现和优化。

二、项目背景与目标

(一)项目背景

在当今数字化时代,人们在各种平台上产生了海量的文本信息,如社交媒体上的帖子、电商平台的产品评价、新闻文章等。对这些文本进行有效的分析和处理具有重要的意义。例如,企业可以通过分析用户对产品的评价来改进产品、优化营销策略;新闻媒体可以对新闻文章进行分类和摘要,提高信息传播的效率。

(二)项目目标

我们的实战项目旨在构建一个综合性的自然语言处理系统,具体而言,是一个能够对新闻文章进行分类、摘要,并分析其中情感倾向的系统。这个系统将融合多种自然语言处理技术,以展示NLP在实际应用中的强大功能。

三、数据收集与预处理

(一)数据收集

  1. 新闻文章来源
    • 我们从多个新闻网站收集新闻文章,如CNN、BBC、路透社等。这些网站涵盖了不同的主题领域,包括政治、经济、科技、娱乐等。为了合法获取数据,我们遵循网站的爬虫规则,使用网络爬虫工具(如Scrapy)来收集文章的标题、正文、发布时间等信息。
    • 同时,我们也从一些公开的新闻数据集(如清华新闻数据集)中获取补充数据,以确保数据的多样性和充足性。
  2. 评价数据来源
    • 对于情感分析部分,我们从电商平台(如亚马逊、淘宝)的产品评价区收集评价数据。这些评价数据包含了用户对产品的真实感受,是进行情感分析的良好素材。此外,我们还从电影评论网站(如豆瓣、IMDb)收集电影评论数据,以丰富情感分析的数据类型。

(二)数据预处理

  1. 文本清洗
    • 去除HTML标签:在从网页收集新闻文章时,文本中往往包含HTML标签。我们使用正则表达式或Python中的BeautifulSoup库来去除这些标签。例如,对于一段包含HTML标签的新闻正文:
import re
html_text = "<p>这是一段新闻正文,<b>包含</b>一些<b>HTML标签</b>。</p>"
cleaned_text = re.sub('<.*?>', '', html_text)
print(cleaned_text)
  • 去除标点符号和特殊字符:标点符号和特殊字符对于模型训练可能是干扰因素。我们可以使用Python中的string库来定义需要去除的字符集,然后使用字符串的translate方法进行去除。
import string
punctuation = string.punctuation + '“”‘’—'
translator = str.maketrans('', '', punctuation)
text = "这是一段包含标点符号的文本,如:逗号、句号等。"
cleaned_text = text.translate(translator)
print(cleaned_text)
  1. 词干提取与词形还原
    • 词干提取:我们使用NLTK库中的PorterStemmer进行词干提取。例如,对于单词“running”、“runs”和“run”,PorterStemmer会将它们都转换为“run”。
from nltk.stem import PorterStemmer
stemmer = PorterStemmer()
words = ['running', 'runs', 'run']
for word in words:
    print(stemmer.stem(word))
  • 词形还原:词形还原与词干提取类似,但更注重单词的实际意义。我们可以使用NLTK库中的WordNetLemmatizer进行词形还原。例如,对于单词“mice”,它会还原为“mouse”。
from nltk.stem import WordNetLemmatizer
lemmatizer = WordNetLemmatizer()
print(lemmatizer.lemmatize('mice'))
  1. 文本向量化
    • 词袋模型(Bag - of - Words):这是一种简单的文本表示方法。我们使用scikit - learn库中的CountVectorizer来实现词袋模型。它将文本转换为一个向量,向量的每个维度代表一个单词,值表示该单词在文本中的出现频率。
from sklearn.feature_extraction.text import CountVectorizer
vectorizer = CountVectorizer()
texts = ['这是第一段文本', '这是第二段文本']
vectorized_texts = vectorizer.fit_transform(texts)
print(vectorized_texts.toarray())
  • TF - IDF(Term Frequency - Inverse Document Frequency):TF - IDF在词袋模型的基础上,考虑了单词在整个文档集合中的重要性。我们使用scikit - learn库中的TfidfVectorizer来实现。
from sklearn.feature_extraction.text import TfidfVectorizer
tfidf_vectorizer = TfidfVectorizer()
tfidf_vectorized_texts = tfidf_vectorizer.fit_transform(texts)
print(tfidf_vectorized_texts.toarray())
  • 词向量模型(如Word2Vec):Word2Vec是一种基于神经网络的词向量模型,它能够捕捉单词之间的语义关系。我们可以使用gensim库来训练Word2Vec模型。
from gensim.models import Word2Vec
sentences = [['这', '是', '一个', '句子'], ['这', '是', '另一个', '句子']]
model = Word2Vec(sentences, min_count = 1)
print(model.wv['这'])

四、新闻分类任务

(一)分类算法选择

  1. 朴素贝叶斯分类器
    • 朴素贝叶斯分类器基于贝叶斯定理,假设文本中的单词之间相互独立。它在文本分类任务中具有计算效率高、对小规模数据表现较好等优点。对于新闻分类任务,我们可以将新闻文章表示为词袋模型或TF - IDF向量,然后使用scikit - learn库中的MultinomialNB类来实现朴素贝叶斯分类。
from sklearn.naive_bayes import MultinomialNB
nb_model = MultinomialNB()
# 假设X_train是训练集向量,y_train是对应的标签
nb_model.fit(X_train, y_train)
  1. 支持向量机(SVM)
    • SVM通过寻找一个超平面来划分不同的类别,在高维空间中具有较好的泛化能力。它可以通过核函数(如线性核、多项式核、高斯核等)将原始数据映射到高维空间,从而更好地处理非线性分类问题。在scikit - learn库中,我们可以使用SVC类来实现SVM分类。
from sklearn.svc import SVC
svm_model = SVC(kernel = 'linear')
svm_model.fit(X_train, y_train)
  1. 深度学习模型 - 卷积神经网络(CNN)
    • CNN在图像识别领域取得了巨大的成功,也被应用于文本分类任务。在文本分类中,CNN可以通过卷积层和池化层自动提取文本中的特征。我们使用Keras库来构建一个简单的CNN模型。
from keras.models import Sequential
from keras.layers import Embedding, Conv1D, MaxPooling1D, Flatten, Dense

model = Sequential()
model.add(Embedding(input_dim = vocab_size, output_dim = 100, input_length = max_length))
model.add(Conv1D(filters = 128, kernel_size = 3, activation ='relu'))
model.add(MaxPooling1D(pool_size = 2))
model.add(Flatten())
model.add(Dense(100, activation ='relu'))
model.add(Dense(num_classes, activation ='softmax'))

model.compile(loss = 'categorical_crossentropy', optimizer = 'adam', metrics = ['accuracy'])
model.fit(X_train_padded, y_train, epochs = 10, batch_size = 32)

(二)模型评估与优化

  1. 评估指标
    • 准确率(Accuracy):表示预测正确的样本数占总样本数的比例。计算公式为: A c c u r a c y = 预测正确的样本数 总样本数 Accuracy=\frac{预测正确的样本数}{总样本数} Accuracy=总样本数预测正确的样本数
    • 召回率(Recall):针对每个类别,召回率表示该类别预测正确的样本数占该类别实际样本数的比例。对于多分类问题,我们可以分别计算每个类别的召回率。
    • F1 - score:F1 - score是准确率和召回率的调和平均数,计算公式为: F 1 − s c o r e = 2 × 准确率 × 召回率 准确率 + 召回率 F1 - score = 2\times\frac{准确率\times召回率}{准确率 + 召回率} F1score=2×准确率+召回率准确率×召回率
  2. 交叉验证
    • 我们使用k - 折交叉验证(k - fold cross - validation)来评估模型的性能。将数据集划分为k个大小相等的子集,每次用k - 1个子集作为训练集,剩下的一个子集作为验证集,重复k次,最后取平均性能作为模型的评估结果。例如,使用scikit - learn库实现5 - 折交叉验证:
from sklearn.model_selection import cross_val_score
scores = cross_val_score(model, X, y, cv = 5)
print("交叉验证得分:", scores)
  1. 超参数调整
    • 对于朴素贝叶斯分类器,我们可以调整平滑参数alpha。对于SVM,可以调整核函数的参数(如高斯核的gamma值)。对于深度学习模型,可以调整学习率、卷积层的滤波器数量、神经元数量等超参数。我们可以使用网格搜索(Grid Search)或随机搜索(Random Search)来寻找最优的超参数组合。以网格搜索为例,在scikit - learn库中:
from sklearn.model_selection import GridSearchCV
parameters = {'alpha': [0.1, 0.5, 1.0], 'kernel': ['linear', 'rbf']}
grid_search = GridSearchCV(SVC(), parameters)
grid_search.fit(X_train, y_train)
print("最优参数:", grid_search.best_params_)

五、新闻摘要任务

(一)摘要算法

  1. 基于抽取的摘要方法
    • 这种方法是从原文中抽取一些重要的句子组成摘要。我们可以使用基于统计的方法,如计算句子的词频、位置等信息来确定句子的重要性。例如,句子中包含高频词的句子往往更重要,位于文章开头和结尾的句子也可能更重要。
    • 我们可以使用TextRank算法,它是一种基于图的排序算法,类似于PageRank算法。将句子看作图中的节点,句子之间的相似度看作边的权重,通过迭代计算句子的重要性得分,然后选择得分较高的句子组成摘要。
  2. 基于生成的摘要方法
    • 基于生成的摘要方法是通过生成新的句子来构建摘要。我们可以使用序列到序列(Seq2Seq)模型,它由一个编码器(Encoder)和一个解码器(Decoder)组成。编码器将输入的新闻文章编码为一个向量表示,解码器根据这个向量表示生成摘要句子。
    • 在Keras库中构建一个简单的Seq2Seq模型示例:
from keras.models import Model
from keras.layers import Input, LSTM, Dense

encoder_inputs = Input(shape=(None, num_encoder_tokens))
encoder = LSTM(latent_dim, return_state=True)
encoder_outputs, state_h, state_c = encoder(encoder_inputs)
encoder_states = [state_h, state_c]

decoder_inputs = Input(shape=(None, num_decoder_tokens))
decoder_lstm = LSTM(latent_dim, return_sequences=True, return_state=True)
decoder_outputs, _, _ = decoder_lstm(decoder_inputs, initial_state=encoder_states)
decoder_dense = Dense(num_decoder_tokens, activation='softmax')
decoder_outputs = decoder_dense(decoder_outputs)

model = Model([encoder_inputs, decoder_inputs], decoder_outputs)

model.compile(optimizer='rmsprop', loss='categorical_crossentropy')

(二)摘要质量评估

  1. 自动评估指标
    • ROUGE(Recall - Oriented Understudy for Gisting Evaluation):ROUGE是一种广泛用于评估摘要质量的指标。它通过计算摘要与参考摘要(人工编写的摘要)之间的重叠度来评估摘要的质量。ROUGE - N(N表示n - 元组)计算摘要和参考摘要中n - 元组的重叠比例。例如,ROUGE - 1计算单词语的重叠比例,ROUGE - 2计算双词语的重叠比例。
    • BLEU(Bilingual Evaluation Understudy):BLEU最初用于评估机器翻译的质量,也可以用于评估摘要质量。它通过计算生成的摘要与参考摘要之间的n - 元组匹配情况来评估摘要的质量。
  2. 人工评估
    • 除了自动评估指标外,我们还可以进行人工评估。邀请一些评估人员对生成的摘要进行打分,评估摘要的准确性、完整性、连贯性等方面。例如,给评估人员提供新闻原文和生成的摘要,让他们根据一定的标准(如摘要是否涵盖了文章的主要内容、句子是否通顺等)进行打分,然后取平均得分作为人工评估的结果。

六、情感分析任务

(一)情感分析算法

  1. 基于词典的情感分析
    • 构建情感词典:我们可以收集一些现有的情感词典,如SentiWordNet、AFINN等,也可以根据项目需求自己构建情感词典。情感词典中包含了单词及其对应的情感极性(积极、消极或中性)。
    • 计算情感得分:对于一篇新闻文章或评价文本,我们将文本中的单词与情感词典进行匹配,根据单词的情感极性计算文本的情感得分。例如,如果一个单词在情感词典中的极性为积极,我们给它一个正分,消极单词给一个负分,然后将所有单词的得分相加得到文本的情感得分,根据得分判断情感倾向。
  2. 机器学习和深度学习方法
    • 我们可以使用前面提到的朴素贝叶斯、SVM等传统机器学习方法,也可以使用深度学习方法如LSTM、CNN等进行情感分析。以LSTM为例,在Keras库中构建一个用于情感分析的LSTM模型:
from keras.models import Sequential
from keras.layers import Embedding, LSTM, Dense

model = Sequential()
model.add(Embedding(input_dim = vocab_size, output_dim = 100, input_length = max_length))
model.add(LSTM(100))
model.add(Dense(1, activation ='sigmoid'))

model.compile(loss = 'binary_crossentropy', optimizer = 'adam', metrics = ['accuracy'])
model.fit(X_train_padded, y_train, epochs = 10, batch_size = 32)

(二)情感分析的挑战与应对

  1. 语义理解
    • 文本中的语义理解是情感分析的一个挑战。例如,一些单词在不同的语境下可能有不同的情感倾向。“这个计划很冒险”中的“冒险”可能是消极的,也可能在某些语境下是积极的(如对于喜欢挑战的人来说)。为了应对这个挑战,我们可以考虑使用上下文信息,如使用预训练的语言模型(如BERT)来更好地理解上下文语义。
  2. 讽刺和反语
    • 讽刺和反语在情感分析中也很难处理。例如,“这部电影真是‘棒极了’,我看了一半就想走了”,这里的“棒极了”实际上是反语,表示消极的情感。我们可以通过分析句子的语调、表情符号(如果存在)等额外信息来识别讽刺和反语,也可以使用深度学习模型学习讽刺和反语的模式。

七、项目整合与部署

(一)系统整合

  1. 将分类、摘要和情感分析模块整合
    • 我们构建一个主程序,在这个主程序中调用新闻分类、摘要和情感分析的模块。例如,当输入一篇新闻文章时,首先将文章传递给新闻分类模块,确定文章的类别;然后将文章传递给新闻摘要模块生成摘要;最后将文章传递给情感分析模块分析情感倾向。
  2. 数据共享与交互
    • 在模块之间共享数据,例如,新闻分类模块对文章进行分类后,可以将分类结果传递给摘要和情感分析模块,以便它们根据文章的类别进行更有针对性的处理。同时,摘要模块生成的摘要可以作为情感分析模块的输入,以提高情感分析的准确性。

(二)系统部署

  1. 本地部署
    • 我们可以将整个系统部署在本地服务器上。安装所需的软件环境(如Python环境、相关的库等),然后将项目代码部署到本地服务器上。用户可以通过本地网络访问这个系统,进行新闻文章的分类、摘要和情感分析。
  2. 云端部署
    • 选择一个云服务提供商(如阿里云、腾讯云等),将项目部署到云端。在云端配置所需的计算资源(如虚拟机、存储等),将项目代码和数据上传到云端服务器。云端部署的优势在于可以根据需求灵活扩展计算资源,方便不同地区的用户访问。

八、项目成果与展望

(一)项目成果

  1. 性能指标

    • 通过对新闻分类任务的测试,我们的最佳模型(如经过优化的CNN模型)在测试集上的准确率达到了85%以上,召回率达到了80%以上,F1 - score达到了0.83左右。在新闻摘要任务中,基于生成的摘要方法虽然在初始阶段效果一般,但经过不断优化,与参考摘要的ROUGE - 1指标达到了0.35左右,ROUGE - 2指标达到了0.15左右。在情感分析任务中,使用深度学习模型(如LSTM)的准确率在测试集上达到了82%左右。
  2. 实际应用价值

    • 对于新闻媒体机构来说,这个系统可以帮助他们快速对新闻文章进行分类,提高新闻管理的效率。例如,能够自动将政治新闻、经济新闻、娱乐新闻等区分开来,方便编辑人员进行后续的处理和发布。新闻摘要功能可以为读者提供快速浏览新闻内容的便利,节省读者的时间。而情感分析功能则有助于媒体了解公众对新闻事件的态度,为后续的报道方向提供参考。
    • 对于企业来说,如果将这个系统应用于产品评价的分析,能够快速了解消费者对产品的情感倾向,及时发现产品的优点和不足,从而调整产品策略和营销方案。

(二)展望

  1. 技术改进方向

    • 预训练模型的进一步应用:预训练语言模型如BERT、GPT等在自然语言处理领域展现出了强大的性能。在本项目中,可以进一步探索如何更好地将这些预训练模型集成到新闻分类、摘要和情感分析任务中。例如,使用BERT对新闻文章进行预编码,然后将编码后的向量输入到分类模型或摘要模型中,有望提高模型的性能。
    • 多模态融合:随着多媒体数据的不断增加,考虑将文本与图像、音频等其他模态的数据进行融合。例如,在新闻文章中,可能会包含相关的图片或视频内容。将这些多模态信息与文本信息一起进行处理,可以更全面地理解新闻内容,提高分类、摘要和情感分析的准确性。
    • 强化学习在NLP中的应用:强化学习可以用于优化自然语言处理模型的决策过程。例如,在新闻摘要生成中,可以将摘要的质量(如根据ROUGE指标)作为奖励信号,通过强化学习算法来优化摘要模型的参数,使其生成更高质量的摘要。
  2. 应用场景拓展

    • 社交媒体监测:将系统扩展到社交媒体平台的监测。除了新闻文章,社交媒体上的帖子、评论等也是海量的文本信息源。通过对社交媒体文本的分类、摘要和情感分析,可以帮助企业监测品牌形象、政府监测舆情等。
    • 智能客服系统的优化:将本项目中的技术应用于智能客服系统。当客户提出问题时,首先对问题进行分类,然后根据问题的类型生成摘要,再分析客户问题中的情感倾向,以便客服人员能够更有针对性地回答问题,提高客户满意度。
  3. 面临的挑战与应对策略

    • 数据隐私与安全:随着自然语言处理系统处理的数据量越来越大,数据隐私和安全问题日益突出。例如,在收集新闻文章和用户评价数据时,需要确保数据来源的合法性,并且在数据存储和处理过程中要采取加密等安全措施。应对策略包括建立严格的数据管理制度,遵循相关的数据保护法规(如GDPR等),采用先进的加密技术(如AES等)对数据进行加密。
    • 模型可解释性:深度学习模型虽然在自然语言处理任务中取得了很好的效果,但模型的可解释性较差。例如,在新闻分类任务中,很难解释为什么模型将一篇文章分类为某个特定的类别。为了提高模型的可解释性,可以采用一些可解释性方法,如LIME(Local Interpretable Model - agnostic Explanations)、SHAP(SHapley Additive exPlanations)等,这些方法可以为模型的预测结果提供局部或全局的解释。

在自然语言处理领域,不断有新的技术和应用场景出现。这个实战项目只是一个起点,通过不断地探索和创新,可以进一步提高自然语言处理系统的性能和应用价值,为人们的生活和工作带来更多的便利。

通过这个项目的实施,我们深入了解了自然语言处理各个环节的技术要点、面临的挑战以及潜在的发展方向。希望这个项目能够为大家提供一些参考和启发,推动自然语言处理技术的不断发展。

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

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

相关文章

【动态规划】(五)动态规划——子序列问题

动态规划——子序列问题 子序列问题☆ 最长递增子序列&#xff08;离散&#xff09;最长连续递增序列&#xff08;连续&#xff09;最大子序和&#xff08;连续&#xff09;最长重复子数组&#xff08;连续&#xff09;☆ 最长公共子序列&#xff08;离散-编辑距离过渡&#xf…

【驱动】修改USB转串口设备的属性,如:Serial

1、查看串口信息 在Windows上,设备管理窗口中查看设备号 2、修改串口号工具 例如使用:CH34xSerCfg.exe 使用步骤:恢复默认值 - -> 修改 Serial String(或者Product String等属性)–> 写入配置 3、查看设备节点 在linux上使用lsub查看新增的设备信息,如下这个…

python多线程开发的具体示例

用一个具体的示例&#xff0c;展示如何使用 ThreadPoolExecutor 和 asyncio 来并行运行多个任务&#xff0c;并输出结果。 代码&#xff1a; import asyncio import time from concurrent.futures import ThreadPoolExecutorclass WorkJob:def __init__(self, job_id):self.j…

报表做着太费劲?为你介绍四款好用的免费报表工具

1. 山海鲸可视化 介绍&#xff1a; 山海鲸可视化是一款免费的国产可视化报表软件&#xff0c;与许多其他宣传免费的软件不同&#xff0c;山海鲸的报表功能完全免费并且没有任何限制&#xff0c;就连网站管理后台这个功能也是免费的。同时山海鲸可视化还提供了种类丰富的可视化…

11.安卓逆向-安卓开发基础-api服务接口设计2

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a;图灵Python学院 本人写的内容纯属胡编乱造&#xff0c;全都是合成造假&#xff0c;仅仅只是为了娱乐&#xff0c;请不要盲目相信。 工…

云手机推荐:五款热门云手机测评!

在云手机市场中&#xff0c;各个品牌层出不穷&#xff0c;让人难以选择。为了帮助你更好地找到适合的云手机应用&#xff0c;我们整理了五款最受欢迎的云手机进行测评。2024年&#xff0c;哪款云手机是你的不二之选&#xff1f;且慢下结论&#xff0c;看看这五款云手机的真实表…

【深度学习】深度卷积神经网络(AlexNet)

在 LeNet 提出后&#xff0c;卷积神经网络在计算机视觉和机器学习领域中很有名气&#xff0c;但并未起到主导作用。 这是因为 LeNet 在更大、更真实的数据集上训练的性能和可行性还有待研究。 事实上&#xff0c;在 20 世纪 90 年代到 2012 年之间的大部分时间里&#xff0c;…

Windows系统的Tomcat日志路径配置

文章目录 引言I Windows系统的Tomcat日志路径配置配置常规日志路径访问日志路径配置,修改server.xmlII 日志文件切割:以分隔割tomcat 的 catalina.out 文件为例子通过Linux系统自带的切割工具logrotate来进行切割引言 需求:C盘空间不足,处理日志文件,tomcat日志迁移到D盘…

中国科学院云南天文台博士招生目录

中国科学院云南天文台是专业基础研究与应用研究结合的综合性天文研究机构&#xff08;其前身是1938年中央研究院天文研究所在昆明东郊凤凰山创建的凤凰山天文台&#xff09;&#xff0c;总部在云南省昆明市&#xff0c;设有两个观测站&#xff08;丽江高美古天文观测站和澄江抚…

Boruta 的库的初识

我在一个kaggle比赛时间预测中发现Boruta我并不熟悉与是我学习了一下 Boruta 的工作原理&#xff1a; 影子特征&#xff08;Shadow Features&#xff09;: Boruta 首先创建一组影子特征&#xff0c;这些影子特征是通过随机打乱原始特征的值生成的。影子特征的目的是作为对照组…

【完结】【PCL实现点云分割】ROS深度相机实践指南(下):pcl::BoundaryEstimation实现3D点云轮廓检测的原理(论文解读)和代码实现

前言 本教程使用PCL对ROS深度相机捕获到的画面进行操场上锥桶的分割 上:[csdn 博客] 【PCL实现点云分割】ROS深度相机实践指南&#xff08;上&#xff09;:PCL库初识和ROS-PCL数据类型转换中:[csdn 博客] 【PCL实现点云分割】ROS深度相机实践指南&#xff08;中&#xff09;:Pl…

电梯节能 引领趋势

电梯&#xff0c;之前对我们来说&#xff0c;就是让我们省时省力的工具&#xff0c;谁知电梯也可加装【节能设备】。 电梯节能评估&#xff0c;节电率达20%-50%。 电梯节能&#xff08;电梯回馈装置&#xff09;通常电梯在轻载上行&#xff0c;重载下行和平层停梯状态下&#…

监控和维护 Linux 系统的健康状态:从服务启动故障到操作系统查询

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…

rar文件怎么打开?这几款软件压缩和查看很方便!

在这个数字化信息爆炸的时代&#xff0c;我们每天都会接触到各种各样的文件&#xff0c;其中RAR格式文件以其高压缩率和良好的文件保护特性&#xff0c;成为了许多人分享和存储大文件的首选。然而&#xff0c;面对这样一个看似“神秘”的文件格式&#xff0c;不少朋友可能会感到…

Stable Diffusion绘画 | 来训练属于自己的模型:配置完成,炼丹启动

前言 效率设置-优化器 优化器可以分为4类&#xff1a; 第一类 AdamW &#xff1a;梯度下降算法&#xff0c;结合自适应学习率&#xff0c;既可以快速收敛&#xff0c;又可以避免 Loss值 震荡 AdamW8bit&#xff1a;能降低显存占用&#xff0c;并略微加快训练速度&#xff0…

Mysql—主从复制的slave添加及延迟回放

MySQL 主从复制是什么&#xff1f; ​ MySQL 主从复制是指数据可以从一个 MySQL 数据库服务器主节点复制到一个或多个从节点。MySQL 默认采用异步复制方式&#xff0c;这样从节点不用一直访问主服务器来更新自己的数据&#xff0c;数据的更新可以在远程连接上进行&#xff0c;…

国产分布式数据库-tidb单机部署文档

tidb单机部署文档 1、创建用户 #创建用户 useradd tidb #设置密码 passwd tidb2、配置免密码登录 编辑/etc/sudoers文件,文末加入&#xff1a; tidb ALL(ALL) NOPASSWD:ALL如果想要控制某个用户(或某个组用户)只能执行root权限中的一部分命令, 或者允许某些用户使用sudo时…

充电桩设备升级扩展多段计费

一 项目背景 某省某市的一个充电桩项目近日收到业主需求&#xff0c;需在国庆节增加一个时间段&#xff08;深谷计费段&#xff09;&#xff0c;但充电桩设备仅支持4段&#xff08;尖时段&#xff0c;峰时段&#xff0c;平时段&#xff0c;谷时段&#xff09;&#xff0c;今…

【CoppeliaSim V4.7】The Python interpreter could not handle the wrapper script

[sandboxScript:error] The Python interpreter could not handle the wrapper script (or communication between the launched subprocess and CoppeliaSim could not be established via sockets). Make sure that the Python modules ‘cbor2’ and ‘zmq’ are properly i…

Spring MVC 基本配置步骤 总结

1.简介 本文记录Spring MVC基本项目拉起配置步骤。 2.步骤 在pom.xml中导入依赖&#xff1a; <dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>6.0.6</version><scope>…