Example #1
0
def initialisation():
    pm = Parsemail()#tain c quoi déja le truc pour écraser les méthodes??la surcharge, des constructeurs
    listeDmail, listeDmailRaci = pm.parsemail()
    
    
    
    fi = FichierIverse()
    dicoInv, nbmotsdocs, nbmotCorpus =fi.fichInv(listeDmail)
    dicoInvR, nbmotsdocsR, nbmotCorpusR = fi.fichInv(listeDmailRaci)
    
    
    ti = TfIdf(False,dicoInv,nbmotsdocs,nbmotCorpus)
    ti.calcul()
    ti.serialisation()
    ti2 =TfIdf(True, dicoInvR, nbmotsdocsR, nbmotCorpusR)#le true autorise la concaténation avec l'ancien dico
    ti2.calcul()
    ti2.serialisation()
Example #2
0
    def traitement_requete(self,requete):
        
        dicoreq =  {}
        requete = requete.lower()
        
        parse = Parsemail(False) #dans l'initialisation de parsmail la detection et le trie des noms de fichier des mails est inutile..
        stoplist = parse.stopwords() 
        
        if self.flagRACI == True :
            listmotreqRACI = (parse.tokenostop(requete, stoplist))[1]
            listmotreq = (parse.tokenostop(requete, stoplist))[0]
        else:
            listmotreq = (parse.tokenostop(requete, stoplist))[0] #[0] pr le non racinisé
            
        
        #on ne calcule que le tf, car idf = log( nbdedocuments / nbdedocu_contenantle_mot ) = log(1/1) = 0

        """
        vérifier que le mot soit ds le grand dico...=>c'est vérifié, mais le tf est calculé avec la présence
        du mot. Ceci dit, ca reste cohérent du coup.
        """
        
        for mot in listmotreq:
            if mot not in dicoreq:
                dicoreq[mot] = float( 1 / len(listmotreq) ) #calcule le tf
            else:
                dicoreq[mot] += float( 1 / len(listmotreq) ) #update le tf si plusieurs * le mm mot ds la requète
        
        if self.flagRACI == True :        
            for mot in listmotreqRACI:
                if mot not in dicoreq:
                    dicoreq[mot] = (float( 1 / len(listmotreq) ) / self.poids )#calcule le tf
                else:
                    dicoreq[mot] += (float( 1 / len(listmotreq) ) / self.poids ) #update le tf si plusieurs * le mm mot ds la requète
        
        return dicoreq