【持续更新】【NLP项目】【自然语言处理】智能聊天机器人——“有问必答”【Chatbot】第2章、《模式一:问候模式》

智能聊天机器人——“有问必答”

【注】该项目已开源,开源地址为:链接,代码更新可能不及时。

第2章、《模式一:问候模式》

主窗体的布局如下图所示:

在这里插入图片描述

共九种功能模式,最下方为关闭窗口按钮。

点击问候模式按钮,进入问候模式:

在这里插入图片描述
下方为聊天窗口,点击发送按钮发送消息给聊天机器人。

示例问题:

1、My name is John.

2、我的名字是balabala。

3、Hi/Hello/Hey.

4、你好。

5、How are you?

6、你怎么样?

7、What is your name?

8、你的名字是什么?

9、歪比巴布

模块相关python代码

"""
greeting_bot_gui.py
问候模式的聊天机器人实现 Chatbot implementation in greeting mode
使用图形用户接口 Using the Graphical User Interface
作者:李 奕辰 Author: Yichen Li
"""
from PyQt5 import QtGui# 导入相关模块 Import related modules
from common_trans_pairs import *
from nltk.chat.util import Chat, reflections
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel, QTextEdit, QPushButton# Greeting Mode 问候模式
# Define some pairs of input patterns and responses 定义一些输入问答对
pairs_greeting = [# 1、用户(“我”)的名字[r"(.*)[Mm]y [Nn]ame [Ii]s(.*)",  # 适配短语my name is(我的名字是)["Hello %1, how can I assist you today?"]],["(.*)" + s_my + s_name + "(.*)",  # 适配短语my name is(我的名字是)["您好,今天我可以为您提供什么帮助?"]],# 2、你好[r"[Hh]i|[Hh]ello|[Hh]ey(.*)",  # 适配单词Hi, Hello, Hey["Hello!", "Hi there!", "Hey! How can I help you?"]],[s_hello + "(.*)",  # 适配单词Hi, Hello, Hey["你好。", "别来无恙。", "嘿!我能帮你什么忙吗?"]],# 3、(你)怎么样[r"(.*)[Hh]ow [Aa]re [Yy]ou(.*)?",  # 提取'how are you'(你怎么样),适配大小写习惯["I'm just a bunch of python code, but thanks for asking!\n","Doing well, how about you?\n"]],["(.*)" + s_how + "(.*)",  # 提取'how are you'(你怎么样),适配大小写习惯["我只是一堆python代码,但还是感谢您的询问!","还好吧,你呢?"]],# 4、用户询问chatbot名字[r"(.*)[Yy]our [Nn]ame(.*)",  # 提取词组 your name(你的名字)["I am a chatbot created using NLTK!\n"]],# TODO: 中文输入的问题?(已解决)["(.*)" + s_your + "(.*)" + s_name + "(.*)",["我是使用 NLTK 创建的聊天机器人。"]],# 5、戴夫问好[s_dave,["歪比巴布,ruarourou"]],# 6、退出操作[r"quit",["Bye! Take care.", "Goodbye!"]],[s_quit,["再见,保重。", "回见。"]],# 7、其它输入[r"(.*)",["I'm not sure I understand what you mean. Can you rephrase that?\n""我不太明白你的意思。你能重新表述一下吗?"]],
]# Create a greeting chatbot instance 问候模式聊天机器人实例
chatbot_G = Chat(pairs_greeting, reflections)class ChatbotApp_G(QWidget):def __init__(self):super().__init__()# 字体设置font = QtGui.QFont()font.setFamily("Arial")  # 括号里可以设置成自己想要的其它字体font.setPointSize(18)  # 括号里的数字可以设置成自己想要的字体大小self.setWindowTitle("Chatbot(Greeting Mode) 【问候模式】")self.setGeometry(100, 100, 400, 300)# self.setFont()# self.font().Bold()self.layout = QVBoxLayout()self.setFont(font)self.chat_area = QTextEdit(self)self.chat_area.setReadOnly(True)self.chat_area.setText("In greeting mode, I can have a simple conversation with you, including greetings, small talk, etc.\n""在问候模式下,我可以和你进行简单的对话,包括问候、寒喧等等。\n")self.layout.addWidget(self.chat_area)self.input_area = QTextEdit(self)self.layout.addWidget(self.input_area)self.send_button = QPushButton("Send 发送", self)self.send_button.clicked.connect(self.send_message)self.layout.addWidget(self.send_button)self.setLayout(self.layout)def send_message(self):user_input = self.input_area.toPlainText().strip()if user_input:self.chat_area.append("You (用户): " + user_input)response = chatbot_G.respond(user_input)self.chat_area.append("Greeting Bot (问候模式聊天机器人): " + response)self.input_area.clear()# if __name__ == "__main__":
def greeting_bot_start():app = QApplication(sys.argv)window = ChatbotApp_G()window.show()sys.exit(app.exec_())

