|
|
@ -405,7 +405,7 @@ function setupInterface(data, file, urls) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function sanitizeData() {
|
|
|
|
function sanitizeData() {
|
|
|
|
word_pos = 1;
|
|
|
|
word_pos = 0;
|
|
|
|
for(let i = 0; i < data.data.length; i++){
|
|
|
|
for(let i = 0; i < data.data.length; i++){
|
|
|
|
|
|
|
|
|
|
|
|
min_left = (parseInt(data.data[i]['left']) < min_left) ? parseInt(data.data[i]['left']) : min_left;
|
|
|
|
min_left = (parseInt(data.data[i]['left']) < min_left) ? parseInt(data.data[i]['left']) : min_left;
|
|
|
@ -424,6 +424,9 @@ function setupInterface(data, file, urls) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (data.meta.fields.includes('No.')) {
|
|
|
|
if (data.meta.fields.includes('No.')) {
|
|
|
|
|
|
|
|
if (data.data[i]['No.'] < word_pos) {
|
|
|
|
|
|
|
|
word_pos = 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
data.data[i]['No.'] = word_pos;
|
|
|
|
data.data[i]['No.'] = word_pos;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -461,17 +464,73 @@ function setupInterface(data, file, urls) {
|
|
|
|
data.data[nRow - 1]['TOKEN'] =
|
|
|
|
data.data[nRow - 1]['TOKEN'] =
|
|
|
|
data.data[nRow - 1]['TOKEN'].toString() + data.data[nRow]['TOKEN'].toString();
|
|
|
|
data.data[nRow - 1]['TOKEN'].toString() + data.data[nRow]['TOKEN'].toString();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (data.meta.fields.includes('No.')) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let word_pos=data.data[nRow]['No.'];
|
|
|
|
|
|
|
|
|
|
|
|
data.data.splice(nRow, 1);
|
|
|
|
data.data.splice(nRow, 1);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for(let i = nRow; i < data.data.length; i++){
|
|
|
|
|
|
|
|
if (data.data[i]['No.'] <= word_pos) {
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
data.data[i]['No.'] = word_pos;
|
|
|
|
|
|
|
|
word_pos++;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
data.data.splice(nRow, 1);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (action.includes('split')) {
|
|
|
|
else if (action.includes('split')) {
|
|
|
|
|
|
|
|
|
|
|
|
data.data.splice(nRow, 0, JSON.parse(JSON.stringify(data.data[nRow])));
|
|
|
|
data.data.splice(nRow, 0, JSON.parse(JSON.stringify(data.data[nRow])));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (data.meta.fields.includes('No.')) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
data.data[nRow + 1]['No.'] = data.data[nRow]['No.'] + 1;
|
|
|
|
|
|
|
|
let word_pos=data.data[nRow]['No.'];
|
|
|
|
|
|
|
|
for(let i = nRow+1; i < data.data.length; i++){
|
|
|
|
|
|
|
|
if (data.data[i]['No.'] <= data.data[nRow]['No.']) {
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
data.data[i]['No.'] = word_pos+1;
|
|
|
|
|
|
|
|
word_pos++;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (action.includes('delete')) {
|
|
|
|
else if (action.includes('delete')) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (data.meta.fields.includes('No.')) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let word_pos=data.data[nRow]['No.'];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
data.data.splice(nRow, 1);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for(let i = nRow; i < data.data.length; i++){
|
|
|
|
|
|
|
|
if (data.data[i]['No.'] <= word_pos) {
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
data.data[i]['No.'] = word_pos;
|
|
|
|
|
|
|
|
word_pos++;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else {
|
|
|
|
data.data.splice(nRow, 1);
|
|
|
|
data.data.splice(nRow, 1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
else if (action.includes('sentence')) {
|
|
|
|
else if (action.includes('sentence')) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (data.meta.fields.includes('No.')) {
|
|
|
|
|
|
|
|
if (data.data[nRow]['No.'] == 0) return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
let new_line = JSON.parse(JSON.stringify(data.data[nRow]));
|
|
|
|
let new_line = JSON.parse(JSON.stringify(data.data[nRow]));
|
|
|
|
new_line['TOKEN'] = '';
|
|
|
|
new_line['TOKEN'] = '';
|
|
|
|
new_line['NE-TAG'] = 'O';
|
|
|
|
new_line['NE-TAG'] = 'O';
|
|
|
@ -479,6 +538,21 @@ function setupInterface(data, file, urls) {
|
|
|
|
new_line['ID'] = '';
|
|
|
|
new_line['ID'] = '';
|
|
|
|
|
|
|
|
|
|
|
|
data.data.splice(nRow, 0, new_line);
|
|
|
|
data.data.splice(nRow, 0, new_line);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (data.meta.fields.includes('No.')) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
data.data[nRow]['No.'] = 0;
|
|
|
|
|
|
|
|
let word_pos=0;
|
|
|
|
|
|
|
|
for(let i = nRow+1; i < data.data.length; i++){
|
|
|
|
|
|
|
|
if (data.data[i]['No.'] <= word_pos) {
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
data.data[i]['No.'] = word_pos+1;
|
|
|
|
|
|
|
|
word_pos++;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
sanitizeData();
|
|
|
|
sanitizeData();
|
|
|
@ -732,7 +806,7 @@ function setupInterface(data, file, urls) {
|
|
|
|
|
|
|
|
|
|
|
|
if (count > 2) break;
|
|
|
|
if (count > 2) break;
|
|
|
|
|
|
|
|
|
|
|
|
console.log(element);
|
|
|
|
//console.log(element);
|
|
|
|
let link = $('<a href="https://www.wikidata.org/wiki/' + element[1] +
|
|
|
|
let link = $('<a href="https://www.wikidata.org/wiki/' + element[1] +
|
|
|
|
'" target="_blank" rel="noopener noreferrer">' +
|
|
|
|
'" target="_blank" rel="noopener noreferrer">' +
|
|
|
|
element[1] + "</a>")
|
|
|
|
element[1] + "</a>")
|
|
|
|