TF-IDF算法

TF:term frequency短期频率,用于衡量一个词,在一个文档中出现的频率。因为词出现的次数和文档大小也直接相关,所以词频通常是一个词出现的次数除以文档的总长度,相当于归一化操作,公式:

TF(t) = 词t在某个文档中出现的总次数  /  该文档的总词数

IDF:inverse document frequency逆向文件频率,用于衡量一个词的重要性/区分度。计算词频TF的时候,所以的词都同等对待。但是某些词,比如一些介词和连词等等,可能出现很多次,但是根本不重要。因此我们要减轻多个文档中都频繁出现的词的权重。字词的重要性随着它在文件中出现的次数正比增加,但与语料库中出现的频率成反比。公式:

IDF = ln(总文档数 / 词 t 出现的文档数)

TF-IDF(term frequency-inverse document frequecy) = TF * IDF

用途:主要用于评估一个词对一个文档集或者语料库中的重要程度。TF-IDF加权的各种形式常被用于搜索引擎应用,作为文件与用户查询之间的相关程度的度量。

tags = jibes.analyze.extract_tags(sentence,topk=20,withWeight=False,allowPOS=())
“””
Sentence为待提取的文本
topk为返回几个TF/IDF权重最大的关键词,默认为20
withWeight为是否一并返回关键词权重值,默认为False
allowPOS是仅包括指定词性的词,默认值为空,即不筛选。
jieba.analyse.TFIDF(idf_path=None)新建TFIDF实例,idf_path为IDF频率文件
idf的值是jieba通过语料库统计得到的,所以实际使用时,可能需要依据使用环境,替换为使用对应的语料库统计得到idf值。
“”“

#关键词提取所使用逆向文件频率(idf)文本语料库以及所使用的停用词可以切换成自定义的
jieba.analyse.set_idf_path(file_name)
jieba.analyse.set_stop_words(file_name)
for word,weight in jiebas.analyse.extract_tags(sentence,withWeight=True):
    print(word,weight)


#当然,如果是直接open一个文件也可以:
sentence = open(“path”,”rb”,encoding=“utf-8”).read()
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值