词袋模型(BoW)是自然语言处理(NLP)和机器学习中一种简单而广泛使用的文本表示方法。它将文本文档转换为数值特征向量,使得可以对文本数据执行数学和统计操作。词袋模型将文本视为无序的单词集合(或“袋”),忽略语法和单词顺序但保留重数。
我们研究两种类型的词袋向量:
- 原始计数:实际计算文本中每个单词出现的次数
- TF-IDF:调整原始计数,以偏好那些在少数文档中大量出现的单词,而不是那些在所有文档中广泛出现的单词
定义
文档与语料库:
- 文档是您用例的最小文本单位
- 语料库是您的文档集合
- 用例:考虑您正在寻找答案的典型问题
- 查询:您将用来在语料库中搜索的文本
分词器
分词器是一个程序,它接收文本并将其拆分成更小的单元。一本书可以被拆分成章节、段落、句子、单词。这些都是分词过程的例子。
一旦文本被分词成句子,您就可以将句子分词成单词。
句子
在自然语言中,文本由多个句子组成,句子之间通过如.
这样的标点符号分隔。然而,将文本拆分成句子仍然是一个挑战,因为一些.
表示缩写,例如。
单词:
任何文本都是由单词组成的。有时它们通过空格或标点符号很好地分隔开来。如同句子一样,有些单词包含标点符号,比如U.S.A.
或to court-martial
。
词汇表:语料库中使用的独特单词列表。
下面我们用一些实例来演示如何讲一篇长文章进行分割并且将其中的单词向量化等。
import numpy as np
import math
import pandas as pd
1. 下载语料库
我们将使用某些来自阿瑟·柯南·道尔爵士的《波希米亚的丑闻》这一福尔摩斯故事的短片段。
我们将从这本书的第一段开始。
语料库(Corpus):《波希米亚的丑闻》中的所有句子
文档(Document):书中的1个句子
import requests
r = requests.get('ht