Exemple #1
0
def literal1(n):
    rs = []
    print("Literal 1")
    #Consultando Tweets
    tweet, fecha = tw.obtenerTweets(n)
    temp = tweet[:]
    #Proceso NLP
    tweet = nl.minusculas(tweet)
    tweet = nl.eliminarce(tweet)
    tweet = nl.tokenizar(tweet)
    tweet = nl.qstopwords(tweet, 1)
    #Obteniendo Diccionarios
    dicposi = lc.leerTxt('modelo/dic_posi.txt')
    dicneg = lc.leerTxt('modelo/dic_neg.txt')

    print("***************Jaccard*********************")
    #Jaccard de Negativos
    negativo = ja.vectores(tweet, dicneg)
    #Jaccard de Positivos
    positivo = ja.vectores(tweet, dicposi)
    #Obteniendo Resultados
    est1, cl1 = categorizar(positivo, negativo)
    rs.append(est1)

    print("\n*************Coseno*******************")
    #Coseno de Negativos
    tweetneg = []
    tweetneg.append(dicneg)
    tweetneg = tweetneg + tweet
    invertit = nl.inverted(tweetneg, dicneg)
    df = cs.df(invertit)
    idf = cs.idf(df, len(invertit[0]))
    wtf = cs.wtf(invertit)
    tfidf = cs.tfidf(wtf, idf)
    modulo = cs.modulo(tfidf)
    longnorneg = cs.longnorm(tfidf, modulo)
    vectorneg = cs.vectordistance(longnorneg)
    #Coseno de Positivos
    tweetpos = []
    tweetpos.append(dicposi)
    tweetpos = tweetpos + tweet
    invertit = nl.inverted(tweetpos, dicposi)
    df = cs.df(invertit)
    idf = cs.idf(df, len(invertit[0]))
    wtf = cs.wtf(invertit)
    tfidf = cs.tfidf(wtf, idf)
    modulo = cs.modulo(tfidf)
    longnorpos = cs.longnorm(tfidf, modulo)
    vectorpos = cs.vectordistance(longnorpos)
    #Obteniendo Resultados, columnas = vectorneg[0,1:]
    # filas = vectorneg[1:,0]
    est, cl = categorizar(vectorpos[1:, 0], vectorneg[1:, 0])

    rs.append(est)
    rs.append(cl1)
    rs.append(cl)
    rs.append(temp)
    rs.append(fecha)
    return rs
def maqvec(tweets):
    #'''
    #leer diccionario quemado para optimizar tiempo
    dic = lc.leerTxt('modelo/dic_datasetGlobal.txt')

    tt1 = nl.stemmer(tweets)
    #BOLSA
    bolsa1 = nl.inverted(tt1, dic)
    bolsa1 = np.array(bolsa1).T

    #importar modelo
    import pickle
    loaded_model = pickle.load(open('modelo/SVM.pkl', 'rb'))

    #Realizo una predicción
    y_pred = loaded_model.predict(bolsa1)
    return [int(i) for i in y_pred.tolist()]
Exemple #3
0
def topicmodeling(n):
    tpm = []
    #stopwords
    n4 = stopwords.words('spanish')
    n4.append('gt')
    n4.append('oms')
    n4.append('así')
    n4.append('aquí')
    n4.append('cómo')

    print("Topic Modeling")
    #nlp
    tweet, fecha = tw.obtenerTweets(n)
    tweet = nl.minusculas(tweet)
    tweet = nl.eliminarce(tweet)
    tt = tweet[:]
    tweet = nl.tokenizar(tweet)
    tweet = nl.qstopwords(tweet, 1)

    #Diccionario
    id2word = corpora.Dictionary(tweet)
    #Bolsa de palabras
    corpus = [id2word.doc2bow(text) for text in tweet]
    #algoritmo lda_model
    lda_model = gensim.models.ldamodel.LdaModel(corpus=corpus,
                                                id2word=id2word,
                                                num_topics=4,
                                                random_state=100,
                                                update_every=1,
                                                chunksize=100,
                                                alpha='auto')

    topics = []
    for idx, topic in lda_model.print_topics(num_topics=4, num_words=10):
        tp = topic.split('+')
        tp = [w.split('*') for w in tp]
        topics.append(tp)

    temp = []
    for top in topics:
        t = []
        for j in top:
            t.append(j[1].replace('"', '').strip())
        temp.append(t)

    tpm.append(temp)
    #print(temp)

    #Obteniendo Diccionarios
    dicposi = lc.leerTxt('modelo/dic_posi.txt')
    dicneg = lc.leerTxt('modelo/dic_neg.txt')

    print("***************Jaccard Topics***************")
    #Jaccard de Negativos
    negativo = ja.vectores(temp, dicneg)
    #Jaccard de Positivos
    positivo = ja.vectores(temp, dicposi)
    #Obteniendo Resultados
    est1, cl1 = categorizar(positivo, negativo)

    #Vector para enviar a al web
    tpm.append(est1)
    tpm.append(cl1)

    #Preparando Visualizacion
    vis = pyLDAvis.gensim.prepare(lda_model, corpus, id2word)
    pyLDAvis.save_html(vis, 'templates/LDA_Visualization.html')

    #Unir tweets en uno solo
    text = "".join(review for review in tt)
    #wordcloud
    wordcloud = WordCloud(max_font_size=50,
                          background_color="white").generate(text)
    #Guardar Imagen
    wordcloud.to_file("static/wordc/0.png")
    return tpm
