import sys, os #------------------------------------------------------------------------------------------- #récupération du corpus IG={} indexGlobal = open("Lemmatisation/corpus.txt", "r") for line in indexGlobal: line = line.split("\t") if line[0]!="": IG[line[0]] = int(line[1]) indexGlobal.close() #récupération de la requete requete = [] requete.append(sys.argv[1]) indexRequete = Lemmatisation("", requete) indexRequete = indexRequete.lemmatisation() #si besoin ajout des mots de la requete dans la variable du corpus (méthode du pauvre) for line in indexRequete: if line not in IG: IG[line] = 1 #initialisation du dictionnaire de résultats resultats = {} #parcours des pages wikipédia crawlés et lemmatisés for file in os.listdir("Lemmatisation/index"): #initialisation du dictionnaire index qui contiendra l'index du fichier index = {} #copie du corpus contenant la requête localIG = IG #lecture du fichier index fichier = open("Lemmatisation/index/"+file, "r")
#parcours des pages crawlées for file in os.listdir("Scrapy/links"): if file not in os.listdir("Lemmatisation/index"): startTime = time.time() print(startTime) #ouverture du fichier fileobj=open("Scrapy/links/"+file,"r") #parser parser = ET.HTMLParser(recover=True) doc = ET.parse(fileobj, parser) fileobj.close() root = doc.getroot() #selection type xpath des textes des paragraphes texte = doc.xpath('//p//text()') #lemmatisation des textes lem =Lemmatisation("Scrapy/links/"+file, texte) lem.lemmatisation() #génération/amélioration du corpus IG = lem.IndexGlobal(IG) #selection xpath des textes de tout le body (navigation incluse) texte = doc.xpath('//body//text()') #lemmatisation lem =Lemmatisation("Scrapy/links/"+file, texte) index = lem.lemmatisation() #enregistrement de l'index généré fichierIndex = open("Lemmatisation/index/"+file, "w+") for line in index: fichierIndex.write(line+" "+str(index[line])+"\n") fichierIndex.close() #affichage du temps d'exécution print(file, round(time.time()-startTime, 5), "secondes")