@@ -7,7 +7,7 @@ WARNING: This package is not thread safe, so you cannot use *Bag from many gorou
7
7
package tldr
8
8
9
9
import (
10
- "errors "
10
+ "encoding/json "
11
11
"sort"
12
12
"strings"
13
13
"unicode"
@@ -38,9 +38,14 @@ type Bag struct {
38
38
vectorLength int
39
39
}
40
40
41
+ func (b * Bag ) String () string {
42
+ r , _ := json .MarshalIndent (b , "" , " " )
43
+ return string (r )
44
+ }
45
+
41
46
// The default values of each settings
42
47
const (
43
- VERSION = "0.5 .0"
48
+ VERSION = "0.6 .0"
44
49
DEFAULT_ALGORITHM = "pagerank"
45
50
DEFAULT_WEIGHING = "hamming"
46
51
DEFAULT_DAMPING = 0.85
@@ -55,7 +60,6 @@ func defaultWordTokenizer(sentence string) []string {
55
60
for i , word := range words {
56
61
words [i ] = SanitizeWord (word )
57
62
}
58
-
59
63
return words
60
64
}
61
65
@@ -125,21 +129,18 @@ func (bag *Bag) Summarize(text string, num int) ([]string, error) {
125
129
switch bag .Algorithm {
126
130
case "centrality" :
127
131
bag .centrality ()
128
- break
129
132
case "pagerank" :
130
133
bag .pageRank ()
131
- break
132
134
case "custom" :
133
135
bag .Ranks = bag .customAlgorithm (bag .Edges )
134
- break
135
136
default :
136
137
bag .pageRank ()
137
138
}
138
139
139
140
// if no ranks, return error
140
141
lenRanks := len (bag .Ranks )
141
142
if lenRanks == 0 {
142
- return nil , errors . New ( "Ranks is empty" )
143
+ return nil , nil
143
144
}
144
145
145
146
// guard so it won't crash but return only the highest rank sentence
@@ -263,14 +264,11 @@ func (bag *Bag) createEdges() {
263
264
case "jaccard" :
264
265
commonElements := Intersection (src .vector , dst .vector )
265
266
weight = 1.0 - float64 (len (commonElements ))/ ((float64 (bag .vectorLength )* 2 )- float64 (len (commonElements )))
266
- break
267
267
case "hamming" :
268
268
differentElements := SymmetricDifference (src .vector , dst .vector )
269
269
weight = float64 (len (differentElements ))
270
- break
271
270
case "custom" :
272
271
weight = bag .customWeighing (src .vector , dst .vector )
273
- break
274
272
default :
275
273
differentElements := SymmetricDifference (src .vector , dst .vector )
276
274
weight = float64 (len (differentElements ))
0 commit comments