当前位置: 首页 > news >正文

国内最好的旅游网站建设银行官方网站首页个人登录

国内最好的旅游网站,建设银行官方网站首页个人登录,杭州注册公司政策哪个区比较好,邢台做网站企业一.TF-IDF算法概述 什么是TF-IDF? 词频-逆文档频率(Term Frequency-Inverse Document Frequency,TF-IDF)是一种常用于文本处理的统计方法,可以评估一个单词在一份文档中的重要程度。简单来说就是可以用于文档关键词的提…

一.TF-IDF算法概述


什么是TF-IDF?

词频-逆文档频率(Term Frequency-Inverse Document Frequency,TF-IDF)是一种常用于文本处理的统计方法,可以评估一个单词在一份文档中的重要程度。简单来说就是可以用于文档关键词的提取。


TF-IDF的基本思想:

看到下面这段文本,我们应该很容易就能看出“梅西”应该是一个关键词,但是我们如何通过算法的形式让计算机也能够辨别呢?

五届世界最佳球员莱昂内尔·梅西与阿根廷一起遭遇了更多的心碎——在世界杯1/8淘汰赛上,阿根廷3-4输给了法国队。
梅西在俄罗斯只进了一球,在世界杯淘汰赛阶段还没有进球。尽管被广泛认为是史上最伟大的球员之一,巴塞罗那球星在他的祖国阿根廷却仍然受到许多人的质疑,特别是与1986年夺得世界杯的球王马拉多纳相比。曾经的 “球王接班人”如今已年满31岁,他可能已经失去了为祖国争夺荣誉的最后机会。

脑海中想到的第一个方法就是对单词出现的次数进行统计,也就是词频。如果一个单词在文中出现的频率很高,那我们是否可以认为这个单词就是文章的关键词呢?

其实不一定,词频很高的单词往往更有可能是一些没有意义的停用词(stopword),例如“我”,“的”,“了”等等。
与此同时,在文章中出现次数很少的单词也不一定是不重要的单词。

因此,TF-IDF的基本思想是:如果某个单词在一篇文章的出现的频率很高,同时在其他文章中很少出现,则认为该单词大概率是一个关键词。


词频(Term Frequency,TF):

词频统计的思路:单词w在文档d中出现的频率。


逆文档频率(Inverse Document Frequency,IDF):

逆文档频率的思路:如果一个单词在很多的文档中出现,则意味着该单词的的重要性不高;反之则意味着该单词的重要性很高。主要是考虑了单词的重要性。

文档数量越大,同时单词出现在越少的文档中,IDF值就越大,则说明单词越重要。

上面IDF公式已经可以使用了,但是在一些特殊情况下可能会有一些小问题,比如某一个生僻词在我们的语料库中没有出现过,那么分母N(w)=0,IDF就没有意义了。
所以常用的IDF需要做平滑处理,使得没有在语料库中出现的单词也可以得到一个合适的IDF值。

二.代码实现

# 0. 引入依赖
import numpy as np
import pandas as pd# 1. 定义数据和预处理
docA = "The cat sat on my bed"
docB = "The dog sat on my knees"bowA = docA.split(" ")
bowB = docB.split(" ")# 构建词库
wordSet = set(bowA).union(set(bowB))
# print(wordSet)# 2. 进行词数统计
# 用统计字典来保存词出现的次数
wordDictA = dict.fromkeys(wordSet, 0)
wordDictB = dict.fromkeys(wordSet, 0)# 遍历文档,统计词数
for word in bowA:wordDictA[word] += 1
for word in bowB:wordDictB[word] += 1# pd.DataFrame([wordDictA, wordDictB])
# print(wordDictA)
# print(wordDictB)# 3. 计算词频TF
def computeTF(wordDict, bow):# 用一个字典对象记录tf,把所有的词对应在bow文档里的tf都算出来tfDict = {}nbowCount = len(bow)# 取出key与valuefor word, count in wordDict.items():tfDict[word] = count / nbowCountreturn tfDicttfA = computeTF(wordDictA, bowA)
tfB = computeTF(wordDictB, bowB)
# print(tfA)
# print(tfB)# 4. 计算逆文档频率idf
def computeIDF(wordDictList):# 用一个字典对象保存idf结果,每个词作为key,初始值为0idfDict = dict.fromkeys(wordDictList[0], 0)N = len(wordDictList)import math# 遍历字典序列中的每一本字典for wordDict in wordDictList:# 遍历字典中的每个词汇,统计Nifor word, count in wordDict.items():if count > 0:# 先把Ni增加1,存入到idfDictidfDict[word] += 1# 已经得到所有词汇i对应的Ni,现在根据公式把它替换成为idf值。Ni:表示文档集中包含了词汇i的文档数for word, Ni in idfDict.items():# 若一个词汇每个文档均出现则Ni=N,则log10(1)=0idfDict[word] = math.log10((N + 1) / (Ni + 1))return idfDictidfs = computeIDF([wordDictA, wordDictB])
# print(idfs)# 5. 计算TF-IDF
def computeTFIDF( tf, idfs ):tfidf = {}for word, tfval in tf.items():tfidf[word] = tfval * idfs[word]return tfidftfidfA = computeTFIDF( tfA, idfs )
tfidfB = computeTFIDF( tfB, idfs )# pd.DataFrame( [tfidfA, tfidfB] )
# print(tfidfA)
# print(tfidfB)

http://www.yayakq.cn/news/906552/

相关文章:

  • 信息技术 网站建设教案超级工程网站建设
  • 网站模板缺少文件怎么办wordpress最多多少用户
  • 做网站课程报告wordpress大学主题3.5
  • 吐鲁番市建设局网站青岛网站制作专业
  • 什么行业需要做网站最新热搜榜
  • 郑州社交网站开发河南省和建设厅网站首页
  • 南宁手机平台网站建设南昌网站排名优化报价
  • 平和网站建设口碑好的网站设计制作价格
  • 深圳设计网站哪个好小程序开发费用明细怎么填
  • 中国手机网站怎么做网站二维码
  • 单位写材料素材网站网页图片不能正常显示的原因
  • 网站怎么做可以合法让别人充钱公司装修款怎么入账
  • 山东省建设厅教育网站二手交易网站建设目标
  • 餐饮型网站开发策划公司简介
  • 站内营销推广方式有哪些软件下载网站排行榜前十名
  • 天津网站建设公司加盟网站模板
  • 亲子网站源码wordpress设置多域名多站点
  • 网站管理规范服装网站建设市场分析
  • 网站建设公司如何推广wordpress 一直崩溃
  • 网站流量一直下降网站运营维护措施有哪些
  • 绥化市建设局网站自己做网站需要固定ip吗
  • 如何编辑网站标题怎么做网站一个平台
  • 扬州建设信用网站网站如何被谷歌收录
  • 网站计划任务怎么做搜索引擎优化网站排名
  • 想做水果外卖怎么做网站做个普通的网站在上海做要多少钱
  • 东莞做网站卓诚c2c平台如何盈利
  • 照片展示网站模板免费下载第一营销网
  • 佛山做网站公司宽带技术网网站
  • 网站怎么快速收录哈尔滨服务专业的建站
  • php网站开发工程师电子商务行业发展现状