从循环模式中提取未知单词

时间:2016-06-11 16:51:27

标签: regex r

我有一个名为df的数据框,来自一家重要的西班牙报纸La Vanguardia的文章。关键是我想要提取每篇文章属于哪个类别。仔细查看提供的链接,我意识到有一个循环模式,这是一个例子:

status_link
 www.lavanguardia.com/de-moda/moda/infantil/20150928/54437701110/freya-fossaceco-it-girl-8-meses.html                                                                             
 www.lavanguardia.com/local/barcelona/20150927/54437681718/resultados-elecciones-barcelona.html                                                                                       
 www.lavanguardia.com/ciencia/20150928/54436850805/metastasis-cerebro-perfil-genetico-tratamiento-vall-d-hebron.html                                                                  
 videos.lavanguardia.com/politica/elecciones-catalanas/20150928/54437688908/gobierno-debe-reaccionar-antes-elecciones-generales.html                                                                                                                                    
 www.lavanguardia.com/economia/20150928/54436887975/audi-millones-coche-dieselgate.html                                                                                                  
 www.lavanguardia.com/vida/20150928/54437702392/claves-sobreexponer-hijos-internet.html                                                                                           
 www.lavanguardia.com/ciencia/20150928/54437643626/superluna-roja-de-sangre.html 

请注意,第一个斜杠后面的第一个单词对应于该类别(西班牙语):Moda(时尚),本地,科学,经济学,生活等。

www.lavanguardia.com/的解MODA /moda/infantil/20150928/54437701110/freya-fossaceco-it-girl-8-meses.html
 www.lavanguardia.com/ 本地 /barcelona/20150927/54437681718/resultados-elecciones-barcelona.html

我想提取每个单词,并在每个链接旁边创建一个新变量,为每个链接指定相应的类别。我担心我不知道可能有多少类别,但这种模式很反复。另请注意,有时链接会有所不同,请参见此处发布的第4个链接,但它仍然保持相同的结构。

我一直在尝试使用所有建议的hereherehere,但我不清楚如何实现包正则表达式(或其他可能有用的包)在这种情况下。

我真的很感激任何建议!

修改

我在这里上传了数据,因此您可以使用它。我感兴趣的专栏是:status_link

https://www.dropbox.com/s/dot6iq9zhicxh1e/LaVanguardia_facebook_statuses.csv?dl=0

1 个答案:

答案 0 :(得分:3)

您可以尝试此操作(正则表达式

> x <- c("www.lavanguardia.com/de-moda/moda/infantil/20150928/54437701110/freya-fossaceco-it-girl-8-meses.html","www.lavanguardia.com/local/barcelona/20150927/54437681718/resultados-elecciones-barcelona.html","www.lavanguardia.com/ciencia/20150928/54436850805/metastasis-cerebro-perfil-genetico-tratamiento-vall-d-hebron.html","videos.lavanguardia.com/politica/elecciones-catalanas/20150928/54437688908/gobierno-debe-reaccionar-antes-elecciones-generales.html","www.lavanguardia.com/economia/20150928/54436887975/audi-millones-coche-dieselgate.html","www.lavanguardia.com/vida/20150928/54437702392/claves-sobreexponer-hijos-internet.html","www.lavanguardia.com/ciencia/20150928/54437643626/superluna-roja-de-sangre.html")
> y = sub("^[^\\/]+\\/([^\\/]+).*$", "\\1", x)
> data.frame(x, y)
                                                                                                                                    x        y
#1                                www.lavanguardia.com/de-moda/moda/infantil/20150928/54437701110/freya-fossaceco-it-girl-8-meses.html  de-moda
#2                                      www.lavanguardia.com/local/barcelona/20150927/54437681718/resultados-elecciones-barcelona.html    local
#3                 www.lavanguardia.com/ciencia/20150928/54436850805/metastasis-cerebro-perfil-genetico-tratamiento-vall-d-hebron.html  ciencia
#4 videos.lavanguardia.com/politica/elecciones-catalanas/20150928/54437688908/gobierno-debe-reaccionar-antes-elecciones-generales.html politica
#5                                              www.lavanguardia.com/economia/20150928/54436887975/audi-millones-coche-dieselgate.html economia
#6                                              www.lavanguardia.com/vida/20150928/54437702392/claves-sobreexponer-hijos-internet.html     vida
#7                                                     www.lavanguardia.com/ciencia/20150928/54437643626/superluna-roja-de-sangre.html  ciencia

根据您的意见,请尝试

> tmp <- read.csv("LaVanguardia_facebook_statuses.csv")
> sub("^(?:https?:\\/\\/)?[^\\/]+\\/([^\\/]+).*$", "\\1", tmp[,5])
#[1] "gente"         "series"        "deportes"      "television"    "vangdata"      "series"        "lacontra"      "participacion" "vida"          "comer"        
#[11] "vivo"          "local"         "politica"      "sucesos"       "natural"       "hemeroteca"    "natural"       "local"         "vida"          "fans"         
#[21] "television"    "viral"         "natural"       "deportes"      "vida"