diff --git a/.gitignore b/.gitignore
index 4c42c8f..a432c81 100644
--- a/.gitignore
+++ b/.gitignore
@@ -33,6 +33,7 @@ nbproject/private/
build/*
nbbuild/
dist/
+dist.zip
nbdist/
.nb-gradle/
diff --git a/ruoyi-biemo/pom.xml b/ruoyi-biemo/pom.xml
index b455f69..7a8ffc1 100644
--- a/ruoyi-biemo/pom.xml
+++ b/ruoyi-biemo/pom.xml
@@ -35,6 +35,10 @@
org.springframework.boot
spring-boot-starter-data-mongodb
+
+ org.springframework.boot
+ spring-boot-starter-data-redis
+
cn.hutool
hutool-all
diff --git a/ruoyi-biemo/src/main/java/com/ruoyi/biemo/business/controller/ReportController.java b/ruoyi-biemo/src/main/java/com/ruoyi/biemo/business/controller/ReportController.java
index d07abfe..1569f31 100644
--- a/ruoyi-biemo/src/main/java/com/ruoyi/biemo/business/controller/ReportController.java
+++ b/ruoyi-biemo/src/main/java/com/ruoyi/biemo/business/controller/ReportController.java
@@ -4,6 +4,7 @@ import com.ruoyi.biemo.business.domain.Report;
import com.ruoyi.biemo.business.service.ReportService;
import com.ruoyi.biemo.core.page.Page;
import com.ruoyi.biemo.core.page.PageFactory;
+import com.ruoyi.biemo.nlp.WordVectorModelUtils;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
@@ -95,4 +96,10 @@ public class ReportController
return AjaxResult.success("查询成功",reportService.ticket2token(ticket));
}
+
+ @PostMapping("/similar")
+ public AjaxResult similar(String text1,String text2){
+ return AjaxResult.success(WordVectorModelUtils.similarCount(text1,text2));
+ }
+
}
diff --git a/ruoyi-biemo/src/main/java/com/ruoyi/biemo/nlp/WordVectorModelUtils.java b/ruoyi-biemo/src/main/java/com/ruoyi/biemo/nlp/WordVectorModelUtils.java
new file mode 100644
index 0000000..662d830
--- /dev/null
+++ b/ruoyi-biemo/src/main/java/com/ruoyi/biemo/nlp/WordVectorModelUtils.java
@@ -0,0 +1,59 @@
+package com.ruoyi.biemo.nlp;
+
+import com.hankcs.hanlp.corpus.io.IOUtil;
+import com.hankcs.hanlp.mining.word2vec.DocVectorModel;
+import com.hankcs.hanlp.mining.word2vec.Word2VecTrainer;
+import com.hankcs.hanlp.mining.word2vec.WordVectorModel;
+import com.ruoyi.biemo.utils.TestUtility;
+
+import java.io.IOException;
+
+/**
+ * 词向量工具
+ */
+public class WordVectorModelUtils {
+
+ private static final String TRAIN_FILE_NAME = TestUtility.ensureTestData("搜狗文本分类语料库已分词.txt", "http://hanlp.linrunsoft.com/release/corpus/sogou-mini-segmented.zip");
+ private static final String MODEL_FILE_NAME = "data/test/word2vec.txt";
+
+ //相似度计算
+ public static Float similarCount(String text1,String text2) {
+ WordVectorModel wordVectorModel = null;
+ try {
+ wordVectorModel = trainOrLoadModel();
+ DocVectorModel docVectorModel = new DocVectorModel(wordVectorModel);
+ return docVectorModel.similarity(text1, text2);
+ } catch (IOException ioException) {
+ ioException.printStackTrace();
+ return null;
+ }
+ }
+
+ public static void main(String[] args) throws Exception{
+ System.out.println(similarCount("沙尔克 VS 斯图加特 初盘 主队 水位 偏高 目前 斯图加特 客场 路有 反弹 迹象 排除 客队 可能 ","沃尔夫斯堡 VS 凯泽斯劳滕 一线 战役 庄家 开出 较高 平局 赔率 想必 有望 分出 胜负"));
+ }
+
+
+
+ static WordVectorModel trainOrLoadModel() throws IOException
+ {
+ if (!IOUtil.isFileExisted(MODEL_FILE_NAME))
+ {
+ if (!IOUtil.isFileExisted(TRAIN_FILE_NAME))
+ {
+ System.err.println("语料不存在,请阅读文档了解语料获取与格式:https://github.com/hankcs/HanLP/wiki/word2vec");
+ System.exit(1);
+ }
+ Word2VecTrainer trainerBuilder = new Word2VecTrainer();
+ return trainerBuilder.train(TRAIN_FILE_NAME, MODEL_FILE_NAME);
+ }
+
+ return loadModel();
+ }
+
+ static WordVectorModel loadModel() throws IOException
+ {
+ return new WordVectorModel(MODEL_FILE_NAME);
+ }
+
+}
diff --git a/ruoyi-ui/src/api/biemo/report.js b/ruoyi-ui/src/api/biemo/report.js
index c1cb90e..0e191da 100644
--- a/ruoyi-ui/src/api/biemo/report.js
+++ b/ruoyi-ui/src/api/biemo/report.js
@@ -42,3 +42,13 @@ export function delReport(id) {
method: 'delete'
})
}
+
+
+// 相似度计算
+export function similar(query) {
+ return request({
+ url: '/makesoft/report/similar',
+ method: 'post',
+ params: query
+ })
+}
diff --git a/ruoyi-ui/src/views/docInfo/index.vue b/ruoyi-ui/src/views/docInfo/index.vue
index 49dcde0..e4ad55a 100644
--- a/ruoyi-ui/src/views/docInfo/index.vue
+++ b/ruoyi-ui/src/views/docInfo/index.vue
@@ -1,6 +1,6 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+ 计算相似
+ 清空
+
+
+
+
+
+