在后续实践中发现,以下这个文件其实是多余的,但统一起见,使用这种翻译对的方法:

"""
文件名:common_trans_pairs.py
定义了一些常见翻译对 Some common translation pairs are defined
均使用utf-8编码 All use utf-8 encoding
作者:李 奕辰 Author: Yichen Li
"""s_name = "名字"
s_name.encode('utf-8')s_quit = "退出"
s_quit.encode('utf-8')s_my = "我的"
s_my.encode('utf-8')s_your = "你的"
s_your.encode('utf-8')s_you = "你"
s_you.encode('utf-8')s_hello = "你好"
s_hello.encode('utf-8')s_how = "怎么样"
s_how.encode('utf-8')s_tell = "讲"
s_tell.encode('utf-8')s_joke = "笑话"
s_joke.encode('utf-8')s_interesting = "有趣的"
s_interesting.encode('utf-8')s_scary = "恐怖的"
s_scary.encode('utf-8')s_story = "故事"
s_story.encode('utf-8')s_dave = "歪比巴布"
s_dave.encode('utf-8')s_con = "概念"
s_con.encode('utf-8')s_fun = "职能"
s_fun.encode('utf-8')s_char = "特性"
s_char.encode('utf-8')s_theo = "理论"
s_theo.encode('utf-8')s_ggcf = "改革春风吹满地"
s_ggcf.encode('utf-8')s_dec = "决策"
s_dec.encode('utf-8')s_met = "方法"
s_met.encode('utf-8')s_plan = "计划"
s_plan.encode('utf-8')s_for = "公式"
s_for.encode('utf-8')s_func = "函数"
s_func.encode('utf-8')s_org = "组织"
s_org.encode('utf-8')s_str = "结构"
s_str.encode('utf-8')s_lead = "领导"
s_lead.encode('utf-8')s_use = "作用"
s_use.encode('utf-8')s_mean = "含义"
s_mean.encode('utf-8')s_mic = "微观"
s_mic.encode('utf-8')s_mac = "宏观"
s_mic.encode('utf-8')s_debt = "负债"
s_debt.encode('utf-8')s_bus = "业务"
s_bus.encode('utf-8')s_type = "风格类型"
s_type.encode('utf-8')s_acc = "会计"
s_acc.encode('utf-8')s_heart = "失恋"
s_heart.encode('utf-8')s_comf = "安慰"
s_comf.encode('utf-8')s_beau = "美丽的"
s_beau.encode('utf-8')s_sentence = "句子"
s_sentence.encode('utf-8')

(持续更新中)

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

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

相关文章

时序预测 | Matlab基于TSA-LSTM-Attention被囊群优化算法优化长短期记忆网络融合注意力机制多变量多步时间序列预测

时序预测 | Matlab基于TSA-LSTM-Attention多变量多步预测 目录 时序预测 | Matlab基于TSA-LSTM-Attention多变量多步预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 时序预测 | Matlab基于TSA-LSTM-Attention被囊群优化算法优化长短期记忆网络融合注意力机制多变量多…

attributeerror: ‘FreeTypeFont‘ object has no attribute ‘getsize‘问题

