所谓的词袋(Bag-of-words)模型是一种用机器学习算法对文本进行建模时表示文本数据的方法。
在本教程中,你将了解到自然语言处理中的特征抽取方法。
完成本教程后,你将知道:
1.什么是词袋(Bag-of-words)模型,以及为什么需要用它来表示文本。
2.如何为一组文档开发一个词袋(Bag-of-word)模型。
3.如何使用不同的技术准备词汇和单词。
教程概述
本教程分为6部分; 它们是:
1.文本问题。
2.什么是词袋(Bag-of-Words)?
3.Bag-of-Words模型的例子。
4.管理词汇(managing vocabulary)。
5.得分词(scoring words)
6.词袋(Bag-of-Words)的局限。
1、文本问题
机器学习这样的技术比较喜欢被定义好的固定长度的输入和输出,因此不固定输入输出是文本建模的一个问题。
机器学习算法不能直接处理原始文本,文本必须转换成数字。具体来说,是数字的向量。
“在语言处理中,向量x是由文本数据派生而来的,以反映文本的各种语言属性。”在自然语言处理中神经网络方法,2017年。
这被称为特征提取或特征编码。这是一种流行的、简单的文本数据提取方法被称为文本的词汇模型。
2、什么是词袋(Bag-of-Words)?
一个简单的词袋模型(BOW),是一种使用机器学习算法。从文本中提取特征的方法。该方法非常简单和灵活,可以用于从文档中提取各种功能的各种方法。词袋(Bag-of-words)是描述文档中单词出现的文本的一种表示形式。它涉及两件方面:
1.已知词汇的集合。
2.测试已知单词的存在。
因为文档中单词是以没有逻辑的顺序的放置,所以称为单词的“袋子”。该模型只关注文档中是否出现已知的单词,并不关注文档中的出现的单词。
“bag-of-words方法(BOW)是句子和文件的一个非常常见的特征提取程序。在这种方法中,我们查看文本中单词的直方图,也就是将每个单词计数作为一个特性。”- 自然语言处理中的神经网络方法,2017。
词袋(bag-of-words)可以像你喜欢的那样简单或复杂。其复杂性在于决定如何设计已知单词(或令牌)的词汇量以及如何统计已知单词的存在。
接下来我们将仔细研究这两个问题。
3、词袋(Bag-of-Words)模型的例子
让我们用一个有效的例子来制作一个词袋(bag-of-words)模型。
步骤1:收集数据
以下是Gutenberg项目中Charles Dickens的《双城记》一书中的前几行文字。
“It was the best of times,
it was the worst of times,
it was the age of wisdom,
it was the age of foolishness,”
对于这个小示例,我们将每一行视为一个单独的“文档”,将4行视为整个文档。