2016-09-30 2 views
0

나는 다음과 같은 트윗이 실제로 아래의 문자열을 반환하도록 (중복 트윗을 제거하기 위해) R에서 단어로 시작하는 문장을 제거 하시겠습니까?

"RT @SportClipsUT125: #SavingLivesLooksGood with #RedCross. Donate this month & Get free haircut cpn. https://somewebsite https://somewebsite…" 

어떻게 모든 링크를 제거 할 수 있습니다 R.

에서이 같은 트윗 텍스트가?

"RT @SportClipsUT125: #SavingLivesLooksGood with #RedCross. Donate this month & Get free haircut" 

나는이 시도 :

gsub('https*','',test_str) 

을하지만 간단한 해결책을 변경하여 GSUB 명령입니다

"RT @SportClipsUT125: #SavingLivesLooksGood with #RedCross. Donate this   
month & Get free haircut cpn. ://somewebsite ://somewebsite…" 
+1

당신은 당신이 반복하려는 문자에 한정 기호를 넣어해야합니다. '\\ S'는 공백 문자 이외의 것입니다 :'gsub ('http \\ S *', '', RT @ SportClipsUT125 : #SavingLivesLooksGoodRedCross.이 달에 기부하기 & 헤어 스타일 cpn 가져 오기 .https : // somewebsite https : // somewebsite ... ")' – alistaire

+0

아마도 -RT가 붙은 (대소 문자 구분) 동일한 쿼리를 twitter에 다시 보낼 수 있습니다. 이렇게하면 리트 윗이 제거됩니다. – knb

+0

감사합니다 @alistaire이 실제로 작동합니다! 그래서 코드가하는 일은 실제로 https와 공간 뒤에있는 모든 것을 제거하는 것입니까? –

답변

2

를 반환

gsub("http[s]*://[[:alnum:]]*", "", test_str)이 제대로 제거 할 URL의 , http 및 https 버전

@ alistaire의 의견은 실제로 더 많은 경우에 작용합니다. gsub('http\\S*', "", test_str)은 http로 시작하는 항목을 모두 제거합니다. 그것은 (URL의가없는) 공간

gsub("(RT|via)((?:\\b\\W*@\\w+)+)", "", test_str)이 Atpeople을 제거 리트 윗에게

gsub("@\\w+", "", test_str)을 제거하기를 발견 할 때 중지됩니다

내가보기 엔 (특수 데이터 형식) 코퍼스에 데이터를 넣는 것이 좋습니다 반복되는 단어와 URL을 쉽게 지우는 것과 같은 일을합니다. 는 데이터의 코퍼스이있는 경우 당신이 할 수 있습니다 :

corpus <- Corpus(VectorSource(my_data)) 
corpus = tm_map(corpus,content_transformer(function(x) iconv(x, to='UTF8', sub='byte'))) 
removeURL <- function(x) {gsub('http\\S*', "", x)} 
corpus <- tm_map(corpus, content_transformer(removeURL)) 

굉장 링크를 모든이 작업을 수행하는 방법에 대한 예제 : Text Mining Guide on Rpubs

+0

답변 해 주셔서 감사합니다. 하지만 gsub ("http [[: alnum :]] *", "", test_str)을 시도했지만 "http"를 없애고 나머지 짧은 링크를 남겨 두었습니까? –

+0

죄송합니다. 취소 선 코드로 고정되었지만 특정 문제에 대해서는 @ alistaire의 제안이 더 좋습니다. – Rilcon42

관련 문제