对文本数据进行建模,有两个问题需要解决:
- 模型进行的是数学运算,因此需要数值类型的数据,而文本不是数值类型数据。
- 模型需要结构化数据,而文本是非结构化数据。
将文本转换为数值特征向量的过程,称为文本向量化。将文本向量化,可以分为如下步骤:
- 对文本分词,拆分成更容易处理的单词。
- 将单词转换为数值类型,即使用合适的数值来表示每个单词。
同样,需要注意的是,文本是非结构化数据,在向量化过程中,需要将其转换为结构化数据。
词袋模型
词袋模型,直观上理解,就是一个装满单词的袋子。实际上,词袋模型是一种能够将文本向量化的方式。在词袋模型中,每个文档为一个样本,每个不重复的单词为一个特征,单词在文档中出现的次数作为特征值。
运用词袋模型,我们可以将文本数据转换为结构化数据。
from sklearn.feature_extraction.text import CountVectorizer
count = CountVectorizer()
docs = ['where there is a will, there is a way.',
'There is no royal road to learning.',]
bag = count.fit_transform(docs)
#bag是一个稀疏矩阵。
print