🌘 Analise de text avek des fotes d’ortografe

Présentation: Traitement du langage naturel en R
Le package hunspell permet de corriger les fautes d’orthographes des textes que l’on veut analyser.
library(hunspell)
Il faut aussi télécharger un dictionnaire de corrections pour le français
dico_url <- "http://grammalecte.net/download/fr/hunspell-french-dictionaries-v6.4.1.zip"
dico_file <- "hunspell-french-dictionaries-v6.4.1.zip"
if(!file.exists("fr-toutesvariantes.aff") ||
!file.exists("fr-toutesvariantes.dic")){
download.file(dico_url, destfile=dico_file)
unzip(dico_file,
files = c("fr-toutesvariantes.aff","fr-toutesvariantes.dic"),
overwrite = TRUE, junkpaths = TRUE)
system(paste0("rm ",dico_file))
}
On crée ensuite un objet qui contient le dictionnaire, ainsi qu’une liste de mots que l’on voudrait ajouter propre à notre métier.
custom_words <- c("desjardins","dgag", "faq")
dict_fr <- dictionary("fr-toutesvariantes.dic", add_words = custom_words)
On constate que dict_fr est un pointeur vers un objet de type hunspell_dictionary.
On propose maintenant un texte à corriger:
mon_texte <- hunspell_parse("Analise de text avek des fotes d'ortografe")
On fait passer le prof de français sur le texte
score_texte <- sapply(mon_texte, hunspell_check, dict_fr)
mean(score_texte)
Pas terrible !
On regarde maintenant ce qui nous est suggéré
erreurs <- mon_texte[[1]][!score_texte]
hunspell_suggest(erreurs, dict = dict_fr)
Maintenant, c’est à nous de trouver le meilleur algorithme pour corriger notre texte !
🌘 R ou Python avec reticulate

Reticulate est un package R qui permet d’exécuter Python depuis un environnement R et ainsi de partager des données entre les deux environnements.
On spécifie à reticulate quel environnement Python on veut utiliser.
library(reticulate)
reticulate::use_python("~/anaconda3/bin/python3")
On écris notre code python dans notre document R Markdown en changeant l’interpréteur dans les accolades. Ceci nécessite RStudio 1.2 et +
import requests
import os.path
if not os.path.isfile("flights.csv"):
url = 'http://rcs.bu.edu/examples/python/data_analysis/flights.csv'
r = requests.get(url, allow_redirects=True)
open('flights.csv', 'wb').write(r.content)
On lis un fichier avec Pandas
import pandas as pd
flights = pd.read_csv("flights.csv")
On imprime les 5 prtemières lignes
print(flights.head(5))
On accède aux mêmes données nativement dans R avec l’objet py.
py$flights %>% glimpse()
🌘 data.frame dans un data.frame avec nest()

Présentation: Introduction à la programmation fonctionnelle avec R, par Philippe Massicotte
La fonction nest() du package tidyr permet d’encapsuler une section d’un data.frame dans une colonne qui contient des data.frames. Ceci est utile, par exemple, pour effectuer des opérations au niveau d’un groupe sans affecter les différents éléments composant le groupe, ou encore pour appliquer des fonctions complexes sur certaines variables, toujours au sein d’un groupe.
library(tidyr)
library(purrr)
Reprenons les données chargées à l’exemple précédent:
flights_nest <- py$flights %>%
mutate(tailnum = tailnum %>% map_chr(`[`,1)) %>%
group_by(year,month) %>%
nest()
On groupe les données par année et par mois, on obtient donc un data.frame qui contient trois colonnes. La colonne data contient un data.frame pour chaque groupe.
glimpse(flights_nest)
On peut maintenant calculer, par exemple, un modèle linéaire pour chaque groupe, et extraire le $R^2$.
flights_nest_modele <- flights_nest %>%
mutate(mon_modele = data %>%
map(function(x) lm(distance ~
air_time + carrier + dep_delay + arr_delay,
data = x)),
r.sq = mon_modele %>%
map_dbl(function(x) x %>% summary %>% `$`(r.squared))) %>%
select(-mon_modele)
Regardons ce que ça donne !
glimpse(flights_nest_modele)
Maintenant, il est temps de retrouver la forme d’origine
flights_nest_modele %>%
unnest() %>%
head() %>%
glimpse()
🌘 La donnée sous toutes ses formes

Atelier: Actualisation de bases de données de l’OMC avec R: aperçu pratique et enjeux par Carolle E. Kempa Nangue
Une petite liste de packages R pour extraire des données d’un peu n’importe quoi !
- Statistiques Canada: CANSIM2R
- Eurostat Open Data: eurostat
- Microsoft Word: antiword
- Microsoft Excel: readxl
- LibreOffice ODS: readODS
- PDF: pdftools
- Pages web: rvest et SelectorGadget
- API de Google Maps, y compris les itinéraires: googleway
- Texte depuis images: tesseract
Un groupe qui développe beaucoup de packages sur l’accès aux données publiques et sémantiques:
🌘 Analyse de la réputation

Atelier: Dynamique de réputation d’entreprises avec le package sentometrics
Le package sentometrics permet de construire des modèles prédictifs à partir de données chronologiques d’analyse de sentiments. Présenté par Keven Bluteau.
Article: The R Package sentometrics to Compute, Aggregate and Predict with Textual Sentiment