R语言NLP案例:LDA主题文本挖掘优惠券推荐网站数据

news2024/11/18 9:30:15

 介绍

Groupon是一个优惠券推荐服务,您可以免费注册Groupon,并且Groupon每天都会向您发送包含该地区当天交易的电子邮件。如果您喜欢这笔交易,那么您可以立即从Groupon购买,并在餐馆/商店兑换。

相关视频:文本挖掘:主题模型(LDA)及R语言实现分析游记数据

文本挖掘:主题模型(LDA)及R语言实现分析游记数据

时长12:59


数据

这些数据是从Groupon网站的纽约市区域获得的。网站外观如下所示:

两个页面的布局都不是动态的,所以建立了一个自定义scrapy,以便快速浏览所有的页面并检索要分析的信息。然而,评论,重要的信息,通过Java呈现和加载,因此硒是使用的脚本。Selenium脚本使用从scrapy获取的groupons的URL,实质上模仿了人类点击用户注释部分中的“next”按钮。

从每个组中检索的数据如下所示。

Groupon标题

分类信息

交易位置

总评分数

作者日期

评论网址


for url in url_list.url[0:50]:
	try:
		driver.get(url)
		time.sleep(2)
		#关闭出现的任何弹出窗口s#
		# if(driver.switch_to_alert()):
		try:
			close = driver.find_element_by_xpath('//a[@id="nothx"]')
			close.click()
		except:
			pass
		time.sleep(1)
		try:
			link = driver.find_element_by_xpath('//div[@id="all-tips-link"]')
			driver.execute_script("arguments[0].click();", link)
			time.sleep(2)
		except:
			next
		i = 1
		print(url)
		while True:
			try:
				time.sleep(2)
				print("Scraping Page: " + str(i))
				reviews = driver.find_elements_by_xpath('//div[@class="tip-item classic-tip"]')
				next_bt = driver.find_element_by_link_text('Next')
				for review in reviews[3:]:
					review_dict = {}
					content = review.find_element_by_xpath('.//div[@class="twelve columns tip-text ugc-ellipsisable-tip ellipsis"]').text
					author = review.find_element_by_xpath('.//div[@class="user-text"]/span[@class="tips-reviewer-name"]').text
					date = review.find_element_by_xpath('.//div[@class="user-text"]/span[@class="reviewer-reviewed-date"]').text
					review_dict['author'] = author
					review_dict['date'] = date
					review_dict['content'] = content
					review_dict['url'] = url
 
					writer.writerow(review_dict.values())
				i += 1 
				next_bt.click()
			except:
				break
	except:
		next
 
csv_file.close()
driver.close()

探索性数据分析

一个有趣的发现是在过去的几年里,群体的使用已经大大增加了。我们通过检查评论提供的日期来发现这一点。看下面的图像,其中x轴表示月/年和y轴,表示计数,这个结论变得明显。最后的小幅下滑是由于当时的一些小组可能是季节性的。

一个有趣的发现是在过去的几年里,群体的使用已经大大增加了。我们通过检查评论提供的日期来发现这一点。看下面的图像,其中x轴表示月/年和y轴,表示计数,这个结论变得明显。最后的小幅下滑是由于当时的一些小组可能是季节性的。


pie_chart_df = Groupons.groupby('categories').agg('count')
 
plt.rcParams['figure.figsize'] = (8,8)
 
sizes = list(pie_chart_df.mini_info)
labels = pie_chart_df.index
plt.pie(sizes, shadow=True, labels = labels, autopct='%1.1f%%', startangle=140)
# plt.legend(labels, loc="best")
plt.axis('equal')

最后,导出了一个正则表达式来解析价格信息,以及它们提供的交易数量。该信息显示在以下条形图中:

最后,利用用户评论数据生成一个文字云:

主题建模

创建一个语料库的第一步是删除所有停用词。最后创造trigrams。

