最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

scrapy爬蟲(chóng)框架和selenium的使用:對(duì)優(yōu)惠券推薦網(wǎng)站數(shù)據(jù)LDA文本挖掘

2021-03-19 10:00 作者:拓端tecdat  | 我要投稿

原文鏈接:http://tecdat.cn/?p=12203

介紹

每個(gè)人都喜歡省錢(qián)。我們都試圖充分利用我們的資金,有時(shí)候這是最簡(jiǎn)單的事情,可以造成最大的不同。長(zhǎng)期以來(lái),優(yōu)惠券一直被帶到超市拿到折扣,但使用優(yōu)惠券從未如此簡(jiǎn)單,這要?dú)w功于Groupon。

Groupon是一個(gè)優(yōu)惠券推薦服務(wù),可以在您附近的餐館和商店廣播電子優(yōu)惠券。其中一些優(yōu)惠券可能非常重要,特別是在計(jì)劃小組活動(dòng)時(shí),因?yàn)檎劭劭梢愿哌_(dá)60%。

?

數(shù)據(jù)

這些數(shù)據(jù)是從Groupon網(wǎng)站的紐約市區(qū)域獲得的。網(wǎng)站的布局分為所有不同groupon的專輯搜索,然后是每個(gè)特定groupon的深度頁(yè)面。網(wǎng)站外觀如下所示:

兩個(gè)頁(yè)面的布局都不是動(dòng)態(tài)的,所以建立了一個(gè)自定義scrapy ,以便快速瀏覽所有的頁(yè)面并檢索要分析的信息。然而,評(píng)論,重要的信息,通過(guò)JavaScript呈現(xiàn)和加載 。Selenium腳本使用從scrapy獲取的groupons的URL,實(shí)質(zhì)上模仿了人類點(diǎn)擊用戶注釋部分中的“next”按鈕。

  1. for url in url_list.url[0:50]:

  2. try:

  3. driver.get(url)

  4. time.sleep(2)

  5. #關(guān)閉出現(xiàn)的任何彈出窗口#

  6. # if(driver.switch_to_alert()):

  7. try:

  8. close = driver.find_element_by_xpath('//a[@id="nothx"]')

  9. close.click()

  10. except:

  11. pass

  12. time.sleep(1)

  13. try:

  14. link = driver.find_element_by_xpath('//div[@id="all-tips-link"]')

  15. driver.execute_script("arguments[0].click();", link)

  16. time.sleep(2)

  17. except:

  18. next

  19. i = 1

  20. print(url)

  21. while True:

  22. try:

  23. time.sleep(2)

  24. print("Scraping Page: " + str(i))

  25. reviews = driver.find_elements_by_xpath('//div[@class="tip-item classic-tip"]')

  26. next_bt = driver.find_element_by_link_text('Next')

  27. for review in reviews[3:]:

  28. review_dict = {}

  29. content = review.find_element_by_xpath('.//div[@class="twelve columns tip-text ugc-ellipsisable-tip ellipsis"]').text

  30. author = review.find_element_by_xpath('.//div[@class="user-text"]/span[@class="tips-reviewer-name"]').text

  31. date = review.find_element_by_xpath('.//div[@class="user-text"]/span[@class="reviewer-reviewed-date"]').text

  32. review_dict['author'] = author

  33. review_dict['date'] = date

  34. review_dict['content'] = content

  35. review_dict['url'] = url


  36. writer.writerow(review_dict.values())

  37. i += 1

  38. next_bt.click()

  39. except:

  40. break

  41. except:

  42. next


  43. csv_file.close()

  44. driver.close()

從每個(gè)組中檢索的數(shù)據(jù)如下所示。

Groupon標(biāo)題?

分類信息

交易功能位置

總評(píng)分?jǐn)?shù)網(wǎng)址

作者日期

評(píng)論網(wǎng)址

大約有89,000個(gè)用戶評(píng)論。從每個(gè)評(píng)論中檢索的數(shù)據(jù)如下所示。

  1. print(all_groupon_reviews[all_groupon_reviews.content.apply(lambda x: isinstance(x, float))])

  2. indx = [10096]

  3. all_groupon_reviews.content.iloc[indx]

  4. author ? ? ? date content ?\

  5. 10096 ?Patricia D. 2017-02-15 ? ? NaN

  6. 15846 ? ? ? Pat H. 2016-09-24 ? ? NaN

  7. 19595 ? ? ?Tova F. 2012-12-20 ? ? NaN

  8. 40328 ? Phyllis H. 2015-06-28 ? ? NaN

  9. 80140 ? ? Andre A. 2013-03-26 ? ? NaN


  10. url ?year ?month ?day

  11. 10096 ?https://www.groupon.com/deals/statler-grill-9 ?2017 ? ? ?2 ? 15

  12. 15846 ? ? ? ? https://www.groupon.com/deals/impark-3 ?2016 ? ? ?9 ? 24

  13. 19595 ? https://www.groupon.com/deals/hair-bar-nyc-1 ?2012 ? ? 12 ? 20

  14. 40328 ? ? https://www.groupon.com/deals/kumo-sushi-1 ?2015 ? ? ?6 ? 28

  15. 80140 ?https://www.groupon.com/deals/woodburybus-com ?2013 ? ? ?3 ? 26

探索性數(shù)據(jù)分析

