2016-09-30 133 views
0

我在R.删除R中的单词开头的句子吗?

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

如何删除所有链接鸣叫的文字是这样的(除去重复的鸣叫),因此下面的鸣叫实际上返回下面的字符串?

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

我已经试过这样:

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

但它返回

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

你需要把量词上要重复的字符。 '\\ S'只是一个空格字符:'gsub('http \\ S *','','RT @ SportClipsUT125:#SavingLivesLooksGood with #RedCross。Donate this month&Get free haircut cpn。https:// somewebsite https:// somewebsite ...“)' – alistaire

+0

也许你可以再次向twitter发送相同的查询,并附加-RT(区分大小写)。这将删除转发。 – knb

+0

谢谢@alistaire这实际上工作!那么你的代码在做什么实际上是在https和一个空间后删除所有内容? –

回答

2

一个简单的解决办法是改变你的GSUB命令:

gsub("http[s]*://[[:alnum:]]*", "", test_str)这将正确删除网址,http和https版本

@ alistaire在意见中的建议实际上在更多情况下可行更易理解gsub('http\\S*', "", test_str)将删除任何以http开头的内容。当它找到一个空间(URL的没有)

gsub("(RT|via)((?:\\b\\W*@\\w+)+)", "", test_str)除去锐推

gsub("@\\w+", "", test_str)删除Atpeople它将停止

我会强烈建议把在语料库数据(一种特殊的数据格式)它使得经常重复的单词和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