Okay ! Je viens poser mon premier problème pour un projet de bases de données pour mon DUT Info.
J'explique :
On a un fichier csv contenant ~260k tweets contenant tous le mot "ukraine" dedans.
Code:
"Mon Mar 18 16:16:59 CET 2013";"@FritzingOrg";"How";"is";"the";"digital";"age";"influencing";"our";"daily";"lifes?";"http://t.co/fbmg6ephEp"
"Mon Mar 18 16:17:03 CET 2013";"@benpro82";"RT";"@mikko:";"Congratulations";"to";"http://t.co/9mU6xf4DNC";"for";"hitting";"double";"digits!#highscore"
"Mon Mar 18 16:18:51 CET 2013";"@arduino";"RT";"@tinkerguymod:";"As";"a";"kid";"I";"couldn't";"afford";"equipment";"I";"needed,";"now";"I";"share";"what";"I";"have";"&";"teach";"what";"I";"know.";"";"@make";"@arkmod";"#Tinkerfest"
"Mon Mar 18 16:19:51 CET 2013";"@arduino";"RT";"@curiousoctopus:";"Every";"hacker’s";"and";"maker’s";"dream:";"“@DomusWeb:";"Ivrea,";"a";"visit";"to";"the";"production";"facilities";"of";"the";"@Arduino";"platform";"h";"..."
"Mon Mar 18 16:20:22 CET 2013";"@arduino";"RT";"@dcuartielles:";"some";"more";"examples";"from";"the";"@Arduino";"Castilla";"experiment:";"https://t.co/eXMGiy0RRh"
"Mon Mar 18 16:20:35 CET 2013";"@Xavier_Combelle";"RT";"@el_agar:";"Les";"Enfoirés,";"cette";"étrange";"émission";"dans";"laquelle";"des";"millionnaires";"demandent";"aux";"smicards";"de";"donner";"aux";"RMIstes."
... `
On veut convertir ce fichier csv en un fichier "trans". Chaque mot unique du pool de tweets à notre disposition aura un entier qui lui est affecté.
Code:
1 2 3 4 5 6
7 1 3 8 9 10
1 11 12 13 14
15 16 17 18 19
Cette conversion est nécessaire pour utiliser un algorithme qui nous est fourni dans le projet.
Le problème c'est que dans notre première implémentation, pour chaque mot de chaque tweet, on fait un parcours de notre tableau contenant tous les mots déja enregistrés des tweets déja traités, ce qui n'est pas idéal.
Je pense donc qu'il est indispensable qu'on (mon équipier de projet et moi) optimise notre recherche du mot courant dans la liste des mots connus. Faut-il que l'on trie notre liste après chaque tweet pour avoir accès à une recherche la plus rapide possible après chaque tweet traité ? Ou autre chose, je sais pas trop.
J'ai l'impression de pas m'être très bien expliqué donc bon
.
Voici notre boucle de conversion actuelle (c'est du Java) :
Code:
while (scanner.hasNextLine()){
lineRead = scanner.nextLine();
// System.out.println(lineRead);
tweets = lineRead.split(";");
for (int i = 2; i < tweets.length; ++i){
if (! collectTweet.contains(tweets[i])){
Convertisseur.setCollectTweet(tweets[i]);
}
}
FileWriter fichier = new FileWriter(trans, true);
for (int j = 0; j < tweets.length; ++j) {
for (int i = 0; i < collectTweet.size(); ++i){
if (tweets[j].equals(collectTweet.get(i))){
fichier.write(i + " ");fichier.flush();
}
}
}
P.S : 50 minutes d'éxecution actuellement et c'est toujours pas fini
.