2010-06-04 121 views

Respuesta

9

Utilizando un ejemplo: (esto es extraer palabras en la categoría/VBx, donde x es cualquier carácter individual)

library("openNLP") 

acq <- "Gulf Applied Technologies Inc said it sold its subsidiaries engaged in pipeline and terminal operations for 12.2 mln dlrs. The company said the sale is subject to certain post closing adjustments, which it did not explain. Reuter." 

acqTag <- tagPOS(acq) 

sapply(strsplit(acqTag,"[[:punct:]]*/VB.?"),function(x) sub("(^.*\\s)(\\w+$)", "\\2", x)) 

    [,1]       
[1,] "said"       
[2,] "sold"       
[3,] "engaged"      
[4,] "said"       
[5,] "is"       
[6,] "did"       
[7,] " not/RB explain./NN Reuter./." 

Ok, mi expresión regular necesita algunas mejoras con el fin de deshacerse de la última línea en el resultado.

EDITAR

Una alternativa podría ser hacer caso omiso de filas que contiene un carácter space

sapply(strsplit(acqTag,"[[:punct:]]*/VB.?"),function(x) {res = sub("(^.*\\s)(\\w+$)", "\\2", x); res[!grepl("\\s",res)]}) 
+0

Gracias! gd047 :) funciona ... Estuve a punto de utilizar sapply para extraer pero no pude encontrar la forma de hacerlo. Gracias. –

Cuestiones relacionadas