【问题标题】:How to insert calculator inside chat bot that written by Python如何在 Python 编写的聊天机器人中插入计算器
【发布时间】:2020-09-18 20:22:17
【问题描述】:

我使用 Python 3.6 编写了一个聊天机器人程序。我研究了几个网站的语法,我的大部分聊天机器人内容都来自这里:https://medium.com/analytics-vidhya/building-a-simple-chatbot-in-python-using-nltk-7c8c8215ac6e。该程序对文本执行 nltk 没有问题。我打算将物理知识输入我的聊天机器人。到目前为止,机器人可以回答牛顿第二定律等所有与物理学有关的事情,甚至给出公式。但是,我打算让这个机器人可以对 F=m*a 等方程进行简单的计算。这几天我在谷歌上搜索了很多网站,但仍然找不到解决方案。我也在堆栈溢出中进行了搜索,但最接近我的答案的帖子似乎不是我的答案。 (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、Chatfuel 所有这些。如果我只想使用 python,我该如何改进聊天机器人,以便它可以执行我上面所说的计算。感谢堆栈溢出专家的帮助和建议。

【问题讨论】:

    标签: python python-3.x nltk calculator chatbot


    【解决方案1】:

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

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

    长答案:

    第一项是最棘手的。那么我们来区分一下 2 种主流的 Chatbot 模式:

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

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-05
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-23
      相关资源
      最近更新 更多