Пример #1
0

print 'creation de la nouvelle base de données ' + name_bdd_new
shutil.copy(name_bdd, name_bdd_temp)
try:
	fonctions_bdd.detruire_table(name_bdd,'billets2')
except:
	pass
try:
	fonctions_bdd.creer_table_billets(name_bdd,'billets2')#creer une table billet2
	fonctions_bdd.add_column(name_bdd,'billets2','concepts_id','text')#et lui adjoindre le champ concepts_id
except:
	pass

	
fonctions_bdd.insert_select(name_bdd,'billets','billets2',sql_where)
fonctions_bdd.detruire_table(name_bdd,'billets')
fonctions_bdd.renommer_table(name_bdd,'billets2','billets')
shutil.copy(name_bdd, name_bdd_new)
shutil.copy(name_bdd_temp, name_bdd)
os.remove(name_bdd_temp)




def nettoyer_site(chaine,chainel,site):
	sortie = fonctions_bdd.select_bdd_table_champ_complet(name_bdd,'billets','id,content,content_lemmatise','site',site)
	entree,entreel=[],[]
	for x in  sortie:
		idx = x[0]
		text = x[1]
Пример #2
0
def select_query(query=[]):
	#on définit une nouvelle table et une table billets temporaires


	#specific_nlemmes est la requête de base issue de query.csv.
	if len(query)==0:
		specific_nlemme = misc.lire_dico_classes(path_req + 'query.csv',language)
		specific_nlemmes=[]
		for x in specific_nlemme:
			specific_nlemmes=specific_nlemmes+x.split('***')
	else:
		specific_nlemmes = query
	print specific_nlemmes
	print '\n' + str(len(specific_nlemmes)) +' terms in the query '
	#on récupère les ids des concepts présents dans la requête dans query_ids
	query_ids =[]

	try:
		concepts = fonctions_bdd.select_bdd_table_champ_simple(name_bdd,'concepts','id,concepts')
		for con in concepts:
			if con[1] in specific_nlemmes:
				query_ids.append(con[0])
	except:
		#il se peut que la base n'est jamais été indexée
		pass

	try:
		#tous les termes de la query ont déjà été indexés
		sous_corpus_idb_vect = fonctions_bdd.select_bdd_table_champ_simple(jesaispas,name_bdd,'concept2billets','id_b', ' where concept in '+ str(query_ids).replace('[','(').replace(']',')'))
		sous_corpus_idb=[]
		for x in sous_corpus_idb_vect:
			if not x[0] in sous_corpus_idb:
				sous_corpus_idb.append(x[0])
	except:
		#tous les termes de la query n'ont pas encore été indexés, on passe à une méthode like.
		where_like = " where content_lemmatise like '%"
		where_like = where_like + " %' or  content_lemmatise like '% ".join(specific_nlemmes) + " %'"
		print where_like
		sous_corpus_idb = fonctions_bdd.select_bdd_table_champ_simple(name_bdd,'billets','id',where_like )

	print str(len(sous_corpus_idb)) +' documents retrieved \n'
	sql_where = " id in " + str(sous_corpus_idb).replace('[','(').replace(']',')')
	#print sql_where


	print 'creation de la nouvelle base de données ' + name_bdd_new
	shutil.copy(name_bdd, name_bdd_temp)
	try:
		fonctions_bdd.detruire_table(name_bdd,'billets2')
	except:
		pass
	try:
		fonctions_bdd.add_column(name_bdd,'billets','concepts_id','text')#et lui adjoindre le champ concepts_id
	except:
		pass
	try:
		fonctions_bdd.creer_table_billets(name_bdd,'billets2')#creer une table billet2 
		fonctions_bdd.add_column(name_bdd,'billets2','concepts_id','text')#et lui adjoindre le champ concepts_id
	except:
		pass

	
	fonctions_bdd.insert_select(name_bdd,'billets','billets2',sql_where)
	fonctions_bdd.detruire_table(name_bdd,'billets')
	fonctions_bdd.renommer_table(name_bdd,'billets2','billets')
	shutil.copy(name_bdd, name_bdd_new)
	shutil.copy(name_bdd_temp, name_bdd)
	os.remove(name_bdd_temp)
	return specific_nlemmes,fonctions_bdd.count_rows(name_bdd,'billets')