赞
踩
首先该机器人的定位为查询天气的机器人,是一种任务型的机器人,用来处理用户查询天气的要求。
当用户输入“请问今天深圳的天气怎么样?”这样一段字符串时,需要进行两步预处理才能很好的被后续的NLP模型处理。这两步是分词和词的向量化。
我们知道,在中文中,构成语义的最小单元是词。我们在语文学习的早期,老师也会教我们如何去断句。同样,利用NLP技术去处理一个句子的前提就是“断句”,在NLP中叫分词,就是把句子切分成一个一个的词。例如:“请问今天的天气怎么样?”,分词之后的结果为“请问/今天/深圳/的/天气/怎么样/?”
通过分词,我们将句子切分为一个一个词的表示。这个时候,用户的输入还是几个分隔开的字符串。字符串的编码同语义是毫无关系的,更好的表示词的方式,应该是利用相应NLP技术,将词进行向量化的表示。向量化的表示,可以表示词语之间的关系以及便于后续模型的计算。
经过预处理之后,用户输入“请问今天深圳的天气怎么样?”变成了一个向量列表[[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的向量表示法,实际会用词向量)。这个时候,机器人就需要知道用户这句话的目的了。当然,这个机器人比较专注,他只关心用户是不是问天气,如果用户是询问天气,机器人就帮用户查询;如果不是,就做其他的处理。对用户输入的意图进行分析的技术,就是意图识别。本质上,就是各种各样的分类模型。在这个例子中,就是一个二分类模型。
好了,这个时候,聪明的机器人已经听懂了用户是要查询天气了。但是用户是要查询哪里的天气?什么时候的天气呢?聪明的机器人当然有办法知道了,他有实体识别的工具,可以知道地点是“深圳”,时间是“今天”。实体识别是一项发展了很久,但至今仍然没有得到彻底解决的任务,后面会详细介绍。这个时候,聪明的机器人就能够请求相应的系统,例如中国天气网,去获取深圳今天的天气情况,然后反馈给客户了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。