Annexes
Code Source de la Feuille principale
/*
* RIMA.java */
/** *
* @auteur Riadh BOUSLIMI */
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import FenetreApprentissage; import FenetreReconnaissance;
public class RIMA
{
public static void main(String [] args) throws Exception {
FenetrePrincipale F = new FenetrePrincipale();
}
}
class FenetrePrincipale extends JFrame
{
public FenetrePrincipale()
{
/**
* Paramétrage de la fenêtre elle-même */
super("Apprentissage des Formes des Caractères arabes");
setSize(550,250);
/**
* On affiche la fenêtre */
JPanel P1 = new JPanel();
Pl.setLayout(new FlowLayout());
Pl.setBorder(BorderFactory.createTitledBorder("Menu Principale"));
JLabel Ll = new JLabel("RIMA : Reconnaissance
Incrémentale");
JLabel L2 = new JLabel("des Mots manuscrits Arabe"); Font F = new
Font("Verdana",Font.BOLD,24); Ll.setFont(F);
P1.add(L1);
L2.setFont(F);
P1.add(L2);
JButton SA = new JButton("Sous système d'apprentissage des
modèles des lettres arabes");
P1.add(SA);
JButton SR = new JButton("Sous système de reconnaissance
des mots manuscrits arabes");
P1.add(SR);
JButton Quitter = new JButton("Quitter le système");
P1.add(Quitter);
Quitter.setBounds(10,20,40,60);
getContentPane().add(P1);
show();
/**
* Les écouteurs des composants "interactifs"
*/
this.addWindowListener(new EcouteurFenetre()); EcouteurAction EA
= new EcouteurAction(); SA.addActionListener(EA); SR.addActionListener(EA);
Quitter.addActionListener(EA);
}
}
/**
* L'écouteur pour la fenêtre */
class EcouteurFenetre extends WindowAdapter O
public void windowClosing(WindowEvent e) O
ystem.exit(0);
}
}
class EcouteurAction implements ActionListener
O
public void actionPerformed(ActionEvent e)
O
AbstractButton b = (AbstractButton)(e.getSource()); if
b.getText()="SA" then
O
FenetreApprentissage FA=New FenetreApprentissage(); FA.show();
}
else
O
FenetreReconnaisance FR=New FenetreReconnaisance(); FR.show();
}
}
}
/*
* CalCorr.java
*/
/** *
* @auteur Riadh BOUSLIMI */
import java.io.*;
public class CalCorr{
private int[][] M2 = new int[ 1000] [ 1000] ; private String[]
Lett=new String[ 200]; private String[] Lettres=new String[200] ; private int
NBCL,NBLN;
private int u=0;
public Apriori() {
}
public float Correlation(int[] A,int[] B,float NL) { int X;
int X1, X2;
float MoyX1,MoyX2;
float a1, a2, a3;
float ET1, ET2;
double EcartType1,EcartType2;
float R;
/*
Remise a Zéro des variables necessaire au calcul
*/
X1
|
=
|
0;
|
X2
|
=
|
0;
|
ET1
|
=
|
0;
|
ET2
|
=
|
0;
|
a1
|
=
|
0;
|
a2
|
=
|
0;
|
a3
|
=
|
0;
|
R =
|
0;
|
/*
Calcul de la moyenne 1 Moyenne= (1/n) * Somme[ x]
*/
for (X=0; X<NL ; X++) X1 = X1 + A[ X] ;
MoyXl = X1 * (1 / NL); //System.out.println("Moyenne
A="+MoyXl);
/*
Calcul de la moyenne 2 Moyenne= (1/n) * Somme[x]
*/
for (X=0; X<NL;X++) X2 = X2 + B[ X] ;
MoyX2 = X2 * (1 / NL); //System.out.println("Moyenne B="+MoyX2);
/*
Calcul du covariance
Somme <(xi-moyenneX)(yi-Moyenne Y)>
a=------------------------------------ somme <(xi-moyenne
X)^2>
*/
for(X=0;X<NL;X++) {
al = al + ( (A[ X] - MoyXl) * (B[ X] - MoyX2) ) ; a2 = a2 + ( (A[
X] - MoyXl) * (A[ X] - MoyXl)) ;
1
if ((al == 0) && (a2 == 0)){
// System.out.println("Correlation=0"); return 0;
1
a3 = al / a2;
// System.out.println("CoVariance="+a3);
/*
Calcul Ecart Type
ecartTypeA=sqrt(l/n* somme(xi-moyenne de A)^2)
*/
for(X=0;X<NL;X++)
ET1 = ET1 + ( (A[ X] - MoyXl)* (A[ X] - MoyXl));
EcartTypel=(double)(ET1);
EcartTypel = (1 / NL) * EcartTypel;
EcartTypel= Math.sqrt(EcartTypel); ET1=(float)(EcartTypel);
// System.out.println("EcartTypeA="+ET1); /*
Calcul Ecart Type
ecartTypeB=sqrt(l/n* somme(xi-moyenne de B)^2)
*/
for (X=0; X<NL;X++)
ET2 = ET2 + ( (B[ X] - MoyX2)* (B[ X] - MoyX2) ) ;
EcartType2= (double) (ET2) ;
EcartType2 = (1 / NL) * EcartType2; EcartType2=
Math.sqrt(EcartType2); ET2=(float)(EcartType2);
// System.out.println("EcartTypeB="+ET2);
/*
Calcul du coefficient de correlation
r= a*(EcartTypeA/EcartTypeB)
domaine R:{ -1<r<1}
forte correlation = R proche de -1 ou 1
peut dire qu il y a un lien de causalite entre les 2 variable X
et Y
Ici entre deux matrices A et B
*/
if (ET2 == O){
// System.out.println("Correlation=-1"); return -1;
}
R = (float) (a3 * (ET1 / ET2));
// System.out.println("Correlation="+R); return R;
}
}
|