我想创建一个聊天机器人来通知用户街道上的交通情况,但目前不是实时的。我已经使用 MySQL 创建了一个小型数据库,其中存储了一些关于流量的数据,并且我在适当的时候使用 PHP 脚本获取它们,具体取决于用户与聊天机器人的交互。
我想知道当用户询问相同问题的变体时如何处理这种情况,因此可以用相同的答案来回答。例如:
- 为什么高街有车流?
- 高街堵车的原因是什么?
- 为什么我在高街遇到交通拥堵?
- 我在大街上堵车了。为什么是这样?
显然,我可以从删除停用词(例如 did)、命名实体(例如 road -> High Street)、定义同义词和应用文本相似性度量(例如 Levenshtein 距离等)开始。
但是,如果我这样做,我觉得我想重新发明轮子。因此,我的问题是:
是否有任何 API 可以根据语义相似性比较字符串(甚至不需要培训)?
我知道有适合这些任务的软件平台,例如 Dialogflow,但您仍然必须明确说明同一问题的所有变体,以便您得到相同的答案。因此,我寻找一个 API,您将在其中明确说明同一问题的这些变体中的一个(例如,为什么在大街上有交通?)然后 API 将自行找出哪些其他变体与它相同意义与否。