>source

names <- c('Laars Anderson', 'Peter Grabowski')
text <- c('Laars Anderson needs to bla bla bla, reply from Peter Grabowski')
output <- c('needs to bla bla bla, reply from')

정규식을 사용하여 텍스트 마이닝 목적으로 텍스트를 정리하고 있습니다. 텍스트는 대부분 이름, 이메일 등과 같은 최종 분석과 관련이없는 단어가 많은 이메일 대화에 관한 것입니다.

직원 이름 목록이 있고이 이름 목록을 사용하여 텍스트 이메일에서 이름을 제거하고 싶습니다.

감사!

  • 답변 # 1

    이것은 @Ronak 답변과 유사하지만 더 깔끔한 접근 방식을 위해 적절한 단어 경계와 공백 패턴을 사용합니다.

    names <- c('Laars Anderson', 'Peter Grabowski')
    text <- 'Laars Anderson needs to bla bla bla Peter Grabowski, reply from Peter Grabowski'
    regex <- paste0("\\b\\s*(?:", paste0(names, collapse="|"), ")\\b\\s*")
    output = trimws(gsub(regex, " ", text))
    output
    [1] "needs to bla bla bla , reply from"
    
    

    귀하의 names 벡터 수정말정규식 엔진이 대체 크기를 처리 할 수없는 지점까지, 항상 반복하고 대체 할 수 있습니다.

    names <- c('Laars Anderson', 'Peter Grabowski')
    text <- 'Laars Anderson needs to bla bla bla Peter Grabowski, reply from Peter Grabowski'
    for (name in names) {
        text <- gsub(paste0("\\b\\s*", name, "\\s*\\b"), "", text)
    }
    text <- trimws(text)
    text
    [1] "needs to bla bla bla, reply from"
    
    

  • 답변 # 2

    당신이 사용할 수있는 :

    names <- c('Laars Anderson', 'Peter Grabowski')
    text <- c('Laars Anderson needs to bla bla bla, reply from Peter Grabowski')
    gsub(paste0(names, collapse = ' | '), '', text)
    #[1] "needs to bla bla bla, reply from"
    
    

  • 답변 # 3

    당신은 또한 사용할 수 있습니다 stri_replace_all "stringi"패키지에서 :

    library(stringi)
    stri_replace_all_fixed(text, names, "", vectorize_all=FALSE)
    ## [1] " needs to bla bla bla, reply from "
    
    

    다음으로 선행 및 후행 공백을 제거하십시오. trimws .

관련 자료

  • 이전 내 봇 DM 사용자에게 환영 메시지가 표시되지 않는 이유는 무엇입니까? (Discordnet C #)
  • 다음 javascript - OnClick 기능이 사용자 정의 버튼 구성 요소와 함께 작동하지 않습니다