TF-IDF算法:

TF:词频(Term Frequency),即在分词后,某一个词在文档中出现的频率。

IDF:逆文档频率(Inverse Document Frequency)。在词频的基础上给每个词分配权重,如果有三个词的词频一样,但这并不代表这三个词在这篇文章的重要性是一样的,因此还要给这三个词分配权重,IDF就是某个词在在整个语料库中少见但是在这边文章中多次出现,很可能反映了此文章的特性,因此IDF就高。等于语料库中文档总数比上包含改词的文档数的对数

某个词对文章的重要性越高,它的TF-IDF值就越大

算法细节:

词频(TF) = 某个词在文章中的出现次数/文章的总次数   或者  某个词在文章中出现的次数/该文出现次数最多的词的出现次数(用于比较长的文章)

逆文档频率(IDF) = log(语料库的文档总数/(包含该词的文档数+1))  为了避免分母为0即所有文档都不包含该词,因此分母加一。

TF-IDF= TF*IDF

python实现关键词提取:

首先要安装jieba分词的包

import jieba
import jieba.analyse

top_keywords1 = jieba.analyse.extract_tags('我爱北京天安门', topK=10, withWeight=True)#可用allowPOS参数为限定范围词性类型

输出结果为:

[('天安门', 4.49770143677), ('北京', 2.33370115436)]

  

05-22 05:59