« Tutoriel koRpus » : différence entre les versions

De EduTech Wiki
Aller à la navigation Aller à la recherche
Ligne 33 : Ligne 33 :
* Le input devrait être un simple fichier de texte, encodé en format UTF-8
* Le input devrait être un simple fichier de texte, encodé en format UTF-8


== Premier pas ==
== Premiers pas ==
 
; Créer un objet S4 décomposé en POS utilisant le tokenizer inclus dans koRpus


; Créer un objet S4 décomposé en POS utilisant le tokenizer inclus
: La fonction <code>tokenize()</code> demande le chemin du texte, la langue et d'autre paramètres.
: La fonction <code>tokenize()</code> demande le chemin du texte, la langue et d'autre paramètres.
<source lang="matlab">
<source lang="matlab">
Ligne 54 : Ligne 55 :


; Créer un objet S4 décomposé en POS en utilisant TreeTagger
; Créer un objet S4 décomposé en POS en utilisant TreeTagger
: le path dans la liste des TT.options doit indiquer le répertoire de base de TreeTagger.
: '''Important''': Le preset n'est pas "fr", "'''mais fr-utf'''"
<source lang="matlab">
<source lang="matlab">
tagged.text.objS4 <- tokenize("~/methodo/iramuteq/w_txt/Alice.txt",  
tagged.text.objS4 <- treetag("/home/schneide/schneide/methodo/iramuteq/w_txt/Alice.txt",  
             treetagger="manual",
             treetagger="manual",
             lang="en",  
             lang="fr",  
             TT.options=c(path="~/tree-tagger/bin/treetagger/", preset="en"))
             TT.options= list (path="/home/schneide/tree-tagger/", preset="fr-utf8"))
</source>
 
Le résultat du processus de tokenizing ou POS tagging complet sera stocké dans une variable. Ensuite, on peut appliquer diverses méthodes d'analyse.
 
; La langue (pour vérifier)
<source lang="matlab">
> language(tagged.text.objS4)
[1] "fr"
 
; Le résultat token par token (pour vérifier)
taggedText(tagged.text.objS4)
1240                                adjective  NA  NA
1241              Sentence ending punctuation  NA  NA
1242                                  adverb  NA  NA
1243                              punctuation  NA  NA
1244                                  adverb  NA  NA
1245                        personal pronoun  NA  NA
</source>
 
; Simple description
<source lang="matlab">
describe(tagged.text.objS4)
</source>
</source>



Version du 24 novembre 2014 à 18:27

Tutoriels R
◀▬
brouillon
2014/11/24
Prérequis
Sous-pages et productions:


Introduction

Korpus est bibliothèque R d'analyse de textes, spécialisée pour la construction d'indices à partir d'une représentation linguistique de textes.

Sites et documentation principaux
cran.r: koRpus: An R Package for Text Analysis
Homepage
koRpus
koRpus_vignette.pdf
koRpus.pdf
Description: A set of tools to analyze texts. Includes, amongst others, functions for automatic language detection, hyphenation, several indices of lexical diversity (e.g., type token ratio, HD-D/vocd-D, MTLD) and readability (e.g., Flesch, SMOG, LIX, Dale-Chall). Basic import functions for language corpora are also provided, to enable frequency analyses (supports Celex and Leipzig Corpora Collection file formats) and measures like tf-idf.

Préparation

Prérequis
  • Idéalement la grande majorité des analyses exigent qu'un texte soit décomposé en composants Part-of-speech (POS) et il faudrait faire fonctionner le logiciel TreeTagger pour cela (voir qqs. indications dans la section [#Installation|Installation]. Alternativement on peut utiliser un "tokeniser" interne qui coupe en "tokens" et identifie mots, nombres, ponctuations et abréviations. Ce dernier suffit pour calculer des formules de lisibilité, mais donne des résultats moins intéressants pour les autres indices.
  • Certaines formules de lisibilité exigent des listes de mots. Ces listes sont sous copy-right on règle générale, mais on peut les importer avec un simple fichier texte, un mot par ligne (encodé en UTF-8)
  • Les analyses de fréquences nécessitent un corpus au format Celex ( Leipzig Corpora Collection (Quastho�, Richter, & Biemann, 2006)
Input
  • Le input devrait être un simple fichier de texte, encodé en format UTF-8

Premiers pas

Créer un objet S4 décomposé en POS utilisant le tokenizer inclus dans koRpus
La fonction tokenize() demande le chemin du texte, la langue et d'autre paramètres.
tagged.text.obj <- tokenize("~/methodo/iramuteq/w_txt/Alice.txt", 
                            lang="en", 
                            detect=c(parag=TRUE, hline=TRUE))
Le résultat n'est pas si glorieux. On montre les tokens 1240 à 1245 (sur 6476)
taggedText(tagged.text.obj)
1240                        Word (kRp internal)   NA   NA
1241                      Number (kRp internal)   NA   NA
1242 Sentence ending punctuation (kRp internal)   NA   NA
1243                        Word (kRp internal)   NA   NA
1244                       Comma (kRp internal)   NA   NA
1245                        Word (kRp internal)   NA   NA
Créer un objet S4 décomposé en POS en utilisant TreeTagger
le path dans la liste des TT.options doit indiquer le répertoire de base de TreeTagger.
Important: Le preset n'est pas "fr", "mais fr-utf"
tagged.text.objS4 <- treetag("/home/schneide/schneide/methodo/iramuteq/w_txt/Alice.txt", 
            treetagger="manual",
            lang="fr", 
            TT.options= list (path="/home/schneide/tree-tagger/", preset="fr-utf8"))

Le résultat du processus de tokenizing ou POS tagging complet sera stocké dans une variable. Ensuite, on peut appliquer diverses méthodes d'analyse.

La langue (pour vérifier)
> language(tagged.text.objS4)
[1] "fr"

; Le résultat token par token (pour vérifier)
taggedText(tagged.text.objS4)
1240                                adjective   NA   NA
1241              Sentence ending punctuation   NA   NA
1242                                   adverb   NA   NA
1243                              punctuation   NA   NA
1244                                   adverb   NA   NA
1245                         personal pronoun   NA   NA
Simple description
describe(tagged.text.objS4)

Installation

  • Le paquet koRpus est disponible via R
  • Par contre, pour pouvoir pleinement profiter il faut aussi installer/configurer Treetagger et qui nécessite aussi l'installation du langage Perl. Les liens sont disponibles dans la documentation de ce paquet.

Sous Ubuntu, on peut installer Treetagger de la façon suivante (enfin il faudrait aussi vérifier que ce ne soit pas fait automatiquement par la distribution Debian. Nous, on a installé koRpus via R-Studio

  • Installer Perl si ce n'est pas déjà fait
sudo apt-get install perl
  • Créer un répertoire, par exemple tree-tagger
  • Télécharger tous les fichiers indiqués dans le manuel
sh install-tagger.sh
  • Editer le fichier ~/.bashrc et ajouter (par exemple)
export PATH=/home/votre_login/tree-tagger/cmd:/home/votre_login/tree-tagger/bin:$PATH
  • Tester:
echo 'Vive big brother!' | tree-tagger-english
	reading parameters ...
	tagging ...
	 finished.
Vive	NP	Vive
big	JJ	big
brother	NN	brother
!	SENT	!

Korpus semble aussi marcher avec RKWard, une IDE/GUI pour R

Liens et bibliographie

Bibliographie

  • Michalke, M. (2012, April). koRpus -- ein R-paket zur textanalyse. Paper presented at the Tagung experimentell arbeitender Psychologen (TeaP), Mannheim.
  • Helmut Schmid (1995): Improvements in Part-of-Speech Tagging with an Application to German. Proceedings of the ACL SIGDAT-Workshop. Dublin, Ireland.