def main(): # Variables Generales... Errores = 0 miLog = log.Log() GestorMongoDB = ta_MongoDB.MongoDB GestorSQLServer = ta_SQLServer.SQLServer GestorTwitter = ta_twitter.Twitter miLog.Salidaln( "Bienvenido al Manager de carga PARCIAL de MBIT, Iniciando servicios..." ) GestorMongoDB = ta_MongoDB.MongoDB() GestorTwitter = ta_twitter.Twitter(GestorMongoDB.m_db) GestorTwitter.BuscarNuevos() try: # Creación del -Gestor de SQL Server GestorSQLServer = ta_SQLServer.SQLServer() except Exception as e: Errores += 1 miLog.Salidaln("ERROR generando Gestor de SQL Server...") miLog.Salidaln(e.args) return -1 try: #Una vez aseguradas las conexiones a BBDD, cargamos los Tweets en formato JSON GestorMongoDB.CargarJSON() # Creación del DataCleaner y Volcados a SQL Server DataCleaner = ta_DataCleaner.DataCleaner(GestorMongoDB.m_ListaJSON) DataCleaner.AnalisisTweetsParcial() GestorSQLServer.ParcialTwiteros(DataCleaner.m_ListaTwiteros) GestorSQLServer.ParcialTimeline(DataCleaner.m_ListaTimeline) # Marcamos los tweets ya cargados para reducir la carga de parciales desde Mongo Azure GestorMongoDB.CerrarJSONParcial(DataCleaner.m_ListaTimeline) GestorSQLServer.m_conSQL.close() except Exception as e: Errores += 1 miLog.Salidaln("ERROR No se ha podido generar DataCleaner ") miLog.Salidaln(e.args) if (Errores > 0): miLog.Salidaln("ERRORES DETECTADOS") else: miLog.Salidaln("Proceso finalizado con exito...")
def main(): # Variables Generales... Errores = 0 miLog = log.Log() GestorMongoDB = ta_MongoDB.MongoDB GestorSQLServer = ta_SQLServer.SQLServer miLog.Salidaln("Bienvenido al Manager MBIT, Iniciando servicios...") try: # Iniciamos el proceso... # Creación del Gestor de MongoDB GestorMongoDB = ta_MongoDB.MongoDB() except Exception as e: Errores += 1 miLog.Salidaln("ERROR generando Gestor de MongoDB") try: # Creación del -Gestor de SQL Server GestorSQLServer = ta_SQLServer.SQLServer() except Exception as e: Errores += 1 miLog.Salidaln("ERROR generando Gestor de SQL Server..." + e.with_traceback) return -1 try: #Una vez aseguradas las conexiones a BBDD, cargamos los Tweets en formato JSON GestorMongoDB.CargarJSON() # Creación del DataCleaner y Volcados a SQL Server DataCleaner = ta_DataCleaner.DataCleaner(GestorMongoDB.m_ListaJSON) DataCleaner.AnalisisTweets() GestorSQLServer.RegenerarTwiteros(DataCleaner.m_ListaTwiteros) GestorSQLServer.RegenerarTimeline(DataCleaner.m_ListaTimeline) GestorSQLServer.m_conSQL.close() except Exception as e: Errores += 1 miLog.Salidaln("ERROR No se ha podido generar DataCleaner ") if (Errores > 0 ): miLog.Salidaln("ERRORES DETECTADOS") else: miLog.Salidaln("Proceso finalizado con exito...")
def main(): # Variables Generales... Errores = 0 miLog = log.Log() m_DatosTwitter = ta_DataCleaner.DatosTwitter() GestorSQLServer = ta_SQLServer.SQLServer miLog.Salidaln( "Bienvenido al Manager de Sentinel Business, Iniciando servicios ML2..." ) Lista = [] try: # Creación del -Gestor de SQL Server GestorSQLServer = ta_SQLServer.SQLServer() except Exception as e: Errores += 1 miLog.Salidaln("ERROR generando Gestor de SQL Server...") miLog.Salidaln(e.args) return -1 try: GestorSQLServer.ListaTweetsSentinelBusiness(Lista) miLog.Salidaln("Cargendo Datos...") m_DatosTwitter.CargarDatos(GestorSQLServer.m_conSQL) except Exception as e: Errores += 1 miLog.Salidaln( "ERROR No se ha podido generar Sentinel de Business... ") miLog.Salidaln(e.args) miLog.Salidaln("OK.") miLog.Salida("construyendo Features ML2 ...") m_DatosTwitter.build_features() miLog.Salidaln("OK...") miLog.Salida("Limpiando ML2 ...") m_DatosTwitter.Limpieza() miLog.Salida("OK ...") miLog.Salida("Tokenizando ...") m_DatosTwitter.Tokenizar() m_DatosTwitter.ConstruirPalabras() m_DatosTwitter.ContarPalabras() m_DatosTwitter.Separar() miLog.Salidaln("OK ...") #m_DatosTwitter.ConstruirMatrizEntrenamiento() miLog.Salida("Recuperando Negaciones ...") m_DatosTwitter.RecuperarNegaciones() miLog.Salidaln("OK ...") miLog.Salida("Construyendo modelo ...") ModeloDatos, Etiquetas = m_DatosTwitter.build_data_model() miLog.Salidaln("OK ...") miLog.Salidaln("Business ...") Prediccion_RF = pd.DataFrame Prediccion_NB = pd.DataFrame Prediccion_SV = pd.DataFrame Prediccion_SD = pd.DataFrame Prediccion_PE = pd.DataFrame try: Prediccion_RF = m_DatosTwitter.BusinessRandomForest() Prediccion_NB = m_DatosTwitter.BusinessNaiveBayes() Prediccion_SV = m_DatosTwitter.BusinessSVM() Prediccion_SD = m_DatosTwitter.BusinesDescensoGradiente() Prediccion_PE = m_DatosTwitter.BusinesPerceptron() Tamano = Prediccion_RF.size for i in range(0, Tamano): #miLog.Salidaln("--------------------------------") #miLog.Salidaln("idTweet : " + m_DatosTwitter.Datos_Procesados.loc[i, "idtweet"]) #miLog.Salidaln("Texto : " + m_DatosTwitter.Datos_Procesados.loc[i, "texto_original"]) #miLog.Salidaln("RF :" + Prediccion_RF[i]) #miLog.Salidaln("NB :" + Prediccion_NB[i]) Resultado = 'neutro' pos = 0 neg = 0 neu = 0 if (Prediccion_RF[i] == 'positivo'): pos += 1 # 44 if (Prediccion_RF[i] == 'neutro'): neu += 1 # 70 if (Prediccion_RF[i] == 'negativo'): neg += 1 # 70 if (Prediccion_PE[i] == 'positivo'): pos += 1 # 10 if (Prediccion_PE[i] == 'neutro'): neu += 1 # 70 if (Prediccion_PE[i] == 'negativo'): neg += 1 # 70 #if (Prediccion_NB[i] == 'positivo'): pos += 1 # 10 #if (Prediccion_NB[i] == 'neutro' ): neu += 1 # 67 #if (Prediccion_NB[i] == 'negativo'): neg += 1 # 37 if (Prediccion_SD[i] == 'positivo'): pos += 1 # 37 if (Prediccion_SD[i] == 'neutro'): neu += 1 # 55 if (Prediccion_SD[i] == 'negativo'): neg += 1 # 66 if (Prediccion_SV[i] == 'positivo'): pos += 1 # 29 if (Prediccion_SV[i] == 'neutro'): neu += 1 # 63 if (Prediccion_SV[i] == 'negativo'): neg += 1 # 65 Valor = max(pos, neu, neg) if (Valor == pos): Resultado = 'positivo' else: if (Valor == neg): Resultado = 'negativo' else: Resultado = 'neutro' #miLog.Salidaln("-----> :" + Resultado) GestorSQLServer.UpdateSentibelBusiness( m_DatosTwitter.Datos_Procesados.loc[i, "idtweet"], Resultado) miLog.Salidaln("OK ...") except: miLog.Salidaln("No Hay datos ...") if (Errores > 0): miLog.Salidaln("ERRORES DETECTADOS") else: miLog.Salidaln("Proceso finalizado con exito...")
def main(): # Variables Generales... Errores = 0 miLog = log.Log() GestorSQLServer = ta_SQLServer.SQLServer miLog.Salidaln( "Bienvenido al Manager de Sentinel Microisoft, Iniciando servicios..." ) Lista = [] try: # Creación del -Gestor de SQL Server GestorSQLServer = ta_SQLServer.SQLServer() except Exception as e: Errores += 1 miLog.Salidaln("ERROR generando Gestor de SQL Server...") miLog.Salidaln(e.args) return -1 try: GestorSQLServer.ListaTweetsMicrosoft(Lista) except Exception as e: Errores += 1 miLog.Salidaln( "ERROR No se ha podido generar Sentinel de Microsoft... ") miLog.Salidaln(e.args) miLog.Salidaln("OK.") # Azure portal URL. base_url = 'https://westus.api.cognitive.microsoft.com/' # Your account key goes here. account_key = '02e7d87d5b704e2cbad6a6c796422fee' headers = { 'Content-Type': 'application/json', 'Ocp-Apim-Subscription-Key': account_key } # Instanciamos el Cliente Google miLog.Salidaln("Analizando Sentinel... " + str(len(Lista)) + " elementos...") for Elemento in Lista: try: miLog.Salida("C") CadenaLimpia = Elemento.m_Texto CadenaLimpia = CadenaLimpia.replace("'", '-') CadenaLimpia = CadenaLimpia.replace('"', '-') miLog.Salida("\bA") TextoPorAnalizar = '{"documents":[{"id":"' + Elemento.m_idTweet + '","text":"' + CadenaLimpia + '"},]}' # Calculamos el Sentinel de Microsoft. miLog.Salida("\bS") Sentimiento_url = base_url + 'text/analytics/v2.0/sentiment' reqSentinel = Request(Sentimiento_url, TextoPorAnalizar.encode("utf-8"), headers) RespuestaSentinel = urlopen(reqSentinel) ResultadoSentinel = RespuestaSentinel.read() objSentinel = json.loads(ResultadoSentinel) AnalisisSentinel = objSentinel['documents'][0] Elemento.SentinelMicrosoft = AnalisisSentinel['score'] # Detectamos las palabras clave. miLog.Salida("\bF") Frases_url = base_url + 'text/analytics/v2.0/keyPhrases' reqFrases = Request(Frases_url, TextoPorAnalizar.encode("utf-8"), headers) RespuestaFrases = urlopen(reqFrases) ResultadoFrases = RespuestaFrases.read() objFrases = json.loads(ResultadoFrases) AnalisisFrases = objFrases['documents'][0] Elemento.m_Frases = str(AnalisisFrases['keyPhrases']) miLog.Salida("\b.") except: miLog.Salida("\bE") miLog.Salidaln("OK.") if (Errores == 0): GestorSQLServer.ActualizaSentinelMicrosoft(Lista) GestorSQLServer.m_conSQL.close() if (Errores > 0): miLog.Salidaln("ERRORES DETECTADOS") else: miLog.Salidaln("Proceso finalizado con exito...")
def main(): # Variables Generales... Errores = 0 miLog = log.Log() GestorSQLServer = ta_SQLServer.SQLServer miLog.Salidaln( "Bienvenido al Manager de Sentinel Google, Iniciando servicios...") Lista = [] try: # Creación del -Gestor de SQL Server GestorSQLServer = ta_SQLServer.SQLServer() except Exception as e: Errores += 1 miLog.Salidaln("ERROR generando Gestor de SQL Server...") miLog.Salidaln(e.args) return -1 try: GestorSQLServer.ListaTweetsGoogle(Lista) except Exception as e: Errores += 1 miLog.Salidaln("ERROR No se ha podido generar Sentinel de Google... ") miLog.Salidaln(e.args) miLog.Salidaln("OK.") # Instanciamos el Cliente Google miLog.Salida("Instanciando idioma Google... ") miLog.Salidaln("OK") miLog.Salidaln("Analizando Sentinel... " + str(len(Lista)) + " elementos...") for Elemento in Lista: try: language_client = language.Client() #miLog.Salida("C") CadenaLimpia = Elemento.m_Texto CadenaLimpia = CadenaLimpia.replace("'", '-') CadenaLimpia = CadenaLimpia.replace('"', '-') #miLog.Salida("\bG") documentGoogle = language_client.document_from_text(CadenaLimpia) #miLog.Salida("\bS") sentimentGoogle = documentGoogle.analyze_sentiment().sentiment #Elemento.m_SentinelGoogle = sentimentGoogle.score #Elemento.m_AccuracyGoogle = sentimentGoogle.magnitude GestorSQLServer.ActualizaSentinelGoogleTweet( Elemento.m_idTweet, sentimentGoogle.score, sentimentGoogle.magnitude) except: miLog.Salida("E") GestorSQLServer.ActualizaSentinelGoogleTweet( Elemento.m_idTweet, 0, 0) miLog.Salidaln("OK.") #GestorSQLServer.ActualizaSentinelGoogle(Lista) GestorSQLServer.m_conSQL.close() if (Errores > 0): miLog.Salidaln("ERRORES DETECTADOS") else: miLog.Salidaln("Proceso finalizado con exito...")
def main(): # Variables Generales... Errores = 0 miLog = log.Log() GestorSQLServer = ta_SQLServer.SQLServer miConf = ta_ConfigManager.Configuracion() m_esBusiness = 0 miLog.Salidaln( "Bienvenido al Manager de esBusiness, Iniciando servicios...") Lista = [] try: # Creación del -Gestor de SQL Server GestorSQLServer = ta_SQLServer.SQLServer() except Exception as e: Errores += 1 miLog.Salidaln("ERROR generando Gestor de SQL Server...") miLog.Salidaln(e.args) return -1 try: GestorSQLServer.ListaTweetsBusiness(Lista) except Exception as e: Errores += 1 miLog.Salidaln("ERROR No se ha podido generar EsBsuness... ") miLog.Salidaln(e.args) miLog.Salidaln("OK.") for Elemento in Lista: try: #miLog.Salida("B") Dato = { "Inputs": { "input1": [{ 'idTweet': "" + Elemento.m_idTweet + "", 'idUsuario': "" + Elemento.m_idUsuario + "", 'esBusiness': "", 'Texto': "" + Elemento.m_Texto + "", }], }, "GlobalParameters": {} } #miLog.Salida("\bC") body = str.encode(json.dumps(Dato)) #miLog.Salida("\bW") url = 'https://europewest.services.azureml.net/subscriptions/561a3040473c45e9bec4ce3b0751236e/services/71a40c7296094c8a8014a6b39187a31e/execute?api-version=2.0&format=swagger' api_key = miConf.m_ML1_APIKey headers = { 'Content-Type': 'application/json', 'Authorization': ('Bearer ' + api_key) } #miLog.Salida("\bR") req = urllib.request.Request(url, body, headers) try: #miLog.Salida("\bA") response = urllib.request.urlopen(req) #miLog.Salida("\bB") result = response.read() Salida = json.loads(result) if (Salida["Results"]["output1"][0]["esBusiness"] == 'True'): m_esBusiness = 1 else: m_esBusiness = 0 GestorSQLServer.ActualizaEsBusiness( Salida["Results"]["output1"][0]["idTweet"], m_esBusiness) except urllib.error.HTTPError as error: Errores += 1 miLog.Salidaln("ERROR Web Service ML1 con status code: " + str(error.code)) miLog.Salidaln("Datos Request: " + str(Dato)) miLog.Salidaln(error.info()) miLog.Salidaln( json.loads(error.read().decode("utf8", 'ignore'))) except: miLog.Salida("E")