利用NLP技术构建聊天机器人

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_34290470/article/details/102533762

利用NLP技术构建聊天机器人

查询天气机器人处理流程 

查询天气机器人处理流程

首先该机器人的定位为查询天气的机器人,是一种任务型的机器人,用来处理用户查询天气的要求。

1)用户输入的预处理

当用户输入“请问今天深圳的天气怎么样?”这样一段字符串时,需要进行两步预处理才能很好的被后续的NLP模型处理。这两步是分词和词的向量化。

我们知道,在中文中,构成语义的最小单元是词。我们在语文学习的早期,老师也会教我们如何去断句。同样,利用NLP技术去处理一个句子的前提就是“断句”,在NLP中叫分词,就是把句子切分成一个一个的词。例如:“请问今天的天气怎么样?”,分词之后的结果为“请问/今天/深圳/的/天气/怎么样/?”

通过分词,我们将句子切分为一个一个词的表示。这个时候,用户的输入还是几个分隔开的字符串。字符串的编码同语义是毫无关系的,更好的表示词的方式,应该是利用相应NLP技术,将词进行向量化的表示。向量化的表示,可以表示词语之间的关系以及便于后续模型的计算。

 

2)意图识别

经过预处理之后,用户输入“请问今天深圳的天气怎么样?”变成了一个向量列表[[1,0,0,0,0,0],[0,1,0,0,0,0],[0,0,1,0,0,0], [0,0,0,1,0,0], [0,0,0,0,1,0],[0,0,0,0,0,1]],六个词分别都有他们的向量表示(这里用了one-hot的向量表示法,实际会用词向量)。这个时候,机器人就需要知道用户这句话的目的了。当然,这个机器人比较专注,他只关心用户是不是问天气,如果用户是询问天气,机器人就帮用户查询;如果不是,就做其他的处理。对用户输入的意图进行分析的技术,就是意图识别。本质上,就是各种各样的分类模型。在这个例子中,就是一个二分类模型。

3)实体识别

好了,这个时候,聪明的机器人已经听懂了用户是要查询天气了。但是用户是要查询哪里的天气?什么时候的天气呢?聪明的机器人当然有办法知道了,他有实体识别的工具,可以知道地点是“深圳”,时间是“今天”。实体识别是一项发展了很久,但至今仍然没有得到彻底解决的任务,后面会详细介绍。这个时候,聪明的机器人就能够请求相应的系统,例如中国天气网,去获取深圳今天的天气情况,然后反馈给客户了。

猜你喜欢

转载自blog.csdn.net/qq_34290470/article/details/102533762