21天搞定聊天机器人之{命名实体识别}

看到这个题目,估计程序猿们要笑了,你们都懂的嘛。毕竟你们已经被“21天学会XXX”坑了很多回了。因此,这个题目天然是开玩笑的了,怎么可能21天搞定聊天机器人呢。算法

虽然2016年号称人工智能元年,各类牛逼的人工智能技术如雨后春笋冒出来,可是要打造一个智能聊天机器人谈何容易,目前尚未一款聊天机器人能够经过“图灵测试”。最近大热的《西部世界》中的阿诺德提到了人工智能的四层金字塔模型,从下往上依次为"记忆","即兴","私利","?", (最上面一层剧中尚没有透露), 这也偏偏就是描述咱们人类的智商层次。机器学习

OK,言归正传。今天想聊的只是在作聊天机器人(或者叫语音助手)的过程当中须要面对的一个小问题,叫作所谓的命名实体识别(NER: Named Entity Recognition)。NER是天然语言处理中的一个课题,好比识别文本中的人名,地名,日期等这些词语。工具

好比对于以下一句话:
“Siri,打电话给Abby"学习

做为Siri来讲,她除了要明白你的这句话是让她打电话,同时要知道到底是打电话给谁。在这句话中,很显然是要打电话给Abby这我的。那天然要从这句话中识别出Abby做为打电话的目标人。那么怎么来实现从一句话红提取出人名这中命名实体呢? 固然对于人名这种典型的命名实体,已经有不少天然语言处理的工具实现了这个功能,好比NLTK, Stanford NER等。测试

可是,今天我想讲的是借助机器学习和简单的NLP来实现定制化的NER。OK,怎么搞呢?既然提到机器学习,第一反应就是“分类”,毕竟机器学习一个很大的应用领域就在于分类。那么对于NER怎么来用“分类”算法作呢?既然咱们的目标是从一个句子中定位出相关的"词"或"词组",那么很天然这个句子中的每一个词或字就能够划分红两个分类:人名,和非人名。人工智能

对上面的这个例子来讲,就能够分为下面两个类:blog

  1. Siri, 打电话给 ---> 非人名分类
  2. Abby ---> 人名分类

所以这个问题就变成了分类问题了! 只要咱们准备足够的语料库(包含可能的说法,和常见的人名)就能够来训练咱们的分类模型了。it

具体流程能够参考下面示意图:io

如今你的聊天机器人应该知道怎么打电话了, 是否是很赞。哈哈,其实这种方法能够推广,能够用来训练识别其余的Concept, 不单单是人名。二维码

OK,今天先聊到这里了。

欢迎扫描二维码,了解更多。

相关文章
相关标签/搜索