热词排序算法——贝叶斯均值法

news2024/11/25 4:34:47

热词排序算法——贝叶斯均值法

  • 贝叶斯均值法
    • 基本思想
    • 假设变量
    • 举例说明
    • python实现

贝叶斯均值法

当前(例如今天)的某个词出现的频率相比于历史发生突增,那么这个词的热度上升。

当某个词历史出现的次数为0,而当前出现的次数为100,另一个词历史出现的频率为100,
今日出现的频率为200,虽然同增长100,但明显第一个词是0到1的一个增长,显然比第二个词更重要。

基本思想

  • 假设所有案例都至少有m次曝光(设置一个基准),那么就都具备了同等的一个评选条件;
  • 然后假设这m次曝光的评分是所有案例的平均得分(即假设这个案例具有平均水准) m v + m C \frac{m}{v+m}C v+mmC
  • 最后,用现有的评分进行修正,长期来看,v/(v+m)这部分的权重将越来越大,得分将慢慢接近真实情况。

W R = v v + m R + m v + m C WR = \frac{v}{v+m}R+\frac{m}{v+m}C WR=v+mvR+v+mmC
v : 代表该案例的实际观看量;

m : 代表最低的一个观看量(人工干预设置,可根据实际观看情况而定,平均值等等);

R : 该案例的平均得分;

C : 所有案例的平均得分。

假设变量

1、将单个词语的得分设置为 R ( w ) R(w) R(w)设置为 A t p ( w ) A t p ( w ) + B t p ( w ) = A t p ( w ) T p S u m ( w ) \frac{Atp(w)}{Atp(w)+Btp(w)}=\frac{Atp(w)}{TpSum(w)} Atp(w)+Btp(w)Atp(w)=TpSum(w)Atp(w)

在这里也可以采用牛顿冷却法设置得分值 N θ ( w ) = − l n 当前词频 历史词频 / 时间差 N_\theta(w) = -ln\frac{当前词频}{历史词频}/时间差 Nθ(w)=ln历史词频当前词频/时间差

2、将人工干预设置设置为 m = a v g   T p S u m ( w ) = T p A v g m =avg\ TpSum(w) = TpAvg m=avg TpSum(w)=TpAvg

3、将所有词元的平均得分设置为 C = a v g   R ( w ) C=avg\ R(w) C=avg R(w)

则贝叶斯均值排名为:
W R = A t p ( w ) A t p ( w ) + T p A v g R ( w ) + T p A v g A t p ( w ) + T p A v g C WR=\frac{Atp(w)}{Atp(w)+TpAvg}R(w)+\frac{TpAvg}{Atp(w)+TpAvg}C WR=Atp(w)+TpAvgAtp(w)R(w)+Atp(w)+TpAvgTpAvgC

举例说明

词组历史词频/Btp(w)当前词频/Atp(w)词频和/TpSum(w)得分/R(w)WR
六合彩1106170228080.6060.56385
修正110610012060.08290.45900
下横线102002100.9520.56848
线性回归4002006000.3330.49580
无穷小2002004000.5000.46902
TpAvgC
Avg1044.80.495

W R = A t p ( w ) A t p ( w ) + T p A v g R ( w ) + T p A v g A t p ( w ) + T p A v g C WR=\frac{Atp(w)}{Atp(w)+TpAvg}R(w)+\frac{TpAvg}{Atp(w)+TpAvg}C WR=Atp(w)+TpAvgAtp(w)R(w)+Atp(w)+TpAvgTpAvgC

python实现

新建一个测试集

from collections import Counter

import pandas as pd

test_df = pd.DataFrame(
    (
        [["六合彩", "2024-01-20"] for i in range(1106)]
        + [["六合彩", "2024-01-21"] for i in range(1702)]
        + [["修正", "2024-01-20"] for i in range(1106)]
        + [["修正", "2024-01-21"] for i in range(100)]
        + [["下横线", "2024-01-20"] for i in range(10)]
        + [["下横线", "2024-01-21"] for i in range(200)]
        + [["线性回归", "2024-01-20"] for i in range(400)]
        + [["线性回归", "2024-01-21"] for i in range(200)]
        + [["无穷小", "2024-01-20"] for i in range(200)]
        + [["无穷小", "2024-01-21"] for i in range(200)]
    )
)
test_df

在这里插入图片描述
编写算法

