第7章 构建基于文本的对话系统(聊天机器人)
学习目标
阅读完本章之后,你将能够:
- 理解GloVe、Word2Vec和词嵌入的概念;
- 构建你自己的Word2Vec模型;
- 选择用来创建对话代理的工具;
- 预测对话的意图;
- 创建对话代理。
本章介绍GloVe、Word2Vec和词嵌入的概念,以及用来创建对话代理的一些工具。
7.1 简介
深度NLP的最新趋势之一是创建对话代理,也称为聊天机器人。聊天机器人是一种基于文本的对话系统,可以理解人类的语言,并与人进行真正的对话。许多公司利用这种系统来和顾客互动,从而获取信息和反馈,例如对新产品的看法。
聊天机器人也可以用作助理,例如Siri、Alexa和Google Home,它们能够提供关于天气或者交通情况的实时信息。
那么,机器人是如何理解我们的呢?前面几章已经介绍过语言模型(LM)及其工作原理,LM中最重要的问题是词语在句子中的位置。根据句子中已经存在的词语的不同,每个词语有一定的概率会在该句子中出现。然而,概率分布的方法不是很适合这个任务,因为这个任务需要的是理解含义,从而让模型理解给定语料库中一个词语的含义,而不是预测下一个出现的词语。
一个词语只有放在一个上下文或者语料库之中才有更准确的含义。理解句子的含义是一件非常重要的事情,而句子的含义又是由其结构(即句子中词语的位置)所决定的,所以模型会根据每个词语附近的词语来预测该词语的含义。那么,如何在数学上描述这个想法呢?
第4章介绍了使用独热编码向量表示词语的方法,这种向量由1和0构成。然而,这种表示无法提供词语的实际含义,例如:
- Dog -> [1,0,0,0,0,0];
- Cat -> [0,0,0,0,1,0]。
狗和猫都是动物,但如果用1和0来表示这两个词,就无法体现出任何与词语含义相关的信息。 ...
Get Python计算机视觉和自然语言处理 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.