文档服务地址:http://47.92.0.57:3000/ 周报索引地址:http://47.92.0.57:3000/s/NruNXRYmV

Commit 70ebd791 by ren

删除文件 增加文本组显示上一次分数的功能

parent 7176ae60
...@@ -323,6 +323,7 @@ export default { ...@@ -323,6 +323,7 @@ export default {
begin: this.token.begin, begin: this.token.begin,
end: this.token.end, end: this.token.end,
entityId: this.token.entityId, entityId: this.token.entityId,
checked: false,
attribute: arr, attribute: arr,
}, },
}, },
......
...@@ -131,6 +131,23 @@ export default { ...@@ -131,6 +131,23 @@ export default {
this.relationId = this.$route.params.relationId; this.relationId = this.$route.params.relationId;
this.piece = this.$route.params.piece; this.piece = this.$route.params.piece;
this.executors = this.$route.params.executor; this.executors = this.$route.params.executor;
this.axios({
method: "get",
params: {
relationId: this.relationId,
},
url: "textAnnotation/getScore",
}).then((res) => {
this.computeScore = res['result']
// console.log("dafennjg");
if (res['return_code'] !== "200") {
alert("保存标注判断失败!");
}
});
}, },
methods: { methods: {
handleNodeClick(data, checked, node) { handleNodeClick(data, checked, node) {
...@@ -146,7 +163,6 @@ export default { ...@@ -146,7 +163,6 @@ export default {
}, },
countScore(selectToken) { countScore(selectToken) {
var flag = true; var flag = true;
console.log(this.rightTokenList);
for(var i=0;i<this.rightTokenList.length;i++){ for(var i=0;i<this.rightTokenList.length;i++){
if(selectToken.word == this.rightTokenList[i].word){ if(selectToken.word == this.rightTokenList[i].word){
flag = false; flag = false;
...@@ -169,7 +185,9 @@ export default { ...@@ -169,7 +185,9 @@ export default {
this.rightScore = this.rightTokenList.length; this.rightScore = this.rightTokenList.length;
this.allScore = this.tokenList.length; this.allScore = this.tokenList.length;
this.computeScore = (this.rightScore / this.allScore) * 100; this.computeScore = (this.rightScore / this.allScore) * 100;
console.log(this.computeScore) // console.log(this.computeScore)
// console.log("rightTokenList",this.rightTokenList);
// console.log("tokenList",this.tokenList);
// console.log(this.allScore); // console.log(this.allScore);
}, },
// 插入数据库 // 插入数据库
...@@ -251,13 +269,15 @@ export default { ...@@ -251,13 +269,15 @@ export default {
this.content = this.contentWithoutColor; this.content = this.contentWithoutColor;
this.allScore = 0; this.allScore = 0;
res.result.forEach((element) => { res.result.forEach((element) => {
// console.log("element", element)
// console.log("this.rightTokenList", this.rightTokenList)
this.tokenInit = element; this.tokenInit = element;
this.tokenInit.checked = false; this.tokenInit.checked = element.checked;
this.rightTokenList.forEach((item)=>{ this.rightTokenList.forEach((item)=>{
if(item.word == this.tokenInit.word) if(item.word == this.tokenInit.word)
this.tokenInit.checked = true; this.tokenInit.checked = true;
}) })
console.log(" token: " + JSON.stringify(this.tokenInit)); // console.log(" token: " + JSON.stringify(this.tokenInit));
this.tokenList.push(this.tokenInit); this.tokenList.push(this.tokenInit);
let replaceReg = new RegExp(this.tokenInit.word, "g"); // 匹配关键字正则 let replaceReg = new RegExp(this.tokenInit.word, "g"); // 匹配关键字正则
let replaceString = let replaceString =
...@@ -274,6 +294,15 @@ export default { ...@@ -274,6 +294,15 @@ export default {
this.content = this.content.replace(replaceReg, replaceString); this.content = this.content.replace(replaceReg, replaceString);
}); });
console.log(" this.tokenList: " + JSON.stringify(this.tokenList)); console.log(" this.tokenList: " + JSON.stringify(this.tokenList));
//初始化tokenList后,将checked=true的元素推入rightTokenList中
this.tokenList.forEach((element) => {
console.log(element)
if(element.checked){
this.rightTokenList.push(element);
}
})
} else { } else {
this.$message({ this.$message({
message: res.return_info, message: res.return_info,
...@@ -367,6 +396,7 @@ export default { ...@@ -367,6 +396,7 @@ export default {
begin: this.token.begin, begin: this.token.begin,
end: this.token.end, end: this.token.end,
entityId: this.token.entityId, entityId: this.token.entityId,
checked: this.token.checked,
attribute: arr, attribute: arr,
}, },
}, },
...@@ -489,6 +519,8 @@ export default { ...@@ -489,6 +519,8 @@ export default {
userId: this.$route.params.executor.id, userId: this.$route.params.executor.id,
fileId: this.$route.params.file.id, fileId: this.$route.params.file.id,
score: this.computeScore, score: this.computeScore,
correctnum:this.computeScore,
num: 100,
}, },
url: "task/gradePieces", url: "task/gradePieces",
}).then((res) => { }).then((res) => {
...@@ -501,6 +533,22 @@ export default { ...@@ -501,6 +533,22 @@ export default {
// this.$router.push({ path: "/taskhall" }); // this.$router.push({ path: "/taskhall" });
} }
}); });
//修改token列表的checked状态
this.axios({
method: "post",
params: {
documentId: this.documentId,
tokenList: JSON.stringify(this.tokenList)
},
url: "textAnnotation/revTokenChecked",
}).then((res) => {
console.log("res", res);
// console.log("dafennjg");
if (res['return_code'] !== "200") {
alert("保存标注判断失败!");
}
});
}, },
// 打分 // 打分
addScore() { addScore() {
......
...@@ -30,6 +30,14 @@ class Relation(Model): ...@@ -30,6 +30,14 @@ class Relation(Model):
database = mysql database = mysql
def find_score_by_id(relation_id):
try:
score = Relation.get(Relation.relation_id == relation_id).score
except:
return False
else:
return score
def find_slice_by_id(relation_id): def find_slice_by_id(relation_id):
try: try:
slice_id = Relation.get(Relation.relation_id == relation_id).slice_id slice_id = Relation.get(Relation.relation_id == relation_id).slice_id
......
前端:
区分已被选择三次的分片和其他可选分片
发布者终止任务按钮
标注者我的任务界面区分被终止任务
标注者主动删除任务
后端:
限制对已选择三次的分片的再选
终止任务的后端删除
前端:
区分已被选择三次的分片和其他可选分片
发布者终止任务按钮
标注者我的任务界面区分被终止任务
标注者主动删除任务
后端:
限制对已选择三次的分片的再选
终止任务的后端删除
var Student = /** @class */ (function () {
function Student(firstName, middleInitial, lastName) {
this.firstName = firstName;
this.middleInitial = middleInitial;
this.lastName = lastName;
this.fullName = firstName + " " + middleInitial + " " + lastName;
}
return Student;
}());
function greeter(person) {
return "Hello, " + person.firstName + " " + person.lastName;
}
var user = new Student("Jane", "M", "User");
document.body.textContent = greeter(user);
参加过一次软院心理讲座,但是未录入
有博雅记录的一共4次
总共5次博雅
\ No newline at end of file
1.数据单创建任务;
2.分数准确率,发布分数等检验;
3.bug(登录时候的无反馈,用户页面的无反馈)
4.bug(slice/getpieces 400 error)
某些任务在getSlice时候taskId未传递
\ No newline at end of file
1.数据单创建任务;
2.分数准确率,发布分数等检验;
3.bug(登录时候的无反馈,用户页面的无反馈)
4.bug(slice/getpieces 400 error)
某些任务在getSlice时候taskId未传递
\ No newline at end of file
DAPlatform/views/user.py
\ No newline at end of file
1.数据单创建任务;
2.分数准确率,发布分数等检验;
3.bug(登录时候的无反馈,用户页面的无反馈)
\ No newline at end of file
1.数据单创建任务;
2.分数准确率,发布分数等检验;
3.bug(登录时候的无反馈,用户页面的无反馈)
\ No newline at end of file
数据单部分逻辑:
爬虫数据库方面:
一个数据库包含三个表(weather、airport、traffic),三个表结构相同内容不同。
每个表分为四个字段(_id、name、document、image)
DAPlatform方面:
一个数据单包括若干数据、每一个数据对应爬虫数据库中的一个object,拥有唯一的数据id。
建立数据单的表,由爬虫组向数据单的表中填写信息(用户id、数据id列表),我们得到用户id及数据id列表后即可得知该用户利用爬虫爬到了哪些数据,根据数据id去爬虫平台数据库中即可得到具体的数据。
创建任务方面:
将一个用户创建的数据单转换为任务,一个数据单唯一对应一个任务,数据单下有数据id列表,每一个数据id对应两个分片,一个文本分片一个图像分片,每一个文本分片下只能有一个文件,即将document部分的文本整合为一个文件,图像分片下的文件数量取决于爬虫数据库中数据id下的图像数量。
\ No newline at end of file
前端:
区分已被选择三次的分片和其他可选分片
发布者终止任务按钮
标注者我的任务界面区分被终止任务
标注者主动删除任务
后端:
限制对已选择三次的分片的再选
终止任务的后端删除
前端:
区分已被选择三次的分片和其他可选分片
发布者终止任务按钮
标注者我的任务界面区分被终止任务
标注者主动删除任务
后端:
限制对已选择三次的分片的再选
终止任务的后端删除
前端:
区分已被选择三次的分片和其他可选分片
发布者终止任务按钮
标注者我的任务界面区分被终止任务
标注者主动删除任务
后端:
限制对已选择三次的分片的再选
终止任务的后端删除
前端:
区分已被选择三次的分片和其他可选分片
发布者终止任务按钮
标注者我的任务界面区分被终止任务
标注者主动删除任务
后端:
限制对已选择三次的分片的再选
终止任务的后端删除
前端:
区分已被选择三次的分片和其他可选分片
发布者终止任务按钮
标注者我的任务界面区分被终止任务
标注者主动删除任务
后端:
限制对已选择三次的分片的再选
终止任务的后端删除
前端:
区分已被选择三次的分片和其他可选分片
发布者终止任务按钮
标注者我的任务界面区分被终止任务
标注者主动删除任务
后端:
限制对已选择三次的分片的再选
终止任务的后端删除
前端:
区分已被选择三次的分片和其他可选分片
发布者终止任务按钮
标注者我的任务界面区分被终止任务
标注者主动删除任务
后端:
限制对已选择三次的分片的再选
终止任务的后端删除
这是一个神秘的测试文件 sss
...@@ -31,7 +31,9 @@ def getTokenList(): ...@@ -31,7 +31,9 @@ def getTokenList():
return_dict['return_info'] = '请求参数有误' return_dict['return_info'] = '请求参数有误'
return json.dumps(return_dict, ensure_ascii=False) return json.dumps(return_dict, ensure_ascii=False)
print(documentId)
result = mongodbApi.findOne(collectionTest, {"documentId": documentId}) result = mongodbApi.findOne(collectionTest, {"documentId": documentId})
print(result)
# 判断是否查询到结果 # 判断是否查询到结果
if result is None: if result is None:
...@@ -41,6 +43,7 @@ def getTokenList(): ...@@ -41,6 +43,7 @@ def getTokenList():
# 后端传给前端 return_dict = {'return_code': '200', 'return_info': '处理成功', 'result': result.get('tokenList')} # 后端传给前端 return_dict = {'return_code': '200', 'return_info': '处理成功', 'result': result.get('tokenList')}
return_dict['result'] = result.get('tokenList') return_dict['result'] = result.get('tokenList')
print(return_dict)
return json.dumps(return_dict, ensure_ascii=False) return json.dumps(return_dict, ensure_ascii=False)
...@@ -128,6 +131,49 @@ def deleteToken(): ...@@ -128,6 +131,49 @@ def deleteToken():
# return_dict['result'] = result # return_dict['result'] = result
return json.dumps(return_dict, ensure_ascii=False) return json.dumps(return_dict, ensure_ascii=False)
# 获取文本初始计算分数
@textAnnotation.route("/getScore", methods=["GET"])
def getTextScore():
# 默认返回内容
return_dict = {'return_code': '200', 'return_info': '处理成功', 'result': False}
relationId = request.args['relationId']
result = Relation.find_score_by_id(relationId)
return_dict['result'] = result
print(relationId, result)
return json.dumps(return_dict, ensure_ascii=False)
# 修改token的判断状态checked
@textAnnotation.route("/revTokenChecked", methods=["POST"])
def revTokenChecked():
# 默认返回内容
return_dict = {'return_code': '200', 'return_info': '处理成功', 'result': False}
documentId = request.args['documentId']
tokenList = json.loads(request.args['tokenList'])
if documentId is None or tokenList is None:
return_dict['return_code'] = '201'
return_dict['return_info'] = '请求参数有误'
return json.dumps(return_dict, ensure_ascii=False)
# document是否存在
if mongodbApi.findOne(collectionTest, {"documentId": documentId}) is None:
return_dict['return_code'] = '206'
return_dict['return_info'] = '修改失败'
return json.dumps(return_dict, ensure_ascii=False)
results = mongodbApi.revOne(collectionTest, {"documentId": documentId}, {"$set": {"tokenList": tokenList}})
if results is None:
return_dict['return_code'] = '209'
return_dict['return_info'] = '修改失败'
return json.dumps(return_dict, ensure_ascii=False)
# 后端传给前端 return_dict = {'return_code': '200', 'return_info': '处理成功', 'result': False}
return json.dumps(return_dict, ensure_ascii=False)
# 修改token # 修改token
@textAnnotation.route("/revToken", methods=["POST"]) @textAnnotation.route("/revToken", methods=["POST"])
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment