舆情中的热词分析,没你想的那么简单

简介: 阿里云公众趋势分析产品通过云服务的方式,将阿里巴巴成熟的舆情分析技术共享给广大开发者。热词分析是公众趋势分析最近刚刚上线的功能,用户反馈效果还不错。那么这个听上去很简单的功能,背后有哪些不为人知的细节呢?

背景

阿里云公众趋势分析产品通过云服务的方式,将阿里巴巴成熟的舆情分析技术共享给广大开发者。热词分析是公众趋势分析最近刚刚上线的功能,用户反馈效果还不错。这个功能听起来很简单,不就是对数据源进行分词,然后再统计一下热度么?No!它可没那么简单。

分词和实体识别

良好的分词是热词分析的基础。对于绝大部分分词工具来说,最大的挑战在于识别从未见过的网络热门词、各种奇葩的品牌、产品词等,举个例子,“安利的空气净化器跟霍尼韦尔还有米家比怎么样”这个句子,我们随意在网上找到了某款开源的分词工具,分词的结果如下:

安利/的/空气/净化器/跟/霍尼/韦尔/还有/米/家/比/怎么样

分词工具能识别一般的词语,但是对于品牌词、产品词等专有的实体词,在没有知识库的辅助下很难识别。而阿里在互联网尤其是电商领域耕耘多年,积累了丰富的词库,并始终在不断更新,譬如上述句子,我们可以将其断成如下形式:

安利:brd/的/空气净化器:prd/跟/霍尼韦尔:brd/还有/米家:brd/比/怎么样

不仅能正确地分词,而且还能识别出其中的实体,如霍尼韦尔和米家是品牌词(brd),空气净化器是产品词(prd)。目前,公众趋势分析背后有百万级的人名、品牌、地址、组织机构名、商品、品牌词库等做支撑。

3f21a0affb1d0e57f73b858f68840c6f54547e77

关键词提取

海量的文章,带来了巨大数量的词,对于每篇文章,真正需要被关注的只是少数关键词,那么如何在一篇长文本中挑出关键词呢?热词分析使用TextRank算法为文本生成关键词。

TextRank的算法思想来源于PageRank,旨在通过文本中句子、词之间的相互投票,为句子、词进行权重的排序。PageRank假设一个网页的入链越多,则其权重越高。随机地为每个网页分配一个初始权重,在每一轮投票中,每个网页将其权重均匀地分配给其出链,收敛后(平稳马尔科夫过程)每个网页得到的权重值反映了其重要性,每轮投票的数学表述为:

8835cdaba445e628d8d9923c4de65f20e8a32b0c

其中d为阻尼系数,(1-d)/N表示每次页面转移时有一定的概率会从全网随机选择url,这样可以避免没有外链的悬挂网页让所有权重收敛到0。

PageRank通过页面之间的链接关系建立投票机制,TextRank以此为启发,通过词之间的邻近关系建立词权重投票机制,即假如两个词出现在同一个窗口中,则它们之间产生一次权重投票,这样可以通过PageRank的求解方法,计算每个词在文本中的权重。得到权重的排序之后,就可以挑选topN词作为关键词了。

18184d5151fe508b3ada0a29db9571b1b09ffa75

词关联计算

体验过热词分析功能的读者会发现,对于每个热词,我们提供了与其强关联的词,那么,这些关联关系如何计算呢?

48287e89e4a53e5456cb8946ef55426249b772b3

词关联使用点互信息PMI(pointwise mutual information)来表示,用信息论的语言来表述,点互信息衡量的是“给定一个随机变量后,另一个随机变量不确定性的减少程度”。假设有两个词x和y,则x和y之间的点互信息由下述公式表示:

dc8a7becce907ad4d4a4fa5baeaa7a78e0e02cc9

其中p(x,y)表示x和y同时出现的概率,p(x)和p(y)分别表示x和y单独出现的概率。简单粗暴地理解,就是说相对于单独出现,某两个词更喜欢一起出现,则它们之间的关联程度越高。

热度计算

好了,现在我们已经能得到每篇文章的关键词,而且也能计算跟这些关键词有关联关系的词了,那么词的热度如何衡量呢?词的热度计算不能仅仅统计这个词在所有文章中的出现次数,因为每篇文章的热门程度不一样,汪峰上了头条时的报道,对于热度的计算不能跟一般的小道消息同日而语。热词分析在计算热度时,会用文章的热度对词进行加权,而文章的热度会综合考虑以下因素:

  • 文章的转发量
  • 浏览量
  • 评论量
  • 文章发布的时间,如果发布时间越长,则热度衰减地越高

