123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- # Notebook Jupyter per la produzione semi-automatica dei test
- # definire le ricerche da effettuare e il nome del file dove visualizzare i risultati
- # %%
- # Test code using Jupyter -- produce a JSON of queries and results
- # %%
- from simple_query_test_pandas import ricercaforme
- from simple_query_test_pandas import ricercalemmi
- from simple_query_test_pandas import ricercaformelemmi
- from simple_query_test_pandas import interpreter
- import json
- import os
- ######
- #SETUP
- ######
- # Definisco la funzione per convertire il DataFrame in formato JSON
- def df_to_json_records(df):
- return df.to_dict(orient='records')
- # Definisco la funzione per scrivere i risultati in un file JSON
- def write_to_json(data, filename, mode='w'):
- with open(filename, mode) as f:
- json.dump(data, f, indent=4) # aggiungi indentazione di 4 spazi
-
- # Definisco la funzione per leggere i risultati da un file JSON
- def read_from_json(filename):
- if not os.path.isfile(filename):
- return []
- with open(filename, 'r') as f:
- content = f.read()
- if content:
- return json.loads(content)
- else:
- return []
- # Creo una lista vuota per i risultati
- all_results = []
- # Creo una lista vuota per le ricerche
- all_searches = []
- # Definisco gli esempi di ricerca da fare
- path_db_0 = "../../db/first_db"
- # Path per i file json
- path = "test_data/"
- # Definisco il nome del file per i risultati
- filename_results = 'results.json'
- # Definisco il nome del file per le ricerche
- filename_searches = 'searches.json'
- # %%
- # Definisco le ricerche
- search_entries = [
- {"tipo_ricerca": "formaLemma", "parola_cercata": "pro*", "path_db": path_db_0, "ricerca_espansa": 1, "iniziali_raddoppiate": 0},
- {"tipo_ricerca": "forma", "parola_cercata": "prov*", "path_db": path_db_0, "ricerca_espansa": 1, "iniziali_raddoppiate": 0},
- {"tipo_ricerca": "lemma", "parola_cercata": "prova", "path_db": path_db_0, "ricerca_espansa": 1, "iniziali_raddoppiate": 0}
- ]
- # Eseguo le ricerche
- for entry_info in search_entries:
- print ("Ricerca di: " + entry_info["parola_cercata"])
- # Definisco il tipo di ricerca, la parola cercata e le altre informazioni richieste
- tipo_ricerca = entry_info["tipo_ricerca"]
- parola_cercata = entry_info["parola_cercata"]
- path_db = entry_info["path_db"]
- ricerca_espansa = entry_info["ricerca_espansa"]
- iniziali_raddoppiate = entry_info["iniziali_raddoppiate"]
- search_info = {"tipo": tipo_ricerca, "stringa": parola_cercata, "espansa": ricerca_espansa, "raddoppiata": iniziali_raddoppiate}
- # Eseguo la ricerca
- if tipo_ricerca == "formaLemma":
- df = ricercaformelemmi(interpreter(parola_cercata), path_db, ricerca_espansa, iniziali_raddoppiate)
- elif tipo_ricerca == "forma":
- df = ricercaforme(interpreter(parola_cercata), path_db, ricerca_espansa, iniziali_raddoppiate)
- else:
- df = ricercalemmi(interpreter(parola_cercata), path_db, ricerca_espansa, iniziali_raddoppiate)
- results = df_to_json_records(df)
- # Salvo i risultati nella lista di tutti i risultati
- all_results.append(results)
- all_searches.append(search_info)
- # Scrivo tutti i risultati della ricerca nel file JSON
- try:
- # write_to_json(all_results, os.path.join(path, filename_results), mode='a') # to append instead of overwriting
- write_to_json(all_results, os.path.join(path, filename_results))
- print("Risultati della ricerca salvati nel file JSON "+ filename_results)
- except:
- print("La lista di ricerche non è un JSON valido")
-
- # Scrivo tutte le ricerche eseguite nel file JSON
- try:
- write_to_json(all_searches, os.path.join(path, filename_searches))
- print("Ricerche salvate nel file JSON " + filename_searches)
- except:
- print("La lista di risultati non è un JSON valido")
- # %%
|