diff --git a/pom.xml b/pom.xml
index 583c05e..b10ec0b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -60,6 +60,12 @@
portable-1.8.4
+
+ org.apache.opennlp
+ opennlp-tools
+ 1.9.3
+
+
ch.qos.logback
diff --git a/src/main/java/xyz/wbsite/ai/Opennlp_Example.java b/src/main/java/xyz/wbsite/ai/Opennlp_Example.java
new file mode 100644
index 0000000..b5d3ff2
--- /dev/null
+++ b/src/main/java/xyz/wbsite/ai/Opennlp_Example.java
@@ -0,0 +1,80 @@
+package xyz.wbsite.ai;
+
+import cn.hutool.core.io.IoUtil;
+import opennlp.tools.doccat.*;
+import opennlp.tools.util.InputStreamFactory;
+import opennlp.tools.util.ObjectStream;
+import opennlp.tools.util.PlainTextByLineStream;
+import opennlp.tools.util.TrainingParameters;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.charset.Charset;
+
+public class Opennlp_Example {
+ public static void main(String[] args) {
+ try {
+ // 读取训练数据
+ InputStreamFactory dataIn = () -> IoUtil.toStream("""
+ 好 这部电影真是太棒了!
+ 好 这部电影演的太棒了!
+ 好 这部电影演的太好了!
+ 好 这部电影主演演的太好了!
+ 好 这部电影非常棒
+ 好 这部电影很棒
+ 好 电影演的太好了
+ 好 电影演的好了
+ 好 好莱坞的最新电影大受欢迎
+ 差 这电影一点也不好看
+ 差 这电影演的太差了
+ 差 这电影演的差到极点
+ 差 这电影真差
+ 差 这电影太差
+ 差 这电影不能看,太垃圾
+ 差 这电影不好看
+ 差 这电影不能看
+ 差 这电影真看不下去
+ 差 这电影真的不好看
+ """, Charset.defaultCharset());
+
+ ObjectStream lineStream = new PlainTextByLineStream(dataIn, "UTF-8");
+ ObjectStream sampleStream = new DocumentSampleStream(lineStream);
+
+
+ TrainingParameters params = new TrainingParameters();
+ params.put(TrainingParameters.ITERATIONS_PARAM, 100);
+ params.put(TrainingParameters.CUTOFF_PARAM, 0);
+
+ // 训练模型
+ DoccatModel model = DocumentCategorizerME.train("en", sampleStream, params, new DoccatFactory());
+
+ // 保存模型
+ model.serialize(new File("test-model.bin"));
+
+ // 关闭流
+ sampleStream.close();
+ lineStream.close();
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+
+ try {
+ // 加载模型
+ DoccatModel model = new DoccatModel(new File("test-model.bin"));
+ DocumentCategorizerME categorizer = new DocumentCategorizerME(model);
+
+ // 待分类的文本
+ String text = "这电影真的不好看啊";
+
+ // 进行分类
+ double[] outcomes = categorizer.categorize(new String[]{text});
+ String category = categorizer.getBestCategory(outcomes);
+
+ // 输出分类结果
+ System.out.println("Text: " + text);
+ System.out.println("Category: " + category);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+}