首页 / PYTHON / 基于Python树的聊天机器人
基于Python树的聊天机器人
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了基于Python树的聊天机器人,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2046字,纯文字阅读大概需要3分钟。
内容图文
我正在使用基于文本的Python RPG,但我仍然坚持使用NPC.
我需要的东西有点像树.例如:
Bot: hello there. 1. Hi, what's your name? 2. Hi, Where do you live? > 2 Player: Where do you live? Bot: That's a creepy question. Why do you ask? 1. I was just curious. 2. Never mind. 3. Hide yo kids, hide yo wife > 1 Player: I was just curious. Bot: Okay. 1. Do you like cheese? 2. Bye. > 1 Player: Do you like cheese? Bot: Yes! I LOVE cheese.
你做出的每一个选择都将分支到其他选择,A.K.A.如果用户对第一个问题回答“1”,机器人会回答“我的名字是鲍勃.你的名字是什么?”
我的游戏设计的方式是一个关卡编辑器不是一个不可能的前景(你可以访问的每个地方都存储为字典中的一个键,然后是一个包含其中所有内容的元组[我有一个商店类,一个敌人类,一个’门户’类,很快就会成为一个NPC类]).所以我想以某种方式创建它,所以我可以将它全部保存在我的NPC类存储的变量中(不是一堆’if’语句)
只是为了澄清,我不是要求有人为我编写代码,我只是不确定如何解决问题.
简要说明我需要什么:
树状结构,以一个字符串开头,其中包含许多从其中“分支”的字符串
这些字符串中的每一个都有更多的“分支”
与此元组和元组元组的区别在于,需要有一个字符串,它们分支出来而不是立即分裂.
解决方法:
这与decision tree密切相关,但是玩家是做出选择的玩家,因此在AI意义上它并不是一个.您可以自己定义具有这些数据结构的数据结构
但是,属性
class TreeNode:
def __init__(self,parent,children,overview_text,direction_text):
#... set the variables ...
# question_text is a string
def print_question(self):
print overview_text
for child in children:
print direction_text
# add some accessor methods
def add_child(self,child):
...
然后你的NPC可以通过一个特定的TreeNode跟踪他们的状态 – 调用current_question-和整个会话在TreeNodes树中 – 称之为对话.
class NPC:
def __init__(self,dialogue):
#... set the variables ...
self.current_question = None
def converse(self):
#.... do some stuff....
self.current_question = users_choice;
这样您就可以根据需要中断对话.
请注意,TreeNode可能是一个误导,因为您可能希望对话代表图形而不仅仅是树.例如,许多RPG将具有可以循环以重复信息的会话路径.上面的数据结构不能这样做,因为overview_text(概念上是节点的一部分)和direction_text(概念上是边缘的一部分)被视为一个.
内容总结
以上是互联网集市为您收集整理的基于Python树的聊天机器人全部内容,希望文章能够帮你解决基于Python树的聊天机器人所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。