如何在Python编写的聊天机器人中插入计算器

2024-04-19 22:27:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我用Python3.6编写了一个聊天机器人程序。我从几个网站学习语法,我的聊天机器人的大部分内容都来自这里:https://medium.com/analytics-vidhya/building-a-simple-chatbot-in-python-using-nltk-7c8c8215ac6e。该程序对文本执行nltk没有问题。我计划将物理知识输入聊天机器人。到目前为止,机器人可以回答所有与物理有关的问题,如牛顿第二定律,甚至可以给出公式。然而,我计划让这个机器人可以对方程进行简单的计算,比如F=m*a。这几天我在谷歌搜索了这么多的网站,但仍然找不到解决方案。我也在stack overflow中进行了搜索,但离我答案最近的帖子似乎不是我的答案。(how do I add a calculator to my chatbot)。如果是普通python脚本,我知道如何编写,我想我会这样写:

  mass = input("input the mass of an object")
  acceleration=input("input the acceleration of an object")
  print("Force of the object: ", mass*acceleration "Newton.")

但是,我该如何在聊天机器人中实现这一点?到目前为止,我唯一能想到的方法就是使用聊天机器人平台,比如chatterbot.AI、Dialogflow、chatfoure等等。如果我只想使用python,我如何改进chatbot,使它能够执行我上面提到的计算。感谢堆栈溢出专家的帮助和建议


Tags: ofthe答案程序aninputobject网站
1条回答
网友
1楼 · 发布于 2024-04-19 22:27:53

简而言之,您的聊天机器人应该:

  • 识别意图(每个公式需要链接到单个意图)
  • 收集所有必需的实体(每个实体表示公式所需的变量)
  • Python计算(求解公式)
  • 检索答案

长答案:

第一项是最棘手的。因此,让我们分离两种主流聊天机器人模式:

  1. 基于脚本(如Chatfuel)。 在这种模式下,聊天机器人需要某种菜单(按钮/carroussel/quick answers),为用户提供它可以求解的预定义公式列表。在用户选择(F=ma)之后,脚本必须询问每个变量(质量、加速度)

  2. 基于自然语言处理(如NLTK、RASA或Dialogflow)。 我想这就是你想走的路。它更加用户友好和交互式,但也更加复杂。 您必须首先为每个公式设置一个意图,然后向聊天机器人教授每个意图的一些查询示例,如:

    • 我想解F=ma
    • 计算牛顿第二定律
    • 10m/s²的速度加速我的500kg汽车需要什么力

在上一个示例中,用户已经输入了求解方程所需的所有实体。 如果希望允许该用例,则需要设置一个实体提取器。 无论如何,当用户没有提供所需的所有信息时,您需要向他们询问剩余的实体

您可能还需要提取度量单位(m/s、km/h)并在内部进行转换

之后,您将拥有计算、准备答案并交付给用户所需的意图(公式/函数)和所有实体(输入/变量)

相关问题 更多 >