使用 TF-IDF 算法将文本向量化
理解 TF-IDF 算法
TF-IDF 算法
TF-IDF 算法通过分配权重来反映每个词的重要程度,根据权重对一篇文章中的所有词语从高到低进行排序,权重越高说明重要性越高,排在前几位的词就可以作为这篇文章的关键词。所以 TF-IDF 算法可以用来提取关键词。
TF-IDF 全称为 term frequency–inverse document frequency
算法分为两部分: 词频(TF) 和 逆文档频率(IDF)
词频(TF) = 某个词在文章中的出现次数 / 文章总词数
逆文档频率(IDF) = log( 文章总数 / (包含该词的文章数+1) )
分成两部分理解的话就是,一个词的词频越高说明它越重要,逆文档频率越高说明它越普遍,越普遍则代表性越差。所以,词频与最终的权重呈正比,逆文档频率与最终的权重呈反比。
在使用 TF-IDF 算法之前,需要先对文本进行预处理,如分词、去除停用词。在运算之前,需要先统计每篇文章中的每个词语出现的次数。
统计词语出现次数
假设有一份包含三篇文章的数据,现在对三篇文章中的词语进行次数统计。下面使用的数据已经完成分词和去除停用词的步骤。
>>> docList = []
>>> for item in doc:
... wordDic = {}
... wordList = item.strip().split()
... for word in wordList:
... wordDic[word] =