Exemple #4
0
def literal1(n, fechaInicio, fechaFin):

    print("Procesos")
    #Consultando Tweets
    tweet, fecha = tw.obtenerTweets(n, fechaInicio, fechaFin)
    #variable q contiene los tweets generales
    temp = tweet[:]
    #variable q contiene los tweets generales
    tempo = temp[:]
    #Proceso NLP
    tweet = nl.minusculas(tweet)
    tweet = nl.eliminarce(tweet)
    tweet = nl.tokenizar(tweet)
    tweet = nl.qstopwords(tweet, 1)

    #Proceso Nube
    vec_nube_temp = []
    for review in tweet:
        vec_nube_temp += review

    #Obteniendo Diccionarios
    dicposi = lc.leerTxt('modelo/dic_posi.txt')
    dicneg = lc.leerTxt('modelo/dic_neg.txt')

    #Cantidad Tweets
    print("Cantidad de tweets: " + str(len(tweet)))

    print("\n-- Topic Modeling --")
    #tpm.topicmodeling(tweet)
    #hilo = Thread(target=tpm.topicmodeling, args=(tweet,))
    #hilo.start()
    #hilo.join()

    print("\n-- Jaccard --")
    #Jaccard de Negativos
    negativo = ja.vectores(tweet, dicneg)
    #Jaccard de Positivos
    positivo = ja.vectores(tweet, dicposi)
    #Obteniendo Resultados
    rsJaccard = categorizar(positivo, negativo)

    print("\n-- Coseno --")
    #Coseno de Negativos
    vectorneg = cs.coseno(tweet, dicneg)
    #Coseno de Positivos
    vectorpos = cs.coseno(tweet, dicposi)
    #Obteniendo Resultados, columnas = vectorneg[0,1:]
    # filas = vectorneg[1:,0]
    rsCoseno = categorizar(vectorpos[1:, 0], vectorneg[1:, 0])

    print("\n-- TextBlob --")
    rsTextBlob = txtbl.textblob(tempo)

    print("\n-- SVM --")
    rsSVM = mv.maqvec(tweet)

    print("\n-- Voting --")
    rsVoting = vt.voting(rsJaccard, rsCoseno, rsTextBlob, rsSVM)

    print("-- Envio al servidor --")
    rs = []
    rs.append(fecha)  #fecha
    rs.append(temp)  #tweet general
    rs.append(rsJaccard)  #Jaccard
    rs.append(rsCoseno)  #Coseno
    rs.append(rsTextBlob)  #TextBlob
    rs.append(rsSVM)  #SVM
    rs.append(rsVoting)  #Voting
    rs.append(" ".join(review2
                       for review2 in vec_nube_temp))  #Datos para la nube

    return rs
Exemple #5
0
###########EJECUCION###################3
from controlador import servidor as sv

sv.correr()

print("Literal 1")
tweet = tw.obtenerTweets(5)
temp = tweet[:]
print(tweet)
tweet = nl.minusculas(tweet)
tweet = nl.eliminarce(tweet)
tweet = nl.tokenizar(tweet)
tweet = nl.qstopwords(tweet, 1)
tweet = nl.stemmer(tweet)

dicposi = lc.leerTxt('modelo/dic_posi.txt')
dicneg = lc.leerTxt('modelo/dic_neg.txt')

print("***************Jaccard*********************")
#print('negativo')
negativo = ja.vectores(tweet, dicneg)
#print(negativo)
#print('positivo')
positivo = ja.vectores(tweet, dicposi)
#print(positivo)
categorizar(positivo, negativo)

print("\n*************Coseno*******************")
#print('negativo')
tweetneg = []
tweetneg.append(dicneg)