gpt4 book ai didi

java - 在java中保存和加载经过训练的斯坦福分类器

转载 作者:行者123 更新时间:2023-11-30 02:35:58 24 4
gpt4 key购买 nike

我有一个包含 100 万个标记句子的数据集,并使用它通过最大熵查找情感。我正在使用斯坦福分类器来实现同样的目的:-

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;
}
}
}

我的数据标记为 0 或 1。现在,对于每条推文,都会读取整个数据集,考虑到数据集的大小,需要花费大量时间。我的问题是,有没有办法首先训练分类器,然后在找到推文的情绪时加载它。我认为这种方法会花费更少的时间。如果我错了请纠正我。以下链接提供了此内容,但没有 JAVA API 的任何内容。 Saving and Loading Classifier任何帮助将不胜感激。

最佳答案

是的;最简单的方法是使用 Java 的默认序列化机制来序列化分类器。这里一个有用的助手是 IOUtils 类:

IOUtils.writeObjectToFile(classifier, "/path/to/file");

读取分类器:

Classifier<String, String> cl = IOUtils.readObjectFromFile(new File("/path/to/file");

关于java - 在java中保存和加载经过训练的斯坦福分类器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43061992/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com