自然语言处理(NLP)——使用Rasa创建聊天机器人

1 基本概念

1.1 自然语言处理的分类

        IR-BOT:检索型问答系统

        Task-bot:任务型对话系统

        Chitchat-bot:闲聊系统

1.2 任务型对话Task-Bot:task-oriented bot

        这张图展示了一个语音对话系统(或聊天机器人)的基本组成部分和它们之间的工作流程。这个系统可以接受语音信号作为输入,输出文本响应,并且它包括以下几个主要部分:

1.2.1 自动语音识别(ASR)

        这个部分的任务是将用户的语音信号转换成文本。在这个例子中,ASR将语音信号识别为文本输入“Are there any action movies to see this weekend?”

1.2.2 语言理解(SLU)

        一旦语音转换为文本,语言理解部分就开始工作,包括三个子任务:
        领域识别(Domain Identification):确定用户的请求属于哪一个领域或类别,例如电影、音乐或天气等。
        用户意图检测(User Intent Detection):识别用户的目的或意图,例如询问电影信息、预订餐厅等。
        槽位填充(Slot Filling):从用户的话中提取具体信息,如电影类型、日期、时间等。

1.2.3 语义框架(Semantic Frame)

        这是语言理解的结果,它结构化地表达了用户的请求,包括动作(如请求电影)、属性(如类型是动作片)和时间(如这个周末)。

1.2.4 对话管理(DM)

        对话管理组件控制对话的流程,并决定如何响应用户的输入。它包括两个部分:
                对话状态跟踪(DST):保持对话的当前状态,追踪对话历史和用户提供的信息。
                对话策略(Dialogue Policy):基于对话的当前状态和过去的交互,决定下一步的最佳动作。

1.2.5 自然语言生成(NLG)

        这个部分根据对话管理系统的输出生成自然语言文本。例如,如果系统需要知道用户的位置,NLG会生成问题“Where are you located?”

        这张图通过展示从语音输入到文本响应的完整流程,概述了一个典型的语音对话系统的工作方式。这种系统可以用于各种应用,如虚拟助手、客服聊天机器人等。

1.2.6 SLU的深入学习

1.2.6.1 SLU的结构

        结构化表示自然语言的语言:act-slot-value tuples

        act1(slot1=value1,slot2=value2,...).act2(slot1=value1,......),....

        accttype ,slot,value的取值范围已预先定义好

        ”您好韩小姐,麻烦提供下手机号哦“——>request(phone,name=韩小姐)

1.2.6.2 实现SLU的技术
1.2.6.2.1 语法分析

        通过语法以及语法结构分析出客户意图与槽值。

1.2.6.2.2 Semantic tagging eg. HMM,CRF

        给句子进行手动标柱槽值,进行机器学习训练

1.2.6.2.3 分类的思想

        使用多个分类器,对句子内容进行分类

1.2.6.2.4 深度学习

        建立神经网络,蛋速度慢

1.2.7 DST的深入学习

        对话状态应该包含持续对话所需要的各种信息

        DST问题:依据最新的系统和动作,更新对话状态

1.2.8 DPO的深入学习

        系统如何做出反馈动作

                作为序列决策过程进行优化:增强学习

1.2.9 自然语言生成NLG的深入学习

        基于模版:已经为您预定{time}的电影(movie_name)

        基于语法规则

        生成模型方法

1.2.10 其他类型的Task-Bot

Microsoft:End-to-End Task-Completion Neural Dialogue Systems

2 Rasa的学习

        本节介绍如何在Rasa框架下创建聊天机器人。目的是让学生发现和学习如何使用Rasa包在Python环境下创建聊天机器人。

2.1 安装与初始化一个MoodBot

        实验室中提到的安装Rasa的命令是:

python3 -m pip install rasa --user

        安装完成后,可以通过下面的命令创建一个基于Rasa的MoodBot示例项目:

