예제 #1
0
def ngramme_fit(year):
	Nb_rows = fonctions_bdd.count_rows_where(name_bdd,'billets'," where jours IN ('" + "','".join(list(map(str,year))) + "') ")
	#Nb_rows = fonctions_bdd.count_rows(name_bdd,'billets')
	Nb_auteurs = fonctions_bdd.count_rows(name_bdd,'auteurs')
	size_seq = 1000
	nb_sequences = Nb_rows/size_seq
	billets_id=[]
	ngramme_billets_fit=[]
	ngrammes_auteurs_fit={}
	formes_fit={}
	#for x in range(nb_sequences+1):
	for x in range(nb_sequences+1):
		lim_d = str(size_seq*x)
		if x<nb_sequences:
			duration = str(size_seq)
		else:
			duration = str(size_seq)
		where = " jours IN ('" + "','".join(list(map(str,year))) + "') "
		sample = '1000000000'
		contenu = fonctions_bdd.select_bdd_table_where_limite(name_bdd,'billets','id,content_lemmatise,content,auteur_id',sample,requete,where,lim_d+','+duration,Nb_rows)
		#on indexe chaque billet et on recupere un triplet qui donne: la liste des ngrammes pour chaque billet, la liste des index des ngrammes pour chaque billet, et l'id des billets - ce script permet egalement de calculer les formes des n-lemmes.
		include=1 #le parametre include permet d'activer ou non l'overlap de lemmes dans le comptage: si 1, les nicolas sarkozy ne forment pas de sarkozy 
		ngramme_billets_fit_x,billets_id_x,formes_x,ngrammes_auteurs_fit_x = text_processing.indexer_billet(contenu,ngrammes,maxTermLength,include)
		billets_id = billets_id + billets_id_x
		ngramme_billets_fit = ngramme_billets_fit + ngramme_billets_fit_x
		formes_fit=fonctions_lib.merge(formes_fit, formes_x, lambda x,y: fonctions_lib.merge(x,y,lambda x,y:x+y))
		ngrammes_auteurs_fit=fonctions_lib.merge(ngrammes_auteurs_fit,ngrammes_auteurs_fit_x,lambda x,y : extension(x,y))
		print "    + billets numéros "+ str(int(lim_d)+1)+ " à "+  str(int(lim_d)+int(duration)) +" indexés (sur "+ str(Nb_rows) +")"
	return ngrammes_auteurs_fit, ngramme_billets_fit,formes_fit
예제 #2
0
ngrammes_auteurs_fit={}
formes={}

#for x in range(nb_sequences+1):
for x in range(nb_sequences+1):
	lim_d = str(size_seq*x)
	if x<nb_sequences:
		duration = str(size_seq)
	else:
		duration = str(size_seq)
		#duration = str(Nb_rows - size_seq*x)
	#on extrait les champs contenus lemmatises et id de la table
	contenu = fonctions_bdd.select_bdd_table_limite(name_bdd,'billets','id,content_lemmatise,content,auteur_id',requete,lim_d+','+duration)
	#on indexe chaque billet et on recupere un triplet qui donne: la liste des ngrammes pour chaque billet, la liste des index des ngrammes pour chaque billet, et l'id des billets - ce script permet egalement de calculer les formes des n-lemmes.
	include=1 #le parametre include permet d'activer ou non l'overlap de lemmes dans le comptage: si 1, les nicolas sarkozy ne forment pas de sarkozy 
	ngramme_billets_fit_x,billets_id_x,formes_x,ngrammes_auteurs_fit_x = text_processing.indexer_billet(contenu,ngrammes,maxTermLength,include)
	billets_id = billets_id + billets_id_x
	ngramme_billets_fit = ngramme_billets_fit + ngramme_billets_fit_x
	formes=fonctions_lib.merge(formes, formes_x, lambda x,y: fonctions_lib.merge(x,y,lambda x,y:x+y))
	ngrammes_auteurs_fit=fonctions_lib.merge(ngrammes_auteurs_fit,ngrammes_auteurs_fit_x,lambda x,y : extension(x,y))
	print "    + billets numéros "+ str(int(lim_d)+1)+ " à "+  str(int(lim_d)+int(duration)) +" indexés (sur "+ str(Nb_rows) +")"
	
	
dictionnaire_treetagged__formes_name = path_req  + "Treetagger_n-lemmes_formes.txt"  
dictionnaire_treetagged__formemajoritaire_name = path_req  + "Treetagger_n-lemmes_formemajoritaire.txt"
text_processing.extraire_forme_majoritaire(0,formes,dictionnaire_treetagged__formes_name,dictionnaire_treetagged__formemajoritaire_name)

N  = float(len(ngramme_billets_fit))
print "    +" + str(N) + " billets indexés"