24
24
*/
25
25
public class BrownBigramFeatureGenerator implements AdaptiveFeatureGenerator {
26
26
27
+ private static final String BROWNCLUSTER = "browncluster" ;
28
+ private static final String FEATURE_NEXT_BROWNCLUSTER_BASE = BROWNCLUSTER + ",n" + BROWNCLUSTER + "=" ;
29
+ private static final String FEATURE_PREV_BROWNCLUSTER_BASE = "p" + BROWNCLUSTER + "," + BROWNCLUSTER + "=" ;
30
+
27
31
private final BrownCluster brownCluster ;
28
32
29
33
/**
@@ -38,20 +42,18 @@ public BrownBigramFeatureGenerator(BrownCluster brownCluster) {
38
42
public void createFeatures (List <String > features , String [] tokens , int index ,
39
43
String [] previousOutcomes ) {
40
44
41
- List <String > wordClasses = BrownTokenClasses .getWordClasses (tokens [index ], brownCluster );
45
+ List <String > wc = BrownTokenClasses .getWordClasses (tokens [index ], brownCluster );
42
46
if (index > 0 ) {
43
- List <String > prevWordClasses = BrownTokenClasses .getWordClasses (tokens [index - 1 ], brownCluster );
44
- for (int i = 0 ; i < wordClasses .size () && i < prevWordClasses .size (); i ++) {
45
- features .add ("p" + "browncluster" + "," + "browncluster" + "="
46
- + prevWordClasses .get (i ) + "," + wordClasses .get (i ));
47
+ List <String > prevWC = BrownTokenClasses .getWordClasses (tokens [index - 1 ], brownCluster );
48
+ for (int i = 0 ; i < wc .size () && i < prevWC .size (); i ++) {
49
+ features .add (FEATURE_PREV_BROWNCLUSTER_BASE + prevWC .get (i ) + "," + wc .get (i ));
47
50
}
48
51
}
49
52
50
53
if (index + 1 < tokens .length ) {
51
54
List <String > nextWordClasses = BrownTokenClasses .getWordClasses (tokens [index + 1 ], brownCluster );
52
- for (int i = 0 ; i < wordClasses .size () && i < nextWordClasses .size (); i ++) {
53
- features .add ("browncluster" + "," + "n" + "browncluster" + "="
54
- + wordClasses .get (i ) + "," + nextWordClasses .get (i ));
55
+ for (int i = 0 ; i < wc .size () && i < nextWordClasses .size (); i ++) {
56
+ features .add (FEATURE_NEXT_BROWNCLUSTER_BASE + wc .get (i ) + "," + nextWordClasses .get (i ));
55
57
}
56
58
}
57
59
}
0 commit comments