TF-IDF (BigData, Data Mining)

这篇具有很好参考价值的文章主要介绍了TF-IDF (BigData, Data Mining)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

TF-IDF(term frequency–inverse document frequency)是一种用于信息检索与数据挖掘的常用加权技术。
TF是词频(Term Frequency),
IDF是逆文本频率指数(Inverse Document Frequency)。

简介

TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。
字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。
TF-IDF加权的各种形式常被搜索引擎应用,作为文件与用户查询之间相关程度的度量或评级。

除了TF-IDF以外,因特网上的搜索引擎还会使用基于链接分析的评级方法,以确定文件在搜寻结果中出现的顺序。

原理

TF-IDF的主要思想是:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。TFIDF实际上是:TF * IDF,
TF词频(Term Frequency),IDF逆向文件频率(Inverse Document Frequency)。
TF表示词条在文档d中出现的频率。

IDF的主要思想

如果包含词条t的文档越少,也就是n越小,IDF越大,则说明词条t具有很好的类别区分能力。

IDF的不足之处.

如果某一类文档C中包含词条t的文档数为m,而其它类包含t的文档总数为k,显然所有包含t的文档数n=m+k,当m大的时候,n也大,按照IDF公式得到的IDF的值会小,就说明该词条t类别区分能力不强。

实际上,
如果一个词条在一个类的文档中频繁出现,则说明该词条能够很好代表这个类的文本的特征,这样的词条应该给它们赋予较高的权重,并选来作为该类文本的特征词以区别与其它类文档。

TF-IDF (BigData, Data Mining)

计算

