R语言NLP案例:LDA主题文本挖掘优惠券推荐网站数据
创始人
2024-03-25 06:18:33
0

 介绍

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:passtime.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:nexti = 1print(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"]').textauthor = review.find_element_by_xpath('.//div[@class="user-text"]/span[@class="tips-reviewer-name"]').textdate = review.find_element_by_xpath('.//div[@class="user-text"]/span[@class="reviewer-reviewed-date"]').textreview_dict['author'] = authorreview_dict['date'] = datereview_dict['content'] = contentreview_dict['url'] = urlwriter.writerow(review_dict.values())i += 1 next_bt.click()except:breakexcept:nextcsv_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。结果如下:

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

结论

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


相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
Azure构建流程(Power... 这可能是由于配置错误导致的问题。请检查构建流程任务中的“发布构建制品”步骤,确保正确配置了“Arti...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...
AWSECS:哪种网络模式具有... 使用AWS ECS中的awsvpc网络模式来获得最佳性能。awsvpc网络模式允许ECS任务直接在V...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...