def bayes_avrage_rank(df: pd.DataFrame, base_time: str) -> pd.DataFrame:
    """
    贝叶斯平均法排名算法
    :param df:初始数据格式为 [词元,时间]
    :param base_time: 设置分割时间
    :return: 计算结果
    """
    columns = list(df.columns)
    conditions = df[columns[1]] > base_time

    # 在截止时间前后获取历史词元和当前词元计算Apt和Bpt
    apt = pd.DataFrame(
        Counter(df[conditions][columns[0]]).most_common(), columns=["word", "Atp"]
    )
    bpt = pd.DataFrame(
        Counter(df[~conditions][columns[0]]).most_common(), columns=["word", "Btp"]
    )
    df_pt = pd.merge(bpt, apt, how="outer", on="word")
    df_pt = df_pt.fillna(0)

    # 计算得分R(w)
    df_pt["TpSum"] = df_pt["Atp"] + df_pt["Btp"]
    df_pt["R"] = df_pt["Atp"] / df_pt["TpSum"]
    df_pt = df_pt.fillna(0)

    # 计算 m 和 C
    tp_avg = df_pt["TpSum"].mean()
    r_avg = df_pt["R"].mean()

    # 贝叶斯平均公式
    wr = df_pt["Atp"] * df_pt["R"] / (df_pt["Atp"] + tp_avg) + tp_avg * r_avg / (
        df_pt["Atp"] + tp_avg
    )
    df_pt["wr"] = wr
    return df_pt


bayes_avrage_rank(test_df, "2024-01-20")

在这里插入图片描述
有兴趣可以自行替换牛顿冷却法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1836407.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

超分辨率重建——2022冠军RLFN网络推理测试(详细图文教程)

💪 专业从事且热爱图像处理,图像处理专栏更新如下👇: 📝《图像去噪》 📝《超分辨率重建》 📝《语义分割》 📝《风格迁移》 📝《目标检测》 📝《暗光增强》 &a…

四十七、openlayers官网示例Image Filters——给地图添加锐化、浮雕、边缘等滤镜效果

官网demo示例: Image Filters 这篇讲的是如何给地图添加滤镜。 一看代码,,好家伙,信息量满满,全都看不懂。。。 咱只能一段一段扒。。。 首先添加一个底图到地图上,这个好理解。 const imagery new Til…

开源表单流程设计器:做好流程化办公 实现提质增效!

在社会竞争激烈的今天,如何通过各种渠道和方式实现提质增效?低代码技术平台、开源表单流程设计器的出现,正是助力企业实现流程化办公,进入数字化转型的得力助手。想要利用好企业内部数据资源,打破信息化孤岛&#xff0…

5个好用的AI绘画软件推荐,小白也能轻松上手

前言 随着人工智能技术的飞速发展,AI绘画软件已经成为艺术创作领域的新宠。这些软件不仅能够提供强大的绘画辅助功能,而且操作简便,即使是绘画新手也能轻松上手。本文将为您推荐5款好用的AI绘画软件,帮助您开启艺术创作的大门。 …

react-2 jsx的学习

1.什么是JSX? 概念:JSX就是Javascript和XML(HTML)的缩写,表示在js代码中编写HTML模板结构,它是React中编写UI模板的方式,如下图就是jsx: 优势:1.HTML的声明式模板写法;…

【Go语言精进之路】构建高效Go程序:了解string实现原理并高效使用

🔥 个人主页:空白诗 🔥 热门专栏:【Go语言精进之路】 文章目录 引言一、Go语言的字符串类型1.1 字符串的定义1.2 字符串的零值可用1.3 字符串的不可变性1.4 字符串的拼接1.5 字符串的常用方法1.6 实际使用示例 二、字符串的内部表…

HTML学习和JAVAScript学习

HTML 标签 <!DOCTYPE html> <!-- 文档类型为html --> <html lang"en"> <head><meta charset"UTF-8"> <!-- 使用字符集UTF-8 --> <!-- 设置浏览器兼容性 --><meta name"viewpo…

TCP/IP协议简要介绍

TCP/IP for IP version 4&#xff08;IPv4&#xff09;是一种网络协议&#xff0c;Microsoft Windows使用该协议通过internet与其他计算机进行通信。理想情况下&#xff0c;只要基于Windows的计算机通过网络进行通信&#xff0c;就会使用TCP/IP。 本文介绍TCP/IP协议的组成、协…

vue2双层循环生成动态ref,并跳转到组件内的指定位置

话不用多说,先上一个视频,看看是不是你们需要的效果 vue2双层循环生成动态ref,并跳转到组件内的指定位置 <div class"menu-content" ref"menu"><el-collapse v-model"activeNames"><el-collapse-item style"padding: 10px;…

Java每日作业day6.18

