def twittear_hilo(parametros): # tw_intro = {'texto': "Análisis de discurso del string_fecha de #MauricioMacri.", 'media': ['intro0.png','intro1.png']} # tw_terminos = { 'texto': '@dicenlospresis tweet con terminos', 'media': ["dlp_terminos.png"] } # tw_verbos = {'texto': '@dicenlospresis tweet con verbos', 'media': ["dlp_verbos.png"]} # utiles.twittear_hilo([tw_intro, tw_terminos, tw_verbos], cuenta="dlp") # return fecha = parametros['fecha'] kiosco = Kiosco() textos = [ noticia['texto'] for noticia in kiosco.noticias( diario='casarosada', categorias='', fecha=fecha) ] if len(textos) == 0: return nlp = NLP() nlp.separador = '' for texto in textos: # tw_intro = tweet_intro(texto, string_fecha) # ACA ESTA EL ERROR; STRING FECHA ESTA EN FORMADO MM.DD.YYYY, DEBERIA ESTAR EN YYYY.MM.DD tw_intro = tweet_intro(texto, fecha) kiosco = Kiosco() top_terminos = nlp.top_terminos(textos=[texto], n=15) top_verbos = nlp.top_verbos(textos=[texto], n=15) tw_terminos = tweet_terminos(top_terminos) tw_verbos = tweet_verbos(top_verbos) if parametros['twittear']: utiles.twittear_hilo([tw_intro, tw_terminos, tw_verbos], cuenta="dlp")
def test_armar_ngramas(self): nlp = NLP() nlp.__entrenar_ngramas__() return 1
def top_todo(parametros): fecha = parametros['fecha'] top_max = parametros['top_max'] medios = set(parametros['medios']) categorias = parametros['categorias'] twittear = parametros['twittear'] solo_titulos = parametros['solo_titulos'] kiosco = Kiosco() with open('medios/diarios/config.yaml', 'r') as stream: try: config = yaml.safe_load(stream) except yaml.YAMLError as exc: print(exc) nlp = NLP() nlp.separador = '' for diario in config['diarios']: tag = diario['tag'] if tag not in medios and len(medios) > 0: continue hashtag = diario['hashtag'] textos = [] contenido = "las noticias" if solo_titulos: textos = [ noticia['titulo'] for noticia in kiosco.noticias( diario=tag, categorias=categorias, fecha=fecha) ] contenido = "los títulos" else: textos = [ noticia['titulo'] + " " + noticia['titulo'] + " " + noticia['texto'] for noticia in kiosco.noticias( diario=tag, categorias=categorias, fecha=fecha) ] print("tag: " + tag + " textos: " + str(len(textos))) if len(textos) == 0: continue string_fecha = "" if type(fecha) is dict: string_fecha = fecha['desde'].strftime( "%d.%m.%Y") + " al " + fecha['hasta'].strftime("%d.%m.%Y") else: string_fecha = fecha.strftime("%d.%m.%Y") categorias = ["#" + c for c in categorias] secciones = "" if len(categorias) > 0: secciones = " de " + " y ".join( [", ".join(categorias[:-1]), categorias[-1]] if len(categorias) > 2 else categorias) texto = "Tendencias en " + contenido + secciones + " de " + hashtag + " del " + string_fecha + "\n" top_todo = nlp.top(textos, n=top_max) i = 0 for nombre, m in top_todo: linea = "" i += 1 if i >= 10: linea = str(i) + ". #" + nombre + " " + str(m) + "\n" texto += linea break else: linea = str(i) + ". #" + nombre + " " + str(m) + "\n" if twittear and len(texto) + len(linea) > 220: break else: texto += linea print(texto) if twittear: path_imagen = tag + ".png" utiles.nube_de_palabras(path=path_imagen, data=dict(top_todo)) utiles.twittear(texto=texto, path_imagen=path_imagen, cuenta="dlm")
def top_verbos(parametros): fecha = parametros['fecha'] top_max = parametros['top_max'] medios = set(parametros['medios']) categorias = parametros['categorias'] twittear = parametros['twittear'] solo_titulos = parametros['solo_titulos'] kiosco = Kiosco() with open('medios/diarios/config.yaml', 'r') as stream: try: config = yaml.safe_load(stream) except yaml.YAMLError as exc: print(exc) nlp = NLP() for diario in config['diarios']: tag = diario['tag'] if tag not in medios and len(medios) > 0: continue twitter = diario['twitter'] textos = [] contenido = "las noticias" if solo_titulos: textos = [ noticia['titulo'] for noticia in kiosco.noticias( diario=tag, categorias=categorias, fecha=fecha) ] contenido = "los títulos" else: textos = [ noticia['titulo'] + " " + noticia['titulo'] + " " + noticia['texto'] for noticia in kiosco.noticias( diario=tag, categorias=categorias, fecha=fecha) ] print("tag: " + tag + " textos: " + str(len(textos))) if len(textos) == 0: continue string_fecha = "" if type(fecha) is dict: string_fecha = fecha['desde'].strftime( "%d.%m.%Y") + " al " + fecha['hasta'].strftime("%d.%m.%Y") else: string_fecha = fecha.strftime("%d.%m.%Y") texto = "Tendencias en " + contenido + " de " + twitter + " del " + string_fecha + "\n" top_100 = nlp.top_verbos(textos, n=top_max) i = 0 for nombre, m in top_100: linea = "" i += 1 if i >= 10: linea = str(i) + ". #" + nombre + " " + str(m) + "\n" texto += linea break else: linea = str(i) + ". #" + nombre + " " + str(m) + "\n" if twittear and len(texto) + len(linea) > 220: break else: texto += linea print(texto)