对时间文本数据进行分类的最佳方法是什么?

时间:2019-09-09 17:46:30

标签: r machine-learning text-classification

这是一个直截了当的问题:

我有时间文本数据,如下所示:

110
120+
50分钟
50分钟
35-40
30
1小时半
1小时20分钟

清理数据以便分析的最佳方法是什么?这是机器学习的工作吗?如果是这样,在这种情况下对我最有帮助的库/工具是什么?

一个想法是使用gsub:

“ as.numeric(gsub(”([0-9] +)。* $“,” \ 1“,Timedata))””,但这样过分简化了数据。

我希望清理后的数据如下所示:

110
120
50
50
37.5
30
90
80

1 个答案:

答案 0 :(得分:0)

很难说这将在哪里中断,但是也许它可以给您一些想法:

library(tidyverse)

times <- c("110", "120+", "50 minutes", "50 Minutes", 
           "35-40", "30", "1 hour and a half", "1 hour 20 Minutes")

times %>%
  str_replace("..hour", "60") %>%
  str_replace("half", "30") %>%
  str_split("\\-") %>%
  map(~ ifelse(length(.) > 1, mean(as.numeric(.)), .)) %>%
  map(~ ifelse(is.character(.), str_extract_all(., "[[:digit:]]+"), .)) %>%
  flatten() %>%
  map_dbl(~ ifelse(is.character(.), sum(as.numeric(.)), .))
#> [1] 110.0 120.0  50.0  50.0  37.5  30.0  90.0  80.0