J'ai un jeu de données de 1 million de phrases étiquetées et je l'utilise pour trouver des sentiments à l'aide de l'entropie maximale. J'utilise Stanford classificateur pour la même: -Enregistrement et chargement d'un classificateur Stanford formé en Java
public class MaximumEntropy {
static ColumnDataClassifier cdc;
public static float calMaxEntropySentiment(String text) {
initializeProperties();
float sentiment = (getMaxEntropySentiment(text));
return sentiment;
}
public static void initializeProperties() {
cdc = new ColumnDataClassifier(
"\\stanford-classifier-2016-10-31\\properties.prop");
}
public static int getMaxEntropySentiment(String tweet) {
String filteredTweet = TwitterUtils.filterTweet(tweet);
System.out.println("Reading training file");
Classifier<String, String> cl = cdc.makeClassifier(cdc.readTrainingExamples(
"\\stanford-classifier-2016-10-31\\labelled_sentences.txt"));
Datum<String, String> d = cdc.makeDatumFromLine(filteredTweet);
System.out.println(filteredTweet + " ==> " + cl.classOf(d) + " " + cl.scoresOf(d));
// System.out.println("Class score is: " +
// cl.scoresOf(d).getCount(cl.classOf(d)));
if (cl.classOf(d) == "0") {
return 0;
} else {
return 4;
}
}
}
Mes données est étiqueté 0 ou 1. Maintenant, pour chaque tweet l'ensemble des données est en cours de lecture et il prend beaucoup de temps compte tenu de la taille des données. Ma requête est-ce qu'il y a un moyen de former le classificateur, puis de le charger quand le sentiment d'un tweet doit être trouvé. Je pense que cette approche prendra moins de temps. Corrigez-moi si je me trompe. Le lien suivant fournit ceci mais il n'y a rien pour l'API JAVA. Saving and Loading Classifier Toute aide serait appréciée.
Merci beaucoup –