python - 如何根据python中的输入长度创建聊天机器人
问题描述
我在下面有输入
inputs=["Hi","I want to know some information about the course"]
我这里有回复
responses=["Hi,How can I help you?","Which course do you want to take?"]
我想根据输入长度创建一个聊天机器人,它应该给出相应的响应,即,如果用户输入"Hi"
,它必须比较输入列表中的长度和单词,并从响应列表中给出相应的响应。我试过如下
### splitting list elements as words
user_word_split=[word for line in inputs for word in str(line).split()]
### Asking user for enter their text
while True:
user=input('User:')
#### seeing if user text present in the existing list
for i in range(0,len(user_word_split)):
commonElements=[x for x in (user_word_split) if x in user]
#### comparing the length of the inputs and giving responses if condition meets.
if len(user)>=len(commonElements):
user=input(responses[0])
elif len(user)>=len(commonElements):
user=input(responses[1])
输出:
User:Hi
chatbot: Hi,How can i help you?
即使我作为用户文本输入,它也会给出响应。它"go"
不比较输入列表中存在的单词。它只是比较长度。我怎么能做到user text length >= len(commonElements)
这一点。如果它必须从响应列表中获得第一个响应等等。但我是无论单词比较如何,每次都只从响应列表中获得第一个响应。
预期输出:
User: Hi
chatbot: Hi,How can I help you?
User: I want to know some information aout the course
chatbot: Which course do you want to take?
解决方案
推荐阅读
- angular - 在组件中组合输入/服务数据
- css - 来自父组件的CSS不适用于子组件Angular 9
- css - Gatsby-plugin-postcss + autoprefixer + browserslist 的 Gatsby 插件设置
- php - Adobesign PHP API v6 不为自定义字段设置位置
- octave - 如何根据结果检查数值方法的收敛性?(八度)
- javascript - 使用 iText 从 PDF 获取 Javascript
- python-asyncio - 需要 asyncio.Future、协程或 awaitable
- javascript - 如果数字在给定范围之间,是否有一种简洁的方法来返回用于舍入数字的值?
- sql-server - SHA2_256直接比较
- python - 如何将 Azure Function 绑定到 Python 中的 blob 容器?