我们在做模型训练的时候,不是直接把文本或者词语传给计算机让其进行计算,而是需要将单词、句子、文本转换成向量或者矩阵进行计算,而如何将文本转换成向量就是本文需要介绍的内容。
介绍内容之前,大家需要先熟悉一些概念。
词库:训练数据中出现的所有单词,可以使用jieba分词统计出来。
混淆矩阵:混淆矩阵是数据科学、数据分析和机器学习中总结分类模型预测结果的情形分析表,以矩阵形式将数据集中的记录按照真实的类别与分类模型作出的分类判断两个标准进行汇总。
每个单词是一个词库数量维度的向量,但是其中只有一个1,其他都是0。
比如:按照one-hot表示方式,船和舟是没有关系的。
句子的表示-boolean
向量为词库的大小,每个句子对应词库中单词出现与否的情况,出现为1,不出现为0,比如下面的例子:
句子的表示-count
向量为词库的大小,每个句子对应词库中单词出现的次数,比如下面的例子:
例子:计算三个句子的TF-IDF向量表示:
TF-IDF 算法是创建在这样一个假设之上的:对区别文档最有意义的词语应该是那些在文档中出现频率高,而在整个文档集合的其他文档中出现频率少的词语,所以如果特征空间坐标系取tf词频作为测度,就可以体现同类文本的特点。
但是在本质上idf是一种试图抑制噪声的加权,并且单纯地认为文本频率小的单词就越重要,文本频率大的单词就越无用,显然这并不是完全正确的。idf的简单结构并不能有效地反映单词的重要程度和特征词的分布情况,使其无法很好地完成对权值调整的功能,所以tf-idf法的精度并不是很高。