Package medite :: Package MediteAppli :: Module alignement :: Class AlignAstarRecur
[hide private]
[frames] | no frames]

Class AlignAstarRecur

source code

object --+        
         |        
     Align --+    
             |    
   AlignAstar2 --+
                 |
                AlignAstarRecur
Known Subclasses:
AlignAstarRecur2, AlignAstarRecurBBL, AlignShapiraRecur

Instance Methods [hide private]
 
__init__(self, l_texte1, long_min_pivots=1, algoAlign='', coeff=None, sep=True)
Constructeur
source code
 
run(self, t1, t2)
pre: isinstance(t1,str) and isinstance(t2,str)
source code
 
cleanDep(self, LDEP, texte1, texte2)
Enleve les deplacements inclus dans un autre deplacement et ceux qui ne sont plus répétés
source code
 
removeInclude(self, L)
Enleve les deplacements inclus dans un autre déplacement
source code
 
removeUnique__(self, L, texte1, texte2)
Scinde L en 2 listes, une pour les chaines ayant plusieurs occurences et l'autre pour celles en ayant une seule
source code
 
removeUnique(self, L, texte1, texte2)
Scinde L en 2 listes, une pour les chaines ayant plusieurs occurences et l'autre pour celles en ayant une seule
source code
 
compute_alignement(self, t1, t2)
prends les 2 textes en entrée et renvoie 2 listes au format [(BC,[BDeps le précédant])]
source code
 
_appelAlgo(self, s1, s2, t1, t2, t) source code
 
deplacements_pond2(self, t1, t2, niveau=0)
pre: isinstance(t1,str) and isinstance(t2,str)
source code
 
_filtreDepRec(self, liste)
recherche d'un point fixe
source code
 
__filtreDepRec(self, liste)
filtrage des déplacements se chevauchant
source code
 
_texteToSeqHomo(self, t1, t2)
Extrait des 2 textes, les 2 séquences de blocs répétés
source code
 
_texteToSeqHomoNGrammes(self, t1, t2, n, min_size)
Recherche naive d'homologies
source code
 
__splitNGrammes(self, texte, tailleNgram, lenT1)
Découpage en Ngrammes
source code
 
__splitNGrammes2(self, texte, tailleNgram, lenT1)
Découpage effectif en Ngrammes
source code
 
______splitNGrammes(self, texte, tailleNgram, lenT1)
Sort les blocs d'un texte en nGrammes
source code
 
____splitNGrammes(self, texte, tailleNgram, lenT1)
Sort les blocs d'un texte en nGrammes
source code
 
_appelAstar(self, L1, L2, texte1, texte2, lt1)
Alignement A* entre les 2 séquences pre: isinstance(L1,list) and isinstance(L2,list) and isinstance(texte1,str) and isinstance(texte2,str) post: (len(__return__[0])==len(__return__[1])) or (len(__return__[0])==len(__return__[1])+1) or (len(__return__[0])+1==len(__return__[1]))
source code
 
_makeLRes(self, dicoBest, L)
Donne une liste [(BC,[BDeps le précédant])] pre: isinstance(dicoBest,dict) and isinstance(L,list) #post: forall([ __return__[i-1][0][1] <= __return__[i][0][0] <= __return__[0][1][0][0] for i in range(1, len(__return__))])
source code
 
remUnique(self, dic, l_texte1, texte1, texte2)
#post: len(__return__[0])<=len(dic) # forall([x in dic.keys()],lambda x:x in __return__[0].keys() and self.repetition(__return__[0][x]))
source code
 
_appelAstar2(self, L1, L2, texte1, texte2, lt1) source code

Inherited from AlignAstar2: calcPosCoutFixe, cout, deplacements_pond, deplacements_pond_Astar, deplacements_pond_Astar_, difference_symetrique, getDiffSym, preTraitDiffSym, preTraitDiffSym2, preTraitDiffSymVect, preTraitDiffSym_, preTraitDiffSym__

Inherited from Align: ass2__, ass__, lint2str, repetition, syserr

Inherited from object: __delattr__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __str__

Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__init__(self, l_texte1, long_min_pivots=1, algoAlign='', coeff=None, sep=True)
(Constructor)

source code 

Constructeur

#pre: isinstance(l_texte1, int) and isinstance(long_min_pivots, int)
Parameters:
  • texte1 (String) - la premiere version du texte a comparer
  • long_min_pivots - longueur minimale des chaines répétées
  • long_min_pivots - integer
  • algoAlign (string) - algo d'alignement, par défaut A*
  • coeff (triplet) - poids des params pour MOA*
  • sep (boolean) - sensible aux séparateurs si Vrai