我在训练yolov9的时候报错:attributeerror: ‘FreeTypeFont‘ object has no attribute ‘getsize‘。看过很多博客分析,都是说FreeTypeFont 字体的原因,其实真实问题出现yolo版本安装的Pillow库更新后,getsize(&#…

三维天地:数字技术推动汽车产业实验室管理变革创新

近日,2024汽车技术与装备发展论坛在苏州成功召开。论坛以“共筑汽车产业新质生产力”为主题,聚焦新技术、新装备、新生态展开深入研讨,探索装备制造与汽车产业的融合发展路径。北京三维天地科技股份有限公司受邀参会。 在同期举办的检测认证高质量发展论坛上,三维天地咨询总监宫…

产品人必读书籍丨这本书告诉了我在AI时代如何成为一名顶级PM!!

《人工智能产品经理》——AI时代的PM修炼手册,这是一本不太工具的工具书。 很多人不了解产品经理需要具备的能力和素质。那么产品经理人工智能呢?这就更懵了,全是新词汇组成的新职业,到底怎样才算合格的人工智能产品经理&#x…

免费文件夹加密工具

1、去掉了miniExcel引用包,删除掉了excel配置文件 2、增加了密码登录功能,可以修改密码 3、使用sqlite3数据库来保存文件夹列表和用户密码,用户密码采用md5加盐 4、使用了 antdui来美化下界面 5、未解锁文件平不能被移除 其他还是保持老样…

第四届计算机图形学、人工智能与数据处理国际学术会议

在线投稿:学术会议-学术交流征稿-学术会议在线-艾思科蓝 第四届计算机图形学、人工智能与数据处理国际学术会议(ICCAID 2024)将于 2024年12月13日-15日在中国南昌举行。本次会议主要围绕“计算机图形学、人工智能与数据处理”的最新研究…

辐射发射测试新境界:深入解析TS-RadiMation套件多种操作方法(一)

TS-RadiMation套件作为辐射发射测试的得力助手,支持多种测试方法。 多频段手动模式电波暗室固定高度测试GTEM小室测试手动模式(单频段) 本文将详细介绍如何操作手动模式及手动模式(单频段)这两种模式,助您…

基于matlab的基于Tent混沌映射改进的麻雀搜索算法SSA优化BP神经网络预测

基于Tent混沌映射改进的麻雀搜索算法SSA优化BP神经网络预测 1 普通BP网络 代码如有需要,联系 596520206 %构建网络netnewff(inputn,outputn,hiddennum);% 网络参数net.trainParam.epochs100; % 训练次数net.trainParam.lr0.01; % 学习速…

[前端][基础]JavaScript

1,JavaScript简介 JavaScript 是一门跨平台、面向对象的脚本语言,而Java语言也是跨平台的、面向对象的语言,只不过Java是编译语言,是需要编译成字节码文件才能运行的;JavaScript是脚本语言,不需要编译&…

10:00面试,10:08就出来了,问的问题有点变态。。。

从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到8月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%…

Java三大特性之一——多态(详细版)

文章目录 一、什么是多态二、重写2.1、重写的规则 三、多态的实现条件四、向上转型五、向下转型六、动态绑定七、使用多态的优缺点7.1、优点7.2、缺点 八、避免在构造方法中调用重写的方法 一、什么是多态 Java多态是面向对象编程的一个重要特性,它允许不同的对象对…

连锁餐饮企业-凡塔斯,用千里聆RPA搭建用户评价管理系统,提升门店服务满意度

凡塔斯是大型连锁餐饮企业昊澜餐饮集团旗下餐饮品牌,是牛排自助餐头部品牌,旗下拥有凡塔斯、百分好、食物链KING自助烤肉及餐饮人才商学院等多个行业知名品牌。 创立至今,集团管理门店已发展到福建、广东、江西、浙江等十多个省市&#xff0c…

设备状态监控一定要直观,可视化大屏最适合这个工作

一、引言 在现代工业生产和各类设施运行中,设备的稳定运行至关重要。为了确保设备能够高效、可靠地工作,及时了解设备的状态是关键。而设备状态监控一定要直观,只有这样才能让操作人员和管理人员迅速掌握设备的运行情况,及时发现…

xxe靶机实战

靶机地址:https://www.vulnhub.com/entry/xxe-lab-1,254/ 下载好后解压 直接拖拽.ovf格式的文件到虚拟机里 打开kali扫描主机,靶机开着或者后台运行就行 arp-scan -I eth0 -l 扫描出来目标靶机ip地址192.168.142.145 nmap扫描端口 nmap -A -sS -T4 -P- --min-rat…

钉钉内集成第三方免密登录(Vue+.Net)

需要实现的效果就是在钉钉内点击应用能跳转到第三方网站并且免密登录 1.登录钉钉PC端管理后台 2.通过管理后台进去开发者后台 3.应用开发 创建H5微应用 4.应用创建成功后直接点权限管理全部授权 5.设置H5登录地址 6. 应用管理发布 至此需要配置的步骤全部已完成,…

画动态爱心(Python-matplotlib)

介绍 氵而已 由于用的是 AI,注释得非常清楚,自己改改也可以用 代码 # -*- coding: utf-8 -*- # Environment PyCharm # File_name 尝试1 |User Pfolg # 2024/11/05 22:45 import numpy as np import matplotlib.pyplot as plt import matplo…

理解 WordPress | 第五篇:页面构建器选择指南

WordPress 专题致力于从 0 到 1 搞懂、用熟这种可视化建站工具。 第一阶段主要是理解。 第二阶段开始实践个人博客、企业官网、独立站的建设。 如果感兴趣,点个关注吧,防止迷路。 什么是 WordPress 构建器 WordPress 构建器(Page Builder&am…

硬件基础07 功率放大器

一、功放理论 在多级放大电路中,输出信号往往要送去驱动—定的装置。例如,这类装置包括收音机中扬声器的音圈、电动机的控制绕组等。多级放大电路除了应有电压放大级外,还要求有一个能输出一定信号功率的输出级。这类主要用于向负载提供功率的…

敬业签适配鸿蒙:开启多端协同新篇章

纯血鸿蒙,即华为推出的原生鸿蒙操作系统(HarmonyOS Next),是一款面向全场景的分布式操作系统,它以其独特的微内核设计和多设备协同能力,引领着智能终端的新潮流。鸿蒙系统的推出,不仅标志着中国…

Matlab车牌识别课程设计报告模板(附源代码)

目 录 一.课程设计目的……………………………………………3 二.设计原理…………………………………………………3 三.详细设计步骤……………………………………………3 四. 设计结果及分析…………………………………………18 五. …