Как я могу удалить URL из текстового вектора, используя пакет stringr? - PullRequest
0 голосов
/ 04 июля 2019

У меня есть фрагмент текста: "At https://www.google.com/ you can google questions!", и я хочу удалить URL с пакетом tidytext с помощью str_remove_all.

  • Как я могу это сделать?
  • Если у меня есть вектор с таким текстом, как я могу удалить URL для любого элемента в векторе?

Ответы [ 2 ]

1 голос
/ 04 июля 2019

Используйте gsub из базы R и регулярное выражение. Облегчает вашу жизнь.

text <- "At https://www.google.com/ you can google questions!"

gsub('http\\S+\\s*', '', text)

[1]  "At you can google questions!"
0 голосов
/ 10 июля 2019

Я бы предложил несколько более сложное регулярное выражение для URL, чем в другом ответе, чтобы быть более устойчивым к различным типам URL.

Если вы привыкли использовать инструменты Tidyverse в других местах вашего рабочего процесса, используйте функцию str_remove_all() из stringr . Эта функция векторизована, поэтому вы можете передать ей вектор текста.

example <- c("At https://www.google.com/ you can google questions!",
             "Come to https://www.stackoverflow.com/ for R answers",
             "How many repos are there at https://www.stackoverflow.com/?")

library(stringr)
url_regex <- "http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\\(\\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+"

str_remove_all(example, url_regex)
#> [1] "At  you can google questions!" "Come to  for R answers"       
#> [3] "How many repos are there at "

Если вы поместите свой текст в фрейм данных, вы также можете использовать str_remove_all() простым способом:

library(dplyr)

tibble(example) %>%
    mutate(cleaned = str_remove_all(example, url_regex))

#> # A tibble: 3 x 2
#>   example                                          cleaned                 
#>   <chr>                                            <chr>                   
#> 1 At https://www.google.com/ you can google quest… At  you can google ques…
#> 2 Come to https://www.stackoverflow.com/ for R an… Come to  for R answers  
#> 3 How many repos are there at https://www.stackov… "How many repos are the…

Создано в 2019-07-10 пакетом Представление (v0.3.0)

...