本文共 1102 字,大约阅读时间需要 3 分钟。
目录
从一个非结构的文本中,在无人工干预的情况下,利用计算机准确提取文本的意思?
备注: 一个词的逆文当频率和一个词的常见程度成反比
TF-IDF值 越大,表示这个词对于文章的重要性越高。排在最前面的几个词,就是文档的关键词
如果包含词条t的文档越少,IDF越大,则说明词条具有很好的类别区分能力
Step1: 计算词频
TF=特定词在文章中出现的次数
考虑到文章的长短之分:
TF = 某个词在文章职工出现的次数 / 文章的总词数
写成公式:对一个特定文件里的词语来说,它的重要性可以表示为:
以上公式中, 是该词ti在文本dj中出现的次数,分母表示dj文件中所有字词出现次数的之和
Step2, 计算逆文档频率
通用数学符号表示:
其中:
|D|:语料库中的文件总数
:包含词语的文件数目(即的文件数目)如果该词语不在语料库中,就会导致分母为零,因此一般情况下使用
作为分母。
lg是以10为底的对数函数,图形如下
Step3: 计算TF-IDF
TF-IDF = TF * IDF
可以看出, TF-IDF与一个词在文档中的出现次数成正比,与该词在整个语言中的出现次数成反比
假如一篇文件的总词语数是100个,而词语“运维”出现了3次,那么
TF(运维) = 3 / 100 = 0.03
通过百度搜索,运维在中文网页中出现的次数是15,900,000, 假设中文网页总数D=10,000,000,000
IDF(运维) = = 2.79
TF-IDF的分数 = TF * IDF= 0.03 * 2.79 = 0.084
TF-IDF算法的优点是简单快速,结果比较符合实际情况。
缺点是,单纯以"词频"衡量一个词的重要性,不够全面,有时重要的词可能出现次数并不多。而且,这种算法无法体现词的位置信息,出现位置靠前的词与出现位置靠后的词,都被视为重要性相同,这是不正确的