handle_request.py 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. from .cooccorrenze import cooccorrenze
  2. from .basic_queries import basicQueries
  3. def handleOccGetQuery(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'], tempDecode(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 handleGetContext(queryList, listResults, dataConfig):
  22. #res = []
  23. #return {"error": "Hey, I'm not implemented yet"}
  24. queryHandler = basicQueries(dataConfig)
  25. query = queryList[0]
  26. tipo = tempDecode(query['tipo'])
  27. res = queryHandler.contestimultipli(tipo, listResults)
  28. return res
  29. #Funzione da sistemare per il recupero dei contesti singoli
  30. def handleSingleContext(elem, paramObj, dataConfig):
  31. queryHandler = basicQueries(dataConfig)
  32. indice = 0
  33. parole = int(paramObj['parole'])
  34. periodi = int(paramObj['periodi'])
  35. brani = int(paramObj['brani'])
  36. res = queryHandler.contestosingolo(elem, indice, parole, periodi, brani)
  37. return res
  38. #Funzione di decodifica
  39. def tempDecode(stringa):
  40. if stringa=='forma':
  41. return 0
  42. elif stringa=='formaLemma':
  43. return 0
  44. elif stringa=='lemmaForma':
  45. return 2
  46. elif stringa=='soloLemmatizzate':
  47. return 1
  48. elif stringa=='lemma':
  49. return 2
  50. else:
  51. return None