示例#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
示例#2
0
def literal3(frase):
    temp = []
    print("literal 3")
    temp.append(frase)
    temp = nl.minusculas(temp)
    temp = nl.eliminarce(temp)
    try:
        c1 = TextBlob(frase).translate(from_lang='es', to='en')
        print(c1.sentiment)
        return c1.sentiment
    except:
        print('corregido error')
        return ['na', 'na']


##################################################
示例#3
0
def literal2():
    print("literal 2")
    #Lee el DatasetGlobal.csv
    tt, etiquetado = lc.leercsv('modelo/datasetGlobal.csv')
    #Proceso NLP
    tw = tt[:]
    tt = nl.minusculas(tt[:1000])
    tt = nl.eliminarce(tt)
    tt = nl.tokenizar(tt)
    tt = nl.qstopwords(tt, 1)
    tt = nl.stemmer(tt)
    print('Generando Diccionario')
    dic = nl.generardic(tt)
    print('Generando Bolsa de Palabras')
    bolsa = nl.inverted(tt, dic)
    print('Maquina de Soporte Vectorial')
    return mv.maqvec(bolsa, etiquetado[:1000], tw)
示例#4
0
def textblob(temp1):
    temp1 = nl.minusculas(temp1)
    temp1 = nl.eliminarce(temp1)
    sentimiento = []
    for tweet in temp1:
        try:
            c1 = TextBlob(tweet).translate(from_lang='es', to='en')
            if (c1.sentiment.polarity >= -1 and c1.sentiment.polarity < 0):
                sentimiento.append(-1)
            elif (c1.sentiment.polarity == 0):
                sentimiento.append(0)
            elif (c1.sentiment.polarity > 0 and c1.sentiment.polarity <= 1):
                sentimiento.append(1)
        except Exception as e:
            print(e)
            print('corregido error')
            sentimiento.append(0)
            #sentimiento.append('na')
    return sentimiento
示例#5
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
示例#6
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
示例#7
0
文件: main.py 项目: mjacomes1/Proy
    print("Porcentaje de Negativos: ", round(contneg / len(total), 2))
    print("Porcentaje de Neutros: ", round(contneutro / len(total), 2))
    print("Total de Tweets: ", len(total))


###########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)