« Text mining avec R » : différence entre les versions
m (→Introduction) |
|||
Ligne 8 : | Ligne 8 : | ||
Pour l'utiliser: | Pour l'utiliser: | ||
<code>library(tm)</code> | <code>library(tm)</code> | ||
Si nécessaire, installez avec R-Studio ou tapez: | |||
<code> install.packages("tm")</code> | |||
== Importation de documents == | == Importation de documents == |
Version du 1 octobre 2014 à 17:36
Cet article est une ébauche à compléter. Une ébauche est une entrée ayant un contenu (très) maigre et qui a donc besoin d'un auteur.
Voir aussi:
Introduction
tm est le paquet "text mining" les plus populaire de R et il faut l'installer si nécessaire.
Pour l'utiliser:
library(tm)
Si nécessaire, installez avec R-Studio ou tapez:
install.packages("tm")
Importation de documents
Le paquet tm est conçu pour marcher avec une variété de formats: textes simples, articles/papiers en PDF ou Word, documents Web (HTML, XML, SGML), etc.
Les corpus
Le Corpus
est la structure R qui représente une collection de documents que l'on veut analyser. Cette structure doit être construite en important des données et/ou en tapant des données.
Il existe 2 versions:
- VCorpus (volatile, lorsqu'on arrête R, il faut la refaire ...
- PCorpus (endroit unique où le corpus est stocké)
Pour construire un corpus, il faut donner deux arguments
- Identifier un type de 'source de données: soit
DataframeSource
,DirSource
,URISource
,vectorSource
ouXMLSource
- Definir le reader, c-a-d. on manière dont le texte est lu avec
readerControl
, notammentreadDOC
,readPDF
,readPlain
,readXML
,readTabular
.
Demander à R des informations concernant le type de sources et de readers:
getReaders() # affiche toute la liste de readers
getSources() # affiche la liste des types de sources
Chaque source possède un lecteur (reader) par défaut. Par exemple pour DirSource
, c'est readPlain
.
Exemple lecture de fichiers textes du tutoriel officiel en format UTF-8
Ces fichiers se trouvent déjà dans l'installation de R, d'où l'utilisation de system.file
# Tester si un répertoire existe et retourner son nom complet
# Tester et stocker le nom d´un sous-répertoire tm/texts/txt dans votre bibliothèque système
txt <- system.file("texts", "txt", package = "tm")
# Charger le texte de chaque fichier
ovid <- VCorpus(DirSource(txt, encoding = "UTF-8"), readerControl = list(language = "lat"))
Inspection et utilisation de corpus
Pour vérifier les contenus on peut afficher le tout ou encore juste quelques éléments, par exemple:
# print a short overview
print(ovid)
# show all
inspect(ovid)
ovid
# display the second document
ovid[[2]]
Exemple lecture de fichiers locaux
Pour lire un ensemble de fichier locaux,on conseille de les mettre dans un sous-répertoire d'un répertoire pour le text mining.
(1) Définissez le working directory
# lister
getwd()
[1] "C:/Users/dschneid/Documents"
# changer le répertoire de travail
setwd "C:/dks/R"
On peut utiliser la fonction file.path pour indiquer ou trouver les fichiers. Si sous Windows, les fichiers se trouvent dans D:\data\exemples\txt
, utilisez du code comme chemin <- file.path("d:", "data", "exemples", "txt")
. Pour indiquer un sous-répertoire du répertoire courant, utilise qc. comme file.path (".", "textes")
. Enfin, avec une syntaxe "Unix" cela marchera aussi: D:/data/exemples/txt
Aspirer une page web
Aspirer une page MediaWiki
Les MediaWiki ont une API qui autorise l'extraction de contenus de pages, un bon exemple est ce wiki:
Afficher l'API:
http://edutechwiki.unige.ch/fmediawiki/api.php
Exemple: Contenu d'une page sous format XML (qu'il va aussi falloir nettoyer, mais moins)
http://edutechwiki.unige.ch/fmediawiki/api.php?action=parse&page=Civilization&format=xml
Transformations
stemDocument()
stripWhitespace()
tmTolower()
Méthodes d'analyse
.....
Exemple EduTechWiki
Cet exemple est directement inspiré par le billet Text mining in R – Automaticcategorization of Wikipedia articles de Norbert Ryciak.
Prérequis
Il faut avoir les librairies stringi, proxi et tm. Donc si nécessaire, il faut les installer. Par exemple, en ligne de commande:
install.packages("proxy")
Importer les documents
On peut directement importer des pages html (donc des pages wiki):
library(tm)
library(stringi)
library(proxy)
# le nom du wiki
wiki <- "http://edutechwiki.unige.ch/fr/"
# une liste de noms de pages
titles <- c("STIC:STIC_I_-_exercice_1_(Utopia)", "STIC:STIC I - exercice 1 (Nestor-Pixel)",
"STIC:STIC_I_-_exercice_2_(Utopia)",
"STIC:STIC III (2012)/Module 1", "STIC:STIC III (2012)/Module 2")
# un vecteur qui contient 5 strings vides ("")
articles <- character(length(titles))
# lecture des contenus des pages wiki. Chaque article se trouvera dans un des string ci-dessous.
for (i in 1:length(titles)) {
articles[i] <- stri_flatten(readLines(stri_paste(wiki, titles[i])), col = "")
}
# Création d un corpus avec les articles
docs <- Corpus(VectorSource(articles))
Liens
- Ingo Feiner (2014). Introduction to the tm Package Text Mining in R, http://cran.r-project.org/web/packages/tm/vignettes/tm.pdf
- Official "vignette" (introductory text included with the package). Quote: “This vignette gives a short introduction to text mining in R utilizing the text mining framework provided by the tm package. We present methods for data import, corpus handling, preprocessing, metadata management, and creation of term-document matrices.”
- Ingo Feinerer, Kurt Hornik, David Meyer (2008). Text Mining Infrastructure in R, Journal of Statistical software, Vol. 25, Issue 5, http://www.jstatsoft.org/v25/i05/ (open contents)
- Article complet par les auteurs du package et qui introduit le paquet tm (version 2008). Il contient aussi des exemples.
- Stefan Theussl, Ingo Feinerer & Kurt Hornik, Distributed Text Mining with tm, http://www.rinfinance.com/agenda/2010/Theussl+Feinerer+Hornik.pdf
- Aussi par les auteurs, contient des exemples différents.
- Grahan Williams, 2004). Data Science with R Text Mining, http://onepager.togaware.com/TextMiningO.pdf
- Alternative et complément au tutoriel officiel, un peu plus systématique ...
- Jon Starkweather, Introduction to basic Text Mining in R, http://it.unt.edu/benchmarks/issues/2014/01/rss-matters
- Assez utile pour débuter
- Text mining with R (slides) by Aleksei Beloshytski
- Montre (superficiellement) notamment comment analyser un blog, c'est à dire extraire les contenus, puis extraire les thèmes les plus populaires, clustering, etc.
- Text mining in R – Automatic categorization of Wikipedia articles par Norbert Ryciak, Juin 2014, article en ligne.
- Bref billet qui montre l'essentiel de ce qu'il faut savoir pour commencer à analyser EduTechwiki