Sys.setlocale(category = "LC_ALL", locale = "zh_TW.UTF-8") # 避免中文亂碼
## Warning in Sys.setlocale(category = "LC_ALL", locale = "zh_TW.UTF-8"): 作業系統
## 回報無法實現設定語區為 "zh_TW.UTF-8" 的要求
## [1] ""
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(stringr)
library(tidytext)
library(wordcloud2)
library(data.table)
##
## Attaching package: 'data.table'
## The following objects are masked from 'package:dplyr':
##
## between, first, last
library(ggplot2)
library(reshape2)
##
## Attaching package: 'reshape2'
## The following objects are masked from 'package:data.table':
##
## dcast, melt
library(wordcloud)
## Loading required package: RColorBrewer
library(tidyr)
##
## Attaching package: 'tidyr'
## The following object is masked from 'package:reshape2':
##
## smiths
library(readr)
library(scales)
##
## Attaching package: 'scales'
## The following object is masked from 'package:readr':
##
## col_factor
require(jiebaR)
## Loading required package: jiebaR
## Loading required package: jiebaRD
require(widyr)
## Loading required package: widyr
require(NLP)
## Loading required package: NLP
##
## Attaching package: 'NLP'
## The following object is masked from 'package:ggplot2':
##
## annotate
require(ggraph)
## Loading required package: ggraph
require(igraph)
## Loading required package: igraph
##
## Attaching package: 'igraph'
## The following object is masked from 'package:tidyr':
##
## crossing
## The following objects are masked from 'package:dplyr':
##
## as_data_frame, groups, union
## The following objects are masked from 'package:stats':
##
## decompose, spectrum
## The following object is masked from 'package:base':
##
## union
###八卦版
gossip_data = fread('./gossip_article.csv',encoding = 'UTF-8')
過濾特殊字元
gossip_data = gossip_data %>%
filter(!grepl('_',word))
轉換日期格式
gossip_data$artDate = gossip_data$artDate %>% as.Date("%Y/%m/%d")
###資料整理-UberEats
UberEats = c("ubereats","ubereat","Ubereat","UBEREATS","UberEATS","uberEATS")
gossip_data$word[which(gossip_data$word %in% UberEats)] = "UberEats"
#找出有UberEats的文章網址
ubereats_url = gossip_data$artUrl[grepl("UberEats", gossip_data$word)]
#依據網址找出有UberEats文章
ubereats_data <- gossip_data %>%
filter(gossip_data$artUrl %in% ubereats_url)
###資料整理-Foodpanda
foodpanda = c("FoodPanda","FOODPANDA","Foodpanda","富胖達","food胖達","熊貓")
gossip_data$word[which(gossip_data$word %in%foodpanda)] = "foodpanda"
#找出有foodpanda的文章網址
foodpanda_url = gossip_data$artUrl[grepl("foodpanda", gossip_data$word)]
#依據網址找出有foodpanda文章
foodpanda_data <- gossip_data %>%
filter(gossip_data$artUrl %in% foodpanda_url)
###去除停用字
stop_words <- c("https", "com", "新聞", "完整", "沒有","有沒有","現在","八卦","jpg","imgur","news","http","www","udn","gif","內文","htm","ettoday","ETtoday","請問","蘇格蘭","網址","連結","記者","署名","來源","媒體","新聞標題","備註","表示","報導","今天","看到")
ubereats_data <- ubereats_data %>%
filter(!(ubereats_data$word %in% stop_words))
foodpanda_data <- foodpanda_data %>%
filter(!(foodpanda_data$word %in% stop_words))
###聲量比較 為了觀察台灣武漢肺炎爆發前後的聲量和情緒,資料區間避開2019/10中外送員車禍事件的聲量高峰期。
ubereats_1031 <- ubereats_data %>%
filter(ubereats_data$artDate > as.Date("2019/10/31"))
ubereats_1031_day <- ubereats_1031 %>%
group_by(artDate) %>%
summarise(count = n()) %>%
arrange(desc(count))
ubereats_1031_day
## # A tibble: 77 x 2
## artDate count
## <date> <int>
## 1 2020-03-28 416
## 2 2019-11-08 302
## 3 2019-11-22 261
## 4 2020-04-18 244
## 5 2019-11-05 239
## 6 2019-11-11 218
## 7 2019-11-21 213
## 8 2020-04-12 210
## 9 2019-11-14 207
## 10 2020-04-15 195
## # ... with 67 more rows
由下面的趨勢圖可以看出,武漢肺炎爆發之後並沒有立即提高外送平台的討論聲量
day_1031_plot <- ubereats_1031_day %>%
ggplot(aes(x = artDate, y = count)) +
geom_line(color = "purple", size = 1) +
scale_x_date(labels = date_format("%Y/%m/%d")) +
geom_vline(xintercept = as.numeric(as.Date("2020-01-21"),col='red',size = 1))+
ggtitle("ubereats 10/31後每日討論篇數") +
xlab("日期") +
ylab("數量") +
theme(text = element_text(family = "Heiti TC Light"))
day_1031_plot
## Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): font family not
## found in Windows font database
## Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): font family not
## found in Windows font database
## Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): font family not
## found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
前五多的文章日期
ubereats_1031_day %>%
top_n(5)
## Selecting by count
## # A tibble: 5 x 2
## artDate count
## <date> <int>
## 1 2020-03-28 416
## 2 2019-11-08 302
## 3 2019-11-22 261
## 4 2020-04-18 244
## 5 2019-11-05 239
ubereats_plot_top5 <- ubereats_1031 %>%
filter(artDate == as.Date("2019/11/08") |
artDate == as.Date("2019/11/22") |
artDate == as.Date("2020/03/28") |
artDate == as.Date("2020/04/18") |
artDate == as.Date("2020/04/10")) %>%
group_by(artDate) %>%
top_n(5, count) %>%
ungroup() %>%
mutate(word = reorder(word, count)) %>%
ggplot(aes(x=word, y=count, fill = artDate)) +
geom_col(show.legend = FALSE) +
labs(x = NULL, y = NULL) +
facet_wrap(~artDate, scales="free", ncol = 3) +
coord_flip()
ubereats_plot_top5
ubereats_1031 %>%
filter(artDate == as.Date("2019/11/08") |
artDate == as.Date("2019/11/22") |
artDate == as.Date("2020/03/28") |
artDate == as.Date("2020/04/10") |
artDate == as.Date("2020/04/18")) %>%
distinct(artUrl, .keep_all = TRUE) %>%
select(artDate,artTitle,artUrl)
## artDate artTitle
## 1 2019-11-08 [新聞]50K主管「想要月薪10萬」賭氣離職當外送
## 2 2019-11-08 [新聞]消費者被剝皮?外送平台餐食費用多高於店
## 3 2019-11-22 [新聞]外送員車禍身亡1家罰500元1家罰不到
## 4 2019-11-22 [新聞]女大生重病在家超餓!外送員突按門鈴送餐
## 5 2020-03-28 [新聞]今年前二月機車肇事增加外送平台佔4.25%
## 6 2020-03-28 [新聞]寧夏夜市靠外送突圍下一步要走向社交電
## 7 2020-04-10 [新聞]5業者組外送國家隊救餐飲!UberEats、
## 8 2020-04-18 [問卦]ubereats被盜刷四千元
## 9 2020-04-18 [新聞]外送員趴趴走憂成防疫破口
## artUrl
## 1 https://www.ptt.cc/bbs/Gossiping/M.1573204052.A.82C.html
## 2 https://www.ptt.cc/bbs/Gossiping/M.1573214540.A.679.html
## 3 https://www.ptt.cc/bbs/Gossiping/M.1574428391.A.B79.html
## 4 https://www.ptt.cc/bbs/Gossiping/M.1574445517.A.94B.html
## 5 https://www.ptt.cc/bbs/Gossiping/M.1585394042.A.C82.html
## 6 https://www.ptt.cc/bbs/Gossiping/M.1585410190.A.3CD.html
## 7 https://www.ptt.cc/bbs/Gossiping/M.1586514906.A.602.html
## 8 https://www.ptt.cc/bbs/Gossiping/M.1587171437.A.983.html
## 9 https://www.ptt.cc/bbs/Gossiping/M.1587215241.A.758.html
重點新聞摘要: [武漢肺炎爆發前] 1.「想要月薪10萬」賭氣離職當外送員 2.未針對每一餐廳的商品(餐食)定價,揭露「店內價」、「非店內價」的商品資訊,且經過比對,各平台的部份餐廳其外送商品(餐食)的標價,確有出現高於店內消費價格的情形。 3.國慶連假陸續有兩名餐飲外送員車禍身亡,迫使勞動部勞檢並認定兩名外送員分別與美食平台業者foodpanda、Uber Eats為雇傭關係,業者依法應為外送員投保勞保與就業保險。但勞保局昨表示,Uber Eats是外商,在台僅有稅籍編號,非勞保強制投保單位,所以無法開罰;另一家foodpanda則因該外送員僅到職兩天就身亡,試算後,也只能罰五百多元。
[武漢肺炎爆發後] 1.寧夏夜市靠外送突圍,下一步要走向社交電商:武漢肺炎疫情蔓延,寧夏夜市部分攤商業績卻在不景氣中增長3成,關鍵是外送平台是逆襲重要關鍵。不僅如此,也將與電商龍頭合作,估5月可正式走向網路平台。(寧夏夜市觀光協會理事長林定國) 2.今年一至二月機車肇事件數與死傷人 數,較前三年增加,市長柯文哲當場質疑跟騎機車美食外送的外送員有關 3.經濟部祭2.65億補助1.2萬家餐飲及零售業者引入外送,昨5家本土業者組成國家隊,並自願將抽成砍半到15%甚至5%(utaway(賽米資訊)、有無外送、foodomo(專聯科技)將原本25%到35%抽成降到15%;inline則直接僅抽5%;全球快遞過去每趟運送費為100元,也降低到75元。)。但兩大外送龍頭Ubereats、Foodpanda不約而同都未入列,經濟部揭露原因表示Uber eats正在申請投資許可,而Foodpanda有申請但正在審查中,但也鼓勵國內外所有外送平台都願意降低抽成比例,一起組建外送國家隊。 4.陳時中表示,外送員及郵遞員確實有風險,如何做到不接觸又可以送達、簽收及取款是努力的方向,但仍不考慮對居家檢疫及隔離者做標注。
foodpanda_1031 <- foodpanda_data %>%
filter(foodpanda_data$artDate > as.Date("2019/10/31"))
foodpanda_1031_day <- foodpanda_1031 %>%
group_by(artDate) %>%
summarise(count = n()) %>%
arrange(desc(count))
foodpanda_1031_day
## # A tibble: 136 x 2
## artDate count
## <date> <int>
## 1 2020-01-15 859
## 2 2020-02-12 840
## 3 2020-01-16 706
## 4 2020-01-13 678
## 5 2020-01-18 668
## 6 2019-11-09 618
## 7 2019-12-05 552
## 8 2019-11-08 538
## 9 2020-04-18 470
## 10 2020-02-14 455
## # ... with 126 more rows
foodpanda_day_1031_plot <- foodpanda_1031_day %>%
ggplot(aes(x = artDate, y = count)) +
geom_line(color = "purple", size = 1) +
scale_x_date(labels = date_format("%Y/%m/%d")) +
geom_vline(xintercept = as.numeric(as.Date("2020-01-21"),col='red',size = 1))+
ggtitle("Foodpanda 10/31後每日討論篇數") +
xlab("日期") +
ylab("數量") +
theme(text = element_text(family = "Heiti TC Light"))
foodpanda_day_1031_plot
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
前五多的文章日期
foodpanda_1031_day %>%
top_n(10)
## Selecting by count
## # A tibble: 10 x 2
## artDate count
## <date> <int>
## 1 2020-01-15 859
## 2 2020-02-12 840
## 3 2020-01-16 706
## 4 2020-01-13 678
## 5 2020-01-18 668
## 6 2019-11-09 618
## 7 2019-12-05 552
## 8 2019-11-08 538
## 9 2020-04-18 470
## 10 2020-02-14 455
foodpanda_plot_top5 <- foodpanda_1031 %>%
filter(artDate == as.Date("2019/11/08") |
artDate == as.Date("2019/12/05") |
artDate == as.Date("2020/01/15") |
artDate == as.Date("2020/02/12") |
artDate == as.Date("2020/04/18")) %>%
group_by(artDate) %>%
top_n(10, count) %>%
ungroup() %>%
mutate(word = reorder(word, count)) %>%
ggplot(aes(x=word, y=count, fill = artDate)) +
geom_col(show.legend = FALSE) +
labs(x = NULL, y = NULL) +
facet_wrap(~artDate, scales="free", ncol = 3) +
coord_flip()
foodpanda_plot_top5
foodpanda_1031 %>%
filter(artDate == as.Date("2019/11/08") |
artDate == as.Date("2019/12/05") |
artDate == as.Date("2020/01/15") |
artDate == as.Date("2020/02/12") |
artDate == as.Date("2020/04/18")) %>%
distinct(artUrl, .keep_all = TRUE) %>%
select(artDate,artTitle,artUrl)
## artDate artTitle
## 1 2019-11-08 [新聞]消費者被剝皮?外送平台餐食費用多高於店
## 2 2019-11-08 [問卦]有沒有當外送可以進正妹家的卦?
## 3 2019-11-08 [問卦]板上有人沒用過foodpanda的嗎?
## 4 2019-11-08 Re:[問卦]板上有人沒用過foodpanda的嗎?
## 5 2019-11-08 Re:[問卦]板上有人沒用過foodpanda的嗎?
## 6 2019-11-08 Re:[新聞]王思聰旗下熊貓直播傳破產
## 7 2019-11-08 Re:[問卦]板上有人沒用過foodpanda的嗎?
## 8 2019-12-05 [問卦]天冷熊貓還跑嗎?
## 9 2019-12-05 [新聞]不滿外送員沒零錢面膜女爆打外送員抓下體
## 10 2019-12-05 Re:[問卦]下雨天點外送是不是很爽?
## 11 2019-12-05 [新聞]比熊貓還稀有!蘇格蘭野貓全球剩400隻 2022年首度野放大自
## 12 2019-12-05 [問卦]foodpanda是不是快不行了?
## 13 2019-12-05 [問卦]好想和女熊貓做愛,怎辦?
## 14 2019-12-05 [新聞]foodpanda刪除外送員評鑑制度 留獎勵機
## 15 2020-01-15 [問卦]熊貓明天罷工,大家會怕嗎?
## 16 2020-01-15 [問卦]熊貓有必要自相殘殺嗎?
## 17 2020-01-15 Re:[問卦]熊貓有必要自相殘殺嗎?
## 18 2020-01-15 [問卦]可憐哪!熊貓外送師被砍獎金
## 19 2020-01-15 [問卦]熊貓開始罷工了嗎?
## 20 2020-01-15 Re:[問卦]欸欸欸!聽說台灣今天熊貓罷工
## 21 2020-01-15 [問卦]熊貓外送罷工有人被影響到嗎?
## 22 2020-01-15 [問卦]今天中午能定熊貓嗎
## 23 2020-01-15 Re:[問卦]今天中午能定熊貓嗎
## 24 2020-01-15 [新聞]控「年前毀約」!台中60名熊貓外送員市府
## 25 2020-01-15 [新聞]熊貓今罷送最多慢1小時…外送員:萬人響應卻無人棄單
## 26 2020-01-15 [新聞]foodpanda罷工實測!點餐後30分就拿到
## 27 2020-01-15 Re:[新聞]熊貓今罷送最多慢1小時…外送員:萬人響應卻無人棄單
## 28 2020-01-15 Re:[新聞]熊貓今罷送最多慢1小時…外送員:萬人響應卻無人棄單
## 29 2020-01-15 [新聞]熊貓變更計薪制度內湖外送員控「變相減
## 30 2020-01-15 [問卦]社會上為何充滿仇視外送員的八卦?
## 31 2020-02-12 [問卦]居家自主隔離但是叫熊貓,會不會有問題
## 32 2020-02-12 [新聞]雲林惡客狂棄訂單 20名熊貓外送員同時被
## 33 2020-02-12 [新聞]影/「黃千千」訂的!雲林foodpanda出現2
## 34 2020-02-12 [新聞]熊貓外送同時遭惡作劇 10餘外送員荒地「
## 35 2020-02-12 [新聞]雲林foodpanda惡意棄單3天逾百件20外送
## 36 2020-04-18 [問卦]為何跑熊貓會被人看不起?
## 37 2020-04-18 [問卦]熊貓外送年齡變高了?
## 38 2020-04-18 Re:[問卦]熊貓外送年齡變高了?
## 39 2020-04-18 [問卦]有沒有叫熊貓,發現送來的是鄰居的八卦
## 40 2020-04-18 [新聞]外送員趴趴走憂成防疫破口
## 41 2020-04-18 [新聞]熊貓王姓外送員騎機車與汽車碰撞王男受
## 42 2020-04-18 [新聞]驚險!熊貓外送員撞車「慘成火球」 客
## artUrl
## 1 https://www.ptt.cc/bbs/Gossiping/M.1573214540.A.679.html
## 2 https://www.ptt.cc/bbs/Gossiping/M.1573218796.A.F5B.html
## 3 https://www.ptt.cc/bbs/Gossiping/M.1573274499.A.41D.html
## 4 https://www.ptt.cc/bbs/Gossiping/M.1573278564.A.8E1.html
## 5 https://www.ptt.cc/bbs/Gossiping/M.1573278855.A.090.html
## 6 https://www.ptt.cc/bbs/Gossiping/M.1573279890.A.61F.html
## 7 https://www.ptt.cc/bbs/Gossiping/M.1573281732.A.508.html
## 8 https://www.ptt.cc/bbs/Gossiping/M.1575535036.A.FFB.html
## 9 https://www.ptt.cc/bbs/Gossiping/M.1575543109.A.D93.html
## 10 https://www.ptt.cc/bbs/Gossiping/M.1575544655.A.8C3.html
## 11 https://www.ptt.cc/bbs/Gossiping/M.1575561309.A.116.html
## 12 https://www.ptt.cc/bbs/Gossiping/M.1575562455.A.17B.html
## 13 https://www.ptt.cc/bbs/Gossiping/M.1575604895.A.1A7.html
## 14 https://www.ptt.cc/bbs/Gossiping/M.1575614882.A.A04.html
## 15 https://www.ptt.cc/bbs/Gossiping/M.1579084393.A.F0D.html
## 16 https://www.ptt.cc/bbs/Gossiping/M.1579088242.A.94B.html
## 17 https://www.ptt.cc/bbs/Gossiping/M.1579088784.A.D87.html
## 18 https://www.ptt.cc/bbs/Gossiping/M.1579106822.A.063.html
## 19 https://www.ptt.cc/bbs/Gossiping/M.1579129029.A.890.html
## 20 https://www.ptt.cc/bbs/Gossiping/M.1579133047.A.48D.html
## 21 https://www.ptt.cc/bbs/Gossiping/M.1579138472.A.14A.html
## 22 https://www.ptt.cc/bbs/Gossiping/M.1579138944.A.272.html
## 23 https://www.ptt.cc/bbs/Gossiping/M.1579139900.A.F7E.html
## 24 https://www.ptt.cc/bbs/Gossiping/M.1579151065.A.23C.html
## 25 https://www.ptt.cc/bbs/Gossiping/M.1579152088.A.C9B.html
## 26 https://www.ptt.cc/bbs/Gossiping/M.1579154317.A.E0C.html
## 27 https://www.ptt.cc/bbs/Gossiping/M.1579154864.A.DC6.html
## 28 https://www.ptt.cc/bbs/Gossiping/M.1579155632.A.F04.html
## 29 https://www.ptt.cc/bbs/Gossiping/M.1579157340.A.3DA.html
## 30 https://www.ptt.cc/bbs/Gossiping/M.1579159400.A.B4D.html
## 31 https://www.ptt.cc/bbs/Gossiping/M.1581511121.A.EBA.html
## 32 https://www.ptt.cc/bbs/Gossiping/M.1581519697.A.431.html
## 33 https://www.ptt.cc/bbs/Gossiping/M.1581524250.A.150.html
## 34 https://www.ptt.cc/bbs/Gossiping/M.1581558945.A.EC0.html
## 35 https://www.ptt.cc/bbs/Gossiping/M.1581564129.A.B7C.html
## 36 https://www.ptt.cc/bbs/Gossiping/M.1587177122.A.D43.html
## 37 https://www.ptt.cc/bbs/Gossiping/M.1587180542.A.8BE.html
## 38 https://www.ptt.cc/bbs/Gossiping/M.1587205233.A.519.html
## 39 https://www.ptt.cc/bbs/Gossiping/M.1587205611.A.A47.html
## 40 https://www.ptt.cc/bbs/Gossiping/M.1587215241.A.758.html
## 41 https://www.ptt.cc/bbs/Gossiping/M.1587225472.A.E42.html
## 42 https://www.ptt.cc/bbs/Gossiping/M.1587225632.A.ED6.html
重點新聞摘要: [武漢肺炎爆發前] 1.[問卦] foodpanda是不是快不行了?:免運取消加上合作餐廳數量減少 2.台灣熊貓罷工
[武漢肺炎爆發前] 1.居家自主隔離但是叫熊貓,會不會有問題 2.外送平台「foodpanda」近來正夯,雲林縣斗六市外送員們之間流傳,從10日開始連續三天遭惡意大量訂餐,外送員找不到訂餐者,甚至遭惡整到荒郊野外,三天已有上百件惡意棄單,粗估3天來總訂餐費用已逾7萬元,讓外送員們直呼做白工,並希望惡作劇快落幕。 3.[新聞]外送員趴趴走憂成防疫破口 4.[新聞]驚險!熊貓外送員撞車「慘成火球」
###情緒比較 以LIWC字典統計每天的文章正面字的次數與負面字的次數
P <- read_file("positive.txt")
N <- read_file("negative.txt")
#將字串依,分割
#strsplit回傳list , 我們取出list中的第一個元素
P = strsplit(P, ",")[[1]]
N = strsplit(N, ",")[[1]]
# 建立dataframe 有兩個欄位word,sentiments,word欄位內容是字典向量
P = data.frame(word = P, sentiment = "positive")
N = data.frame(word = N, sentiment = "negative")
LIWC = rbind(P, N)
ubereats_sentiment_count = ubereats_1031 %>%
select(artDate,word,count) %>%
inner_join(LIWC) %>%
group_by(artDate,sentiment) %>%
summarise(count=sum(count))
## Joining, by = "word"
## Warning: Column `word` joining character vector and factor, coercing into
## character vector
ubereats_sentiment_count %>%
ggplot()+
geom_line(aes(x=artDate,y=count,colour=sentiment))+
scale_x_date(labels = date_format("%m/%d")) +
geom_vline(aes(xintercept = as.numeric(artDate[which(ubereats_sentiment_count$artDate == as.Date('2019/11/25'))[1]])),colour = "red") +
geom_vline(aes(xintercept = as.numeric(artDate[which(ubereats_sentiment_count$artDate == as.Date('2020/03/28'))[1]])),colour = "red") +
geom_vline(aes(xintercept = as.numeric(artDate[which(ubereats_sentiment_count$artDate == as.Date('2020/04/18'))[1]])),colour = "blue") +
geom_vline(aes(xintercept = as.numeric(artDate[which(ubereats_sentiment_count$artDate == as.Date('2019/11/14'))[1]])),colour = "blue")
ubereats_sentiment_count %>%
arrange(desc(count))
## # A tibble: 106 x 3
## # Groups: artDate [63]
## artDate sentiment count
## <date> <fct> <int>
## 1 2020-03-28 positive 16
## 2 2019-11-25 positive 15
## 3 2020-04-10 positive 14
## 4 2020-04-18 negative 13
## 5 2019-11-14 negative 11
## 6 2019-11-27 positive 11
## 7 2020-04-12 negative 11
## 8 2020-04-21 negative 11
## 9 2019-11-05 positive 9
## 10 2019-11-08 negative 9
## # ... with 96 more rows
正面情緒高峰
ubereats_1031 %>%
filter(artDate == as.Date("2019/11/25") |
artDate == as.Date("2020/03/28") ) %>%
distinct(artUrl, .keep_all = TRUE) %>%
select(artDate,artTitle)
## artDate artTitle
## 1 2019-11-25 [新聞]吃得苦中苦外送員月薪打趴上班族
## 2 2020-03-28 [新聞]今年前二月機車肇事增加外送平台佔4.25%
## 3 2020-03-28 [新聞]寧夏夜市靠外送突圍下一步要走向社交電
[武漢肺炎前] 1.薪資探討
[武漢肺炎後] 1.車禍預期增加? 2.外送平台為餐飲業者轉型契機
負面情緒高峰
ubereats_1031 %>%
filter(artDate == as.Date("2019/11/14") |
artDate == as.Date("2020/04/18") ) %>%
distinct(artUrl, .keep_all = TRUE) %>%
select(artDate,artTitle)
## artDate artTitle
## 1 2019-11-14 Re:[問卦]UberEats有限制一定要用機車嗎?
## 2 2019-11-14 [新聞]UBEREATS送餐員撞傷女騎士業務過失傷害
## 3 2020-04-18 [問卦]ubereats被盜刷四千元
## 4 2020-04-18 [新聞]外送員趴趴走憂成防疫破口
[武漢肺炎前] 1.薪資探討
[武漢肺炎後] 1.車禍預期增加? 2.外送平台為餐飲業者轉型契機
ubereats與疫情相關的文章
covid <- c("防疫","疫情","檢疫","居家","檢疫","武漢","肺炎","武漢肺炎","COVID-19","covid-19","COVID19","covid19")
data_ubereats_co <- ubereats_data %>%
filter(ubereats_data$word %in% covid) %>%
distinct(artUrl, .keep_all = TRUE) %>%
select(artTitle,artDate,word,count)
data_ubereats_co
## artTitle artDate word count
## 1 [問卦]外送人員是不是武漢肺炎的高風險職業? 2020-01-28 居家 1
## 2 [問卦]這波疫情會讓外送平台發大財嗎? 2020-02-04 疫情 1
## 3 [問卦]Ubereat外送員說他有送過隔離的人怎辦 2020-02-09 居家 1
## 4 [問卦]台南ubereat現在還好跑嗎? 2020-02-13 武漢 1
## 5 Re:[問卦]外送員會不會變成防疫破口? 2020-03-25 居家 5
## 6 [新聞]今年前二月機車肇事增加外送平台佔4.25% 2020-03-28 武漢 1
## 7 [新聞]寧夏夜市靠外送突圍下一步要走向社交電 2020-03-28 疫情 7
## 8 [新聞]5業者組外送國家隊救餐飲!UberEats、 2020-04-10 疫情 3
## 9 [新聞]外送員慘了!Gogoro嚴查違規車強制升級 2020-04-15 肺炎 1
## 10 [新聞]點餐平台不提供口罩外送員自抗風險 2020-04-17 防疫 4
## 11 [新聞]外送員趴趴走憂成防疫破口 2020-04-18 居家 4
## 12 [新聞]UberEats的復仇!早餐店嗆:嘴巴閉閉乖 2020-04-21 疫情 1
討論議題重點擷取 [相關議題探討] 1.外送員為高風險族群、點餐平台不提供口罩外送員自抗風險 2.這波疫情會讓外送平台發大財嗎? 3.車禍議題 4.新冠疫情延燒,外送平台生意增加,卻傳出有連鎖早餐店不滿歧視外送員,在取餐備註上寫著「嘴巴閉閉乖乖旁邊等」,引起外送員不滿,紛紛前往粉絲專頁洗版抗議。總公司得知後火速開鍘,馬上勒令該分店停權並要求品牌商譽賠償。
[產業結盟] 1.5業者組外送國家隊救餐飲! 2.寧夏夜市靠外送突圍
foodpanda_sentiment_count = foodpanda_1031 %>%
select(artDate,word,count) %>%
inner_join(LIWC) %>%
group_by(artDate,sentiment) %>%
summarise(count=sum(count))
## Joining, by = "word"
## Warning: Column `word` joining character vector and factor, coercing into
## character vector
foodpanda_sentiment_count %>%
ggplot()+
geom_line(aes(x=artDate,y=count,colour=sentiment))+
scale_x_date(labels = date_format("%m/%d")) +
geom_vline(aes(xintercept = as.numeric(artDate[which(foodpanda_sentiment_count$artDate == as.Date('2020/02/12'))[1]])),colour = "blue") +
geom_vline(aes(xintercept = as.numeric(artDate[which(foodpanda_sentiment_count$artDate == as.Date('2020/01/15'))[1]])),colour = "blue") +
geom_vline(aes(xintercept = as.numeric(artDate[which(foodpanda_sentiment_count$artDate == as.Date('2020/04/10'))[1]])),colour = "red") +
geom_vline(aes(xintercept = as.numeric(artDate[which(foodpanda_sentiment_count$artDate == as.Date('2019/11/09'))[1]])),colour = "blue")
foodpanda_sentiment_count %>%
arrange(desc(count))
## # A tibble: 205 x 3
## # Groups: artDate [117]
## artDate sentiment count
## <date> <fct> <int>
## 1 2020-02-12 negative 75
## 2 2020-01-15 negative 50
## 3 2020-04-10 positive 34
## 4 2019-11-09 negative 30
## 5 2019-12-13 negative 29
## 6 2020-01-15 positive 29
## 7 2019-11-29 positive 27
## 8 2020-01-13 positive 27
## 9 2020-01-13 negative 26
## 10 2019-11-09 positive 25
## # ... with 195 more rows
正面情緒高峰
foodpanda_1031 %>%
filter(artDate == as.Date("2020/04/10")) %>%
distinct(artUrl, .keep_all = TRUE) %>%
select(artDate,artTitle)
## artDate artTitle
## 1 2020-04-10 [新聞]安心配送再升級!foodpanda發萬瓶酒精給
## 2 2020-04-10 [新聞]5業者組外送國家隊救餐飲!UberEats、
## 3 2020-04-10 [問卦]外送員也適用紓困方案嗎?
[武漢肺炎後] 1.外送平台公司的防疫措施 2.政府政策 3.外送員也適用紓困方案嗎?
負面情緒高峰
foodpanda_1031 %>%
filter(artDate == as.Date("2020/02/12") |
artDate == as.Date("2020/01/15") |
artDate == as.Date("2019/11/09") ) %>%
distinct(artUrl, .keep_all = TRUE) %>%
select(artDate,artTitle)
## artDate artTitle
## 1 2019-11-09 Re:[新聞]王思聰旗下熊貓直播傳破產
## 2 2019-11-09 Re:[問卦]板上有人沒用過foodpanda的嗎?
## 3 2019-11-09 [新聞]foodpanda下班逛東區百貨…樓管「禁現樓
## 4 2019-11-09 [問卦]熊貓是不是解決了生活機能問題啊?
## 5 2019-11-09 Re:[問卦]熊貓是不是解決了生活機能問題啊?
## 6 2019-11-09 [問卦]有沒有foodpanda的卦?
## 7 2020-01-15 [問卦]熊貓明天罷工,大家會怕嗎?
## 8 2020-01-15 [問卦]熊貓有必要自相殘殺嗎?
## 9 2020-01-15 Re:[問卦]熊貓有必要自相殘殺嗎?
## 10 2020-01-15 [問卦]可憐哪!熊貓外送師被砍獎金
## 11 2020-01-15 [問卦]熊貓開始罷工了嗎?
## 12 2020-01-15 Re:[問卦]欸欸欸!聽說台灣今天熊貓罷工
## 13 2020-01-15 [問卦]熊貓外送罷工有人被影響到嗎?
## 14 2020-01-15 [問卦]今天中午能定熊貓嗎
## 15 2020-01-15 Re:[問卦]今天中午能定熊貓嗎
## 16 2020-01-15 [新聞]控「年前毀約」!台中60名熊貓外送員市府
## 17 2020-01-15 [新聞]熊貓今罷送最多慢1小時…外送員:萬人響應卻無人棄單
## 18 2020-01-15 [新聞]foodpanda罷工實測!點餐後30分就拿到
## 19 2020-01-15 Re:[新聞]熊貓今罷送最多慢1小時…外送員:萬人響應卻無人棄單
## 20 2020-01-15 Re:[新聞]熊貓今罷送最多慢1小時…外送員:萬人響應卻無人棄單
## 21 2020-01-15 [新聞]熊貓變更計薪制度內湖外送員控「變相減
## 22 2020-01-15 [問卦]社會上為何充滿仇視外送員的八卦?
## 23 2020-02-12 [問卦]居家自主隔離但是叫熊貓,會不會有問題
## 24 2020-02-12 [新聞]雲林惡客狂棄訂單 20名熊貓外送員同時被
## 25 2020-02-12 [新聞]影/「黃千千」訂的!雲林foodpanda出現2
## 26 2020-02-12 [新聞]熊貓外送同時遭惡作劇 10餘外送員荒地「
## 27 2020-02-12 [新聞]雲林foodpanda惡意棄單3天逾百件20外送
[武漢肺炎前] 1.罷工議題
[武漢肺炎後] 1.居家自主隔離但是叫熊貓 2.雲林集體棄單
foodpanda與疫情相關的文章
covid <- c("防疫","疫情","檢疫","居家","檢疫","武漢","肺炎","武漢肺炎","COVID-19","covid-19","COVID19","covid19")
data_foodpanda_co <- foodpanda_data %>%
filter(foodpanda_data$word %in% covid) %>%
distinct(artUrl, .keep_all = TRUE) %>%
select(artTitle,artDate,word,count)
data_foodpanda_co
## artTitle artDate
## 1 [問卦]熊貓仔要正名!! 2019-10-16
## 2 [問卦]外送人員是不是武漢肺炎的高風險職業? 2020-01-28
## 3 [問卦]還沒提供外送的店家在想什麼? 2020-01-30
## 4 [問卦]這波疫情會讓外送平台發大財嗎? 2020-02-04
## 5 [問卦]吳柏毅怎不乘勝追擊打趴熊貓 2020-02-11
## 6 [問卦]居家自主隔離但是叫熊貓,會不會有問題 2020-02-12
## 7 [問卦]熊貓、吳博弈外送怎麼都不見了?? 2020-02-28
## 8 [新聞]外送員不爽上樓!朝女兒「咳嗽噴口水」… 2020-03-01
## 9 [新聞]熊貓免運加麥當勞超殺優惠網友狂買「25 2020-03-08
## 10 [問卦]居家隔離該選哪間外送 2020-03-20
## 11 [新聞]「爆兇」嫩妹居家檢疫落跑買飯 蘆洲警問怎不叫外送…她奶聲 2020-03-23
## 12 [新聞]foodpanda啟動「全台店家紓困轉型專案」 2020-03-27
## 13 [新聞]寧夏夜市靠外送突圍下一步要走向社交電 2020-03-28
## 14 [新聞]免費幫投保!熊貓外送員「染疫可領1萬5 2020-03-31
## 15 [新聞]咳嗽女現金放門外付款!外送員不安「在隔 2020-04-06
## 16 [新聞]沒遊客才能放鬆!香港熊貓睽違九年首自然 2020-04-09
## 17 [新聞]安心配送再升級!foodpanda發萬瓶酒精給 2020-04-10
## 18 [新聞]5業者組外送國家隊救餐飲!UberEats、 2020-04-10
## 19 [問卦]外送員也適用紓困方案嗎? 2020-04-10
## 20 [問卦]熊貓的處置需不需要超前部屬? 2020-04-15
## 21 Re:[問卦]騎gogoro吃到飽方案外送被罰死怎辦 2020-04-16
## 22 [新聞]點餐平台不提供口罩外送員自抗風險 2020-04-17
## 23 [新聞]外送員趴趴走憂成防疫破口 2020-04-18
## word count
## 1 居家 1
## 2 居家 1
## 3 武漢 1
## 4 疫情 1
## 5 肺炎 1
## 6 居家 1
## 7 武漢 1
## 8 武漢 1
## 9 疫情 2
## 10 居家 1
## 11 檢疫 9
## 12 肺炎 1
## 13 疫情 7
## 14 防疫 6
## 15 居家 3
## 16 疫情 1
## 17 防疫 1
## 18 疫情 3
## 19 疫情 1
## 20 疫情 1
## 21 疫情 1
## 22 防疫 4
## 23 居家 4
討論議題重點擷取 [相關議題探討] 1.外送員為高風險族群、點餐平台不提供口罩外送員自抗風險 2.這波疫情會讓外送平台發大財嗎? 3.免費幫投保!熊貓外送員「染疫可領1萬5補償金」 2個月內有上線 4.安心配送再升級!foodpanda發萬瓶酒精
[產業結盟] 1.foodpanda啟動全台店家紓困轉型專案 2.業者組外送國家隊救餐飲! 3.外送員也適用紓困方案嗎?
###兩大平台交叉比較 聲量趨勢:在PTT的媒體上,Foodpanda的聲量普遍高於UberEats,能是因為Foodpanda的使用者較多,且近期有較多被討論的議題(重大車禍、勞雇關係和罷工等),這也影響了情緒的表現上Foodpanda的起伏會有較大的高低落差。
foodpanda_1031_day<- foodpanda_1031_day%>% mutate(Brand="panda")
ubereats_1031_day<- ubereats_1031_day%>% mutate(Brand="ubereats")
volume<-bind_rows(foodpanda_1031_day,ubereats_1031_day)%>%
ggplot(aes(x = artDate, y = count)) +
geom_line(aes(color = Brand), size = 0.5)+
scale_x_date(labels = date_format("%m/%d"))+
ggtitle("品牌聲量比較")
volume
正情緒趨勢
foodpanda_sentiment_count_p<-foodpanda_sentiment_count %>% filter(sentiment=="positive") %>% mutate(Brand="panda")
ubereats_sentiment_count_p<-ubereats_sentiment_count %>% filter(sentiment=="positive") %>% mutate(Brand="ubereats")
sentiment_p<-bind_rows(foodpanda_sentiment_count_p,ubereats_sentiment_count_p)%>%
ggplot(aes(x = artDate, y = count)) +
geom_line(aes(color = Brand), size = 0.5)+
scale_x_date(labels = date_format("%m/%d"))+
geom_vline(aes(xintercept = as.numeric(artDate[which(foodpanda_sentiment_count_p$artDate == as.Date('2020/04/10'))[1]])),colour = "red")+
geom_vline(aes(xintercept = as.numeric(artDate[which(foodpanda_sentiment_count_p$artDate == as.Date('2020/03/31'))[1]])),colour = "red")+
geom_vline(aes(xintercept = as.numeric(artDate[which(foodpanda_sentiment_count_p$artDate == as.Date('2020/03/28'))[1]])),colour = "blue") +
ggtitle("正情緒趨勢比較")
sentiment_p
1.’2020/03/31’:免費幫投保 2.’2020/04/10’:foodpanda發萬瓶酒精 [ubereats]: 1.’2020/03/28’:寧夏夜市靠外送突圍
負情緒趨勢
foodpanda_sentiment_count_n<-foodpanda_sentiment_count %>% filter(sentiment=="negative") %>% mutate(Brand="panda")
ubereats_sentiment_count_n<-ubereats_sentiment_count %>% filter(sentiment=="negative") %>% mutate(Brand="ubereats")
sentiment_n<-bind_rows(foodpanda_sentiment_count_n,ubereats_sentiment_count_n)%>%
ggplot(aes(x = artDate, y = count)) +
geom_line(aes(color = Brand), size = 0.5)+
scale_x_date(labels = date_format("%m/%d"))+
geom_vline(aes(xintercept = as.numeric(artDate[which(foodpanda_sentiment_count_n$artDate == as.Date('2020/02/12'))[1]])),colour = "blue") +
geom_vline(aes(xintercept = as.numeric(artDate[which(foodpanda_sentiment_count_n$artDate == as.Date('2020/01/15'))[1]])),colour = "blue")+
ggtitle("負正情緒趨勢比較")
sentiment_n
foodpanda 1.’2020/01/15’:熊貓罷工 2.’2020/02/12’:雲林foodpanda惡意棄單
1.武漢肺炎爆發後雖然外送平台的使用率上升,但在ptt的討論上聲量並沒有立即增加 2.討論議題逐漸浮出(紓困方案、產業合作和交通安全等) 3.通常與政府議題相關報導會反映出較為正向的情緒 4.與疫情相關的文章,通常不會有較大的情緒表現,若有通常偏正向情緒