Outils pour utilisateurs

Outils du site


tal_traitement_automatique_du_langage_avec_des_fables_de_la_fontaine

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
tal_traitement_automatique_du_langage_avec_des_fables_de_la_fontaine [2020/05/29 06:38] sergetal_traitement_automatique_du_langage_avec_des_fables_de_la_fontaine [2022/02/08 15:59] (Version actuelle) – Tag0 Removed: text_gen serge
Ligne 10: Ligne 10:
 </WRAP> </WRAP>
  
 +<WRAP center round box 80% centeralign>
 +**La page suivante est  [[archives:textgenrnn|Générer du texte en python avec textgenrnn]]**
 +</WRAP>
 +
 +===== Sources =====
 +Tout le code utilisé ici se trouve à:
 +  * **[[https://github.com/sergeLabo/text_processing|text_processing sur github.com]]**
 +Les liens de code pointent directement à la ligne du github.
  
  
 ===== Ressources ===== ===== Ressources =====
-  * [[https://openclassrooms.com/fr/courses/4470541-analysez-vos-donnees-textuelles|Analysez vos données textuelles]] sur OpenClassrooms. L'exemple est trop compliqué pour expliquer des notions simples. De plus, l'exemple n'est pas fourni, le code est partiel (avec des erreurs et un mauvais respect du PEP8). C'est en français et ça a le mérite d'exister.+  * **[[https://openclassrooms.com/fr/courses/4470541-analysez-vos-donnees-textuelles|Analysez vos données textuelles]]** sur OpenClassrooms. L'exemple est trop compliqué pour expliquer des notions simples. De plus, l'exemple n'est pas fourni, le code est partiel (avec des erreurs et un mauvais respect du PEP8, des ";" en python !!). C'est en français et ça a le mérite d'exister. Et ça fini en queue de poisson: manifestement, l'auteur ne veut surtout pas partager, et donner des billes à la concurrence.  
 + 
 +  * **[[https://github.com/karpathy/char-rnn|github.com/karpathy/char-rnn]]** Multi-layer Recurrent Neural Network for training/sampling from character-level language models. 
 +===== Récupération des datas ===== 
 +Les fables de **[[https://fr.wikipedia.org/wiki/Jean_de_La_Fontaine|Jean de La Fontaine]]** sont récupérées sur le site **[[http://mesfables.com/|mesfables.com]]** 
 +Merci à son auteur. 
 + 
 +====Méthode==== 
 +  * Aspiration du site 
 + 
 +  wget --mirror --convert-links --html-extension -o log http://www.mesfables.com/all.html 
 + 
 +  * Suppression de les dossire et fichiers pour ne conserver que les dossiers livre-i avec i = 1 à 12 
 +  * Dans chaque livre-i suppression des dossiers css et js 
 + 
 +Du coup, il ne reste que des fichiers html, un par fables.\\ 
 +Récupération des fables et enregistrement dans des fichiers .txt dans fables_txt 
 +  python3 get_fables.py 
 +Création d'un json des fables corpus.json 
 +  python3 fables_to_json.py 
 +Le json est un dict: 
 +<code python> 
 +# title, livre, fable sont des str 
 +corpus = {title: [livre, fable], 
 +          ...} 
 +</code> 
 + 
 +=====Installation==== 
 +  sudo pip3 install pandas 
 +===== Etape 1: Exploration du texte ===== 
 +==== Récupération du corpus ==== 
 + 
 +  * [[https://github.com/sergeLabo/text_processing/blob/771c131ef5f8ddc27d5177876c6b155aee56bda7/etape_1.py#L22|get_corpus()]] 
 + 
 +Les fables sont reproupées par livre, numéroté livre-i (i de 1 à 12), [[https://fr.wikipedia.org/wiki/Jean_de_La_Fontaine#Chronologie|voir la Chronologie]]. 
 +==== Exploration ==== 
 +<WRAP group> 
 +<WRAP half column> 
 +  * [[https://github.com/sergeLabo/text_processing/blob/771c131ef5f8ddc27d5177876c6b155aee56bda7/etape_1.py#L31|get_all_words(corpus)]] 
 +{{:media_10:fable_01.png?400|}} 
 +  * [[https://github.com/sergeLabo/text_processing/blob/771c131ef5f8ddc27d5177876c6b155aee56bda7/etape_1.py#L54|get_words_without_punkt(corpus)]] 
 +{{:media_10:fable_02.png?400|}} 
 +</WRAP> 
 + 
 +<WRAP half column> 
 +  * [[https://github.com/sergeLabo/text_processing/blob/771c131ef5f8ddc27d5177876c6b155aee56bda7/etape_1.py#L109|words_total(corpus)]] 
 +{{:media_10:fable_03.png?400|}} 
 +  * [[https://github.com/sergeLabo/text_processing/blob/771c131ef5f8ddc27d5177876c6b155aee56bda7/etape_1.py#L130|words_frequency(corpus)]] 
 +{{:media_10:fable_04.png?400|}} 
 +</WRAP> 
 +</WRAP> 
 + 
 +===== Etape 2: Nettoyer et normaliser les données ===== 
 +Script  **[[|etape_2.py]]** 
 +====Suppression des stop words ou Mot vide==== 
 +En recherche d'information, un [[https://fr.wikipedia.org/wiki/Mot_vide|mot vide (ou stop word, en anglais)]] est un mot qui est tellement commun qu'il est inutile de l'indexer ou de l'utiliser dans une recherche.\\ 
 +Chaque mot se voit affecté le nombre de fois qu'il apparaît dans le document: [[https://fr.wikipedia.org/wiki/Sac_de_mots|Sac de mots]]  
 + 
 +  * [[|words_frequency_without_stopwords]] 
 +{{ :media_10:fable_06.png?400 |}} 
 +Si je n'ai pas fais d'erreur, Monsieur Jean De La Fontaine écrit une poésie avec peu de bla bla: les mots sont toujours riches ! 
 + 
 +====Racinisation (Stemming en EN)==== 
 +En linguistique, la [[https://fr.wikipedia.org/wiki/Racinisation|racinisation]] ou désuffixation est un procédé de transformation des flexions en leur radical ou racine. Contrairement au [[https://fr.wikipedia.org/wiki/Lemme_(linguistique)|lemme]] qui correspond à un terme issu de l’usage ordinaire des locuteurs de la langue, la racine ne correspond généralement qu’à un terme résultant de ce type d’analyse. 
 + 
 +  * [[https://github.com/sergeLabo/text_processing/blob/master/etape_2.py#L128|racinisation(corpus, sw)]] 
 + 
 +{{ :media_10:fable_07.png?400 |}} 
 + 
 +===== Etape 3 Représentation du corpus en bag of words ===== 
 +====Cooccurrence==== 
 +  * **[[https://fr.wikipedia.org/wiki/Cooccurrence|Cooccurrence]]** sur Wikipedia: La cooccurrence (orthographiée co-occurrence en anglais) est la présence simultanée de deux ou de plusieurs mots (ou autres unités linguistiques) dans le même énoncé (la phrase, le paragraphe, l'extrait).  
 +====Bi-gram ==== 
 +  * **[[https://github.com/sergeLabo/text_processing/blob/master/etape_3.py#L50|get_bigram()]]** 
 +====TF-IDF==== 
 +  *   * **[[https://github.com/sergeLabo/text_processing/blob/master/etape_3.py#L62|get_bigram()]]** 
 +====Représentation du TF-IDF==== 
 +Cette fonction est secrète: en fait, je n'ai pas trouvé de code utilisant sklearn et qui soit juste, et comme c'est inutile pour la suite, je passe (en python pass). 
 + 
 +===== Plongement de mots - word embedding ===== 
 +====Wikipedia==== 
 +  * Le **[[https://fr.wikipedia.org/wiki/Word_embedding|word embedding]]** (« plongement de mots1 » ou « plongement lexical2 » en français) est une méthode d'apprentissage d'une représentation de mots utilisée notamment en traitement automatique des langues. 
 + 
 +Cette technique permet de représenter chaque mot d'un dictionnaire par un vecteur de nombres réels. 
 +La technique des word embeddings diminue la dimension de la représentation des mots en comparaison d'un modèle vectoriel par exemple, facilitant ainsi les tâches d'apprentissage impliquant ces mots, puisque moins soumis au fléau de la dimension.  
 + 
 +Comprendre: transformer le teste en matrice de nombre de taille limitées pour être traitées avec un apprentissage automatique. Voir **[[https://fr.wikipedia.org/wiki/Word2vec|Word2vec]]** 
 + 
 +Une image uniquement pour faire joli et épater en société ! 
 +{{ :media_10:cbow_eta_skipgram.png?400 |}} 
 +====Gensim==== 
 +  * Voir **[[https://radimrehurek.com/gensim/auto_examples/|Gensim Documentation]]** 
 + 
 + 
 +===== Réseaux de neurones ===== 
 +  * **[[archives:textgenrnn|Et composer des textes en vers comme La Fontaine avec textgenrnn]]** 
 + 
 + 
 +{{tag> apprentissage_automatique python tal }}
  
  
-{{tag>tal text_processing machine_learning apprentissage_automatique python python3 nltk}} 
tal_traitement_automatique_du_langage_avec_des_fables_de_la_fontaine.1590734314.txt.gz · Dernière modification : 2020/05/29 06:38 de serge