print " + creation de la table auteurs..." fonctions_bdd.creer_table_auteurs(name_bdd,'auteurs') file = open(path_req+'sources_interdites.txt') sites_interdits=[] for lignes in file.readlines(): sites_interdits.append(lignes.split('\t')[0][:-1]) print " - on charge la liste des sources inerdites..." print " - remplissage de la table auteurs..." sortie = fonctions_bdd.select_bdd_table(name_bdd,'billets','site',requete) sites = set() for sor in sortie: names =sor[0].split(" *%* ") for nom in names: site_name=text_processing.nettoyer_url(nom) if site_name not in sites_interdits: sites.add(site_name) sites=list(sites) fonctions_bdd.remplir_table(name_bdd,'auteurs',sites,"(auteurs)") print " - recuperation des ids des auteurs dans la table \"auteurs\" (index SQL) pour reinjecter dans la table \"billets\"..." auteurs = fonctions_bdd.select_bdd_table_champ_simple(name_bdd,'auteurs','id,auteurs') dic_auteurs ={} for aut in auteurs: dic_auteurs[aut[1]] = aut[0] site_billets = fonctions_bdd.select_bdd_table_champ_simple(name_bdd,'billets','id,site') auteur_index=[] for sit in site_billets:
#creation de la table auteurs try: fonctions_bdd.detruire_table(name_bdd,'auteurs') except: pass print " + creation de la table auteurs..." fonctions_bdd.creer_table_auteurs(name_bdd,'auteurs') print " - remplissage de la table auteurs..." sortie = fonctions_bdd.select_bdd_table(name_bdd,'billets','site',requete) sites = set() for sor in sortie: names =sor[0].split(sep) for nom in names: sites.add(text_processing.nettoyer_url(nom)) sites=list(sites) #print sites fonctions_bdd.remplir_table(name_bdd,'auteurs',sites,"(auteurs)") print " - recuperation des ids des auteurs dans la table \"auteurs\" (index SQL) pour reinjecter dans la table \"billets\"..." auteurs = fonctions_bdd.select_bdd_table_champ_simple(name_bdd,'auteurs','id,auteurs') dic_auteurs ={} for aut in auteurs: dic_auteurs[aut[1]] = aut[0] site_billets = fonctions_bdd.select_bdd_table_champ_simple(name_bdd,'billets','id,site') auteur_index=[] for sit in site_billets: id_b= sit[0] names =sit[1].split(sep)
def build_social_net(requete,name_bdd,sep,name_data): lienssoc=[] auteurs = fonctions_bdd.select_bdd_table_champ_simple(name_bdd,'auteurs','id,auteurs') dic_auteurs ={} for aut in auteurs: dic_auteurs[aut[1]] = aut[0] #auteur = fonctions_bdd.select_bdd_table_champ(name_bdd,'billets','site','id',b_id) #auteur = text_processing.nettoyer_url((auteur)) #jours = fonctions_bdd.select_bdd_table_champ(name_bdd,'billets','jours','id',b_id) # print auteur #names =auteur.split(" *%* ") #auteur_ids=[] #for nom in names: # auteur_ids.append(fonctions_bdd.select_bdd_table_champ(name_bdd,'auteurs','id','auteurs',nom)) if name_data[-4:] in ['.isi','.med'] : contenu = fonctions_bdd.select_bdd_table(name_bdd,'billets','id,auteur_id,jours',requete) for cont in contenu: b_id=cont[0] clique_auteurs = cont[1] participants=[] jours = cont[2] for participant in clique_auteurs.split(', '): participant=participant.replace('[','') participant=participant.replace(']','') participants.append(participant) for aut_1 in participants: for aut_2 in participants: if aut_1 != aut_2: lienssoc.append([aut_1,aut_2,jours,b_id,requete,str(b_id)+'_' + str(aut_1) + '_' + str(aut_2)]) else: contenu = fonctions_bdd.select_bdd_table(name_bdd,'billets','id,href,jours,site',requete) for cont in contenu: b_id=cont[0] aut_id = cont[1] href_list = cont[1] jours = cont[2] site = cont[3] auteurs = text_processing.nettoyer_url(site) names =auteurs.split(sep) auteur_ids=[] for nom in names: auteur_ids.append(fonctions_bdd.select_bdd_table_champ(name_bdd,'auteurs','id','auteurs',nom)) url_ids=[] if len(href_list)>0: hrefs = href_list.split("***") hrefs_propre=[] for hre in hrefs: if len(hre)>1: hrefs_propre.append(hre) hrefs = hrefs_propre hrefs = map(text_processing.nospace,hrefs) for url in hrefs: if not str(url)=='None': urlok = url.decode('utf-8','replace') url = urlok.replace("popostrophe","'") for aut in dic_auteurs.keys(): if aut in url: id_lien = dic_auteurs[aut] if not id_lien in url_ids: url_ids.append(id_lien) for aut_id in auteur_ids: if not id_lien ==aut_id: lienssoc.append([aut_id,id_lien,jours,b_id,requete,str(b_id)+'_' + str(aut_id) + '_' + str(id_lien)]) return(lienssoc)