2017搜索引擎优化规则(规范化输入表达同样的意思,可以有多种表示方法(组图) )
优采云 发布时间: 2021-10-30 15:162017搜索引擎优化规则(规范化输入表达同样的意思,可以有多种表示方法(组图)
)
> 主题:商务(词汇课)
+ 你想现在开始上课吗?
-start_class
+ ~是的
% 你想现在开始上课吗
- 太好了,^redirectTo(/daily_lessons/vocabulary)
+ ~不
% 你想现在开始上课吗
-好吧。
因此,对话看起来像这样。
归一化输入
有很多方法可以表达相同的意思。
日历的颜色是什么
压延机的颜色是什么
日历的颜色是什么
在将输入语句传递给规则引擎之前,必须对其进行正则化。例如:
这需要结合很多工具库来实现:NLTK、Stanford CoreNLP、Jieba 分词、Wordnet、ConceptNet。
例如,使用斯坦福 CoreNLP,您可以有以*敏*感*词*释:
归一化输入后,在规则引擎中,你可以依靠词性和函数来实现更智能的答案。
高效的规则引擎
Bot 可以有大量的话题,即使只有 100 个话题,每个话题 15 个对话,也就是 1500 条规则。如果只在单机上运行,至少要进行以下两个优化:
首先通过聊天记录和关键字对对话堆栈进行排序。
排序思路大致是这样的:
1) 检查当前对话,看看是否还有更多文本。一个对话的文本可以对应多个规则。
如果有以下内容,请检查规则是否可以匹配输入。如果匹配,请回复。如果没有跟随,或者没有规则可以匹配,则输入次优匹配。
2) 次优匹配是使用TF-IDF算法对聊天话题的历史进行排序。
简单的说,就是用一个函数来计算用户聊天对应话题的频率。重视不同的聊天话题。在次优匹配中,处理用户谈论过的话题。
3) 在次优匹配中,如果没有命中,则输入其他匹配。
其他比赛包括以前没有讨论过的话题。
排序后,同时处理匹配操作,将命中规则的回复按排序顺序放入数组,然后从数组中取出第一个元素。这比按顺序一一检查要快得多。
例如,一些 Node.js 模块:async。
用户画像
在与用户聊天的过程中,获取的用户相关信息必须记录在数据库中。这实际上就是构建知识图谱的过程。
知识图谱使用的数据库是具有三个字段的结构化数据:
{
"subject": "毛",
"predict": "主席",
“对象”:“中国”
}
这建立了一种关系:
B 可以再次跳到 D。
目前有比较成熟的商业产品和开源解决方案。
谷歌知识图谱 API
凯莱图
在 Bot Engine 中,您可以获取相关用户的知识图谱。
this.user.memory.get(...)
this.bot.createUserFact( ...)
使用知识图谱,除了完成实体之间的关系,还有一个原因就是搜索速度非常快,搜索功能强大。
上标
介绍了这么多,那么如何实现一个Bot Engine呢?经过多次比较,我认为基于SuperScript实现Bot Engine是可行的。主要有以下几点:
对话脚本
开始
var superscript = require("superscript");
新上标({ ...},功能(错误,机器人){
bot.reply("userId", "hello", function(err, reply){
// 发挥你的魔法
})
})
结论
很多人预测,2017年,AI方向最有可能成功的领域是聊天机器人。那么,在这种情况下,聊天机器人的架构设计是一个热点问题。包括谷歌、Facebook 都有可能发布类似于微软的 Botframework 平台。Bot 引擎是一种处理对话的引擎,起着关键作用。在开源社区中,我还没有看到非常高调的实现。SuperScript,至少在 JavaScript 社区,是一个不错的选择。
在下一篇文章中,我将介绍深度学习技术的使用,依靠聊天语料来训练Bot Model。
阅读清单
NaturalNode- 节点的通用自然语言工具。
SuperScript - 对话式 UI 的对话系统和机器人引擎。
斯坦福 CoreNLP - 一套核心 NLP 工具
自然语言工具包 - NLTK 是构建 Python 程序以处理人类语言数据的领先平台。
- 基于LevelDB的知识图谱工具。
最后
欢迎联系我,尤其是业内人士,一起给我指正,一起优化。
文章 封面图片来自:中国智能制造网
雷锋网特稿,未经授权禁止转载。有关详细信息,请参阅重印说明。