问题标签 [chatbot]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 与网站的 Java 通信
我制作了一个简单的聊天机器人,它用 Java 中的字符串输出响应某些提示。我希望这个程序输出它对基于 HTML 的网页上的元素的响应,并从同一页面上的不同元素读取输入。
有谁知道我怎么能做到这一点?
如果您有兴趣,这是代码:
所有其他方法,“shouldRespond(String x)”和 getRespond(String x) 都在对象“PepperBot()”的单独类中,并分别检查机器人是否应该响应并获得适当的响应。
只要成本不高,几乎任何解决方案都可以。
database - 将用户输入存储到数据库并检索它的最佳方法
我正在使用 phonegap 构建一个聊天机器人应用程序。我想为应用程序添加一些“学习”功能,因此如果用户询问了聊天机器人在其匹配关键字答案数组中找不到的内容,系统会将该特定问题存储到数据库中。在未来的某个会话中,聊天机器人将检索该问题并询问用户,然后将存储响应,以便下次用户提出相同的问题时,聊天机器人将知道如何回答。
我是 phonegap 的新手,所以我不确定应该使用哪个数据库。我听说过 SQL、SQLlite 和本地存储。哪种类型的数据库最适合此类应用程序?
javascript - javascript-等到函数完成后再继续
我正在构建一个聊天机器人。聊天脚本的一些示例如下:
所以基本上如果用户输入“问我一个问题”,它会将用户引导到该Question1()
功能。如果用户输入“我需要一个朋友”,聊天机器人会回答“你为什么需要一个朋友?” 或“你确定你需要一个朋友吗?”。
这window.ispeech.speak
将允许聊天机器人口头说出这些话。
因此,当聊天机器人问“你吸烟吗?”,并且用户在文本框中输入“是”或“否”时,聊天机器人会根据回复做出响应。
我想要的是Question1()
函数在聊天机器人开始并询问其他事情之前完成运行(因此它等待用户在函数完成之前输入“yes”或“no”并且可以开始新脚本),因为我不希望用户的响应与数组中可用的其他脚本发生冲突(例如,文本框的输入“是”可能与脚本中的另一个“是”数组发生冲突)。
javascript - Javascript函数未链接到下一个
我正在构建一个聊天机器人,一些脚本如下
如您所见,如果用户输入“hi”,聊天机器人会回复 Hello there 或 Greetings!如果用户输入“问我一个问题”,它会链接到 Smoking() 函数。
所以在 Smoking() 函数中,聊天机器人会口头询问用户“你吸烟吗?”,然后它应该链接到下一个函数 SmokingAnswer() ,用户可以在其中输入是或否和聊天机器人然后将根据用户的回复给出回复。但是现在如果我输入“问我一个问题”,聊天机器人会问“你吸烟吗?”,但是当我输入“不”时,聊天机器人不会说“很高兴听到你不吸烟!”说“为什么不呢?” 基于新的数组。
更新(根据建议更改,但仍然无效):
hubot - 您可以使用hubot 聊天机器人提出多个问题,记住状态以遵循具有多个分叉的脚本吗?
例如,如果您有一个问题和脚本,例如
你超过 13+
一个。如果是,请转到#2
湾。如果没有尽头
请选择聊天室
看着hubot,它看起来像是在寻找特定的问题,但不一定会存储状态或通过记住以前的答案并执行“如果这样然后那样”来允许进行更长的采访。
hubot 支持这个吗?如果没有,是否有另一种更适合用例的开源替代方案?
我是否会将每个用户的答案的用户信息存储在 hubot 大脑中,随着时间的推移建立用户的状态?我想对于每个用户的回答,我们都可以查看用户的状态,以及他们在 hubot 大脑中的当前进展,然后进行相应的处理。
但是,如果它更多的是一个脚本,而不是通过正则表达式匹配来寻找任何旧的随机问题,那么这是否会剥夺首先使用 hubot 的大部分好处?
java - 哪种方法更适合在 sqlite 数据库中存储键值对?
我正在创建一个拥有自己“记忆”的聊天机器人。它将用户的输入保存在键值对中,然后访问该内存以查看如何构造响应。该数据库将基本上充当一个字典,随着机器人接收输入而增长。
第一种方法是简单地创建两列并将多个值添加到“值”列。value 列存储多个字符串。(我什至不知道我会怎么做......)像这样:
另一种方法是拥有一个对应于多个值的“键”列。每个值列存储一个字符串。像这样:
我知道将多个值存储到一个键是关系数据库中的一个很大的“禁忌”,所以如果有更好的方法让我知道?
编辑:所以有点关于机器人将如何创建响应,它将获取一个键并从多个值中随机选择一个值。例如,如果“I play”是选择的键,它会随机选择一个值,例如“music”。从那里,它会找到名为“播放音乐”的新键(如果键不存在,它将构造一个)并从多个值中随机选择一个值。
我想过可能在 value 列中使用 arraylist,这样它是一个真正的“一个键,一个值”键值对,但我不确定 SQLite 是否支持列表。
neural-network - 如何同时使用 word2vec 和 RNN?
因此,我在 Java 中使用 word2vec,并尝试以某种方式对其进行训练,以便它为我提供单词和句子的向量表示。
我可以使用它来将输入输入神经网络,以根据 word2vec 数据获得响应吗?我打算在这个的帮助下制作一个聊天机器人。
java - 在android studio中导入库时出错
我正在使用 android studio 制作聊天机器人,但在导入 alice 库时出现错误“无法解析 alicebot”
api - 如何构建一个kik机器人?
是否有任何 api 或 sdk 可用于为 kik messenger 创建 1:1 对话机器人?
我想找到一种方法,借助它我可以发送和接收来自 kik 的消息。
python - 对话的树形数据结构
我试图将对话表示为我正在构建的聊天机器人的一系列决策。我不确定树是否是最好的数据结构,但它是第一个想到的。
例如,聊天机器人可能会问用户“你好吗?”,用户可能会积极或消极地回应。如果用户的响应是肯定的,我希望聊天机器人沿那个方向遍历树,其中下一个节点将是对肯定答案的可能响应集(反之亦然)。
这是代表这种对话的正确方式吗?如果是这样,实施它的最佳方法是什么?