在一份给定的文件里,词频(term frequency,TF指的是某一个给定的词语在该文件中出现的频率。
这个数字是对词数(term count)的归一化,以防止它偏向长的文件。
(同一个词语在长文件里可能会比短文件有更高的词数,而不管该词语重要与否。)
对于在某一特定文件里的词语来说,它的重要性可表示为:
分子是该词在文件中的出现次数,而分母则是在文件中所有字词的出现次数之和。

TF-IDF (BigData, Data Mining)

逆向文件频率(inverse document frequency,IDF是一个词语普遍重要性的度量。某一特定词语的IDF,可以由总文件数目除以包含该词语之文件的数目,再将得到的商取以10为底的对数得到:
其中
|D|:语料库中的文件总数
:包含词语的文件数目(即的文件数目)如果该词语不在语料库中,就会导致分母为零,因此一般情况下使用作为分母。
idf公式分母
idf公式分母
然后再计算TF与IDF的乘积。
TF-IDF (BigData, Data Mining)

某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的TF-IDF。因此,TF-IDF倾向于过滤掉常见的词语,保留重要的词语。文章来源地址https://www.toymoban.com/news/detail-459196.html

TF-IDF代码

import math

# 计算词频(TF)
def calculate_tf(word_list):
    tf_dict = {}
    for word in word_list:
        if word in tf_dict:
            tf_dict[word] += 1
        else:
            tf_dict[word] = 1
    for word in tf_dict:
        tf_dict[word] = tf_dict[word] / len(word_list)
    return tf_dict

# 计算逆文档频率(IDF)
def calculate_idf(documents, word):
    n = 0
    for document in documents:
        if word in document:
            n += 1
    idf = math.log(len(documents) / n)
    return idf

# 计算TF-IDF
def calculate_tfidf(tf, idf):
    tfidf = {}
    for word in tf:
        tfidf[word] = tf[word] * idf[word]
    return tfidf

# 示例代码
documents = [
    ['apple', 'banana', 'orange', 'banana'],
    ['banana', 'orange', 'orange', 'orange'],
    ['apple', 'orange', 'orange', 'banana']
]

tf_list = []
idf_dict = {}
for document in documents:
    tf = calculate_tf(document)
    tf_list.append(tf)
    for word in tf:
        if word in idf_dict:
            idf_dict[word] += 1
        else:
            idf_dict[word] = 1

for word in idf_dict:
    idf_dict[word] = calculate_idf(documents, word)

tfidf_list = []
for tf in tf_list:
    tfidf = calculate_tfidf(tf, idf_dict)
    tfidf_list.append(tfidf)

print(tfidf_list)

到了这里,关于TF-IDF (BigData, Data Mining)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 用Python实现TF-IDF算法:从原理到实现

    TF-IDF算法是一种用于文本处理和信息检索的算法,用于衡量单词在文本中的重要性。在TF-IDF算法中,每个单词都被赋予一个权重,该权重由该单词在文本中的频率(TF)和在整个文本集合中的频率(IDF)共同决定。 Term Frequency(TF)指一个单词在文本中出现的频率。TF值的计算

    2024年02月04日
    浏览(41)
  • 【NLP模型】文本建模(2)TF-IDF关键词提取原理

            tf-idf是个可以提取文章的模型;他是基于词频,以及词的权重综合因素考虑的词价值刻度模型。一般地开发NLP将包含三个层次单元:最大数据单元是语料库、语料库中有若干文章、文章中有若干词语。这样从词频上说,就有词在文章的频率,词在预料库的频率

    2024年02月08日
    浏览(80)
  • 文本分析-使用jieba库实现TF-IDF算法提取关键词

    🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+         TF-IDF(Term Frequency-Inverse Document Frequency, 词频-逆文件频率)是一种用于资讯检索与资

    2024年02月11日
    浏览(52)
  • 大数据课程K15——Spark的TF-IDF计算Term权重

    文章作者邮箱:yugongshiye@sina.cn              地址:广东惠州 ⚪ 了解Spark的TF-IDF算法概念; ⚪ 了解Spark的TF-IDF算法定义; ⚪ 了解Spark的TF-IDF算法案例; TF-IDF(term frequency–inverse document frequency)是一种用于信息检索与数据挖掘的常用加权技术。TF意思是词频(Term Frequency),

    2024年02月10日
    浏览(52)
  • 【小沐学NLP】Python实现TF-IDF算法(nltk、sklearn、jieba)

    TF-IDF(term frequency–inverse document frequency)是一种用于信息检索与数据挖掘的常用加权技术。TF是词频(Term Frequency),IDF是逆文本频率指数(Inverse Document Frequency)。 TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随

    2024年02月03日
    浏览(76)
  • 基于TF-IDF+KMeans聚类算法构建中文文本分类模型(附案例实战)

      🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 目录 1.TF-IDF算法介绍 2.TF-IDF算法步骤 3.KMeans聚类  4.项目实战 4.1加载数据 4.2中文分词 4.

    2024年02月03日
    浏览(65)
  • 人工智能自然语言处理:N-gram和TF-IDF模型详解

    N-Gram 是一种基于统计语言模型的算法。它的基本思想是将文本里面的内容按照字节进行大小为 N 的滑动窗口操作,形成了长度是 N 的字节片段序列。 每一个字节片段称为 gram,对所有 gram 的出现频度进行统计,并且按照事先设定好的阈值进行过滤,形成关键 gram 列表,也就是

    2024年02月16日
    浏览(54)
  • 【论文阅读】BERTopic:采用一个基于类的TF-IDF流程进行神经网络的主题建模

    主题模型对于在文档的集合中发现潜在的主题非常有用。近期的研究已经展示了主题建模方法作为一个聚类任务的可行性。 本文展示了BERTopic,它是一个话题模型,它通过对一个基于类的TF-IDF的变体的开发,抽取一致的话题表示。 具体来说,BERTopic采用预训练的基于transform

    2023年04月08日
    浏览(42)
  • 基于TF-IDF+TensorFlow+词云+LDA 新闻自动文摘推荐系统—深度学习算法应用(含ipynb源码)+训练数据集

    本项目运用了TF-IDF提取技术,结合词云数据可视化、LDA (Latent Dirichlet Allocation)模型训练以及语音转换系统,来实现一个基于TensorFlow的文本摘要程序。 首先,我们利用TF-IDF(Term Frequency-Inverse Document Frequency)技术来提取文本中的。这有助于找出文本中最具代表性的

    2024年02月13日
    浏览(49)
  • 【自然语言】使用词袋模型,TF-IDF模型和Word2Vec模型进行文本向量化

    一、任务目标 python代码写将 HarryPorter 电子书作为语料库,分别使用词袋模型,TF-IDF模型和Word2Vec模型进行文本向量化。 1. 首先将数据预处理,Word2Vec 训练时要求考虑每个单词前后的五个词汇,地址为 作为其上下文 ,生成的向量维度为50维 2.分别搜索 courtroom 和 wizard 这两个词

    2024年04月14日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包