2016-04-22 5 views
2

Ich möchte Text Mining der Dateien auf this website mit dem tm-Paket zu tun. Ich verwende den folgenden Code eine der Dateien (dh abell.pdf) in meinem Arbeitsverzeichnis zum Herunterladen und versuchen, den Inhalt zu speichern:R tm Paket readPDF Fehler in strptime (d, fmt): Eingabe Zeichenfolge zu lang

library("tm") 
url <- "https://baltimore2006to2010acsprofiles.files.wordpress.com/2014/07/abell.pdf" 
filename <- "abell.pdf" 
download.file(url = url, destfile = filename, method = "curl") 

doc <- readPDF(control = list(text = "-layout"))(elem = list(uri = filename), 
               language = "en", id = "id1") 

Aber ich die folgenden Fehlermeldung und Warnungen:

Error in strptime(d, fmt) : input string is too long 
In addition: Warning messages: 
1: In grepl(re, lines) : input string 1 is invalid in this locale 
2: In grepl(re, lines) : input string 2 is invalid in this locale 

Die pdfs sind nicht besonders lang (5 Seiten, 978 KB), und ich konnte die readPDF-Funktion erfolgreich verwenden, um andere PDF-Dateien auf meinem Mac OSX einzulesen. Die Informationen, die ich am meisten möchte (die Gesamtpopulation für die Volkszählung 2010), sind auf der ersten Seite jedes PDF, also habe ich versucht, das PDF auf die erste Seite zu kürzen, aber ich bekomme die gleiche Nachricht.

Ich bin neu im tm-Paket, also entschuldige ich mich, wenn mir etwas offensichtlich fehlt. Jede Hilfe wird sehr geschätzt!

Antwort

2

Basierend auf dem, was ich gelesen habe, hat dieser Fehler etwas damit zu tun, wie die "readPDF" -Funktion versucht, Metadaten für die Datei zu erstellen, die Sie importieren. In jedem Fall können Sie die Metadaten-Informationen mit der Option "info" ändern. Zum Beispiel habe ich in der Regel diesen Fehler umgehen, indem Sie den Befehl in der folgenden Art und Weise zu modifizieren (Code verwenden):

doc <- readPDF(control = list(info="-f",text = "-layout"))(elem = list(uri = filename),language = "en", id = "id1") 

Wo die Zugabe von „info =“ - f „“ die einzige Änderung ist. Dies "repariert" das Problem nicht wirklich, aber es umgeht den Fehler. Prost :)