选择的模型是Latent Dirichlet Allocation,因为它能够区分来自不同文档的主题,并且存在一个可以清晰有效地将结果可视化的包。由于该方法是无监督的,因此必须事先选择主题数量,在模型的25次连续迭代中最优数目为3。结果如下:

上面的可视化是将主题投影到两个组件上,其中相似的主题会更接近,而不相似的主题会更远。右边的单词是组成每个主题的单词,

结论

主题建模是无监督学习的一种形式,这个项目的范围是在基础词语背后发现模型。


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

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

相关文章

微导纳米将于12月14日申购:前三季度收入约4亿元,同比增长67%

12月5日,江苏微导纳米科技股份有限公司(下称“微导纳米”,SH:688147)披露招股意向书,启动发行招股,初步询价时间定于2022年12月9日,将于2022年12月14日申购。 据了解,微导纳米拟在上…

电巢·新能源领域高速发展,驱动电解电容“老树又发新枝芽”

据统计,新能源汽车销量2012年为1.3万台,2021年上升到352.1万台,截止2022年9月达到456.7万台。车载充电机(OBC)的主要功能是将交流电压输入,以适合电池组的电流和电压水平,转换为直流电压输出。 新能源汽车应用中&#…

Apache Spark与 Apache Hadoop数据科学工具有哪些区别?

ApacheSpark与 Apache Hadoop数据科学工具有哪些区别?Apache Spark被设计为大规模处理的接口,而 Apache Hadoop 为大数据的分布式存储和处理提供了更广泛的软件框架。两者既可以一起使用也可以作为独立服务使用。Apache Spark 和 Apache Hadoop 都是 Apa…

C51 - 微型步进电机15BY25驱动

Contents1> 电机1.1> 旋转原理1.2> 拍数1.3> 步距角2> 驱动电路2.1> MS356562.2> L62192.3> TC15083> 工作时序1> 单相4拍2> 双相4拍3> 双相8拍1> 电机 1.1> 旋转原理 电生磁, 安培定则(右手螺旋定则); 步进电机转动的本质: 转子被定…

【U8】T6升级U8后打开卡片管理报错

T6升级U8,使用低版本升级U8工具,严格按照升级工具步骤操作(以下三个步骤按顺序操作) 升级成功后,在U8中,打开固定资产模块的卡片管理报错,如下图: 经过跟踪排查发现,后台…

ChatGPT 加图数据库 NebulaGraph 预测 2022 世界杯冠军球队