Overrides: Align.__init__

cleanDep(self, LDEP, texte1, texte2)

source code 

Enleve les deplacements inclus dans un autre deplacement et ceux qui ne sont plus répétés

#pre: forall([len(texte) >= LDEP[i][0] >= LDEP[i-1][1] >= 0 for i in range(1, len(LDEP))]) #post: forall([len(texte1)+len(texte2) >=__return__[i][0] >= __return__[i-1][1] >= 0 for i in range(1, len(__return__))])

removeInclude(self, L)

source code 

Enleve les deplacements inclus dans un autre déplacement

#pre: forall([len(texte) >= L[i][0] >= L[i-1][1] >= 0 for i in range(1, len(L))]) #post: forall([len(texte) >=__return__[i][0] >= __return__[i-1][1] >= 0 for i in range(1, len(__return__))]) # forall([len(texte) >=__return__[1][i][0] >= __return__[1][i-1][1] >= 0 for i in range(1, len(__return__[1]))])

removeUnique__(self, L, texte1, texte2)

source code 

Scinde L en 2 listes, une pour les chaines ayant plusieurs occurences et l'autre pour celles en ayant une seule

#pre: forall([len(texte) >= L[i][0] >= L[i-1][1] >= 0 for i in range(1, len(L))]) #post: forall([len(texte) >=__return__[0][i][0] >= __return__[0][i-1][1] >= 0 for i in range(1, len(__return__[0]))]) # forall([len(texte) >=__return__[1][i][0] >= __return__[1][i-1][1] >= 0 for i in range(1, len(__return__[1]))])

removeUnique(self, L, texte1, texte2)

source code 

Scinde L en 2 listes, une pour les chaines ayant plusieurs occurences et l'autre pour celles en ayant une seule

#pre: forall([len(texte) >= L[i][0] >= L[i-1][1] >= 0 for i in range(1, len(L))]) #post: forall([len(texte) >=__return__[0][i][0] >= __return__[0][i-1][1] >= 0 for i in range(1, len(__return__[0]))]) # forall([len(texte) >=__return__[1][i][0] >= __return__[1][i-1][1] >= 0 for i in range(1, len(__return__[1]))])

_texteToSeqHomoNGrammes(self, t1, t2, n, min_size)

source code 
Recherche naive d'homologies
Parameters:
  • t1 - le texte 1
  • t2 - le texte 2
  • n - le nombre de mots que l'on desire dans un bloc (1=> monogramme, 2=> bigramme etc...)
  • min_size - taille minimale des blocs

__splitNGrammes(self, texte, tailleNgram, lenT1)

source code 

Découpage en Ngrammes

Appel plusieurs fois __splitNGrammes2 pour avoir tous les ngrammes car celle-ci ne renvoie que des ngrammes disjoints 2 à 2
Parameters:
  • texte - le texte
  • tailleNgram - de 1 à 3, le nombre de mots que l'on desire dans un bloc (1=> monogramme, 2=> bigramme etc...)
  • lenT1 - lmongueur du texte1

__splitNGrammes2(self, texte, tailleNgram, lenT1)

source code 

Découpage effectif en Ngrammes

!! Attention, la fonction ne retourne que les Ngrammes disjoints 2à2 Il faut l'appellet plusieurs fois en décalant le début pour avoir les autres ngrammes
Parameters:
  • texte - le texte
  • tailleNgram - le nombre de mots que l'on desire dans un bloc (1=> monogramme, 2=> bigramme etc...)
  • lenT1 - l'offset pour la position (0 pour le texte1, len(texte1) pour le texte 2

______splitNGrammes(self, texte, tailleNgram, lenT1)

source code 
Sort les blocs d'un texte en nGrammes
Parameters:
  • texte - le texte
  • tailleNgram - le nombre de mots que l'on desire dans un bloc (1=> monogramme, 2=> bigramme etc...)
  • lenT1 - l'offset pour la position (0 pour le texte1, len(texte1) pour le texte 2

____splitNGrammes(self, texte, tailleNgram, lenT1)

source code 
Sort les blocs d'un texte en nGrammes
Parameters:
  • texte - le texte
  • tailleNgram - le nombre de mots que l'on desire dans un bloc (1=> monogramme, 2=> bigramme etc...)
  • lenT1 - l'offset pour la position (0 pour le texte1, len(texte1) pour le texte 2