J'essaie d'extraire un cadre de données dans le dictionnaire de prononçage de l'Université Carnegie Mellon.
Cela fonctionne bien pour obtenir un cadre de données: mais le contenu du dictionnaire est après la ligne 54 de sorte que la valeur du paramètre de saut doit être "54".
Il semble que des caractères spéciaux contenus dans les lignes 54 à 150 provoquent les erreurs suivantes. P> par exemple: p> est un moyen rapide d'éviter ces erreurs qui s'échappent Personnages? P> Merci beaucoup pour votre aide! P> Ludovic P> P>
3 Réponses :
Je pense que c'est un peu un problème X / Y.
Vous avez déjà les données en mémoire dans le dictionnaire de vecteur de caractères code> et vous souhaitez la transformer en un cadre de données. Vous essayez d'utiliser Lorsque j'ai téléchargé le fichier, l'en-tête prend 56 lignes plutôt que 54 lignes, alors nous les laissons tomber, puis appelez Voici un reprex: P> read.table code> pour le faire, et bloqué car
lisez.table code> est en difficulté avec certains des caractères spéciaux du vecteur. Au lieu d'essayer de comprendre un moyen de forcer
listable.table code> pour faire le travail, pourquoi pas seulement diviser les cordes aux doubles espaces et les lier ensemble dans un cadre de données? P>
strpsplit code> sur les deux espaces des lignes restantes, sans avoir à les convertir pour la première fois en
\ t code> caractères. Ensuite, nous utilisons
as.data.frame (do.call ("rbind", ...)) code> sur la liste résultante pour obtenir notre cadre de données. P>
url <- "http://svn.code.sf.net/p/cmusphinx/code/trunk/cmudict/cmudict-0.7b"
answer <- RCurl::getURL(url)
dictionary <- as.vector(unlist(strsplit(answer, "\n")))
dictionary.df <- strsplit(dictionary[-seq(56)], " ")
dictionary.df <- as.data.frame(do.call("rbind", dictionary.df), stringsAsFactors = FALSE)
names(dictionary.df) <- c("Item", "Pronunciation")
head(dictionary.df)
#> Item Pronunciation
#> 1 !EXCLAMATION-POINT EH2 K S K L AH0 M EY1 SH AH0 N P OY2 N T
#> 2 "CLOSE-QUOTE K L OW1 Z K W OW1 T
#> 3 "DOUBLE-QUOTE D AH1 B AH0 L K W OW1 T
#> 4 "END-OF-QUOTE EH1 N D AH0 V K W OW1 T
#> 5 "END-QUOTE EH1 N D K W OW1 T
#> 6 "IN-QUOTES IH1 N K W OW1 T S
Merci beaucoup Allan!
Fread code> à partir de l'emballage
library(data.table)
dt_dic <- fread(url, skip=56, sep=NULL, header = FALSE, col.names="Item")
dt_dic[, c("Item", "Pronunciation") := tstrsplit(Item, " ")]
dt_dic
Item Pronunciation
1: !EXCLAMATION-POINT EH2 K S K L AH0 M EY1 SH AH0 N P OY2 N T
2: "CLOSE-QUOTE K L OW1 Z K W OW1 T
3: "DOUBLE-QUOTE D AH1 B AH0 L K W OW1 T
4: "END-OF-QUOTE EH1 N D AH0 V K W OW1 T
5: "END-QUOTE EH1 N D K W OW1 T
---
133850: {BRACE B R EY1 S
133851: {LEFT-BRACE L EH1 F T B R EY1 S
133852: {OPEN-BRACE OW1 P EH0 N B R EY1 S
133853: }CLOSE-BRACE K L OW1 Z B R EY1 S
133854: }RIGHT-BRACE R AY1 T B R EY1 S
Merci beaucoup Edward!
Je voulais comparer les solutions proposées par temps informatique: quelques indications: p>