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

基于词云图的短信热词数据可视化

热词统计:短信、邮件、微信、QQ、微博、电商评价、新闻、各行业热词(旅游、世界杯、战争、考研等)、热点事件等场景。

展示模型:给定多段文本,绘制出词云图。

核心思想:根据样本集中的文本包含的高频词汇作为输入(比如筛选出最高频的30个词),按频率的高低进行逐级突出显示。(可行性分析)

利用运营商的5000+条短信数据样本,提取样本短信文本中所对应的关键特征(高频词汇),频率由高到低,位置从中心到边缘,字体从大到小,笔画从粗到细,结合颜色修饰,达到突出重点的效果。

载入数据文件

查看字段定义

sms_raw<-read.csv("sms_spam.csv",stringsAsFactors = FALSE)
str(sms_raw)

 统计样本类别比例

table(sms_raw$type)

 取垃圾短信子集

sms_raw_spam<-subset(sms_raw,type=="spam")

 取正常短信子集

sms_raw_ham<-subset(sms_raw,type=="ham")

 安装文本挖掘支持包、加载文本挖掘支持包

install.packages("tm")
library(tm)

 创建语料库

sms_corpus<-Corpus(VectorSource(sms_raw$text))
sms_corpus_spam<-Corpus(VectorSource(sms_raw_spam$text))
sms_corpus_ham<-Corpus(VectorSource(sms_raw_ham$text))

 查看语料库情况

print(sms_corpus)
print(sms_corpus_spam)
print(sms_corpus_ham)

 查看语料库内容

inspect(sms_corpus[1:3])
inspect(sms_corpus_spam[1:3])
inspect(sms_corpus_ham[1:3])

 数据清理(转小写)

corpus_clean <- tm_map(sms_corpus,tolower)
corpus_clean_spam <- tm_map(sms_corpus_spam,tolower)
corpus_clean_ham <- tm_map(sms_corpus_ham,tolower)

 数据清理(去掉停用词)

corpus_clean <- tm_map(corpus_clean,removeWords,stopwords())
corpus_clean_spam <- tm_map(corpus_clean_spam,removeWords,stopwords())
corpus_clean_ham <- tm_map(corpus_clean_ham,removeWords,stopwords())

 数据清理(去掉标点符号)

corpus_clean <- tm_map(corpus_clean,removePunctuation)
corpus_clean_spam <- tm_map(corpus_clean_spam,removePunctuation)  
corpus_clean_ham <- tm_map(corpus_clean_ham,removePunctuation)

 安装词云支持包

install.packages("wordcloud")

 加载词云支持包

library(wordcloud)

 生成总体词云图

wordcloud(corpus_clean,min.freq = 40,random.order = FALSE)

 

 生成正常短信词云图

wordcloud(corpus_clean_ham,min.freq = 40,random.order = FALSE)

 

 生成垃圾短信词云图

wordcloud(corpus_clean_spam,min.freq = 40,random.order = FALSE)

 

综上,完成了热点词汇的可视化。 

http://www.lryc.cn/news/223551.html

相关文章:

  • Linux/centos上如何配置管理Web服务器?
  • Java EE进阶2
  • 最新AI系统ChatGPT源码+AI绘画系统源码+支持GPT4.0+Midjourney绘画+搭建部署教程+附源码
  • 大厂面试题-为什么一线互联网公司严禁使用存储过程
  • SpringBoot+Swagger详细使用方法
  • [动态规划] (十二) 简单多状态 LeetCode 213.打家劫舍II
  • 算法与数据结构之链表
  • 深入剖析React Hooks中的 useCallback
  • 微服务中配置文件(YAML文件)和项目依赖(POM文件)的区别与联系
  • Java快速排序算法、三路快排(Java算法和数据结构总结笔记)[7/20]
  • 【React】05.JSX语法使用上的细节
  • LeetCode 1759. 统计同质子字符串的数目【字符串】1490
  • FPGA UDP RGMII 千兆以太网(2)IDDR
  • chrome安装vue devtools
  • 【Docker】iptables命令的使用
  • Flex bison 学习好代码
  • 学习Nginx配置
  • 怎么批量获取文件名,并保存到excel?
  • 数据结构: unordered_map与unordered_set
  • WebDAV之π-Disk派盘 + PassStore
  • OpenCV实现手势虚拟拖拽
  • 深圳市宝安区委常委、宣传部部长周学良一行莅临联诚发考察调研
  • Presentation Prompter 5.4.2(mac屏幕提词器)
  • 9 网关的作用
  • 计算机网络实验
  • 九凌网络分享外贸快车实现迅速出口的目标
  • 分享66个Python管理系统源代码总有一个是你想要的
  • python 删除特定字符所在行
  • 邮箱哪家强?哪个牌子邮箱好用
  • 关于DDD的贫血模型和充血模型到底是什么区别?