request_handlers.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. from .cooccorrenze import cooccorrenze
  2. from .contexts import contexts
  3. def handleGetOccurrences(queryList, cooccorrenzeObj, dataConfig):
  4. queryHandler = cooccorrenze(dataConfig)
  5. res = []
  6. if len(queryList)==1:
  7. query = queryList[0]
  8. text = query['stringa']
  9. espansa = int(query['espansa'])
  10. raddoppiata = int(query['raddoppiata'])
  11. if text.strip()!="":
  12. res += queryHandler.sendBasicQuery(text, query['tipo'], espansa, raddoppiata)
  13. elif len(queryList)>1:
  14. intervallo = int(cooccorrenzeObj['distanza'])
  15. periodo = int(cooccorrenzeObj['stesso_periodo'])
  16. ordinate = int(cooccorrenzeObj['ordinate'])
  17. listaricerche = [[query['stringa'], occQueryTypesDict[query['tipo']], int(query['espansa']), int(query['raddoppiata'])] for query in queryList if query['stringa'].strip()!=""]
  18. res = queryHandler.ricerca_cooccorrenze(listaricerche, intervallo, periodo, ordinate)
  19. return res
  20. #Funzione per il recupero dei contesti multipli
  21. def handleGetContexts(queryList, listResults, dataConfig):
  22. queryHandler = contexts(dataConfig)
  23. query = queryList[0]
  24. tipo = occQueryTypesDict[query['tipo']]
  25. res = queryHandler.contestimultipli(tipo, listResults)
  26. return res
  27. #Funzione da sistemare per il recupero dei contesti singoli
  28. def handleGetSingleContext(elem, paramObj, dataConfig):
  29. queryHandler = contexts(dataConfig)
  30. indice = 0
  31. parole = int(paramObj['parole'])
  32. periodi = int(paramObj['periodi'])
  33. brani = int(paramObj['brani'])
  34. res = queryHandler.contestosingolo(elem, indice, parole, periodi, brani)
  35. return res
  36. # Dict: occurrence query type <=> code
  37. occQueryTypesDict = {
  38. 'forma': 0,
  39. 'formaLemma': 0,
  40. 'lemmaForma': 2,
  41. 'soloLemmatizzate': 1,
  42. 'lemma': 2
  43. }