具体的计算公式就不在这公开了,那是我们经过无数次的调试之后的结果,有兴趣的读者也可以了解一下这篇文章

后记

小小的热词分析,背后也有这么多的技巧和门槛,然而这一切,都是为了利用阿里的大数据技术积累,尽量为客户呈现最精准的舆情分析,产品刚刚上线,优化的路还很长,欢迎大家试用。

目录
相关文章
|
机器学习/深度学习 自然语言处理 算法
文本分析-使用jieba库进行中文分词和去除停用词(附案例实战)
文本分析-使用jieba库进行中文分词和去除停用词(附案例实战)
10634 145
|
开发工具 开发者
阿里云 在智能媒体服务中,智能生产制作时长包,可以批量混剪视频吗?
【1月更文挑战第15天】【1月更文挑战第73篇】阿里云 在智能媒体服务中,智能生产制作时长包,可以批量混剪视频吗?
769 5
|
人工智能 Java 关系型数据库
分享66个JavaGame源码总有一个是你想要的
分享66个JavaGame源码总有一个是你想要的
1546 0
|
人工智能 开发者
通义千问三款主力模型再降价,最高降幅85%
通义千问三款主力模型再降价,最高降幅85%
6086 12
通义千问三款主力模型再降价,最高降幅85%
|
25天前
|
弹性计算 Linux API
最新OpenClaw部署全攻略:1Panel面板、阿里云ECS、MacOS/Linux/Windows11本地安装+千问/Coding Plan API配置
OpenClaw(曾用名Moltbot、Clawdbot)是一款开源可自托管的AI智能体框架,支持对接主流大模型API、集成Telegram等通讯渠道,可实现自动化任务处理、代码生成、文件操作等能力。2026年官方已推出稳定Docker镜像,搭配1Panel面板可实现可视化一键部署,大幅降低操作门槛。本文基于2026年3月最新版本,完整覆盖1Panel部署、阿里云ECS部署、MacOS/Linux/Windows11本地部署,同时详解阿里云千问大模型API与免费Coding Plan API配置流程,梳理所有高频踩坑点与解决方案,全程无多余操作,新手可直接跟着步骤完成部署。
1823 8
|
8月前
|
Ubuntu 安全 Linux
CentOS与Ubuntu的深度对比与分析
Ubuntu更新频繁、文档丰富,适用于云服务与容器部署。 与CentOS的比较,Ubuntu基于Debian,而CentOS则源自RHEL。在软件包格式上,Ubuntu采用.deb和.snap,而CentOS则使用.rpm和flatpak。更新方面,Ubuntu使用apt,而CentOS则依赖yum。尽管CentOS以稳定性见长,不常对包进行更新,但这并不意味着Ubuntu在安全性上逊色。事实上,Ubuntu提供了更为丰富的文档和免费的技术支持。此外,Ubuntu的服务器版本在云服务和容器部署方面拥有更多的优势。
|
搜索推荐 数据挖掘
优质网络舆情监测系统大盘点
一款出色的网络舆情监测系统,不仅能够助力相关主体迅速捕捉舆情信息,有效应对危机,还能够助力其更好地把握舆论动态,维护自身形象。那么,市场上有哪些比较好的网络舆情监测系统呢?这里,本文有为各位整理了一些好用的舆情检测系统,以供各位参考!
568 0
|
数据采集 存储 自然语言处理
【优秀python案例】基于百度贴吧的数据采集与文本分析设计与实现
本文介绍了百度贴吧数据采集与文本分析的设计与实现,包括自动化采集帖子数据、进行情感分析和主题分析,以及使用可视化技术展示分析结果。
1036 111
|
前端开发 JavaScript API
React 文件下载组件:File Download
本文详细介绍了如何在React应用中实现文件下载组件,包括基本概念、实现步骤和代码示例。同时,探讨了常见问题如文件类型不匹配、文件名乱码等及其解决方法,旨在提升用户体验和代码可维护性。
931 2
|
存储 JSON Kubernetes
容器日志收集与管理
【10月更文挑战第11天】Kubernetes中的集群级日志处理确保应用程序日志在容器、Pod或节点出现故障时仍可获取。