예제 #1
0
파일: auteurs.py 프로젝트: jphcoi/MLMTC
def load_contenu_socsem():
	try:
		auteurs_billets = fonctions.dumpingout('auteurs_billets')
		contenu_socsem =fonctions.dumpingout('contenu_socsem')
	except:
		contenu_socsem = fonctions_bdd.select_bdd_table(name_bdd,'socsem','auteur,concept,jours,id_b',requete)
		auteurs_billets={}
		#auteurs_billets associe à chaque auteur les billets auxquels il a contribué
		for cont in contenu_socsem:
			auteur = cont[0]
			id_b = cont[3]
			if auteurs_billets.has_key(auteur):
				temp=auteurs_billets[auteur]
				if not id_b in temp:
					temp.append(id_b)
					auteurs_billets[auteur] = temp
			else:
				arr = []
				arr.append(id_b)
				auteurs_billets[auteur] = arr
		fonctions.dumpingin(contenu_socsem,'contenu_socsem')
		fonctions.dumpingin(auteurs_billets,'auteurs_billets')
	return auteurs_billets,contenu_socsem
예제 #2
0
	print requete + '_' + str(freqmin) + str(sample)
	if user_interface =='y':
		var = raw_input('do you wish to force new indexation ? (y to reindex)')
	else:
		var='n'	
	if var =='y':
		dictionnaire_gramme=fonctions_lib.dumpingout(name_export_pkl+'jlkjjlkjlkjlkjlkjl',requete)
	print '\n\nOn importe le dictionnaire de n-grammes deja calcule\n\n'
	dictionnaire_gramme_year=fonctions_lib.dumpingout(name_export_pkl,requete)
	lemme_maj=fonctions_lib.dumpingout(name_export_lemme_pkl,requete)
		
except:
	if lemmatisation ==1:	
		#	on extrait le champ contenu de la table
		print "--- extraction des contenus des billets..."
		contenu = fonctions_bdd.select_bdd_table(name_bdd,'billets','id,content,content_lemmatise',requete)
		print "    - par exemple, contenu[0][1]=",contenu[0][1]
		print "+++ lemmatisation avec treetagger de tous les contenus..."
		#on construit la liste des n-grammes accompagnée de leur fréquence
		tagger = treetaggerwrapper.TreeTagger(TAGLANG=language,TAGDIR=treetagger_dir)
		billetprocessed=0
		billetnotprocessed=0
		billetcleans=[]
		billetorigs=[]
		for billets in contenu:			
			billetprocessed+=1
			billet_id = billets[0]
			billet = billets[1]
			billet = billet.replace('<b>','').replace('</b>','')
			billet_lem = billets[2]	
			if not billetprocessed%250 : 
예제 #3
0
###################################
#######2.calcul des infos annexes##
###################################



#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')
예제 #4
0
#lemmadictionnary = parameters.lemmadictionary# si nul, on  calcule ou recalcule  le dico de lemmes sur la requete consideree sinon on ne calcule pas
path_req = parameters.path_req
treetagger_dir =parameters.treetagger_dir

###################################
#######export #####################
###################################



try:
	os.mkdir(path_req + "exportWE")
except:
	pass
#reseau social
contenu = fonctions_bdd.select_bdd_table(name_bdd,'soc','auteur1,auteur2,jours',requete)
file_net_name = path_req + "exportWE/social_net.txt"
misc.extraire_reseaux(contenu,file_net_name)
print "=> reseau social exporte fichier: " + file_net_name

#reseau semantique
contenu = fonctions_bdd.select_bdd_table(name_bdd,'sem','concept1,concept2,jours,id_b',requete)
file_net_name = path_req + "exportWE/sem_net" + '.txt' 
misc.extraire_reseaux(contenu,file_net_name)
print "=> reseau semantique exporte fichier: " + file_net_name

file_net_name = path_req + "exportWE/sem_net" + "_pondere.txt"
misc.extraire_reseaux_pondere(contenu,file_net_name,name_bdd)
print "=> reseau semantique pondere exporte fichier: " + file_net_name

#reseau socio-semantique
예제 #5
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)
예제 #6
0
파일: xhi2.py 프로젝트: jphcoi/MLMTC
		print '- ' +dico_termes[ii] +' ('+dico_lemmes[ii]+')'
except:
	pass
print '\n'
years_bins = []
#traite le multi-type des variables:
try:
	datef=datef[0]
	dated=dated[0]
except:
	pass
	
for y in range(datef-dated+1):
	years_bins.append(y+dated)
years_bins=[years_bins]
contenu = fonctions_bdd.select_bdd_table(name_bdd,'billets','concepts_id,jours,id',requete)
print "contenu importé"
print '\n'
from time import time
timeavt = time()
p_cooccurrences,NN,p_cooccurrences_lignes = build_cooc_matrix(contenu,years_bins)
print 'coocc fabriquées'
timeapres = timeavt
timeavt = time()
print 'duree de la derniere etape : ' + str( timeavt-timeapres) + '\n'
distribution_distance = distribution_distance_build(p_cooccurrences,dico_termes,p_cooccurrences_lignes)
print '\nrapprochements suggérés:\n'
timeapres = timeavt
timeavt = time()
print 'duree de la derniere etape : ' + str(timeavt-timeapres) + '\n'