修改分词问题

master
whb 7 months ago
parent 1c2f9335e2
commit 83f5cb4733

@ -1,9 +1,11 @@
package com.sztzjy.marketing.controller.stu;
import cn.hutool.core.util.IdUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.sztzjy.marketing.annotation.AnonymousAccess;
import com.sztzjy.marketing.entity.dto.SentimentAnalyDTO;
import com.sztzjy.marketing.qianfan.util.Json;
import com.sztzjy.marketing.util.ResultEntity;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -14,6 +16,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.io.*;
import java.util.List;
import java.util.Map;
@RestController
@ -25,7 +29,7 @@ public class StuPythonController {
@ApiOperation("情感分析")
@AnonymousAccess
public ResultEntity validatePythonCode(@RequestBody JSONObject text) {
System.out.println(text);
// System.out.println(text);
String testText = text.getString("text");
String code = "from sentiment import Sentiment\n" +
"\n" +
@ -44,11 +48,11 @@ public class StuPythonController {
// 替换代码中的 test_text 为实际的 testText
String updatedCode = code.replace("'有什么我真的很无助,我真的不知道说你什么好'", "'" + testText + "'");
System.out.println(updatedCode);
//System.out.println(updatedCode);
try {
String s = IdUtil.simpleUUID();
String tempPythonFile = "/usr/local/tianzeProject/digitalMarketing/cnsenti/cnsenti/" + s + ".py";
System.out.println("文件是多少多少:"+tempPythonFile);
File file1 = new File(tempPythonFile);
// 确保父目录存在
@ -79,7 +83,7 @@ public class StuPythonController {
try (PrintWriter out = new PrintWriter(file1)) {
out.println(updatedCode);
}
System.out.println("文件路径为1111111111:"+tempPythonFile);
// 确认 Docker 命令
String[] command = {"docker", "exec", "pyexe", "python", tempPythonFile};
@ -106,21 +110,28 @@ public class StuPythonController {
// 等待进程执行完成
int exitCode = process.waitFor();
if (exitCode == 0) {
JSONObject jsonObject = new JSONObject(Boolean.parseBoolean(output.toString()));
// 访问JSON对象的属性
String pos = jsonObject.getString("pos");
String neg = jsonObject.getString("neg");
String outputStr = output.toString().trim();
// 使用正则表达式替换 np.float64(...) 为其内部的值
if (outputStr.contains("np.float64")){
outputStr = outputStr.replaceAll("np\\.float64\\(([0-9\\.]+)\\)", "$1");
}else if (outputStr.contains("np.int64")){
outputStr = outputStr.replaceAll("np\\.int64\\(([0-9\\.]+)\\)", "$1");
}
SentimentAnalyDTO sentimentAnalyDTO=new SentimentAnalyDTO();
sentimentAnalyDTO.setPos(pos);
sentimentAnalyDTO.setNeg(neg);
Map<String,Object> parse = JSONObject.parseObject(outputStr, Map.class);
Object posStr = parse.get("pos");
Object negStr = parse.get("neg");
SentimentAnalyDTO sentimentAnalyDTO = new SentimentAnalyDTO();
sentimentAnalyDTO.setPos(posStr.toString());
sentimentAnalyDTO.setNeg(negStr.toString());
System.out.println("Python code output:\n" + output.toString());
// System.out.println("Python code output:\n" + output.toString());
return new ResultEntity(HttpStatus.OK, sentimentAnalyDTO);
} else {
System.err.println("Error executing Python code:\n" + errors.toString());
// System.err.println("Error executing Python code:\n" + errors.toString());
return new ResultEntity(HttpStatus.INTERNAL_SERVER_ERROR, errors.toString());
}
} catch (IOException | InterruptedException e) {
@ -128,4 +139,6 @@ public class StuPythonController {
return new ResultEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
}
}
}

Loading…
Cancel
Save