|
@@ -75,11 +75,11 @@ public class DsMarkingServiceImpl implements DsMarkingService {
|
|
|
int scale = Math.max(getDecimalPlaces(request.getIntervalScore()),
|
|
|
getDecimalPlaces(request.getTotalScore()));
|
|
|
int stepCount = request.getStandardAnswer().size();
|
|
|
- String scoreStr = text.substring(text.lastIndexOf("\n") + 1).trim();
|
|
|
+ String scoreStr = null;
|
|
|
if (stepCount > 1) {
|
|
|
- scoreStr = fomatStrByRex(scoreStr);
|
|
|
+ scoreStr = fomatStrByRex(text);
|
|
|
} else {
|
|
|
- scoreStr = fomatStr(scoreStr);
|
|
|
+ scoreStr = fomatStr(text);
|
|
|
}
|
|
|
String[] scores = StringUtils.split(scoreStr, ",");
|
|
|
double[] scoreArray = new double[stepCount];
|
|
@@ -102,13 +102,18 @@ public class DsMarkingServiceImpl implements DsMarkingService {
|
|
|
}
|
|
|
|
|
|
private String fomatStr(String scoreStr) {
|
|
|
+ scoreStr = scoreStr.substring(scoreStr.lastIndexOf("\n") + 1).trim();
|
|
|
String ret = scoreStr.replaceAll(",", ",").replaceAll("。", "").replaceAll(":", ":").replaceAll("[0-9]\\.", "");
|
|
|
ret = ret.substring(ret.lastIndexOf(":") + 1).trim();
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
private String fomatStrByRex(String scoreStr) {
|
|
|
- String ret = scoreStr.replaceAll(",", ",").replaceAll("。", "").replaceAll(":", ":").replaceAll("[0-9]\\.", "");
|
|
|
+ int tag = scoreStr.lastIndexOf("</think>");
|
|
|
+ if (tag != -1) {
|
|
|
+ scoreStr = scoreStr.substring(tag).trim();
|
|
|
+ }
|
|
|
+ String ret = scoreStr.replaceAll(",", ",").replaceAll("。", "").replaceAll("[0-9]\\.", "");
|
|
|
Pattern pattern = Pattern.compile("(\\d{1,3}\\s*,\\s*)+\\d{1,3}");
|
|
|
Matcher matcher = pattern.matcher(ret);
|
|
|
if (matcher.find()) {
|
|
@@ -123,7 +128,9 @@ public class DsMarkingServiceImpl implements DsMarkingService {
|
|
|
}
|
|
|
|
|
|
public static void main(String[] args) {
|
|
|
- String scoreStr = "2个3,29,110 \\n\\n考生的回答完全覆盖了所有的关键内容,逻辑清晰,术语使用准确";
|
|
|
+ String scoreStr = "</think>。\\n\\n\\n70,70,60\\n\\n评分结果2个3,29,110 \\n\\n考生的回答完全覆盖了所有的关键内容,逻辑清晰,术语使用准确";
|
|
|
+ scoreStr = scoreStr.substring(scoreStr.lastIndexOf("</think>") + 1).trim();
|
|
|
+ System.out.println(scoreStr);
|
|
|
String ret = scoreStr.replaceAll(",", ",").replaceAll("。", "").replaceAll(":", ":").replaceAll("[0-9]\\.", "");
|
|
|
Pattern pattern = Pattern.compile("(\\d{1,3}\\s*,\\s*)+\\d{1,3}");
|
|
|
Matcher matcher = pattern.matcher(ret);
|