def crearDiccPosts(pDictPesos): diccionario = {} postings = [] indice_postings = 0 for termino, pesos in pDictPesos.items(): diccionario[termino] = [indice_postings, 0] for peso in pesos: docId = peso[0] postings += [[docId, peso[1]]] indice_postings += 1 diccionario[termino][1] = len(pesos) archivo.crearCSVDict("diccionario.csv", diccionario) archivo.crearCSV("postings.csv", postings) return [diccionario, postings]
def calcularPesos(pDictFrecuenciasTerm, pN, pDictNi): print("calculando pesos de los terminos") dictPesos = {} cuadrados = {} for termino, frecuencias in pDictFrecuenciasTerm.items(): for frecuencia in frecuencias: frecuencia[1] = (1 + log10(frecuencia[1])) * (log10(pN / pDictNi[termino])) try: cuadrados[frecuencia[0]] += frecuencia[1] ** 2 except KeyError: cuadrados[frecuencia[0]] = frecuencia[1] ** 2 dictPesos[termino] = frecuencias for docId, cuadrado in cuadrados.items(): cuadrados[docId] = sqrt(cuadrado) archivo.crearCSVDict("normas.csv", cuadrados) for termino, pesos in dictPesos.items(): for peso in pesos: peso[1] = peso[1] / cuadrados[peso[0]] dictPesos[termino] = pesos ## archivo.archivo.crearCSVDict("pesos.csv",dictPesos) return dictPesos