Necesito completar un codigo que haga lo siguiente
1. Número de tweets por tipo de bebida.
2. La bebida más mencionada
Adicionalmente, es necesario determinar cuántos tweets por tipo de bebida son "positivos" y, para esto, es
necesario verificar si existe una palabra positiva en el mismo tweet del tipo de bebida por lo que se le pide
calcular lo siguiente:
3. Número de palabras positivas por tipo de bebida.
4. La bebida con mejor evaluación positiva, en donde la evaluación corresponde al número de palabras
positivas que acompañan a la bebida por tweet.
5. La palabra positiva más repetida.
Tanto los nombres de bebidas como palabras positivas pueden aparecer más de una vez por tweet.
En ese
caso se debe contar múltiples veces un mismo tweet (cada aparición de la bebida y la palabra cuentan).
A continuación se listan los tipos de bebidas y las palabras positivas.
Bebidas
beer, gin, juice, suko, coca cola, Coca Cola, coca-cola, guarana, mojito, ron, tequila, wine .
Palabras positivas
save, hold, go for, drink, finished, Drinking, sound right, good, healthy, grande, great, enjoying, buy, free,
Hold, greatest, pong, get, orgulhoso, strawberry, plenty, got, win, tonic, fav, favorite, feed, courtesy, better,
taste, drinks, more, fresh, More, love, Love, popcorn, tastes, venti, prefiero, pizza, Pizza, likes, like, genial,
gosta, gusta, refrigerador, gustas, gostoso, gelado, reir, bom, tomar, beber, consumida, comsumir, fria,
comi, antojao, tomo, ganas, tomei, gostosa, shots.
Lo que llevo (no sé si voy por buen camino)
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <fstream>
using namespace std;
bool espositivo(string input)
{
string GoodWords = "save,hold,go for,drink,finished,Drinking,sound right,good,healthy,grande,great,enjoying,buy,free,Hold,greatest,pong,get,orgulhoso,strawberry,plenty,got,win,tonic,fav,favorite,feed,courtesy,better,taste,drinks,more,fresh,More,love,Love,popcorn,tastes,venti,prefiero,pizza,Pizza,likes,like,genial,gosta,gusta,refrigerador,gustas,gostoso,gelado,reir,bom,tomar,beber,consumida,comsumir,fria,comi,antojao,tomo,ganas,tomei,gostosa,shots";
char *dup = strdup(GoodWords.c_str());
char *aux2 = strtok(dup,",");
while(aux2)
{
if(input.find(aux2) != string::npos)
{
return true;
}
aux2 = strtok(NULL,",");
}
return false;
}
int main()
{
ifstream Lector;
Lector.open("tweets.txt");
string Linea;
int beer = 0;
int lineas = 0;
while(getline(Lector,Linea))
{
lineas++;
cout << Linea << endl;
if (Linea.find("beer") != string::npos && espositivo(Linea)) {
beer++;
}
}
cout << "Lineas " << lineas << " Beer positivas " << beer << endl;
}
Archivo utilizado
tweet.txt
http://www.mediafire.com/download/dzdas8zozsasbv3/tweets.txt (http://www.mediafire.com/download/dzdas8zozsasbv3/tweets.txt)
Y cual es tu duda?
Leer el archivo?
Contar tweets?
Buscar cadenas de texto?
Utilizar variables?
Saludos
Cita de: AlbertoBSD en 28 Junio 2016, 14:00 PM
Y cual es tu duda?
Leer el archivo?
Contar tweets?
Buscar cadenas de texto?
Utilizar variables?
Saludos
Hola,
Tengo la duda de cómo buscar la palabra más repetida, tener un conteo de eso y elegir la que más se repite y mostrarla
Necesitas usar find y recorer la cadena hasta el fin de la misma y un arreglo de contadores para saber cual es la palabra que mas se repitió.
Necesitas hacer un ciclo por cada token y a su vez por cada input.
Ahora si la lista de palabras ya la tieness por que no haces un arreglo de strings o de char *
string palabras[] ={"palabra1","palabras2",...};
o
char *palabras[] = {/*Lista aqui*/}
Saludos
Cita de: AlbertoBSD en 28 Junio 2016, 19:44 PM
Necesitas usar find y recorer la cadena hasta el fin de la misma y un arreglo de contadores para saber cual es la palabra que mas se repitió.
Necesitas hacer un ciclo por cada token y a su vez por cada input.
Ahora si la lista de palabras ya la tieness por que no haces un arreglo de strings o de char *
string palabras[] ={"palabra1","palabras2",...};
o
char *palabras[] = {/*Lista aqui*/}
Saludos
adjuntando lo que me dices , junto con lo que ya tenía...
¿ Cómo Quedaría ? o más bien ¿ En qué parte tengo que aplicar ese codigo que me enviaste ?
y Muchas gracias por tu atención amigo !
Ayudaaa !!
UP UP UP
MOD EDIT: No hacer doble post.