示例#1
0
文件: misc.py 项目: jphcoi/MLMTC
def build_semantic_nets(billets_id,ngramme_billets_fit,name_bdd,requete,sep):
	"construit les reseaux sociosemantique et semantique a partir de la liste des ngrammes associes a chaque index de billet"
	lienssocsem = []
	lienssem = []
	for b_id,ngra in zip(billets_id,ngramme_billets_fit):
		auteur_ids = fonctions_bdd.select_bdd_table_champ(name_bdd,'billets','auteur_id','id',b_id)
		#auteur = text_processing.nettoyer_url((auteur))
		jours = fonctions_bdd.select_bdd_table_champ(name_bdd,'billets','jours','id',b_id)
		#names =auteur.split(sep)
		#auteur_ids=[]
		#for nom in names:
		#	auteur_ids.append(fonctions_bdd.select_bdd_table_champ(name_bdd,'auteurs','id','auteurs',nom))
		auteur_ids = auteur_ids[1:-1].split(', ')
		concept_ids = []
		for gra in ngra:
			concept_id = gra
			for auteur_id in auteur_ids: 
				lienssocsem.append([auteur_id,concept_id,jours,b_id,requete,str(b_id)+'_' + str(auteur_id) + '_' + str(concept_id)])
			concept_ids.append(concept_id)
		if len(concept_ids)>0:
			concept_ids.sort()
			ccid = -1
			for con1 in concept_ids:
				ccid +=1
				for con2 in concept_ids[ccid:]:
					lienssem.append([con1,con2,jours,b_id,requete,str(b_id)+'_' + str(con1) + '_' + str(con2)])
	return lienssocsem,lienssem
示例#2
0
文件: misc.py 项目: jphcoi/MLMTC
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)