【发布时间】:2017-12-23 12:04:44
【问题描述】:
我想用 Javascript 进行基本的 AI 聊天。
1) 如果用户说“嗨,我的名字是 Thore”,我想检查与某些预定义值最接近的匹配项。
我的数组如下所示:
const nameSentences = [`my name is`, `i'm`, `they call me`];
如何检查最接近的匹配项是什么?在这个例子中,它应该是我的数组的第一个值。
2) 第二部分是如何从用户输入中获取名称。是否可以预定义变量应放置的位置?
类似的东西
const nameSentences = [`my name is ${varName}`, `i'm ${varName}`, `they call me ${varName}`];
然后用用户输入对匹配的句子进行子串化以保存变量的名称?
【问题讨论】:
-
您可以按顺序检查用户输入的每个单词是否匹配。最多的匹配可以从数组中选择。给定示例,用户名将是匹配单词之后的不匹配单词。见Javascript fuzzy search that makes sense
-
但是 'Hi,' 也应该没有匹配项。我应该添加另一个数组来过滤掉这些单词吗?
-
您可以将值存储在数据库中并使用全文搜索功能。否则你需要一些 JS 库来做类似的工作。
-
不确定您的意思?您希望
"Hi,"发生什么?"Hi,"不是问题预期结果的一部分。例如my name is在输入字符串'Hi, my name is Thore'中匹配。不匹配的两个单词和逗号可以被索引引用。
标签: javascript arrays pattern-matching artificial-intelligence string-matching