From 99c443a32f4332d4d0b1fe71c849d7ec97ba4cb4 Mon Sep 17 00:00:00 2001 From: kostis30fyllou Date: Mon, 29 Jun 2020 18:19:19 +0300 Subject: [PATCH] Add new feature on results preview --- .../app/configuration/resultspreview/match.ts | 1 + .../resultspreview.component.html | 12 +++++++++-- .../resultspreview.component.ts | 20 +++++++++++-------- 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/interactive-mining-angular-frontend/src/app/configuration/resultspreview/match.ts b/interactive-mining-angular-frontend/src/app/configuration/resultspreview/match.ts index 4e08973..5075347 100755 --- a/interactive-mining-angular-frontend/src/app/configuration/resultspreview/match.ts +++ b/interactive-mining-angular-frontend/src/app/configuration/resultspreview/match.ts @@ -4,4 +4,5 @@ export class Match { context: string; extraprev: string; extranext: string; + occurences: string; } diff --git a/interactive-mining-angular-frontend/src/app/configuration/resultspreview/resultspreview.component.html b/interactive-mining-angular-frontend/src/app/configuration/resultspreview/resultspreview.component.html index b8eae22..46ec4f7 100755 --- a/interactive-mining-angular-frontend/src/app/configuration/resultspreview/resultspreview.component.html +++ b/interactive-mining-angular-frontend/src/app/configuration/resultspreview/resultspreview.component.html @@ -46,8 +46,8 @@
- {{matches_number}} matche{{matches_number == '1'?'':'s'}} found - , {{prev_matches_number}} matche{{prev_matches_number == '1'?'':'s'}} found previously + {{matches_number}} match{{matches_number == '1'?'':'es'}} found + , {{prev_matches_number}} match{{prev_matches_number == '1'?'':'es'}} found previously
@@ -55,8 +55,16 @@
  • document: {{result.docTitle}}

    +
    +
    match #{{match.matchcounter}}: {{match.match}}
    +

    + All possible occurences in original text:

    +

    +

    + High confidence match after applying the mining rules:

    +

    {{match.extraprev}} {{match.extranext}}

    diff --git a/interactive-mining-angular-frontend/src/app/configuration/resultspreview/resultspreview.component.ts b/interactive-mining-angular-frontend/src/app/configuration/resultspreview/resultspreview.component.ts index 92fafc7..0f9b4df 100755 --- a/interactive-mining-angular-frontend/src/app/configuration/resultspreview/resultspreview.component.ts +++ b/interactive-mining-angular-frontend/src/app/configuration/resultspreview/resultspreview.component.ts @@ -98,13 +98,13 @@ export class ResultspreviewComponent implements OnInit { } highlightInElement(element: string, text: string): string { - let elementHtml = element; - const tags = []; - const tagLocations = []; - const htmlTagRegEx = /<{1}\/{0,1}\w+>{1}/; + var elementHtml = element; + var tags = []; + var tagLocations = []; + var htmlTagRegEx = /<{1}\/{0,1}\w+>{1}/; // Strip the tags from the elementHtml and keep track of them - let htmlTag; + var htmlTag; while (htmlTag = elementHtml.match(htmlTagRegEx)) { tagLocations[tagLocations.length] = elementHtml.search(htmlTagRegEx); tags[tags.length] = htmlTag; @@ -112,7 +112,7 @@ export class ResultspreviewComponent implements OnInit { } // Search for the text in the stripped html - const textLocation = elementHtml.search(text); + var textLocation = elementHtml.search(text); if (textLocation) { // Add the highlight const highlightHTMLStart = ''; @@ -120,9 +120,9 @@ export class ResultspreviewComponent implements OnInit { elementHtml = elementHtml.replace(text, highlightHTMLStart + text + highlightHTMLEnd); // Plug back in the HTML tags - const textEndLocation = textLocation + text.length; + var textEndLocation = textLocation + text.length; for (let i = tagLocations.length - 1; i >= 0; i--) { - let location = tagLocations[i]; + var location = tagLocations[i]; if (location > textEndLocation) { location += highlightHTMLStart.length + highlightHTMLEnd.length; } else if (location > textLocation) { @@ -168,6 +168,9 @@ export class ResultspreviewComponent implements OnInit { match.match = values.match; match.extraprev = values.extraprev; match.extranext = values.extranext; + match.occurences = values.occurences; + + let context = values.prev + ' ' + values.middle + ' ' + values.next; // hightlight positive words for (const posword in JSON.parse(localStorage.getItem('poswords'))) { @@ -188,6 +191,7 @@ export class ResultspreviewComponent implements OnInit { return '' + x + ''; }); } + context = this.highlightInElement(context, values.match); match.context = context; match.matchcounter = ++matchcounter;