首页 > 数据分析 > 一个经典分析(关于瑞士电台的经典节目)

[悬赏]一个经典分析(关于瑞士电台的经典节目) (已翻译100%)

查看 (374次)
英文原文:A classical analysis (Radio Swiss classic program)
标签: 数据分析
admin 发布于 2017-04-25 10:52:10 (共 5 段, 本文赏金: 12元)
参与翻译(2人): cyt5969858 廿九_ 默认 | 原文

【已悬赏】 赏金: 2元

古典音乐一点也不精通,但我碰巧有朋友会弹大提琴和四弦琴的人结婚了。我很感激能让我不时听这样的音乐尤其是巴洛克音乐。一位朋友让我发现了瑞士古典电台,这是一个整天整夜播放古典音乐的在线电台,音乐品种相当丰富并且很少插播,没有广告。(谢谢,收音机的赞助者!)。此外,告诉我刚才演奏的是哪首曲子的声音真的很令人宽慰,所以在我看来,瑞士电台的古典音乐非常棒。

今天,我没有在焦急地等待法国总统选举的结果,而是决定下载过去几年的广播节目,然后快速地看一看,毕竟,这个网站说广播的目的是让人们放松。


廿九_
翻译于 2018-01-21 13:05:25
 

参与本段翻译用户:
廿九_

显示原文内容

【已悬赏】 赏金: 2元

爬取节目

我的网络爬虫变得更简洁,因为我听从了EP(别名expersso)的建议,顺带一句,他真的应该开始写博客。我下载了自2008年9月起的节目,因为就是那时我遇到了一位朋友,他告诉我有关瑞士电台古典音乐的节目。


dates <- seq(from = lubridate::ymd("2008-09-01"),
             to = lubridate::ymd("2017-04-22"),
             by = "1 day")


base_url <- "http://www.radioswissclassic.ch/en/music-programme/search/"

get_one_day_program <- function(date, base_url){
  # in order to see progress
  message(date)
  
  # build URL
  date_as_string <- as.character(date)
  date_as_string <- stringr::str_replace_all(date_as_string, "-", "")
  url <- paste0(base_url, date_as_string)
  
  # read page
  page <- try(xml2::read_html(url),
              silent = TRUE)
  if(is(page, "try-error")){
    message("horribly wrong")

    closeAllConnections()
    return(NULL)
  }else{
    
    # find all times, artists and pieces
    times <- xml2::xml_text(xml2::xml_find_all(page, 
                                               xpath="//span[@class='time hidden-xs']//text()"))
    artists <- xml2::xml_text(xml2::xml_find_all(page, 
                                                 xpath="//span[@class='titletag']//text()"))
    pieces <- xml2::xml_text(xml2::xml_find_all(page, 
                                                xpath="//span[@class='artist']//text()"))
    # the last artist and piece are the current ones
    artists <- artists[1:(length(artists) - 1)]
    pieces <- pieces[1:(length(pieces) - 1)]
    
    # get a timedate from each time
    timedates <- paste(as.character(date), times)
    timedates <- lubridate::ymd_hm(timedates)
    timedates <- lubridate::force_tz(timedates, tz = "Europe/Zurich")
    
    # format the output
    program <- tibble::tibble(time = timedates,
                              artist = artists,
                              piece = pieces)
    
    return(program)
  }
  
}

programs <- purrr::map(dates, get_one_day_program, 
                       base_url = base_url)

programs <- dplyr::bind_rows(programs)

save(programs, file = "data/radioswissclassic_programs.RData")

有几天网站上没有任何节目,该网站说,服务器储出现了可怕的错误。

load("data/radioswissclassic_programs.RData")
wegot <- length(unique(lubridate::as_date(programs$time)))
wewanted <- length(seq(from = lubridate::ymd("2008-09-01"),
                       to = lubridate::ymd("2017-04-22"),
                       by = "1 day"))

然而,我还是获取了那些天大约96%的节目。

cyt5969858
翻译于 2017-12-06 14:30:19
 

参与本段翻译用户:
cyt5969858

显示原文内容

【已悬赏】 赏金: 4元

谁是最受欢迎的作曲家?

我不得不承认,我甚至不认识这张表上的所有作曲家,但事实上根据我的古典音乐权威评价,他们都很出名。瑞士电台经典允许听众对曲目评分,所以最流行的节目更会被频繁录制,而且我认为节目的人也往往倾向于录制著名作曲家的节目。

有趣但也并不奇怪的是,我认为考虑到作曲家所受欢迎的程度(如莫扎特)他们上节目的分布特征似乎是对数正态分布的。

cyt5969858
翻译于 2017-12-06 14:29:08
 

参与本段翻译用户:
cyt5969858

显示原文内容

【已悬赏】 赏金: 3元

曲目有多长?

在瑞士广播电台的古典音乐网站上表述的是,夜晚的曲目比白天长,这是我想试着见证一下的说法。由于电台的节目没有因时间的变化而修正(即在有25个小时的日子里,根据在线节目只播放24小时的音乐),我只看时间小于60分钟的片段,同时这解决了遗漏日子的问题。


programs <- dplyr::arrange(programs, time)
programs <- dplyr::mutate(programs,
                          duration = difftime(lead(time, 1),
                                       time,
                                       units = "min"))

programs <- dplyr::mutate(programs,
                          duration = ifelse(duration > 60,
                                            NA, duration))
programs <- dplyr::mutate(programs,
                          hour = as.factor(lubridate::hour(time)))

programs %>%
ggplot()  
  geom_boxplot(aes(hour, duration)) 
  theme_ipsum(base_size = 14) 

plot of chunk unnamed-chunk-4

我没发现白天和黑夜播放的曲目有什么区别,也许我可以试着定义白天和黑夜来使图表更漂亮一些(但我不会做任何测试,我很快就得去看电视了)。


programs %>%
  dplyr::mutate(night = (lubridate::hour(time) <= 4 | lubridate::hour(time) >= 20)) %>%
ggplot()  
  geom_boxplot(aes(night, duration)) 
  theme_ipsum(base_size = 14)
plot of chunk unnamed-chunk-5



cyt5969858
翻译于 2017-12-06 14:34:26
 

参与本段翻译用户:
cyt5969858

显示原文内容

【已悬赏】 赏金: 1元

结论

该网站表明,这些作品在上午欢快,但我没有匹配文章标题的数据以调查这一说法。我甚至都没找过这样的数据。我觉得有趣的另一个部分是将每个作曲家的名字与风格相匹配,然后看看每种风格的演奏频率。现在,我将停止放松,并且在选举结果出来前用食物塞满我的嘴!

廿九_
翻译于 2018-01-21 13:09:04
 

参与本段翻译用户:
廿九_

显示原文内容

GMT+8, 2018-10-16 07:14 , Processed in 0.082886 second(s), 11 queries .