2017-04-05 2 views
0

J'ai extrait le texte de fichiers pdf et créé un objet corpus.tm_map fusion de lignes à condition

Dans les textes, j'ai des lignes se terminant par "," ou "-" et je voudrais leur ajouter la ligne suivante, car elle appartient à la même phrase.

Par exemple, j'ai

[1566] "this and other southeastern states (Eukerria saltensis,"  
[1567] "Sparganophilus helenae, Sp. tennesseensis). In the" 

Et je voudrais avoir la place

[1566] "this and other southeastern states (Eukerria saltensis, Sparganophilus helenae, Sp. tennesseensis). In the" 

J'ai essayé des choses comme remplacer les sauts de ligne, mais sans succès:

tm_map(myCorpus, content_transformer(gsub), pattern =",$\n",replacement = "") 

Tous idée sur la façon dont je peux le faire dans R?

Répondre

0

Merci, ça marche!

je devais le mettre en fonction pour le faire fonctionner avec tm_map, cependant:

clean.X <- function(X){ 

    X2 <- paste0(X,collapse="\n") 
    X2 <- gsub(",\\n",", ",X2) 
    X2 <- gsub("\\-\\n","-",X2) 
    X2 <- unlist(strsplit(X2,"\\n")) 
    return(X2) 

} 

txt2 <- tm_map(txt, content_transformer(clean.X)) 
0

Voici une approche basée sur votre idée de diviser par des sauts de ligne ...

txt <- c("aaa","bbc,","df","fgh-","jkh-","dfsf","gghf") 

txt2 <- paste0(txt,collapse="\n") 
txt2 <- gsub(",\\n",", ",txt2) 
txt2 <- gsub("\\-\\n","-",txt2) 
txt2 <- unlist(strsplit(txt2,"\\n")) 

txt2 
[1] "aaa" "bbc, df" "fgh-jkh-dfsf" "gghf"