lire un fichier MSWord dans la R
Est-il possible de lire un MSWord 2010 fichier dans R? J'ai Windows 7 et un PC Dell.
Je suis l'aide de la ligne:
my.data <- readLines('c:/users/mark w miller/simple R programs/test_for_r.docx')
essayer de lire un MSWord fichier contenant le texte suivant:
A 20 1000 AA
B 30 1001 BB
C 10 1500 CC
Je reçois un message d'avertissement qui dit:
Message d'avertissement:
Dans readLines("c:/users/mark w miller/simple R programs/test_for_r.docx") :
incomplète dernière ligne disponibles sur la "c:/users/mark w miller/simple R programs/test_for_r.docx'
et my.data
semble être du charabia:
# [1] "PK# [1] "PK\003\004\024" "¤l" "ÈFÃË‹Átí"
3# [1] "PK\003\004\024" "¤l" "ÈFÃË‹Átí"
44" "¤l" "ÈFÃË‹Átí"
Je sais qu'avec ce simple exemple, j'ai pu facilement convertir le fichier MSWord dans un format différent. Cependant, mes fichiers de données réelles consistent en des tableaux complexes qui ont été tapés il y a des décennies et puis numérisés en documents pdf plus tard. L'âge de l'original du document papier et peut-être des imperfections dans le document original, de frappe et/ou le processus de numérisation a entraîné dans certains des lettres et des chiffres pas très claire. La mesure de convertir les fichiers pdf en fichiers MSWord semble être le plus réussi à traduire correctement les tables. La conversion de la MSWord des fichiers Excel ou rtf, etc, n'a pas été très réussie. Même après la conversion MSWord les fichiers résultants sont très complexes et comportent de nombreuses erreurs. J'ai pensé que si je pouvais lire les fichiers MSWord en R que peut-être la façon la plus efficace de les modifier et de les corriger.
Je suis conscient de la "package tm' qui, je pense, peut lire les fichiers MSWord dans R, mais je suis un peu inquiète au sujet de l'utiliser car il semble nécessiter l'installation de logiciels tiers.
Merci pour toutes les suggestions.
Le tm paquet fournit la fonction readDOC(). Cela nécessite l'installation d'un externe (non-R) outil nommé antiword. Cependant, je crois que le paquet ou l'outil ne lit que les fichiers Word version 2003 et ne le sera pas .les fichiers docx. readLines() n'est pas la bonne solution; il exige de texte au format ASCII en entrée.
Si vous enregistrez le document word en tant que
html
et ensuite utiliser un site web grattage forfait (par exemple XML
ou RCurl
) pour extraire le texte?Merci pour les suggestions. Je n'ai jamais fait de web scraping, mais il est sur ma liste de choses à apprendre. C'est peut-être le facteur motivant pour moi de l'apprendre.
Avez-vous essayé de ROC de l'original au format pdf avec Google Docs? Il y a d'autres gratuit en ligne OCR services qui ne nécessitent pas d'installation de logiciel.
OriginalL'auteur Mark Miller | 2012-06-20
Vous devez vous connecter pour publier un commentaire.
D'abord, readLines() n'est pas la bonne solution, car un fichier Word n'est pas un texte (qui est clair, texte ASCII) fichier.
Le Mot-fonction dans le tm paquet est appelé readDOC() mais à la fois elle et l'outil tiers (Antiword) sont pour les vieux fichiers Word (Word 2003) et ne fonctionne pas à l'aide de la plus récente .les fichiers docx.
Du mieux que je peux suggérer, c'est que vous essayez readPDF(), également trouvé dans les tm paquet. Remarque: il nécessite que l'outil pdftotext est installé sur votre système. Facile pour Linux, aucune idée au sujet de Windows. Sinon, trouvez un outil de Windows qui convertit les PDF en plaine, des fichiers texte ASCII (pas des fichiers Word) -, ils devraient s'ouvrir et d'afficher correctement à l'aide de Notepad sur Windows, puis essayez readLines() de nouveau. Toutefois, étant donné que les fichiers PDF sont vieux et viennent à partir d'un scanner, la conversion en texte pourrait être difficile.
Enfin: je me rends compte que vous n'avez pas l'original de la décision dans cette instance, mais pour quelqu'un d'autre - Word et PDF ne sont pas des formats appropriés pour le stockage de données que vous souhaitez analyser.
Je voudrais reformuler la dernière phrase: "Word et PDF sont pas formats appropriés pour tout ranger. Jamais." Microsoft est tristement célèbre pour libérer les versions d'Office qui ne peuvent pas lire les anciens formats de fichier (Excel4.0, anyone?), le PDF est cul-tugly. ASCII et epub (qui est juste XML zippé) sont de bien meilleurs choix.
Pourquoi est-ce que ces gens font cela pour moi???
OriginalL'auteur neilfws
Je n'ai pas compris comment faire pour lire le fichier MSWord dans R, mais j'ai obtenu le contenu dans un format que R peut lire.
J'ai converti un fichier pdf à MSWord avec Acrobat X Pro
Les tables d'origine de solides lignes verticales de séparation des colonnes. Il s'avère que ces lignes verticales ont été perturbant le format des données lorsque je convertis un fichier MSWord pour un fichier texte, mais j'ai été en mesure de supprimer les lignes d'un fichier MSWord avant de créer un fichier texte.
Convertir le fichier MSWord pour un fichier texte, après la suppression de lignes verticales à l'Étape 2.
Texte résultant des fichiers nécessitent encore des modifications importantes, mais au moins les données sont largement présents dans un format R peut lire et je ne vais pas avoir à ré-entrer toutes les données dans les fichiers pdf en main, de sauver de nombreuses heures de travail.
OriginalL'auteur Mark Miller
Vous pouvez faire cela avec RDCOMClient très facilement.
En disant cela, certains caractères ne peuvent pas lire correctement.
Exception occurred
etobject doc not found
.setwd('C:/Users/markm/simple R programs'); require(RDCOMClient); wordApp <- COMCreate("Word.Application"); wordApp[["Visible"]] <- TRUE; wordFileName <- "C:/Users/markm/simple R programs/My_test_MSWord_file.docx"; doc <- wordApp[["Documents"]]$Open(wordFileName); print(doc$range()$text());
Marque, vous assurer que vous avez obtenu l'emplacement du fichier de droit? Je ne peux émuler le problème en définissant une défaillance de l'emplacement du fichier.
OriginalL'auteur Khaynes