blob: b5b07e6b94e19e12d6491300fe380b2611e72652 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
/*
*/
var Refiner = require('./refiner').Refiner;
exports.Refiner = function OverlapRemovalRefiner() {
Refiner.call(this);
this.refine = function(text, results, opt) {
if (results.length < 2) return results;
var filteredResults = [];
var prevResult = results[0];
for (var i=1; i<results.length; i++){
var result = results[i];
// If overlap, compare the length and discard the shorter one
if (result.index < prevResult.index + prevResult.text.length) {
if (result.text.length > prevResult.text.length){
prevResult = result;
}
} else {
filteredResults.push(prevResult);
prevResult = result;
}
}
// The last one
if (prevResult != null) {
filteredResults.push(prevResult);
}
return filteredResults;
}
}
|