Outils pour utilisateurs

Outils du site


text_processing_and_machine_learning_tal

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
text_processing_and_machine_learning [2020/05/27 14:15] – [Récupérération de textes et exploration du corpus] sergetext_processing_and_machine_learning_tal [2022/02/08 16:00] (Version actuelle) – Tag0 Removed: text_gen serge
Ligne 1: Ligne 1:
-======Text Processing and Machine Learning====== +======Text Processing and Machine Learning TAL====== 
- +<WRAP center round box 60% centeralign> 
-<WRAP center round box 80% centeralign> +**{{tagpage>ia|Intelligence Artificielle}}**     **[[http://translate.google.com/translate?hl=&sl=auto&tl=en&u=https%3A%2F%2Fressources.labomedia.org%2Ftext_processing_and_machine_learning_tal|English Version]]** 
-**{{tagpage>ia|Intelligence Artificielle}}**+</WRAP> 
 +<WRAP center round box 60% centeralign> 
 +**[[les_pages_intelligence_artificielle_en_details|Les Pages Intelligence Artificielle en détails]]**
 </WRAP> </WRAP>
  
 <WRAP center round box 80% centeralign> <WRAP center round box 80% centeralign>
-**[[https://en.wikipedia.org/wiki/Text_processing|Text processing]]**\\ +**{{tagpage>tal|Traitement Automatique du Langage}}**  
-**[[https://fr.wikipedia.org/wiki/Traitement_automatique_du_langage_naturel|TAL : Traitement automatique du langage naturel]]**+
 </WRAP> </WRAP>
 =====Définitions ===== =====Définitions =====
Ligne 26: Ligne 27:
   * [[https://towardsdatascience.com/natural-language-processing-nlp-for-machine-learning-d44498845d5b|Natural Language Processing(NLP) for Machine Learning]]   * [[https://towardsdatascience.com/natural-language-processing-nlp-for-machine-learning-d44498845d5b|Natural Language Processing(NLP) for Machine Learning]]
  
-=====Analyse du corpus===== 
-====Récupérération de textes et exploration du corpus==== 
  
-===Récupérération du texte de l'exemple=== +https://cocoon.huma-num.fr/exist/crdo 
-Cet exemple analyse le texte défini dans text.py par\\ +===== NLTK Natural Language Toolkit===== 
-TEXT """un texte"""\\ +**NLTK is a leading platform for building Python programs to work with human language data.**
-Import de TEXT dans text_process_ex.py avec:+
  
-  # Import comme module --> pas de fichier à lire +==== Ressources ==== 
-  from text import TEXT  # TEXT est une varible globale+  * [[https://www.nltk.org/index.html|nltk.org]] 
 +  * [[https://en.wikipedia.org/wiki/Natural_Language_Toolkit|Natural_Language_Toolkit sur Wikipedia/EN]]
  
-**TEXT est notre corpus**+==== Installation ==== 
 + 
 +  sudo pip3 install nltk 
 +  python3 
 +  import nltk 
 +  nltk.download('punkt'
 +  nltk.download('averaged_perceptron_tagger'
 +  nltk.download('stopwords'
 +  nltk.download('treebank'
 +  nltk.download('maxent_ne_chunker'
 +  nltk.download('words'
 + 
 +=====Analyse du corpus avec NLTK sur un text simple===== 
 +====Récupérération de textes et exploration du corpus====
  
 ===En général=== ===En général===
 Le corpus sera soit une liste, un dictionnaire, un set  de string, récupéré dans une DB, dans du html, dans des fichiers ... qu'il peut être nécessaire de nettoyer, arranger. Le corpus sera soit une liste, un dictionnaire, un set  de string, récupéré dans une DB, dans du html, dans des fichiers ... qu'il peut être nécessaire de nettoyer, arranger.
  
-===Exemple avec une page html===+===Exemple d'étape=== 
 +  * Chargement d'un html 
 +  * Récupération du texte voulu avec Beautifullsoup 
 + 
 +<code python nltk_example.py> 
 +#!/usr/bin/env python3.7 
 + 
 +import nltk 
 +from nltk.corpus import treebank 
 + 
 +raw = """À Monseigneur Le Duc de Bourgogne 
 +Prince, l’unique objet du soin des Immortels, 
 +Souffrez que mon encens parfume vos Autels. 
 +Je vous offre un peu tard ces présents de ma Muse ; 
 +""" 
 + 
 +# ### Récupération d'un texte 
 +# Tokenize the text 
 +tokens = nltk.wordpunct_tokenize(raw) 
 +print(f'tokens:\n{tokens}'
 + 
 +# Je ne garde que du 2ème mot au 30ème 
 +tokens =tokens[2:30] 
 +print(f'Texte:\n{tokens}'
 + 
 +# ### Normalizing 1 
 +# Création d'un NLTK Text 
 +text = nltk.Text(tokens) 
 +print(f'Texte:\n{text}'
 +# <Text: Bourgogne Prince , l ’ unique objet du...> 
 + 
 +# Normalize the words 
 +words = [w.lower() for w in text] 
 +print(f'words: nombre={len(words)}\n{words}'
 + 
 +# Build vocabulary (les mots sans la ponctuation, apostrophe) 
 +vocab = sorted(set(words)) 
 +print(f'vocab: nombre={len(vocab)}\n{vocab}'
 + 
 +# ### Normalizing 2 
 +# Tous les mots sans exception 
 +mots_brut = nltk.word_tokenize(raw) 
 +print(f'\nTous les mots bruts = {mots_brut}\n'
 +print(f'\nNombre de mots brut = {len(mots_brut)}\n'
 + 
 +# Sans la ponctuation et apostrophes 
 +tokenizer = nltk.RegexpTokenizer(r'\w+'
 +bons_mots = tokenizer.tokenize(raw.lower()) 
 +print(f'\nTous les bons mots = {bons_mots}\n'
 +print(f'\nNombre de bons mots = {len(bons_mots)}\n'
 + 
 +# Fréquence des mots, sans la ponctuation et apostrophes 
 +tokenizer = nltk.RegexpTokenizer(r'\w+'
 +corpora = tokenizer.tokenize(raw.lower()) 
 +freq = nltk.FreqDist(corpora) 
 +print(f'Fréquence des mots dans le désordre:'
 +for k, v in freq.items(): 
 +    print(f'    {k} {v}'
 + 
 +# ### Some simple things you can do with NLTK 
 +tokens = nltk.word_tokenize(raw) 
 +tagged = nltk.pos_tag(tokens) 
 +print(f'tagged[0:6] = {tagged[0:6]}'
 + 
 +# Identify named entities 
 +entities = nltk.chunk.ne_chunk(tagged) 
 +print(f'entities = {entities}'
 + 
 +# Display a parse tree: 
 +t = treebank.parsed_sents('wsj_0001.mrg')[0] 
 +t.draw() 
 +</code> 
 + 
 +<code text> 
 +tokens: 
 +['À', 'Monseigneur', 'Le', 'Duc', 'de', 'Bourgogne', 'Prince', ',', 'l', '’', 'unique', 'objet', 'du', 'soin', 'des', 'Immortels', ',', 'Souffrez', 'que', 'mon', 'encens', 'parfume', 'vos', 'Autels', '.', 'Je', 'vous', 'offre', 'un', 'peu', 'tard', 'ces', 'présents', 'de', 'ma', 'Muse', ';'
 +Texte: 
 +['Le', 'Duc', 'de', 'Bourgogne', 'Prince', ',', 'l', '’', 'unique', 'objet', 'du', 'soin', 'des', 'Immortels', ',', 'Souffrez', 'que', 'mon', 'encens', 'parfume', 'vos', 'Autels', '.', 'Je', 'vous', 'offre', 'un', 'peu'
 +Texte: 
 +<Text: Le Duc de Bourgogne Prince , l ’...> 
 +words: nombre=28 
 +['le', 'duc', 'de', 'bourgogne', 'prince', ',', 'l', '’', 'unique', 'objet', 'du', 'soin', 'des', 'immortels', ',', 'souffrez', 'que', 'mon', 'encens', 'parfume', 'vos', 'autels', '.', 'je', 'vous', 'offre', 'un', 'peu'
 +vocab: nombre=27 
 +[',', '.', 'autels', 'bourgogne', 'de', 'des', 'du', 'duc', 'encens', 'immortels', 'je', 'l', 'le', 'mon', 'objet', 'offre', 'parfume', 'peu', 'prince', 'que', 'soin', 'souffrez', 'un', 'unique', 'vos', 'vous', '’'
 + 
 +Tous les mots bruts ['À', 'Monseigneur', 'Le', 'Duc', 'de', 'Bourgogne', 'Prince', ',', 'l', '’', 'unique', 'objet', 'du', 'soin', 'des', 'Immortels', ',', 'Souffrez', 'que', 'mon', 'encens', 'parfume', 'vos', 'Autels', '.', 'Je', 'vous', 'offre', 'un', 'peu', 'tard', 'ces', 'présents', 'de', 'ma', 'Muse', ';'
 +Nombre de mots brut 37
  
 +Tous les bons mots = ['à', 'monseigneur', 'le', 'duc', 'de', 'bourgogne', 'prince', 'l', 'unique', 'objet', 'du', 'soin', 'des', 'immortels', 'souffrez', 'que', 'mon', 'encens', 'parfume', 'vos', 'autels', 'je', 'vous', 'offre', 'un', 'peu', 'tard', 'ces', 'présents', 'de', 'ma', 'muse']
 +Nombre de bons mots = 32
  
 +Fréquence des mots dans le désordre:
 +    à 1
 +    monseigneur 1
 +    le 1
 +    duc 1
 +    de 2
 +    bourgogne 1
 +    prince 1
 +    l 1
 +etc ...
 +tagged[0:6] = [('À', 'JJ'), ('Monseigneur', 'NNP'), ('Le', 'NNP'), ('Duc', 'NNP'), ('de', 'IN'), ('Bourgogne', 'NNP')]
 +entities = (S
 +  À/JJ
 +  (ORGANIZATION Monseigneur/NNP Le/NNP Duc/NNP)
 +  de/IN
 +  (PERSON Bourgogne/NNP Prince/NNP)
 +  ,/,
 +  l/NN
 +  ’/NNP
 +  unique/NN
 +  objet/NN
 +  du/NN
 +  soin/NN
 +  des/NNS
 +  (PERSON Immortels/NNP)
 +  ,/,
 +  (GPE Souffrez/NNP)
 +  que/NN
 +  mon/NN
 +  encens/VBZ
 +  parfume/JJ
 +  vos/NN
 +  (PERSON Autels/NNP)
 +  ./.
 +  Je/NNP
 +  vous/JJ
 +  offre/NN
 +  un/JJ
 +  peu/NN
 +  tard/NN
 +  ces/VBZ
 +  présents/NNS
 +  de/IN
 +  ma/NN
 +  (ORGANIZATION Muse/NNP)
 +  ;/:)
 +</code>
 +{{ :media_10:nltk_01.png?800 |}}
  
-===Exploration du corpus=== 
  
  
-=====Fin=====+=====Apprentissage avec des Fables de La Fontaine===== 
 +[[TAL Traitement Automatique du Langage avec des Fables de La Fontaine]]
  
-{{tag>ia text_processing machine_learning apprentissage_automatique python python3}}+{{tag> ia python tal }}
text_processing_and_machine_learning_tal.1590588907.txt.gz · Dernière modification : 2020/05/27 14:15 de serge