IBM biedt haar Watson AI capaciteiten aan in de cloud via Bluemix. Één van de de aangeboden diensten betreft document conversie. De dienst gebruikt als input een Word-, HTML- of pdf-bestand en levert het terug als gestructureerde data.
In onderstaand voorbeeld wordt een pdf-bestand (de Studiehandleiding van DPC) omgezet in een spreadsheet met de titels en inhoud van paragrafen als variabelen (kolommen). Om van de dienst gebruik te maken dient eerst een (gratis) Bluemix account te worden aangemaakt. Na het activeren van de conversiedienst kunnen de authenticatiegegevens worden opgezocht.
De code is geschreven in R. R is volledig open source, eenvoudig te installeren en werkt op alle gangbare besturingssystemen.
Stuur een pdf-bestand ter conversie naar Watson en lees de data in. Het resultaat is een object met class list.
library(httr)
rawData <- POST('https://gateway.watsonplatform.net/document-conversion/api/v1/convert_document?version=2015-12-15',
authenticate("XXXYourUserNameXXX", "XXXYourPasswordXXX"),
body=list(file=upload_file("Studiehandleiding DPC 2015-16.pdf"),
type="application/pdf", # Other file types are possible
config = "{\"conversion_target\":\"answer_units\"}"))
docData <- content(rawData)
Selecteer de titel- en tekstvariabelen en voeg ze samen tot één data frame.
n <- length(docData$answer_units)
titels <- sapply(1:n, function(x) docData$answer_units[[x]]$title)
inhoud <- sapply(1:n, function(x) docData$answer_units[[x]]$content[[1]]$text)
docDF <- data.frame(titels, inhoud)
Schrijf de data frame weg als een csv-bestand. Dit bestand kan ingelezen worden in Excel of Google Spreadsheets.
csvName <- paste0(docData$metadata[[2]]$content,".csv")
write.csv(docDF, csvName)