《python深度学习》笔记---6、理解 n-gram 和词袋
《python深度学习》笔记---6、理解 n-gram 和词袋
一、总结
一句话总结:
【不保存顺序的分词方法】:词袋是一种不保存顺序的分词方法(生成的标记组成一个集合,而不是一个序列,舍 弃了句子的总体结构),因此它往往被用于浅层的语言处理模型,而不是深度学习模型。
二元语法(2-grams)集合:{"The", "The cat", "cat", "cat sat", "sat", "sat on", "on", "on the", "the", "the mat", "mat"}
1、句子“The cat sat on the mat.”(“猫坐在垫子上”) 上的二元和三元词袋模型?
二元语法(2-grams)集合:{"The", "The cat", "cat", "cat sat", "sat", "sat on", "on", "on the", "the", "the mat", "mat"}
三元语法(3-grams)集合:{"The", "The cat", "cat", "cat sat", "The cat sat", "sat", "sat on", "on", "cat sat on", "on the", "the", "sat on the", "the mat", "mat", "on the mat"}
2、词袋模型的使用场景?
【词袋不适合深度模型】:词袋是一种不保存顺序的分词方法(生成的标记组成一个集合,而不是一个序列,舍 弃了句子的总体结构),因此它往往被用于浅层的语言处理模型,而不是深度学习模型。
【一些浅层网络中是特别好的特征工程工具】:但一定要记住,在使用轻量级的浅层文本处理模型时(比 如 logistic 回归和随机森林),n-gram 是一种功能强大、不可或缺的特征工程工具。
二、理解 n-gram 和词袋
博客对应课程的视频位置:
理解 n-gram 和词袋 n-gram 是从一个句子中提取的 N 个(或更少)连续单词的集合。这一概念中的“单词” 也可以替换为“字符”。
下面来看一个简单的例子。考虑句子“The cat sat on the mat.”(“猫坐在垫子上”)。它 可以被分解为以下二元语法(2-grams)的集合。
{"The", "The cat", "cat", "cat sat", "sat", "sat on", "on", "on the", "the", "the mat", "mat"}
这个句子也可以被分解为以下三元语法(3-grams)的集合。
{"The", "The cat", "cat", "cat sat", "The cat sat", "sat", "sat on", "on", "cat sat on", "on the", "the", "sat on the", "the mat", "mat", "on the mat"}
这样的集合分别叫作二元语法袋(bag-of-2-grams)及三元语法袋(bag-of-3-grams)。这里袋(bag)这一术语指的是,我们处理的是标记组成的集合,而不是一个列表或序列,即标记没有特定的顺序。这一系列分词方法叫作词袋(bag-of-words)
词袋是一种不保存顺序的分词方法(生成的标记组成一个集合,而不是一个序列,舍 弃了句子的总体结构),因此它往往被用于浅层的语言处理模型,而不是深度学习模型。提 取 n-gram 是一种特征工程,深度学习不需要这种死板而又不稳定的方法,并将其替换为分 层特征学习。本章后面将介绍的一维卷积神经网络和循环神经网络,都能够通过观察连续的 单词序列或字符序列来学习单词组和字符组的数据表示,而无须明确知道这些组的存在。因 此,本书不会进一步讨论 n-gram。但一定要记住,在使用轻量级的浅层文本处理模型时(比 如 logistic 回归和随机森林),n-gram 是一种功能强大、不可或缺的特征工程工具。