一個(gè)有趣的發(fā)現(xiàn)是在過(guò)去的幾年里,群體的使用已經(jīng)大大增加了。我們通過(guò)檢查評(píng)論提供的日期來(lái)發(fā)現(xiàn)這一點(diǎn)。看下面的圖像,其中x軸表示月/年和y軸,表示計(jì)數(shù),這個(gè)結(jié)論變得明顯。最后的小幅下滑是由于當(dāng)時(shí)的一些小組可能是季節(jié)性的。

?

一個(gè)有趣的發(fā)現(xiàn)是在過(guò)去的幾年里,群體的使用已經(jīng)大大增加了。我們通過(guò)檢查評(píng)論提供的日期來(lái)發(fā)現(xiàn)這一點(diǎn)??聪旅娴膱D像,其中x軸表示月/年和y軸,表示計(jì)數(shù)。最后的小幅下滑是由于當(dāng)時(shí)的一些小組可能是季節(jié)性的。

  1. pie_chart_df = Groupons.groupby('categories').agg('count')


  2. plt.rcParams['figure.figsize'] = (8,8)


  3. sizes = list(pie_chart_df.mini_info)

  4. labels = pie_chart_df.index

  5. plt.pie(sizes, shadow=True, labels = labels, autopct='%1.1f%%', startangle=140)

  6. # plt.legend(labels, loc="best")

  7. plt.axis('equal')

最后,由于大部分?jǐn)?shù)據(jù)是通過(guò)文本:價(jià)格(原價(jià)),導(dǎo)出了一個(gè)正則表達(dá)式來(lái)解析價(jià)格信息,以及它們提供的交易數(shù)量。該信息顯示在以下條形圖中:


  1. objects = list(offer_counts.keys())

  2. y = list(offer_counts.values())

  3. tst = np.arange(len(y))


  4. plt.bar(tst,y, align = 'center')

  5. plt.xticks(tst, objects)

  6. plt.ylabel('Total Number of Groupons')

  7. plt.xlabel('Different Discounts Offers')

  8. plt.show()


  1. plt.ylabel('Number of Offerings')

  2. plt.xticks(ind, ('Auto', 'Beauty', 'Food', 'Health', 'Home', 'Personal', 'Things'))

  3. plt.xlabel('Category of Groupon')

  4. plt.legend((p0[0], p1[0], p2[0], p3[0], p4[0], p5[0], p6[0], p7[0], p10[0]), ('0', '1', '2', '3', '4', '5', '6', '7', '10'))

?

sns.violinplot(data = savings_dataframe)

?

最后,利用用戶評(píng)論數(shù)據(jù)生成一個(gè)文字云:

  1. plt.rcParams['figure.figsize'] = (20,20)

  2. wordcloud = WordCloud(width=4000, height=2000, max_words=150, background_color='white').generate(text)

  3. plt.imshow(wordcloud, interpolation='bilinear')

  4. plt.axis("off")


主題建模

為了進(jìn)行主題建模,使用的兩個(gè)最重要的軟件包是gensim和spacy。創(chuàng)建一個(gè)語(yǔ)料庫(kù)的第一步是刪除所有停用詞,如“,”等。最后創(chuàng)造trigrams。

選擇的模型是Latent Dirichlet Allocation,因?yàn)樗軌騾^(qū)分來(lái)自不同文檔的主題,并且存在一個(gè)可以清晰有效地將結(jié)果可視化的包。由于該方法是無(wú)監(jiān)督的,因此必須事先選擇主題數(shù)量,在模型的25次連續(xù)迭代中最優(yōu)數(shù)目為3。結(jié)果如下:

上面的可視化是將主題投影到兩個(gè)組件上,其中相似的主題會(huì)更接近,而不相似的主題會(huì)更遠(yuǎn)。右邊的單詞是組成每個(gè)主題的單詞,lambda參數(shù)控制單詞的排他性。0的lambda表示每個(gè)主題周?chē)淖钆懦獾膯卧~,而1的lambda表示每個(gè)主題周?chē)淖铑l繁的單詞。

第一個(gè)話題代表服務(wù)的質(zhì)量和接待。第二個(gè)話題有描述鍛煉和身體活動(dòng)的詞語(yǔ)。最后,第三個(gè)話題有屬于食品類的詞語(yǔ)。

結(jié)論

主題建模是無(wú)監(jiān)督學(xué)習(xí)的一種形式,這個(gè)項(xiàng)目的范圍是簡(jiǎn)要地檢查在基礎(chǔ)詞語(yǔ)背后發(fā)現(xiàn)模式的功能。雖然我們認(rèn)為我們對(duì)某些產(chǎn)品/服務(wù)的評(píng)論是獨(dú)一無(wú)二的,但是這個(gè)模型清楚地表明,實(shí)際上,某些詞匯在整個(gè)人群中被使用。

?


scrapy爬蟲(chóng)框架和selenium的使用:對(duì)優(yōu)惠券推薦網(wǎng)站數(shù)據(jù)LDA文本挖掘的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
香港| 常山县| 丹棱县| 固始县| 荔波县| 陆丰市| 宣汉县| 固镇县| 明星| 承德县| 兴安盟| 九寨沟县| 清原| 甘南县| 乌海市| 鲁甸县| 吉林市| 桃园县| 苍梧县| 淮滨县| 达拉特旗| 宣城市| 盘山县| 渑池县| 成武县| 兴安盟| 乳山市| 治县。| 聂荣县| 宾阳县| 澄迈县| 广南县| 泊头市| 仁布县| 开化县| 南木林县| 新余市| 平江县| 合川市| 井冈山市| 曲沃县|