ok了家人们今天我们继续学习方法的更多使用&#xff0c;闲话少叙&#xff0c;我们来看今天学了什么 1.重载 在同一个类中&#xff0c;可不可以存在同名的方法&#xff1f;重载:在同一个类中&#xff0c;定义了多个同名的方法&#xff0c;但每个方法具有不同的参数类型或参数个…

传统车牌识别

主要参考&#xff1a;https://blog.csdn.net/qq_40784418/article/details/105586644 其它介绍&#xff1a; https://blog.csdn.net/great_yzl/article/details/120127962 https://blog.csdn.net/onepunch_k/article/details/115480904 cv2.matchTemplate https://docs.ope…

三星SAINT-D技术引领HBM内存堆叠革命

三星电子即将在今年推出一项革命性技术&#xff0c;允许在CPU或GPU上堆叠高带宽内存&#xff08;HBM&#xff09;&#xff0c;根据韩国经济日报的报道&#xff0c;这一消息在圣何塞举办的三星晶圆代工论坛2024上公布&#xff0c;并得到业内消息人士证实。这项3D封装技术为2025年…

ESP32蓝牙BLE连接米家温湿度计

ESP32蓝牙BLE连接米家温湿度计 文章目录 ESP32蓝牙BLE连接米家温湿度计简介需要准备的东西软件调试代码实现修改查找的名称 修改需要连接的服务和属性添加解析数据的代码 上电演示提示 简介 最近在学习低功耗蓝牙BLE(Bluetooth Low Energy)&#xff0c;刚好手里有个米家蓝牙温…

总结一下 C# 如何自定义特性 Attribute 并进行应用

前言 Attribute&#xff08;特性&#xff09;是一种用于为程序元素&#xff08;如类、方法、属性等&#xff09;提供元数据信息的方法。 特性是一种声明式的信息&#xff0c;附加到程序元素上&#xff0c;提供额外的数据用于描述和控制这些元素的行为。 在编译和运行时&…

WMS系统调拨盘点功能:优化仓储管理效率

一、调拨功能概述 WMS系统的调拨功能是指仓库内部或者不同仓库之间对商品进行转移的过程。调拨的目的在于平衡库存、优化存储空间和提高物流效率。调拨功能主要包括以下几个方面&#xff1a; 1. 调拨申请&#xff1a;根据业务需求&#xff0c;仓库管理员可以发起调拨申请&…

软件设计不是CRUD(23):在流式数据处理系统中进行业务抽象落地——详细编码

&#xff08;接上文《软件设计不是CRUD&#xff08;22&#xff09;&#xff1a;在流式数据处理系统中进行业务抽象落地——设计思考》&#xff09; 4、详细设计 项目开发初期&#xff0c;有两种测速雷达和对应的摄像头需要接入&#xff0c;分别是STC500型测速雷达和TTS400型测…

《UNIX环境高级编程》第三版(电子工业出版社出品)——两年磨一剑的匠心译作

历时两年&#xff0c;《UNIX环境高级编程》的翻译工作终于落下帷幕。这一路走来&#xff0c;真可谓是如鱼饮水&#xff0c;冷暖自知。还记得最初看到招募译者消息的那一刻&#xff0c;内心的激动难以言表。我毫不犹豫地报名&#xff0c;而后经历了试译、海选等激烈的角逐&#…

TestProject Python SDK入门

2024软件测试面试刷题&#xff0c;这个小程序&#xff08;永久刷题&#xff09;&#xff0c;靠它快速找到工作了&#xff01;&#xff08;刷题APP的天花板&#xff09;-CSDN博客跳槽涨薪的朋友们有福了&#xff0c;今天给大家推荐一个软件测试面试的刷题小程序。​编辑https://…

怎么提取视频中的音频?别错过这6个音频提取方法了!(全新)

您是否曾经发现过一个音乐很棒的视频&#xff0c;并想从视频中提取音频&#xff1f;如今&#xff0c;关于提取mp4视频中的音频需求越来越常见。例如&#xff0c;您可能想从mp4格式的电影中提取音频&#xff0c;将音乐用作手机铃声&#xff0c;或在自己的视频项目中使用视频中的…

C#唯一进程的处理Winform/WPF

C#唯一进程的处理 1.使用进程&#xff08;Process&#xff09;判断winformWPF执行效果&#xff1a; 2.使用互斥体&#xff08;Metux&#xff09;实现winformWPF实现效果&#xff1a; 在C#客户端&#xff08;Winform/WPF&#xff09;开发过程中&#xff0c;有的情况需要确保程序…