rasa init

        需要基本的命令帮助(例如训练、测试、运行机器人等),可以直接输入rasa命令或者参考它的在线文档:[Rasa文档](https://rasa.com/docs/rasa/)。

        特别是关于NLU训练、域(domains)、配置和动作(actions)的概念部分,这些都是学习如何根据自己的需求定制聊天机器人的有用资源。

2.2 文件分析

        在你的`rasa'目录下的文件夹中,有三个主要的文件:

2.2.1 credentials.yml

        credentials.yml:这个文件包含访问各种社交网络来测试聊天机器人的密钥。这些社交网络可能包括Facebook Messenger、Slack等,通过这些密钥,你的聊天机器人可以接入并在这些平台上进行交互。

# This file contains the credentials for the voice & chat platforms
# which your bot is using.
# https://rasa.com/docs/rasa/messaging-and-voice-channelsrest:
#  # you don't need to provide anything here - this channel doesn't
#  # require any credentials#facebook:
#  verify: "<verify>"
#  secret: "<your secret>"
#  page-access-token: "<your page access token>"#slack:
#  slack_token: "<your slack token>"
#  slack_channel: "<the slack channel>"
#  slack_signing_secret: "<your slack signing secret>"#socketio:
#  user_message_evt: <event name for user message>
#  bot_message_evt: <event name for bot messages>
#  session_persistence: <true/false>#mattermost:
#  url: "https://<mattermost instance>/api/v4"
#  token: "<bot token>"
#  webhook_url: "<callback URL>"# This entry is needed if you are using Rasa Enterprise. The entry represents credentials
# for the Rasa Enterprise "channel", i.e. Talk to your bot and Share with guest testers.
rasa:url: "http://localhost:5002/api"

        Rasa聊天机器人的credentials.yml配置文件,该文件用于设置不同通讯平台的认证信息。Rasa可以通过这些信息与各种社交媒体和消息传递平台进行交互,比如REST API、Facebook Messenger、Slack、Socket.IO、Mattermost等。这里列出了几个平台的配置示例

下面是每个部分的作用:

        rest: 这是一个简单的REST API,不需要特别的认证信息,您的机器人可以通过HTTP请求接收和发送消息。

        facebook: 如果您想通过Facebook Messenger使您的机器人能够交流,您需要填写验证令牌、秘密密钥和页面访问令牌。

        slack: 对于Slack集成,您需要提供Slack令牌、频道和签名秘密。

        socketio: 如果您使用的是Socket.IO,您需要定义用户消息和机器人消息的事件名称,以及是否持久化会话。

        mattermost: 类似于Slack,如果您使用Mattermost,您需要提供Mattermost实例的URL、机器人令牌和回调URL。

        最后,如果您使用的是Rasa企业版,您还需要配置Rasa通道,这样您的机器人就可以与Rasa企业版的API进行通信。

        要激活这些通道,您需要取消注释相关部分,并填写相应的认证信息。请确保在实际部署机器人时,不要将敏感的认证信息泄露到公共代码仓库或不安全的地方。在本地测试时,可以使用默认的`http://localhost:5002/api`路径作为Rasa企业通道的URL。

2.2.2 config.yml

        这个配置文件是用于配置和训练一个Rasa聊天机器人的。Rasa是一个开源的机器学习框架,用于构建对话式AI和聊天机器人。这个文件包括几个主要部分:

# The config recipe.
# https://rasa.com/docs/rasa/model-configuration/
recipe: default.v1# The assistant project unique identifier
# This default value must be replaced with a unique assistant name within your deployment
assistant_id: 20240207-103316-skinny-actuary# Configuration for Rasa NLU.
# https://rasa.com/docs/rasa/nlu/components/
language: enpipeline: null
# # No configuration for the NLU pipeline was provided. The following default pipeline was used to train your model.
# # If you'd like to customize it, uncomment and adjust the pipeline.
# # See https://rasa.com/docs/rasa/tuning-your-model for more information.
#   - name: WhitespaceTokenizer
#   - name: RegexFeaturizer
#   - name: LexicalSyntacticFeaturizer
#   - name: CountVectorsFeaturizer
#   - name: CountVectorsFeaturizer
#     analyzer: char_wb
#     min_ngram: 1
#     max_ngram: 4
#   - name: DIETClassifier
#     epochs: 100
#     constrain_similarities: true
#   - name: EntitySynonymMapper
#   - name: ResponseSelector
#     epochs: 100
#     constrain_similarities: true
#   - name: FallbackClassifier
#     threshold: 0.3
#     ambiguity_threshold: 0.1# Configuration for Rasa Core.
# https://rasa.com/docs/rasa/core/policies/
policies: null
# # No configuration for policies was provided. The following default policies were used to train your model.
# # If you'd like to customize them, uncomment and adjust the policies.
# # See https://rasa.com/docs/rasa/policies for more information.
#   - name: MemoizationPolicy
#   - name: RulePolicy
#   - name: UnexpecTEDIntentPolicy
#     max_history: 5
#     epochs: 100
#   - name: TEDPolicy
#     max_history: 5
#     epochs: 100
#     constrain_similarities: true

        recipe: default.v1:这指定了Rasa使用的训练配方。`default.v1`是Rasa提供的默认配方。

        assistant_id:20240207-103316-skinny-actuary - 这是聊天机器人项目的唯一标识符。在部署中,这个默认值需要替换为一个独一无二的助手名称。

        language: en:这指定了机器人用于理解和生成语言的语言代码。这里的`en`代表英语。

        pipeline:这部分用于配置Rasa NLU(自然语言理解)的处理流水线。这里没有提供具体配置,而是使用了Rasa的默认流水线。如果你想自定义流水线,可以取消注释并调整下面的配置。这个流水线包括文本的分词、特征提取、意图识别和实体抽取等步骤。

        policies:这部分用于配置Rasa Core的决策策略,这些策略决定了机器人如何根据用户的输入选择回应。同样,这里没有提供具体配置,而是使用了默认的策略。如果你想自定义策略,可以取消注释并调整下面的配置。这些策略包括对话管理的规则、意图预测的模型等。

        总之,这个配置文件为Rasa聊天机器人的训练提供了基础的设置,包括使用的语言、处理流水线和对话策略。你可以根据需要修改这个文件来定制你的聊天机器人。

2.2.3 domain.yml

        domain.yml 文件是 Rasa 项目中的一个重要文件,包含了聊天机器人的所有关键数据。其中包括意图(intents)、动作(actions)、动作的响应(responses to actions),以及在比 Moodbot 更复杂的其他机器人中可能还包括插槽(slots)和模板(templates)等内容。

2.2.3.1 意图(Intents)

        意图代表用户消息背后的意图或目标。例如,如果用户请求帮助,相应的意图可能是 `help`。

2.2.3.2 动作(Actions)

        动作是机器人的响应或行为。这可以包括发送消息、执行操作或查询外部API等。

2.2.3.3 动作的响应(Responses to Actions)

        这些是机器人在执行动作后将发送给用户的消息或响应。它们可以是简单的文本消息,也可以是涉及自定义模板等更复杂的响应。

2.2.3.4 插槽(Slots)

        插槽是机器人需要从用户那里收集的信息片段,以完成任务。例如,如果机器人正在帮助用户预订航班,它可能需要插槽来存储出发城市、目的地城市和出行日期等信息。

2.2.3.5 模板(Templates)

        模板是预定义的响应,机器人可以使用它们来生成消息。这些可以包括用于动态内容(如插槽值或从用户消息中提取的实体)的占位符。

        domain.yml文件充当了组织和管理机器人功能的中心枢纽。它有助于定义机器人的行为并指导其与用户的交互。

2.2.4 data/nlu.yml

        在这个文件夹里我们找到了与所有意图相对应的句子,例如

version: "3.1"nlu:
- intent: greetexamples: |- hey- hello- hi- hello there- good morning- good evening- moin- hey there- let's go- hey dude- goodmorning- goodevening- good afternoon- intent: goodbyeexamples: |- cu- good by- cee you later- good night- bye- goodbye- have a nice day- see you around- bye bye- see you later- intent: affirmexamples: |- yes- y- indeed- of course- that sounds good- correct- intent: denyexamples: |- no- n- never- I don't think so- don't like that- no way- not really- intent: mood_greatexamples: |- perfect- great- amazing- feeling like a king- wonderful- I am feeling very good- I am great- I am amazing- I am going to save the world- super stoked- extremely good- so so perfect- so good- so perfect- intent: mood_unhappyexamples: |- my day was horrible- I am sad- I don't feel very well- I am disappointed- super sad- I'm so sad- sad- very sad- unhappy- not good- not very good- extremly sad- so saad- so sad- intent: bot_challengeexamples: |- are you a bot?- are you a human?- am I talking to a bot?- am I talking to a human?- intent: GetInfo_winlossRecordexamples: |- I need to know the record of [Manchester City](team).- I'm wondering what record right now does [West Ham](team) have?- How is [Watford](team) doing?- What is [AFC Bournemouth](team) record right now?- I am looking for information about the soccer team called[Burnley](team).- I want to know the record of [Aston Villa](team).

        举例说明:

nlu:
- intent: greetexamples: |- hey- hello- hi- hello there- good morning- good evening- moin- hey there- let's go- hey dude- goodmorning- goodevening- good afternoon

        这段代码是一个Rasa NLU(Natural Language Understanding)的配置文件,用于定义意图(intent)以及它们的示例(examples)。这个配置文件中定义了一个名为"greet"的意图,该意图用于识别用户打招呼的消息。示例中包括了一些常见的打招呼方式,比如"hey"、"hello"、"hi"等等。

- intent: GetInfo_winlossRecordexamples: |- I need to know the record of [Manchester City](team).- I'm wondering what record right now does [West Ham](team) have?- How is [Watford](team) doing?- What is [AFC Bournemouth](team) record right now?- I am looking for information about the soccer team called[Burnley](team).- I want to know the record of [Aston Villa](team).

        这段代码定义了一个名为"GetInfo_winlossRecord"的意图,用于识别用户想要获取足球球队战绩信息的消息。示例中包括了一些询问特定足球球队战绩的例子,每个例子都包含了一个"team"实体,用于指定感兴趣的球队名称。

2.2.5 data/stories.yml

        这是 rasa 最具创新性的部分:您可以给出可能发生的讨论场景,而不是定义一个讨论有限状态自动机。用多个讨论发生的场景来代替有限状态机。例如:

version: "3.1"stories:- story: happy pathsteps:- intent: greet- action: utter_greet- intent: mood_great- action: utter_happy- story: sad path 1steps:- intent: greet- action: utter_greet- intent: mood_unhappy- action: utter_cheer_up- action: utter_did_that_help- intent: affirm- action: utter_happy- story: sad path 2steps:- intent: greet- action: utter_greet- intent: mood_unhappy- action: utter_cheer_up- action: utter_did_that_help- intent: deny- action: utter_goodbye- story: GetInfo winlossRecordsteps:- intent: GetInfo_winlossRecord- action: action_winlossRecord

        举例说明:

- story: happy pathsteps:- intent: greet- action: utter_greet- intent: mood_great- action: utter_happy

        这段代码定义了一个名为"happy path"的故事,描述了用户的一种顺利的对话路径。故事包括了以下步骤:

        a.用户发送了一个打招呼的意图(greet)。
        b.系统执行了一个回复动作(action),输出了一个问候语(utter_greet)。
        c.用户表达了愉快的心情(mood_great)。
        d.系统再次执行了一个回复动作,输出了一个愉快的回复(utter_happy)。

        这个故事描述了一种典型的对话流程,用户首先打招呼,然后表达了愉快的心情,系统随后作出了相应的回应。

        我们可以看到被识别的意图,然后是行动。我们进入了一个循环:识别意图、行动、用户反应、再一次意图,如此循环。

2.3 训练与测试

我们训练模型使用:
rasa train
我们测试模型使用:
rasa shell

2.4 闲聊与问答(Chitchat and FAQs)

        可以通过这个链接获得更多帮助:https://rasa.com/docs/rasa/chitchat-faqs/

3. Rasa chatbot多人开发项目

3.1 项目要求

3.1.1 总体要求

        a. 使用Rasa开源框架:

        - 建议(但不强制)使用Rasa框架来开发聊天机器人。

        b. 超越Rasa默认功能

        - 应用在学习过程中了解到的技术和原则。
        - 至少采用一种基于知识的技术,如本体论、逻辑推理、词网、同义词等。
        - 至少采用一种基于学习的技术,如频率方法、统计机器学习、深度学习等。
        - 至少采用一种基于语法的技术,如句法分析、正则表达式、词形还原、形态分析等。

3.1.2 5人分工示例

        - 一个人负责整体Rasa流水线的设置、组件集成和测试;
        - 一个人负责对话逻辑、意图、自然语言理解(NLU)、故事等的设计和实现;
        - 一个人负责基于知识的组件的设计和实现;
        - 一个人负责基于学习的组件的设计和实现;
        - 一个人负责基于语法的组件的设计和实现。

3.1.3 对于知识、学习、语法组件的理解

        在您的聊天机器人项目中,团队成员将根据不同的技术专长分工。这里提到的“基于知识的组件”、“基于学习的组件”和“基于语法的组件”分别指的是:

3.1.3.1 基于知识的组件(Knowledge-based Component)

        这指的是利用预先定义的知识体系(如本体论、逻辑推理结构、词网、同义词数据库等)来增强聊天机器人的理解和响应能力。设计和实现这样的组件涉及到构建一个知识库或使用现有的知识库,使得聊天机器人可以参照这些知识来理解用户的意图和提供信息。
        在Rasa中,你可以通过自定义actions和slots来实现基于知识的组件。自定义actions允许你编写Python代码来访问外部知识库或服务,比如图数据库、SQL数据库或者其他API,从而在对话中使用这些知识。
        可以使用Rasa的Entity Extraction来识别对话中的关键信息,并用这些信息查询知识库,从而提供有针对性的回答。
        通过这种方式,你的聊天机器人可以使用逻辑推理和结构化的知识(如本体论)来处理用户的询问。

3.1.3.2 基于学习的组件(Learning-based Component)

        这涉及到使用机器学习方法来使聊天机器人从数据中学习。这可能包括频率方法、统计学习模型或深度学习模型。这样的组件可能负责识别用户意图、文本分类、情感分析等,通常需要大量的数据来训练模型。
        Rasa使用机器学习来训练模型,理解用户的意图(intent recognition)和提取实体(entity extraction)。
        它支持多种类型的机器学习模型,包括预先训练好的模型和你可以自定义训练的模型。这些模型用于处理自然语言理解(NLU)和对话管理(Dialogue Management)。
        Rasa允许使用自定义的机器学习管道和策略,你可以在这里加入深度学习或其他统计机器学习算法。

3.1.3.3 基于语法的组件(Grammar-based Component)

        这指的是使用语言学的方法来解析和生成语言。这可能涉及句法分析(分析句子结构)、使用正则表达式(用于模式匹配)、词形还原(将词汇还原为基本形式)、形态分析(分析词汇的形态结构)等技术。这样的组件用于提升聊天机器人处理语言的精确性。

每个组件都有其在聊天机器人中的独特作用,三者合作能够使得机器人更加智能和高效。例如,基于知识的组件可以提供准确的专业信息,基于学习的组件可以从用户对话中学习并提高对话质量,而基于语法的组件可以确保语言的正确性和流畅性。

        项目要求强调了除了技术实现之外,设计理念的重要性。你的聊天机器人需要基于理论知识构建,同时还需要注意合规性和道德问题。在项目过程中,团队成员之间的协作和分工也是非常重要的。
        虽然Rasa主要侧重于机器学习方法,但你仍然可以使用正则表达式和其他语法分析技术来改善对话流程。
        例如,可以在NLU组件中使用RegexFeaturizer来改善实体识别的性能,或者用于识别和验证特定的数据格式(如日期和时间)。
        对于词形还原和形态分析,可以在数据预处理阶段或通过自定义组件来实现。这可能需要与其他工具或库集成,比如Spacy或NLTK。

        通过结合这些技术,你可以创建一个更加强大和灵活的聊天机器人,能够理解和回应用户的需求。记住,在设计和实现这些组件时,确保它们符合你的项目需求和规定的聊天机器人的应用领域。

3.2 有益的建议

        对于使用Rasa框架进行聊天机器人项目,以下是一些有益的建议:

3.2.1 使用规则或故事指导对话流程

        规则(Rules): 它们是硬性的限制,可以保证聊天机器人的行为是确定的。当你需要确保在某些情况下机器人始终给出特定的响应时,使用规则。
        故事(Stories): 它们通过机器学习的方式来约束聊天机器人的行为,具有概率性。故事是对话的样本路径,通过这些样本路径,Rasa的机器学习模型可以学习在不同情况下采取的行动。

3.2.2 使用表单进行槽位填充

        使用Rasa的表单(Forms)功能,可以更有效地从用户那里逐步收集数据。当你需要多个信息片段才能执行任务或响应时,表单可以确保机器人不遗漏任何必要的信息。

3.2.3 更改默认管道

        考虑使用更强大的NLP管道,比如SpacyNLP,它使用词向量来理解语言,这可以提高实体识别和意图分类的准确性。

3.2.4 使用同义词和词形还原处理变化

        同义词可以帮助机器人理解不同的词汇表示相同的概念(如“aubergine”和“eggplant”)。
        词形还原能够将单词变回其基础形式(比如将复数“apples”还原为单数“apple”),从而简化处理流程并增加机器人理解不同语言形式的能力。

        在项目开发过程中,这些技巧可以帮助你更好地设计对话流程,提高聊天机器人的性能,并处理自然语言的复杂性。同时,始终记得定期测试你的机器人,并根据反馈不断迭代改进。

3.3 代码成果

        通过API获取足球球队在某赛季的比赛成绩。

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

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

相关文章

MYSQL分区NOW()不支持

传说同事写个复杂的SQL代码,跑一次需要7-10秒, 复杂如上,我也懒得去分析 IF IF IF是怎么回事了! 发现此表是分区表,后面要求加上了分区时间,以便利用到分区裁剪技术. 因为需求是查近10天来到期还款的人和金额.就是今天应该还款的人, 一般还款周期是7天. 给个10天的范围挺可以的…

【Qt学习笔记】Qt Creator环境下 信号与槽 详解(自定义信号槽、断连、lambda表达式等)

文章目录 1. 信号槽概念1.1 信号的本质1.2 槽的本质1.3 标准信号槽1.4 信号槽 实例 2. 自定义信号槽2.1 自定义槽函数2.2 自定义信号2.3 带参 信号槽 3. 信号槽的意义 与 作用4. 信号槽断连 &#xff08;了解&#xff09;5. lamda表达式的使用5.1 基本用法5.2 捕获局部变量5.3 …

打包 iOS 的 IPA 文件

目录 摘要 引言 准备 选择证书类型 创建应用程序 设置应用程序标识和证书 配置构建设置 构建应用程序 导出IPA 签名和导出 代码案例演示 完成 总结 参考资料 摘要 本篇博客将为您介绍如何打包iOS的IPA文件。从APP提交、创建应用程序、设置应用程序标识和证书、配…

单片机接收PC发出的数据

#include<reg51.h> //包含单片机寄存器的头文件 /***************************************************** 函数功能&#xff1a;接收一个字节数据 ***************************************************/ unsigned char Receive(void) { unsigned char dat; …

Qt|实现时间选择小功能

在软件开发过程中&#xff0c;QtDesigner系统给出的控件很多时候都无法满足炫酷的效果&#xff0c;前一段时间需要用Qt实现选择时间的小功能&#xff0c;今天为大家分享一下&#xff01; 首先看一下时间效果吧&#xff01; 如果有需要继续往下看下去哟~ 功能 1&#xff1a;开…

如何连接ChatGPT?无需科学上网,使用官方GPT教程

随着AI的发展&#xff0c;ChatGPT也越来越强大了。 它可以帮你做你能想到的几乎任何事情&#xff0c;妥妥的生产力工具。 然而&#xff0c;对于许多国内的用户来说&#xff0c;并不能直接使用ChatGPT&#xff0c;不过没关系&#xff0c;我最近发现了一个可以直接免科学上网连…

阿里云ECS服务器Linux安装Mysql8

链接&#xff1a;https://pan.baidu.com/s/1s9j7OhiOMV9e9Qq9GDbysA 提取码&#xff1a;dd5a --来自百度网盘超级会员V5的分享 Mysql官网:MySQL 关于Mysql Yum Repository介绍可以看下 更加简单 关于X86和ARM 传到服务器 进入所在包 cd /usr/local/develop/mysql8 解压 …

电力负荷预测 | 基于AE-LSTM的电力负荷预测(Python)

文章目录 效果一览文章概述源码设计参考资料效果一览 文章概述 电力负荷预测 | 基于AE-LSTM的电力负荷预测(Python) 基于AE-LSTM(自动编码器长短期记忆网络)的电力负荷预测是一种基于深度学习的方法,用于预测未来一段时间内的电力负荷需求。该方法结合了自动编码器和LSTM网…

c#cad 创建-点(六)

运行环境 vs2022 c# cad2016 调试成功 一、代码说明 创建一个点的命令方法。代码的主要功能是在当前活动文档中创建一个点&#xff0c;并将其添加到模型空间块表记录中。 代码的主要步骤如下&#xff1a; 获取当前活动文档、数据库和编辑器对象。使用事务开始创建点的过程…

docker部署docker运维工具

简介 主要功能:管理容器,管理镜像,管理容器网络 安装 拉取镜像 docker pull joinsunsoft/docker.ui:1.0.1 启动容器 docker run -d --name docker.ui --restart always -v /var/run/docker.sock:/var/run/docker.sock -p 10039:8999 joinsunsoft/docker.ui:1.0.1 使用 打…

电力负荷预测 | 基于GRU门控循环单元的深度学习电力负荷预测,含预测未来(Python)

文章目录 效果一览文章概述源码设计参考资料效果一览 文章概述 电力负荷预测 | 基于GRU门控循环单元的深度学习电力负荷预测,含预测未来(Python&

Pymysql之Cursor常用API

Cursor常用API 1、cursor.execute(query, argsNone)&#xff1a;执行sql语句。 参数: query (str)&#xff1a;sql语句。 args (tuple, list or dict)&#xff1a;sql语句中如果有变量&#xff0c;或者格式化输出&#xff0c;会在这里填充数据。 Returns&#xff1a;返…

【退役之重学前端】vite, vue3, vue-router, vuex, ES6学习日记

学习使用vitevue3的所遇问题总结&#xff08;2024年2月1日&#xff09; 组件中使用<script>标签忘记加 setup 这会导致Navbar 没有暴露出来&#xff0c;导致使用不了&#xff0c;出现以下报错 这是因为&#xff0c;如果不用setup&#xff0c;就得使用 export default…

一文学会Axios的使用

异步请求 同步发送请求过程如下 浏览器页面在发送请求给服务器&#xff0c;在服务器处理请求的过程中&#xff0c;浏览器页面不能做其他的操作。只能等到服务器响应结束后才能&#xff0c;浏览器页面才能继续做其他的操作。 异步发送请求过程如下浏览器页面发送请求给服务器&…

ownips的自救指南:一次账号封停事件的心路历程与解决策略

前言 小明以前是全球500强电商类公司的运营工作人员&#xff0c;在事业的上升期日入斗金、年薪百万&#xff0c;后面分钱时被产品、总监、老板瓜分了大头&#xff0c;大气都大敢出。由于小明掌握了核心技术&#xff0c;从联系品牌供应商、电商选品、用户行为调研、用户画像收集…

c入门第十篇——指针入门

一句话来说: 指针就是存储了内存地址值的变量。 在前面讨论传值和传址的时候&#xff0c;我们就已经开始使用了指针来传递地址。 在正式介绍指针之前&#xff0c;我们先来简单了解一下内存。内存可以简单的理解为一排连续的房子的街道&#xff0c;每个房子都有自己的地址&#…

ACK One Argo工作流:实现动态 Fan-out/Fan-in 任务编排

作者&#xff1a;庄宇 什么是 Fan-out Fan-in 在工作流编排过程中&#xff0c;为了加快大任务处理的效率&#xff0c;可以使用 Fan-out Fan-in 任务编排&#xff0c;将大任务分解成小任务&#xff0c;然后并行运行小任务&#xff0c;最后聚合结果。 由上图&#xff0c;可以使…

13. UE5 RPG限制Attribute的值的范围以及生成结构体

前面几章&#xff0c;我们实现了通过GameplayEffect对Attribute值的修改&#xff0c;比如血量和蓝量&#xff0c;我们都是有一个最大血量和最大蓝量去限制它的最大值&#xff0c;而且血量和蓝量最小值不会小于零。之前我们是没有实现相关限制的&#xff0c;接下来&#xff0c;我…

React实例之完善布局菜单(一)

今天我们来用所学的知识来做一个布局菜单的组件, 针对这个组件我之前写过一个教程 React之布局菜单-CSDN博客&#xff0c;那个呢比较基础&#xff0c;这节课算是对那个教程的一个扩展和补充。这个实例讲完&#xff0c;这个系列就算告一段落了。先看效果 这个教程要求对React知识…

猫头虎分享已解决Bug ‍ || TypeError: Object of type ‘int64‘ is not JSON serializable

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …