CM 1 : Introduction au TAL (I)
Introduction `a la programmation en Python
Jean-Baptiste Tanguy 27 aoˆut 2021
Sorbonne Universit´e
1
Plan de la pr´esentation
Organisation du cours Variables et affectation Types de donn´ees Op´erateurs Tests Boucles
2
Organisation du cours
Organisation du cous
• 4 x 3h en salle machine
• Supports : 1. CM 2. TD 3. Notebooks
• Evaluation :
1. Pr´esence : 20 % 2. Projet final : 80 %
3
Plan du cours
1. Introduction au TAL (I) - premiers scripts en Python (variables, types, op´erateurs)
2. Introduction au TAL (II) - statistiques de bases sur des textes (tokenisation, lemmatisation)
3. Spacy (I) - analyse syntaxique
4. Spacy (II) - extraction de termes, grammaires locales et reconnaissance d’entit´es nomm´ees
4
Objectifs
• Connaˆıtre les bases de la programmation Python
• Connaˆıtre les principaux aspects du domaine du TAL
• Automatiser des processus lourds de traitement de textes grˆace `a la programmation Python
−→Introduction au TAL et introduction `a la programmation Python
5
Variables et affectation
Variables et affectation
• Dans un programme informatique en g´en´eral et dans un algorithme en particulier, une variableest le nom donn´e `a une valeur(qui peut ˆetre de plusieurs types) stock´ees dans un espace m´emoiredonn´e.
• L’affectationest l’op´eration consistant `a charger une variable par unevaleur. Dans la grande majorit´e des langages de programmation, l’affectation est symbolis´ee par =.
• La valeur contenu dans une variable, comme son nom l’indique, peut varier par affectations successives.
• On peut mettre dans une variable le r´esultat d’une op´eration.
6
Variables et affectation
n : un entier
n = 1 # On charge n de la valeur 1 ECRIRE(n) # On affiche la valeur de n n = 6 # On charge n de la valeur 6 ECRIRE(n) # On affiche la valeur de n
7
Types de donn´ ees
Types de donn´ees
Une donn´ee, la valeur contenu dans une variable, peut ˆetre de plusieurstypes. Il s’agit de lanature des valeurs ainsi que les op´erateursqui peuvent lui ˆetre appliqu´es.
Principaux types de donn´ees en Python :
• Le typeint (entier)
• Le typefloat (flottant, r´eel)
• Le typestr (chaˆıne de caract`eres)
• Le typebool (bool´een, vrai ou faux, respectivement 1 ou 0)
• Le typelist (liste, ou tableau)
8
Exemples d’affectation
n = 3
print(type(n)) # int f = 3.1
print(type(f)) # float s = ’coucou’
print(type(s)) # str b = True
print(type(b)) # bool l = [1, 2, 3]
print(type(l)) # list
9
Transtypage
En Python, letypage d’une variable estimpliciteet non d´efinitif (sp´ecificit´e de ce langage, ce n’est pas vrai pour d’autres langages).
var = 3
print(type(var)) # int var = 3.0
print(type(var)) # float var = ’3.0’
print(type(var)) # str var = [’3.0’]
print(type(var)) # list
10
Transtypage
Il est possible detranstyper une variable, c’est-`a-dire de changer le type de la valeur d’une variable. Ceci se fait grˆace aux fonctions suivantes :int(),float(),str(),bool() et list(). Toutefois, tous les transtypages ne sont pas possibles.
var = 3
print(type(var)) # int var = float(var)
print(var) # 3.0 print(type(var)) # float var = ’coucou’
print(type(var)) # str var = int(var) # ERROR
11
Un type complexe : le dictionnaire
Un dictionnaire est constitu´e d’un ensemble decl´es uniques auquel est associ´e un ensemble devaleurs. Les cl´es et les valeurs peuvent ˆetre de n’importe quel type ; la seul contrainte ´etant qu’une cl´e doit ˆetre unique. On acc`ede `a une valeur en utilisant sa cl´e.
d = {0: ’Bonjour’, 1: ’,’,
2: ’je’, 3: ’suis’, 4: ’l`a’, 5: ’.’}
print(type(d)) # dict
print(d.keys()) # [0, 1, 2, 3, 4, 5]
print(d.values()) # [’Bonjour’, ’,’, ’je’, ...] 12
Op´ erateurs
Op´erateurs
Unop´erateur est un symbole indiquant une op´eration`a r´ealiser entre une, deux ou plusieurs valeurs (op´erateurs unaires, binaires, ternaires...). Ces op´erations peuvent ˆetre r´ealis´ees directement entre des valeurs mais aussi et plus souvent entre des variables.
Op´erateur d’affectation
=
• Affectation simple : n = 3
• Affectation multiple : x = y = z = 6
• Affectation parall`ele : x, y, z = 6, 6, 6 (plus typique en Python)
13
Op´erateurs
Op´erateurs bool´eens
• or : ou bool´een : X or Y
• and : et bool´een : X and Y
• not: non bool´een : not X avec X et Y des tests
14
Op´erateurs
Op´erateurs de comparaison
• <: strictement inf´erieur
• ≤: inf´erieur ou ´egal
• >: strictement sup´erieur
• ≥: sup´erieur ou ´egal
• == : ´egal
• != : diff´erent
• is : X is Y : X et Y repr´esentent le mˆeme objet
• is not : X is not Y : X et Y ne repr´esentent pas le mˆeme objet
15
Op´erateurs
Op´erateurs math´ematiques
• + : addition
• - : soustraction
• * : multiplication
• ** : puissance
• / : division
• // : division enti`ere
• % : modulo (reste de la division euclidienne) NB :
’a’ + ’b’ == ’ab’
3 * ’a’ == ’aaa’
16
Tests
Bloc d’instructions et indentation
Unbloc d’instructionsest d´efini par uneindentation obtenue en d´ecalant desinstructions vers la droite grˆace `a desespaces en d´ebut de ligne (g´en´eralement, quatre). Toutes les instruction d’un mˆeme bloc doivent ˆetre indent´ees exactement au mˆeme niveau.
Un bloc peut contenir une ou plusieurs instruction(s), et notamment des instructions compos´ees (tests, boucles).
17
Instruction if
if condition == True:
# bloc
# d’instructions
avec conditionune expression bool´eenne (valeur : vrai ou faux).
Si condition == True, le bloc d’instuctions situ´e sous l’instruction if est ex´ecut´e.
18
Instruction if... else
if condition == True:
# bloc
# d’instructions A else:
# bloc
# d’instructions B
avec conditionune expression bool´eenne (valeur : vrai ou faux).
Si condition == True, le bloc d’instuctions A est ex´ecut´e, sinon c’est le bloc d’instructions B qui est ex´ecut´e.
19
Instruction if... elif... else
if conditionA == True:
# bloc
# d’instructions A elif conditionB == True:
# bloc
# d’instructions B ...
else:
# bloc
# d’instruction n.
avec conditionA/B des
expressions bool´eennes (valeur : vrai ou faux). Si
conditionA == True, le bloc d’instuctions A est ex´ecut´e, sinon, si conditionB == True, le bloc d’instructions B est ex´ecut´e, sinon... sinon c’est le bloc
d’instructions n qui est ex´ecut´e.
20
Boucles
Boucle for et boucle while
Lesboucles s’utilisent pour r´ep´eter plusieurs fois l’´execution d’une partie du programme.
Il en existe deux principales :
• for : boucle born´ee (on sait combien de r´ep´etitions il y aura)
• while : boucle non born´ee (on ne connait pas en avance le nombre de r´ep´etitions qu’il y aura)
21
Boucle for (for compteur in liste)
Exemple d’utilisation :
for i in [0, 1, 2, 3]:
print(’i a pour valeur ’ + str(i)) Affichage apr`es ex´ecution :
i a pour valeur 0 i a pour valeur 1 i a pour valeur 2 i a pour valeur 3
22
Boucle while (while condition)
Exemple d’utilisation : x = 1
while x < 10:
print(’x a pour valeur ’ + str(x)) x = x * 2
print("Fin")
Affichage apr`es ex´ecution : x a pour valeur 1 x a pour valeur 2 x a pour valeur 4 x a pour valeur 8 Fin
23
24