聊天机器人:入门、进阶与实战
上QQ阅读APP看书,第一时间看更新

2.1 词袋模型

当提到鼠标、键盘、显示器3个时,我们更可能会联想到计算机,而不是足球。语言模型就是基于这样的思想,进行大规模语料的收集和统计,对文本进行判断和预测。语言模型中最简单的就是词袋模型。

词袋模型(Bag of Words,BOW)是一种基于词频的对文档进行特征提取的方法。词袋模型是将文档看作词的集合,对文档中出现的所有词进行词频统计,用词频向量来表示文档。下面举例说明词袋模型是如何进行文档表示的。

假设要使用词袋模型对以下文本进行表示:

·文本1:鼠标 左键 加 键盘 Delete 重新 启动 计算机

·文本2:单击 鼠标 右键 显示 计算机 桌面 菜单

·文本3:触摸 显示器 代替 了 鼠标 键盘

首先获得文本中出现的词的集合,{鼠标,左键,加,键盘,Delete,重新,启动,计算机,单击,右键,显示,桌面,菜单,触摸,显示器,代替,了}。

接着,就可以将以上3个文本词语出现的位置标记为1,否则标记为0的方式,用词袋模型进行词频向量表示,结果如下:

·文本1:[1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0]

·文本2:[1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0]

·文本3:[1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1,1]

这就是词袋模型表示方法,其计算过程非常简单快速,可以灵活地应用于各种文档的特征提取。朴素贝叶斯就是一种以条件独立假设为前提,将文本看作词袋模型进行计算的概率模型。

词袋模型在构建的过程中完全不需要考虑文档中词出现的顺序,只独立统计每个词语的词频。相同的词语无论以何种顺序组合,词袋模型都认为相同。然而在自然语言处理中,词序包含着重要信息。同样的词语集合以不同的顺序组合,其组成句子出现的概率和表达的含义可能完全不同。

此外,当文档较大时,其中出现的词的数量也随之增加。词袋模型得到的词频向量长度等于文档中出现词的数量。此时,文本向量中极容易出现大量的零,产生稀疏向量。稀疏向量在建模和计算中会消耗更多的资源。