Ich habe ein Korpus, X, in R erstellt aus einem Verzeichnis mit DirSource. Jedes Dokument ist eine Textdatei, die den vollständigen HTML-Code einer verwandten vBulletin-Forum-Webseite enthält. Da es ein Thread ist, hat jedes Dokument mehrere separate Posts, die ich mit meinem XPath erfassen möchte. Der XPath scheint zu funktionieren, aber ich kann nicht alle meine erfassten Knoten zurück in den Korpus legen.XPath für jedes Dokument in R Corpus
Wenn mein Korpus 25 Dokumente enthält, die durchschnittlich 4 Beiträge haben, dann sollte mein neues Korpus 100 Dokumente haben. Ich frage mich, ob ich eine Schleife machen und ein neues Korpus erstellen muss.
Hier ist meine schmutzige Arbeit so weit. Jede Quelle aus einem Thread in www.vbulletin.org/forum/ ist ein Beispiel für die Struktur.
#for stepping through
xt <- x[[5]]
xpath <- "//div[contains(@id,'post_message')]"
getxpath <- function(xt,xpath){
require(XML)
#either parse
doc <- htmlParse(file=xt)
#doc <- htmlTreeParse(tolower(xt), asText = TRUE, useInternalNodes = TRUE)
#don't know which to use
#result <- xpathApply(doc,xpath,xmlValue)
result <- xpathSApply(doc,xpath,xmlValue)
#clean up
result <- gsub(pattern="\\s+",replacement=" ",x=gsub(pattern="\n|\t",replacement=" ",x=result))
result <- c(result[1:length(result)])
free(doc)
#converts group of nodes into 1 data frame with numbers before separate posts
#require(plyr)
#xbythread <- ldply(.data=result,.fun=function(x){unlist(x)})
#don't know what needs to be returned
result <- Corpus(VectorSource(result))
#result <- as.PlainTextDocument(result)
return(result)
}
#call
x2 <- tm_map(x=x,FUN=getxpath,"//div[contains(@id,'post_message')]")