一次利用 ChatGPT 给出数据抓取代码,借助 NebulaGraph 图数据库与图算法预测体坛赛事的尝试。 作者:古思为 蹭 ChatGPT 热度 最近因为世界杯正在进行,我受到这篇 Cambridge Intelligence 的文章启发(在这篇文章中,作…

【机器学习实战】使用SGD-随机梯度下降、随机森林对MNIST数据进行二分类(Jupyterbook)

1. 数据集 由美国高中生和人口调查局员工手写的70000个数字的图片。数据集获取 # 获取MNIST数据集 from sklearn.datasets import fetch_openml mnist fetch_openml(mnist_784, version1, cacheTrue, as_frameFalse) mnist查看X和Y 找索引为36000的实例,并将其还…

AXI4-Lite总线读写BRAM

博主参考和学习的博客 AXI协议基础知识 。这篇博客比较详细地介绍了AXI总线,并且罗列了所有的通道和端口,写代码的时候可以方便地进行查表。AXI总线,AXI_BRAM读写仿真测试 。 这篇文章为代码的书写提供大致的思路,比如状态机和时…

GDB调试

文章目录1.什么是GDB2. 准备工作3.GDB命令-启动、退出、查看代码4.设置断点5.GDB命令-调试命令1.什么是GDB 2. 准备工作 通常,在为调试而编译时,我们会关掉编译器的优化选项"-o",并打开调试选选项“-g”,另外,“-wall”…

【第一章 Linux目录结构,网络连接模式,vi和vim,Linux关机重启命令,Linux用户管理】

第一章 Linux目录结构,网络连接模式,vi和vim,Linux关机&重启命令,Linux用户管理 1.Linux和Unix: ①Unix针对于大型,高性能主机或服务器; ②Linux适用于个人计算机。 2.网络连接的三种模式…

图解pytorch里面的torch.gather()

在 Dim1 的情况下应用 torch.gather() 上图显示了 torch gather() 函数在 dim1 的二维张量上的工作。 这里索引张量的行对应于输入张量的行(用灰色阴影突出显示)。现在对于索引张量中的每个索引值,从该行和输入张量的索引中选取相应的值。 让…

LEADTOOLS 22-23 .Net/NetCore/JS/JAVA/Win/Linux

破解版功能齐全:LEADTOOLS 是一系列综合工具包,旨在帮助程序员将光栅、文档、医学、多媒体和矢量图像集成到他们的桌面、服务器、平板电脑和移动应用程序中。LEADTOOLS 为开发人员提供最灵活、最强大的成像技术,为 OCR、条形码、表单识别、PD…

推荐大家一些CTF的网站和工具

一.网站 1.攻防世界 网址:攻防世界 这是一个有好多题目的网站 主要有Misc、Pwn、Web、Reverse、Crypto、Mobile几种题型 不会的问题还可以查题解 好用度 9星 2.BUUCTF 网址:BUUCTF在线评测 也有很多ctf的题目 逆向、网络等等...... 比攻防世界…

最近火爆了的对话ChatGPT

前言 相信最近小伙伴们已经被ChatGPT的惊艳效果刷屏了,之前笔者也介绍过一些对话方向的工作,感兴趣的小伙伴可以穿梭: 对话系统最新综述II https://zhuanlan.zhihu.com/p/446760658 在对话系统中建模意图、情感: https://zhuanlan.zhihu.com/…

Nacos是什么?

摘要:Nacos是 Dynamic Naming and Configuration Service的首字母简称,相较之下,它更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。本文分享自华为云社区《Nacos入门指南 - Nacos是什么》,作者:华为云P…

.gitlab-ci.yml文件常用规则说明

我自己整理了一份yml文件,里面包含了分支触发,和tag触发,还有缓存等: stages:- install- build- deploycache:key: nodeModulespaths:- node_modules- distjob_install:stage: installtags:- cvtagsonly:refs:- devscript:- npm …

基于LLVM的Fortran编译器分析

简介 本文内容基于LLVM 13.0.0。 目前基于LLVM的Fortran编译器(或者驱动)有3种,分别是flang、f18和flang-new。 flang是pgfortran的开源版本,基于PGI/NVIDIA的商业Fortran 编译器,它并不从属于LLVM项目。NVIDIA团队…

LabVIEW编程LabVIEW开发 ADAM 4015热电阻输入模块例程与相关资料

LabVIEW编程LabVIEW开发 ADAM 4015热电阻输入模块例程与相关资料 ​研华公司的ADAM 4015是6通道热电阻输入模块,可以采集2线或3线热电阻输入信号,ADAM4015T课题采集热敏电阻的输入信号。模块在工业测量和监控的有着广泛的应用,它既可以支持A…

Web3中文|苹果想对以太坊征税

虽然Web3是非常新的技术,但是似乎已经遇到了非常多“劲敌”。 这些“敌人”正在阻碍web3应用程序和区块链游戏的发展,因为在web3里,应用程序和游戏将允许用户自主相互交易数字资产所有权。 所以,那些大公司,如任天堂…

最近全网爆火的黑科技,叫做chatGPT

AI神器ChatGPT 火了。 能直接生成代码、会自动修复bug、在线问诊、模仿莎士比亚风格写作……各种话题都能hold住,它就是OpenAI刚刚推出的——ChatGPT。 有脑洞大开的网友甚至用它来设计游戏:先用ChatGPT生成游戏设定,再用Midjourney出图&…