« Text mining avec R » : différence entre les versions
mAucun résumé des modifications |
Aucun résumé des modifications |
||
(37 versions intermédiaires par un autre utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
{{tutoriel | {{tutoriel | ||
|fait_partie_du_cours= | |fait_partie_du_cours=Analytique et exploration de données | ||
|fait_partie_du_module=Outils text mining | |||
|est_module_de=Analytique et exploration de données | |||
|pas_afficher_sous-page=Non | |||
|page_precedente=Les données R | |page_precedente=Les données R | ||
| | |page_suivante=Tutoriel tm text mining package | ||
|pages_prérequises=Text mining, Les données R, Traitement de données alphanumériques avec R | |pages_prérequises=Text mining, Les données R, Traitement de données alphanumériques avec R, Tutoriel tm text mining package | ||
|voir_aussi=Web scraping avec R, Tutoriel koRpus | |||
|cat tutoriels=R | |||
|page_prérequis=Les données R, Text mining | |page_prérequis=Les données R, Text mining | ||
}} | }} | ||
{{Ebauche}} | {{Ebauche}} | ||
'''A faire''' (ceci est vraiment un brouillon, la lecture de ce texte peut détruire votre ordinateur) | '''A faire''' (ceci est vraiment un brouillon, la lecture de ce texte peut détruire votre ordinateur) | ||
Ligne 36 : | Ligne 38 : | ||
=== Utilitaires === | === Utilitaires === | ||
Ces paquets (et d'autres) sont normalement installés par certains paquets text mining. | |||
* stringi (permet de manipuler des chaines de caractères) | * stringi (permet de manipuler des chaines de caractères) | ||
* XML (manipulation de fichiers XML/HTML) | * XML (manipulation de fichiers XML/HTML) | ||
* tau (régler l'encodage, tokeniser, compter) | * tau (régler l'encodage, tokeniser, compter) | ||
* ... | |||
=== Text mining paquets à vocation multiple === | === Text mining paquets à vocation multiple === | ||
Ligne 45 : | Ligne 50 : | ||
Ces paquets sont conçus différemment. Certains offrent des analyses de A-Z alors que d'autres offrent surtout un soutien pour toutes les étapes de préparation | Ces paquets sont conçus différemment. Certains offrent des analyses de A-Z alors que d'autres offrent surtout un soutien pour toutes les étapes de préparation | ||
; tm | ; tm | ||
: | : Tutoriel EduTechwiki: [[Tutoriel tm text mining package]] | ||
: '''tm''' est un "framework" pour l'analyse de texte. Le logiciel aide pour tout ce qui est préparation, constitution de corpus, analyses simples (fréquences, etc.). On peut construire des tableaux de proximité que l'on peut ensuite analyser avec des outils statistiques. | |||
: Voir [[Tutoriel tm text mining package]] | |||
: Cran.r: [http://cran.r-project.org/web/packages/tm/ tm: Text Mining Package] | |||
: [http://tm.r-forge.r-project.org/ Home page] | |||
: Rdocumentation: [http://www.rdocumentation.org/packages/tm tm] | |||
: Il existe des extensions (voir ci-dessous pour certains) | : Il existe des extensions (voir ci-dessous pour certains) | ||
Ligne 56 : | Ligne 66 : | ||
; tm.plugin.alceste | ; tm.plugin.alceste | ||
: Permet d'importer des fichiers au | : Permet d'importer des fichiers au format "Alceste" (voir par exemple [[IRaMuTeQ]]) | ||
; qdap | |||
: Grand éventail d'outils pour analyser des transcriptions (entretiens, dialogues, etc.) , mais on peut l'utiliser pour d'autres types de textes | |||
: cran.r: [http://cran.r-project.org/web/packages/qdap/ qdap: Bridging the Gap Between Qualitative Data and Quantitative Analysis] | |||
: [http://trinker.github.io/qdap/ home page] (sur GitHub) | |||
: Rdocumentation: [http://www.rdocumentation.org/packages/qdap qdap] | |||
: Description: qdap automates many of the tasks associated with quantitative discourse analysis of transcripts containing discourse including frequency counts of sentence types, words, sentences, turns of talk, syllables and other assorted analysis tasks. The package provides parsing tools for preparing transcript data. Many functions enable the user to aggregate data by any number of grouping variables, providing analysis and seamless integration with other R packages that undertake higher level analysis and visualization of text. [...] | |||
: Cette extension installe une trentaine (!) d'autres. | |||
; RcmdrPlugin.temis | ; RcmdrPlugin.temis | ||
: cran.r: [http://cran.r-project.org/web/packages/RcmdrPlugin.temis/ RcmdrPlugin.temis: Graphical Integrated Text Mining Solution] | |||
: [http://www.rdocumentation.org/packages/RcmdrPlugin.temis RcmdrPlugin.temis] | |||
: [http://r-forge.r-project.org/projects/r-temis/ Homepage] (sur R-Forge) | |||
: Description: An R Commander plug-in providing an integrated solution to perform a series of text mining tasks such as importing and cleaning a corpus, and analyses like terms and documents counts, vocabulary tables, terms co-occurrences and documents similarity measures, time series analysis, correspondence analysis and hierarchical clustering. Corpora can be imported from spreadsheet-like files, directories of raw text files, Twitter queries, as well as from Dow Jones Factiva, LexisNexis, Europresse and Alceste files. | : Description: An R Commander plug-in providing an integrated solution to perform a series of text mining tasks such as importing and cleaning a corpus, and analyses like terms and documents counts, vocabulary tables, terms co-occurrences and documents similarity measures, time series analysis, correspondence analysis and hierarchical clustering. Corpora can be imported from spreadsheet-like files, directories of raw text files, Twitter queries, as well as from Dow Jones Factiva, LexisNexis, Europresse and Alceste files. | ||
; koRpus | ; koRpus | ||
: Tutoriel EduTechwiki: [[Tutoriel koRpus]] | |||
: Comprend plusieurs outils, notamment des opérations de bases, des indices populaires de "readabilité" et de diversité, une interface avec TreeTagger | : Comprend plusieurs outils, notamment des opérations de bases, des indices populaires de "readabilité" et de diversité, une interface avec TreeTagger | ||
: cran.r: [http://cran.r-project.org/web/packages/koRpus/ koRpus: An R Package for Text Analysis] | |||
: [http://reaktanz.de/?c=hacking&s=koRpus Homepage] | |||
: [http://www.rdocumentation.org/packages/koRpus koRpus] | |||
: 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. | : 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. | ||
Ligne 78 : | Ligne 103 : | ||
: apprentissage machine, utile pour topic modeling | : apprentissage machine, utile pour topic modeling | ||
: il s'agit d'une interface pour le programme Java "Mallet" | : il s'agit d'une interface pour le programme Java "Mallet" | ||
: Rdocumentation: [http://www.rdocumentation.org/packages/mallet mallet] | |||
;lda | ;lda | ||
: fonctionalités similaires à mallet | : fonctionalités similaires à mallet | ||
: Rdocumentation: [http://www.rdocumentation.org/packages/lda lda] | |||
: Description: This package implements latent Dirichlet allocation (LDA) and related models. This includes (but is not limited to)sLDA, corrLDA, and the mixed-membership stochastic blockmodel [...] | : Description: This package implements latent Dirichlet allocation (LDA) and related models. This includes (but is not limited to)sLDA, corrLDA, and the mixed-membership stochastic blockmodel [...] | ||
; sentiment | ; sentiment | ||
: Tutoriel EduTechwiki: [[Analyse de sentiments avec R]] | |||
: analyse de sentiments | : analyse de sentiments | ||
: Rdocumentation: [http://www.rdocumentation.org/packages/sentiment sentiment] | |||
: Pas disponibles dans R 3.1.1 ? | : Pas disponibles dans R 3.1.1 ? | ||
; RTextTools | ; RTextTools | ||
: classification automatique de textes, 9 méthodes à choix | : classification automatique de textes, 9 méthodes à choix | ||
: RDocumentation: [http://www.rdocumentation.org/packages/RTextTools RTextTools] | |||
: Description: RTextTools is a machine learning package for automatic text classification that makes it simple for novice users get started with machine learning, while allowing experienced users to easily experiment with different settings and algorithm combinations. The package includes nine algorithms for ensemble classification (svm, slda, boosting, bagging, random forests, glmnet, decision trees, neural networks, maximum entropy), comprehensive analytics, and thorough documentation. | : Description: RTextTools is a machine learning package for automatic text classification that makes it simple for novice users get started with machine learning, while allowing experienced users to easily experiment with different settings and algorithm combinations. The package includes nine algorithms for ensemble classification (svm, slda, boosting, bagging, random forests, glmnet, decision trees, neural networks, maximum entropy), comprehensive analytics, and thorough documentation. | ||
; lsa (latent semantic analysis) | ; lsa (latent semantic analysis) | ||
: Permet de mener des analyses de type [[:en:Latent semantic analysis and indexing|LSA]] | |||
: RDocumentation: [http://www.rdocumentation.org/packages/lsa lsa] | |||
: Description: The basic idea of latent semantic analysis (LSA) is, that text do have a higher order (=latent semantic) structure which, however, is obscured by word usage (e.g. through the use of synonyms or polysemy). By using conceptual indices that are derived statistically via a truncated singular value decomposition (a two-mode factor analysis) over a given document-term matrix, this variability problem can be overcome. | : Description: The basic idea of latent semantic analysis (LSA) is, that text do have a higher order (=latent semantic) structure which, however, is obscured by word usage (e.g. through the use of synonyms or polysemy). By using conceptual indices that are derived statistically via a truncated singular value decomposition (a two-mode factor analysis) over a given document-term matrix, this variability problem can be overcome. | ||
; RWeka | |||
: Interface R pour le logiciel Weka (écrit en Java). Weka semble être l'outil le plus populaire en text mining combiné au machine learning (par exemple pour classifier des segments) | |||
: RDocumentation: [http://www.rdocumentation.org/packages/RWeka Rweka] | |||
: Description: An R interface to Weka (Version 3.7.11). Weka is a collection of machine learning algorithms for data mining tasks written in Java, containing tools for data pre-processing, classification, regression, clustering, association rules, and visualization | |||
=== Paquets statistiques === | === Paquets statistiques === | ||
; kpca | |||
: Kernel Principal Components Analysis is a nonlinear form of principal component analysis. | |||
; maxent | ; maxent | ||
: classification automatique de textes avec "maximum entropy" ak ''multinomial logistic regression'' | : classification automatique de textes avec "maximum entropy" ak ''multinomial logistic regression'' | ||
Description: maxent is an R package with tools for low-memory multinomial logistic regression, also known as maximum entropy. The focus of this maximum entropy classifier is to minimize memory consumption [..], particularly sparse document-term matrices represented by the tm package. [...] | : Description: maxent is an R package with tools for low-memory multinomial logistic regression, also known as maximum entropy. The focus of this maximum entropy classifier is to minimize memory consumption [..], particularly sparse document-term matrices represented by the tm package. [...] | ||
; proxy | ; proxy | ||
Ligne 106 : | Ligne 146 : | ||
; ca | ; ca | ||
: Description: A package for computation and visualization of simple, multiple and joint correspondence analysis. | : Description: A package for computation and visualization of simple, multiple and joint correspondence analysis. | ||
; corrplot | |||
: Utile pour afficher par exemple des matrices de type TfIdf (en ligne des mots, en colonne des textes et en cellule un graphique qui représente le "poids" du mot) | |||
: Description: The corrplot package is a graphical display of a correlation matrix, confidence interval or any sort of Matrix (is.corr=FALSE). It also contains some algorithms to do matrix reordering. | |||
.... | .... | ||
== | == Survol d'analyses == | ||
(à faire) | |||
== Préparation de documents == | |||
=== Extraction d'une base de données === | |||
Il est possible d'écrire le résultat de requêtes SQL dans un fichier, enfin il faut s'adapter aux mesure de sécurité des serveurs bases de données. | |||
Par exemple dans MySQL (Ubuntu 16.x / Mysql 14.x (5.7.x), l'expresssion suivante marche si le client a des droits d'administrateur | |||
USE phpwiki14; | |||
SELECT content FROM `version` WHERE id = 5265 into outfile '/var/lib/mysql-file/t2.text' lines terminated by '\n$_version_$\n'; | |||
Ensuite, vous pouvez par exemple couper ce fichier en plusieurs fichiers (je ne comprends pas pourquoi split veut un nombre précis de répétition) | |||
csplit -f test -n 3 t2.text '/\$_version_\$/' {162} | |||
=== Extraction via une API === | |||
C.f. les examples Edutechwiki dans le tutoriel [[Tutoriel tm text mining package|tm]] | |||
=== | === Nettoyage === | ||
Pour préparer des "sacs de mots" nettoyés et pour fabriquer des tableaux de fréquences ou de proximité, on conseille d'utiliser [[Tutoriel tm text mining package|tm]] (tutoriel) | |||
== Analyses de type ALCESTE == | |||
[http://www.iramuteq.org/ Iramutec] est un logiciel (Interface de R) qui permet de faire un certain nombre d'analyses statistiques relativement facilement. On peut considérer que ce logiciel est une implémentation open source des fonctionnalités populaires du logiciel commercial [http://www.image-zafar.com/ Alceste] et de la méthode ALCESTE ("Analyse des Lexèmes Cooccurrents pour un Ensemble de Segmentations du Texte en Énoncés") sous-jacent développée par Max Reinert. | |||
On peut | |||
* On conseille d'utiliser [[IRaMuTeQ]] | |||
* | |||
On | |||
[[ | |||
Selon le [http://www.image-zafar.com/fr/logiciel-alceste site officiel], {{citation|Alceste, à partir d’un corpus, effectue une première analyse détaillée de son vocabulaire, et constitue le dictionnaire des mots ainsi que de leur racine, avec leur fréquence. Ensuite, par fractionnements successifs, il découpe le texte en segments homogènes contenant un nombre suffisant de mots, et procède alors à une classification de ces segments en repérant les oppositions les plus fortes. Cette méthode permet d’extraire des classes de sens, constituées par les mots et les phrases les plus significatifs, les classes obtenues représentent les idées et les thèmes dominants du corpus. L’ensemble des résultats triés selon leur pertinence, accompagnés de nombreuses représentations graphiques et de différents rapports d’analyse, permet à l’utilisateur une interprétation aisée et efficace.}} | Selon le [http://www.image-zafar.com/fr/logiciel-alceste site officiel], {{citation|Alceste, à partir d’un corpus, effectue une première analyse détaillée de son vocabulaire, et constitue le dictionnaire des mots ainsi que de leur racine, avec leur fréquence. Ensuite, par fractionnements successifs, il découpe le texte en segments homogènes contenant un nombre suffisant de mots, et procède alors à une classification de ces segments en repérant les oppositions les plus fortes. Cette méthode permet d’extraire des classes de sens, constituées par les mots et les phrases les plus significatifs, les classes obtenues représentent les idées et les thèmes dominants du corpus. L’ensemble des résultats triés selon leur pertinence, accompagnés de nombreuses représentations graphiques et de différents rapports d’analyse, permet à l’utilisateur une interprétation aisée et efficace.}} | ||
Ligne 1 057 : | Ligne 254 : | ||
* [http://fr.wikipedia.org/wiki/Fouille_de_textes Fouille de textes] (seulement une ébauche en oct. 2014, voir [http://en.wikipedia.org/wiki/Text_mining Text Mining] (Wikipedia) | * [http://fr.wikipedia.org/wiki/Fouille_de_textes Fouille de textes] (seulement une ébauche en oct. 2014, voir [http://en.wikipedia.org/wiki/Text_mining Text Mining] (Wikipedia) | ||
* [https://sg.linkedin.com/in/kailash-awati-3517a711 Kailash Awati], [https://eight2late.wordpress.com/2015/05/27/a-gentle-introduction-to-text-mining-using-r/ A gentle introduction to text mining using R] (blog post, 2015). Voir aussi: [https://eight2late.wordpress.com/2015/12/02/a-gentle-introduction-to-network-graphs-using-r-and-gephi/ article on visualizing relationships between documents] et [https://eight2late.wordpress.com/2015/09/29/a-gentle-introduction-to-topic-modeling-using-r/ introductory piece on topic modeling] | |||
=== Sites === | === Sites === | ||
* [http://www.rdatamining.com/ RDM] R Data Mining | * [http://www.rdocumentation.org/domains/NaturalLanguageProcessing NaturalLanguageProcessing]. Aide en ligne pour tous les paquets de traitement de langue. | ||
* [http://www.rdatamining.com/ RDM] R Data Mining | |||
=== Exemples et/ou textes informels === | === Exemples et/ou textes informels === | ||
Ligne 1 079 : | Ligne 279 : | ||
** [http://mediamining.univ-lyon2.fr/velcin/public/TM/td2-sujet.pdf TD Fouille de textes 2] (comparer des textes) | ** [http://mediamining.univ-lyon2.fr/velcin/public/TM/td2-sujet.pdf TD Fouille de textes 2] (comparer des textes) | ||
** [http://mediamining.univ-lyon2.fr/velcin/public/TM/td3-sujet.pdf TD Fouille de textes 3] (la librairie TM) | ** [http://mediamining.univ-lyon2.fr/velcin/public/TM/td3-sujet.pdf TD Fouille de textes 3] (la librairie TM) | ||
* [http://www.unt.edu/rss/class/Jon/R_SC/ Basic example of Text Mining] (Research and Statistical Support, UNT) | |||
=== Statistiques === | === Statistiques === |
Dernière version du 22 mars 2020 à 22:28
Analytique et exploration de données | |
---|---|
Module: Outils text mining | |
Page d'entrée du module Analytique et exploration de données |
|
◀▬▬▶ | |
⚐ | ☸ |
⚒ 2020/03/22 | |
Prérequis | |
Voir aussi | |
Catégorie: R |
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.
A faire (ceci est vraiment un brouillon, la lecture de ce texte peut détruire votre ordinateur)
- tout réviser et vérifier !!
- splitter la page en 3-4 sujets
- fournir du code compact pour des tâches typiques
- Daniel K. Schneider (discussion) 8/24 oct. 2014
Introduction
A faire ....
Sources de données utilisées dans les exemples
R et ses extensions permettent de digérer des formats de documents divers. Dans nos examples, nous allons nous concentrer sur:
- Des fichiers en texte bruts, notamment disponibles dans le project Gutenberg
- Zen and the Art of the Internet, by Brendan P. Kehoe: http://www.gutenberg.org/cache/epub/34/pg34.txt
- Une courte histoire de l'eBook, by Marie Lebert: http://www.gutenberg.org/files/29802/29802-0.txt
- Des pages EduTechWiki, notamment les versions "XML" que l'on peut obtenir via l'API
Survol de paquets R
Il existe plusieurs paquets utiles pour effectuer des analyses exploratoires de textes. Ces paquets s'installent en règle générale assez facilement. Si vous utilisez R-Studio il suffit de cliquer l'onglet "Install" et taper le nom. Ceci dit, il faut parfois installer d'autres langages comme Java. Sur PC les paquets sont déjà compilés, sous Linux ils sont compilés (ce qui implique qu'il faut avoir installé C, Fortran, Perl, Java, etc.)
Il n'est pas nécessaire de lire cela lors de votre première visite (....)
Utilitaires
Ces paquets (et d'autres) sont normalement installés par certains paquets text mining.
- stringi (permet de manipuler des chaines de caractères)
- XML (manipulation de fichiers XML/HTML)
- tau (régler l'encodage, tokeniser, compter)
- ...
Text mining paquets à vocation multiple
Ces paquets sont conçus différemment. Certains offrent des analyses de A-Z alors que d'autres offrent surtout un soutien pour toutes les étapes de préparation
- tm
- Tutoriel EduTechwiki: Tutoriel tm text mining package
- tm est un "framework" pour l'analyse de texte. Le logiciel aide pour tout ce qui est préparation, constitution de corpus, analyses simples (fréquences, etc.). On peut construire des tableaux de proximité que l'on peut ensuite analyser avec des outils statistiques.
- Voir Tutoriel tm text mining package
- Cran.r: tm: Text Mining Package
- Home page
- Rdocumentation: tm
- Il existe des extensions (voir ci-dessous pour certains)
- tm.plugin.mail
- Permet d'analyser des fichiers emails
- tm.plugin.webmining
- Inclut des fonctions "web scraping"
- tm.plugin.alceste
- Permet d'importer des fichiers au format "Alceste" (voir par exemple IRaMuTeQ)
- qdap
- Grand éventail d'outils pour analyser des transcriptions (entretiens, dialogues, etc.) , mais on peut l'utiliser pour d'autres types de textes
- cran.r: qdap: Bridging the Gap Between Qualitative Data and Quantitative Analysis
- home page (sur GitHub)
- Rdocumentation: qdap
- Description: qdap automates many of the tasks associated with quantitative discourse analysis of transcripts containing discourse including frequency counts of sentence types, words, sentences, turns of talk, syllables and other assorted analysis tasks. The package provides parsing tools for preparing transcript data. Many functions enable the user to aggregate data by any number of grouping variables, providing analysis and seamless integration with other R packages that undertake higher level analysis and visualization of text. [...]
- Cette extension installe une trentaine (!) d'autres.
- RcmdrPlugin.temis
- cran.r: RcmdrPlugin.temis: Graphical Integrated Text Mining Solution
- RcmdrPlugin.temis
- Homepage (sur R-Forge)
- Description: An R Commander plug-in providing an integrated solution to perform a series of text mining tasks such as importing and cleaning a corpus, and analyses like terms and documents counts, vocabulary tables, terms co-occurrences and documents similarity measures, time series analysis, correspondence analysis and hierarchical clustering. Corpora can be imported from spreadsheet-like files, directories of raw text files, Twitter queries, as well as from Dow Jones Factiva, LexisNexis, Europresse and Alceste files.
- koRpus
- Tutoriel EduTechwiki: Tutoriel koRpus
- Comprend plusieurs outils, notamment des opérations de bases, des indices populaires de "readabilité" et de diversité, une interface avec TreeTagger
- cran.r: koRpus: An R Package for Text Analysis
- Homepage
- koRpus
- 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.
- textometrieR
- Ne semble pas bien marcher dans R 3.1.1 (dernière mise à jour 2009, manque des choses ?)
- Description: Statistical exploration of textual corpora using several methods from french 'lexiometrie' and french 'Data Analysis' schools. It includes methods for exploring irregularity of distribution of lexicon (or other features) accross parts of texts; multidimensionnal exploration ('Analyse des correspondances'), etc.
- textometrie
- Other version of the above ?
- Description: Statistical exploration of textual corpora using several methods from French 'Textometrie' (new name of 'Lexicometrie') and French 'Data Analysis' schools. It includes methods for exploring irregularity of distribution of lexicon features across text sets or parts of texts (Specificity analysis); multi-dimensional exploration (Factorial analysis), etc. Those methods are used in the TXM software.
Analyses spécifiques
- mallet
- apprentissage machine, utile pour topic modeling
- il s'agit d'une interface pour le programme Java "Mallet"
- Rdocumentation: mallet
- lda
- fonctionalités similaires à mallet
- Rdocumentation: lda
- Description: This package implements latent Dirichlet allocation (LDA) and related models. This includes (but is not limited to)sLDA, corrLDA, and the mixed-membership stochastic blockmodel [...]
- sentiment
- Tutoriel EduTechwiki: Analyse de sentiments avec R
- analyse de sentiments
- Rdocumentation: sentiment
- Pas disponibles dans R 3.1.1 ?
- RTextTools
- classification automatique de textes, 9 méthodes à choix
- RDocumentation: RTextTools
- Description: RTextTools is a machine learning package for automatic text classification that makes it simple for novice users get started with machine learning, while allowing experienced users to easily experiment with different settings and algorithm combinations. The package includes nine algorithms for ensemble classification (svm, slda, boosting, bagging, random forests, glmnet, decision trees, neural networks, maximum entropy), comprehensive analytics, and thorough documentation.
- lsa (latent semantic analysis)
- Permet de mener des analyses de type LSA
- RDocumentation: lsa
- Description: The basic idea of latent semantic analysis (LSA) is, that text do have a higher order (=latent semantic) structure which, however, is obscured by word usage (e.g. through the use of synonyms or polysemy). By using conceptual indices that are derived statistically via a truncated singular value decomposition (a two-mode factor analysis) over a given document-term matrix, this variability problem can be overcome.
- RWeka
- Interface R pour le logiciel Weka (écrit en Java). Weka semble être l'outil le plus populaire en text mining combiné au machine learning (par exemple pour classifier des segments)
- RDocumentation: Rweka
- Description: An R interface to Weka (Version 3.7.11). Weka is a collection of machine learning algorithms for data mining tasks written in Java, containing tools for data pre-processing, classification, regression, clustering, association rules, and visualization
Paquets statistiques
- kpca
- Kernel Principal Components Analysis is a nonlinear form of principal component analysis.
- maxent
- classification automatique de textes avec "maximum entropy" ak multinomial logistic regression
- Description: maxent is an R package with tools for low-memory multinomial logistic regression, also known as maximum entropy. The focus of this maximum entropy classifier is to minimize memory consumption [..], particularly sparse document-term matrices represented by the tm package. [...]
- proxy
- analyses de proximités
- Description: Provides an extensible framework for the efficient calculation of auto- and cross-proximities, along with implementations of the most popular ones.
- ca
- Description: A package for computation and visualization of simple, multiple and joint correspondence analysis.
- corrplot
- Utile pour afficher par exemple des matrices de type TfIdf (en ligne des mots, en colonne des textes et en cellule un graphique qui représente le "poids" du mot)
- Description: The corrplot package is a graphical display of a correlation matrix, confidence interval or any sort of Matrix (is.corr=FALSE). It also contains some algorithms to do matrix reordering.
....
Survol d'analyses
(à faire)
Préparation de documents
Extraction d'une base de données
Il est possible d'écrire le résultat de requêtes SQL dans un fichier, enfin il faut s'adapter aux mesure de sécurité des serveurs bases de données.
Par exemple dans MySQL (Ubuntu 16.x / Mysql 14.x (5.7.x), l'expresssion suivante marche si le client a des droits d'administrateur
USE phpwiki14; SELECT content FROM `version` WHERE id = 5265 into outfile '/var/lib/mysql-file/t2.text' lines terminated by '\n$_version_$\n';
Ensuite, vous pouvez par exemple couper ce fichier en plusieurs fichiers (je ne comprends pas pourquoi split veut un nombre précis de répétition)
csplit -f test -n 3 t2.text '/\$_version_\$/' {162}
Extraction via une API
C.f. les examples Edutechwiki dans le tutoriel tm
Nettoyage
Pour préparer des "sacs de mots" nettoyés et pour fabriquer des tableaux de fréquences ou de proximité, on conseille d'utiliser tm (tutoriel)
Analyses de type ALCESTE
Iramutec est un logiciel (Interface de R) qui permet de faire un certain nombre d'analyses statistiques relativement facilement. On peut considérer que ce logiciel est une implémentation open source des fonctionnalités populaires du logiciel commercial Alceste et de la méthode ALCESTE ("Analyse des Lexèmes Cooccurrents pour un Ensemble de Segmentations du Texte en Énoncés") sous-jacent développée par Max Reinert.
- On conseille d'utiliser IRaMuTeQ
Selon le site officiel, «Alceste, à partir d’un corpus, effectue une première analyse détaillée de son vocabulaire, et constitue le dictionnaire des mots ainsi que de leur racine, avec leur fréquence. Ensuite, par fractionnements successifs, il découpe le texte en segments homogènes contenant un nombre suffisant de mots, et procède alors à une classification de ces segments en repérant les oppositions les plus fortes. Cette méthode permet d’extraire des classes de sens, constituées par les mots et les phrases les plus significatifs, les classes obtenues représentent les idées et les thèmes dominants du corpus. L’ensemble des résultats triés selon leur pertinence, accompagnés de nombreuses représentations graphiques et de différents rapports d’analyse, permet à l’utilisateur une interprétation aisée et efficace.»
Préparation du texte à analyser
Ce logiciel ne lit que des fichiers text nettoyés. Un texte ne peut pas contenir des "*". Il faut les préparer avec R par exemple.
Un corpus est un seul grand fichier et qui contient un balisage "Alceste" (introduit ci-dessous). On peut le créer de plusieurs façons, par exemple avec R ou manuellement.
Selon le manuel,
- Les fichiers d'entrée doivent être au format texte brut (.txt), et de préférence contenir les caractères de ponctuations.
- Dans ce formatage, l'unité de base est appelée « Texte ». Un texte peut représenter un entretien, un article, un livre ou tout autre type de documents. Un corpus peut contenir un ou plusieurs textes (mais au minimum un).
Dans le fichier corpus, les "textes" sont introduits par quatre étoiles (****) suivies d'une série de variables étoilées (variables illustratives) séparées par un espace.
**** *prom_tetris *jeu_play-the-news *var_x-y contenu du texte ....
**** *prom_tetris *jeu_TechnoCity contenu du texte ....
A l'intérieur d'une section "texte", on peut aussi identifier des thématiques
**** *prom_tetris *jeu_play-the-news *var_x-y -*thematique1 contenu du texte ..... -*thematique2 contenu du texte .....
Concatener tous les fichiers d'un répertoire sous Linux (devrait aussi marcher sur un Mac)
ls -aQ | xargs cat > corpus.txt
LSA
Packages:
- irlba
- clustrd
Adapter (si nécessaire) la DTM produit avec le paquet tm
dtm.to.sm <-> sparseMatrix(i=dtm$i, j=dtm$j, x=dtm$v, dims=c(dtm$nrow, dtm$ncol)) }
Topic Modeling
(à faire)
Liens
Articles d'introduction
- 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. A mon avis le meilleur texte pour commencer - Daniel K. Schneider (discussion) 1 octobre 2014 à 20:34 (CEST)
- Jon Starkweather, Introduction to basic Text Mining in R, http://it.unt.edu/benchmarks/issues/2014/01/rss-matters
- Assez utile pour débuter
- Topic Models Homework #1A: R Coding (part of a workshop documentation]. This shows how to use the lda package.
- Fouille de textes (seulement une ébauche en oct. 2014, voir Text Mining (Wikipedia)
- Kailash Awati, A gentle introduction to text mining using R (blog post, 2015). Voir aussi: article on visualizing relationships between documents et introductory piece on topic modeling
Sites
- NaturalLanguageProcessing. Aide en ligne pour tous les paquets de traitement de langue.
- RDM R Data Mining
Exemples et/ou textes informels
- 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
- Ceci dit, le code ne semble plus marcher "tel quel" ....
- TD's de J. Velcin, R. Rakotomalala: Il s'agit d'exercices assez techniques.
- TD Fouille de textes 1 (Intro/Prise en main de R)
- TD Fouille de textes 2 (comparer des textes)
- TD Fouille de textes 3 (la librairie TM)
- Basic example of Text Mining (Research and Statistical Support, UNT)
Statistiques
- Cluster Analysis c/o Statmethods
Q/A Stackoverflow
- Lire du XML
- HTML scraping