git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/data-analysis/nlphub@164615 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
73ca1ce2eb
commit
fb89b5ff89
|
@ -67,18 +67,27 @@ public class NLPMapper extends HttpServlet {
|
|||
response.setCharacterEncoding("utf-8");
|
||||
token = Constants.getToken(request, devMode);
|
||||
String documentLink = request.getParameter("plink"); // link to text file (workspace)
|
||||
System.out.println("documentLink\n: " + documentLink);
|
||||
String toBeMap = request.getParameter("tobemap");
|
||||
System.out.println("tobemap: " + toBeMap);
|
||||
System.out.println("tobemap:\n" + toBeMap);
|
||||
String[] tokens;
|
||||
if(toBeMap.indexOf("|") > 0)
|
||||
tokens = toBeMap.split("|");
|
||||
tokens = toBeMap.split("\\|");
|
||||
else {
|
||||
tokens = new String[1];
|
||||
tokens[0] = toBeMap;
|
||||
}
|
||||
|
||||
String annotations = request.getParameter("annotations");
|
||||
System.out.println("annotations\n: " + annotations);
|
||||
String language = request.getParameter("lang");
|
||||
PrintWriter writer = response.getWriter();
|
||||
System.out.println("language\n: " + language);
|
||||
|
||||
System.out.println("tokens length: " + tokens.length);
|
||||
for(int u=0; u<tokens.length; u++) {
|
||||
System.out.println("[" + u + "] " + tokens[u]);
|
||||
}
|
||||
try {
|
||||
String text = getDocument(documentLink);
|
||||
|
||||
|
@ -165,6 +174,5 @@ public class NLPMapper extends HttpServlet {
|
|||
String link = ws.getPublicLink(fileName, token);
|
||||
return link;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
<script type="text/javascript" src="js/materialize.min.js"></script>
|
||||
<script type="text/javascript" src="js/jquery.simple.websocket.min.js"></script>
|
||||
<script type="text/javascript" src="js/jquery.uploadfile.min.js"></script>
|
||||
<script type="text/javascript" src="js/merge.js"></script>
|
||||
<!-- <script type="text/javascript" src="js/main.js"></script> -->
|
||||
<!-- scripting code -->
|
||||
<script type="text/javascript">
|
||||
|
@ -228,7 +229,7 @@
|
|||
if (a[j].length > 0) {
|
||||
var thereIs = false;
|
||||
for (k in annotations) {
|
||||
if (annotations[k].toUpperCase == a[j].toUpperCase()) {
|
||||
if (annotations[k].toUpperCase() == a[j].toUpperCase()) {
|
||||
thereIs = true;
|
||||
break;
|
||||
}
|
||||
|
@ -245,7 +246,7 @@
|
|||
if (langs[j].length > 0) {
|
||||
var thereIs = false;
|
||||
for (k in languages) {
|
||||
if (languages[k].toUpperCase == langs[j].toUpperCase()) {
|
||||
if (languages[k].toUpperCase() == langs[j].toUpperCase()) {
|
||||
thereIs = true;
|
||||
break;
|
||||
}
|
||||
|
@ -387,6 +388,7 @@
|
|||
parameters += "&plink=" + encodeURI(publicLink);
|
||||
parameters += "&lang=" + $("#language-select").val();
|
||||
parameters += "&tobemap=" + encodeURI(tobemap);
|
||||
console.log(parameters);
|
||||
|
||||
$.ajax({
|
||||
url : "/nlphub/nlphub-mapper-servlet?" + parameters,
|
||||
|
@ -394,10 +396,15 @@
|
|||
async : true,
|
||||
success : function(data, stato) {
|
||||
console.log(data);
|
||||
$("#reset-upload").hide();
|
||||
savedAnnotations = "";
|
||||
publicLink = null;
|
||||
showResult(data);
|
||||
if((typeof (data.response) != "undefined") && (data.response.trim().toUpperCase() == "ERROR")) {
|
||||
alert ("ERROR\n" + data.message);
|
||||
}
|
||||
else {
|
||||
$("#reset-upload").hide();
|
||||
savedAnnotations = "";
|
||||
publicLink = null;
|
||||
showResult(data);
|
||||
}
|
||||
},
|
||||
error : function(richiesta, stato, errori) {
|
||||
$("#reset-upload").hide();
|
||||
|
@ -478,7 +485,7 @@
|
|||
var indices = getIndices(annotation);
|
||||
var indexedText = "";
|
||||
|
||||
if (indices.length == 0) {
|
||||
if ((typeof (indices) == 'undefined' ) || (indices.length == 0)) {
|
||||
indexedText = resultText;
|
||||
indexedText = indexedText.replace(/\n/g, "<br>");
|
||||
$("#result-text-div").append("<p>" + indexedText + "</p>");
|
||||
|
@ -532,8 +539,10 @@
|
|||
mergeIndices = function(indices) {
|
||||
// GESTIONE MULTIDIMENSIONALE DA FARE !!!!
|
||||
var newIndices = []
|
||||
if (indices.length == 1)
|
||||
if (indices.length <= 1)
|
||||
newIndices = indices[0];
|
||||
else
|
||||
newIndices = mergeAll(indices);
|
||||
return newIndices;
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,108 @@
|
|||
mergeSegment = function(segment1, segment2) {
|
||||
var merged = [];
|
||||
|
||||
if(segment1[0] <= segment2[0]) {
|
||||
if(segment1[1] < segment2[0]) {
|
||||
merged = [segment1, segment2];
|
||||
}
|
||||
else {
|
||||
if(segment1[1] >= segment2[1])
|
||||
merged = [segment1];
|
||||
else
|
||||
merged = [[segment1[0], segment2[1]]];
|
||||
}
|
||||
}
|
||||
else {
|
||||
if(segment2[1] < segment1[0]) {
|
||||
merged = [segment2, segment1];
|
||||
}
|
||||
else {
|
||||
if(segment2[1] >= segment1[1])
|
||||
merged = [segment2];
|
||||
else
|
||||
merged = [[segment2[0], segment1[1]]];
|
||||
}
|
||||
}
|
||||
return merged;
|
||||
}
|
||||
|
||||
compareSegment = function(segment1, segment2) {
|
||||
// inclusi o coincidenti
|
||||
if((segment1[0] >= segment2[0]) && (segment1[1] <= segment2[1]))
|
||||
return 0;
|
||||
if((segment1[0] <= segment2[0]) && (segment1[1] >= segment2[1]))
|
||||
return 0;
|
||||
// esterni
|
||||
if((segment1[1] < segment2[0]) || ((segment1[0] > segment2[1])))
|
||||
return 1;
|
||||
// intersecanti
|
||||
return -1;
|
||||
}
|
||||
|
||||
compareSegments = function(s1, s2) {
|
||||
return (s1[0] - s2[0]);
|
||||
}
|
||||
|
||||
cleanSegmentList = function(list) {
|
||||
var cleaned = [];
|
||||
for(var i=0; i<list.length; i++) {
|
||||
if(cleaned.length == 0)
|
||||
cleaned[cleaned.length] = list[i];
|
||||
else {
|
||||
var found = false;
|
||||
for(var j=0; j<cleaned.length; j++) {
|
||||
if(compareSegment(cleaned[j], list[i]) == 0) {
|
||||
if(cleaned[j][0] > list[i][0])
|
||||
cleaned[j] = list[i];
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
if(compareSegment(cleaned[j], list[i]) < 0) {
|
||||
if(cleaned[j][0] <= list[i][0])
|
||||
cleaned[j] = [cleaned[j][0], list[i][1]];
|
||||
else
|
||||
cleaned[j] = [list[i][0], cleaned[j][1]];
|
||||
found = true;
|
||||
}
|
||||
}
|
||||
if(!found) cleaned[cleaned.length] = list[i];
|
||||
}
|
||||
}
|
||||
return cleaned;
|
||||
}
|
||||
|
||||
compareSegmentList = function(list1, list2) {
|
||||
if(list1.length != list2.length)
|
||||
return false;
|
||||
for(var i=0; i<list1.length; i++)
|
||||
if((list1[i][0] != list2[i][0]) || (list1[i][1] != list2[i][1]))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
mergeAll = function(indices) {
|
||||
var m = [];
|
||||
for(var i=0; i<indices[0].length; i++) {
|
||||
for(var j=1; j<indices.length; j++) {
|
||||
for(var k=0; k<indices[j].length; k++) {
|
||||
var res = mergeSegment(indices[0][i], indices[j][k]);
|
||||
for(var u=0; u<res.length; u++)
|
||||
m[m.length] = res[u];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var end = false;
|
||||
var counter = 1;
|
||||
while(!end) {
|
||||
var old = m.slice();
|
||||
m = cleanSegmentList(m);
|
||||
//console.log(m);
|
||||
end = compareSegmentList(old, m);
|
||||
if(counter == 100)
|
||||
end = true;
|
||||
}
|
||||
return m.sort(compareSegments);
|
||||
}
|
|
@ -0,0 +1,58 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Merge TEST</title>
|
||||
<script type="text/javascript" src="js/merge.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
var indices = [
|
||||
[[0,5], [7,9], [15,19]],
|
||||
[[6,10]],
|
||||
[[1,6], [9,16], [21,23]],
|
||||
[[7,9], [12,13]]
|
||||
];
|
||||
|
||||
//var newIndices = mergeIndices(indices);
|
||||
|
||||
//console.log(newIndices);
|
||||
// answer is: [0,19], [21,23]
|
||||
|
||||
indices = [
|
||||
[[7,19], [21,25]],
|
||||
[[1,5], [18,22]]
|
||||
];
|
||||
//answer is: [1,5], [7,25]
|
||||
|
||||
indices = [
|
||||
[[7,16], [21,25]],
|
||||
[[1,5], [18,22]]
|
||||
];
|
||||
//answer is: [1,5], [7,16], [18,25]
|
||||
|
||||
indices = [
|
||||
[[7,16], [21,25]],
|
||||
[[1,5], [18,22]],
|
||||
[[2,30]]
|
||||
];
|
||||
//answer is: [1,30]
|
||||
|
||||
indices = [
|
||||
[[1,4], [5, 8], [21,25]],
|
||||
[[1,5], [18,22]],
|
||||
[[0,2], [11,15], [27,31]]
|
||||
];
|
||||
//answer is: [0,8],[11,15],[18,25],[27,31]
|
||||
|
||||
|
||||
var mm = mergeAll(indices);
|
||||
|
||||
console.log(mm);
|
||||
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue