Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

added list of stopwords, much more aggressive than before, feel free …

…to use your own
  • Loading branch information...
commit fa9ad21f2bed1a17551806aa0b3b3f1cec00b79b 1 parent 16f0b5f
Jacob authored April 29, 2011
1  FIXME.txt
... ...
@@ -1,2 +1 @@
1  
-- text tokenizer needs some aggressive filtering of stopwords. Look at other Lucene analyzers
2 1
 - standardize the way jars are dealt with, using relative paths in the scripts themselves is crufty and doesn't scale
420  src/main/java/varaha/text/StopWords.java
... ...
@@ -0,0 +1,420 @@
  1
+package varaha.text;
  2
+
  3
+import java.util.Set;
  4
+import java.util.HashSet;
  5
+
  6
+public class StopWords {
  7
+    public static final Set<String> ENGLISH_STOP_WORDS = new HashSet<String>() {
  8
+        {
  9
+            add("a");
  10
+            add("about");
  11
+            add("above");
  12
+            add("across");
  13
+            add("after");
  14
+            add("again");
  15
+            add("against");
  16
+            add("all");
  17
+            add("almost");
  18
+            add("alone");
  19
+            add("along");
  20
+            add("already");
  21
+            add("also");
  22
+            add("although");
  23
+            add("always");
  24
+            add("among");
  25
+            add("an");
  26
+            add("and");
  27
+            add("another");
  28
+            add("any");
  29
+            add("anybody");
  30
+            add("anyone");
  31
+            add("anything");
  32
+            add("anywhere");
  33
+            add("apos");
  34
+            add("are");
  35
+            add("area");
  36
+            add("areas");
  37
+            add("around");
  38
+            add("as");
  39
+            add("ask");
  40
+            add("asked");
  41
+            add("asking");
  42
+            add("asks");
  43
+            add("at");
  44
+            add("away");
  45
+            add("back");
  46
+            add("backed");
  47
+            add("backing");
  48
+            add("backs");
  49
+            add("be");
  50
+            add("became");
  51
+            add("because");
  52
+            add("become");
  53
+            add("becomes");
  54
+            add("been");
  55
+            add("before");
  56
+            add("began");
  57
+            add("behind");
  58
+            add("being");
  59
+            add("beings");
  60
+            add("best");
  61
+            add("better");
  62
+            add("between");
  63
+            add("big");
  64
+            add("both");
  65
+            add("but");
  66
+            add("by");
  67
+            add("came");
  68
+            add("can");
  69
+            add("cannot");
  70
+            add("case");
  71
+            add("cases");
  72
+            add("certain");
  73
+            add("certainly");
  74
+            add("clear");
  75
+            add("clearly");
  76
+            add("come");
  77
+            add("could");
  78
+            add("did");
  79
+            add("differ");
  80
+            add("different");
  81
+            add("differently");
  82
+            add("do");
  83
+            add("does");
  84
+            add("done");
  85
+            add("down");
  86
+            add("down");
  87
+            add("downed");
  88
+            add("downing");
  89
+            add("downs");
  90
+            add("during");
  91
+            add("each");
  92
+            add("early");
  93
+            add("either");
  94
+            add("end");
  95
+            add("ended");
  96
+            add("ending");
  97
+            add("ends");
  98
+            add("enough");
  99
+            add("even");
  100
+            add("evenly");
  101
+            add("ever");
  102
+            add("every");
  103
+            add("everybody");
  104
+            add("everyone");
  105
+            add("everything");
  106
+            add("everywhere");
  107
+            add("face");
  108
+            add("faces");
  109
+            add("fact");
  110
+            add("facts");
  111
+            add("far");
  112
+            add("felt");
  113
+            add("few");
  114
+            add("find");
  115
+            add("finds");
  116
+            add("first");
  117
+            add("for");
  118
+            add("four");
  119
+            add("from");
  120
+            add("full");
  121
+            add("fully");
  122
+            add("further");
  123
+            add("furthered");
  124
+            add("furthering");
  125
+            add("furthers");
  126
+            add("gave");
  127
+            add("general");
  128
+            add("generally");
  129
+            add("get");
  130
+            add("gets");
  131
+            add("give");
  132
+            add("given");
  133
+            add("gives");
  134
+            add("go");
  135
+            add("going");
  136
+            add("good");
  137
+            add("goods");
  138
+            add("got");
  139
+            add("great");
  140
+            add("greater");
  141
+            add("greatest");
  142
+            add("group");
  143
+            add("grouped");
  144
+            add("grouping");
  145
+            add("groups");
  146
+            add("had");
  147
+            add("has");
  148
+            add("have");
  149
+            add("having");
  150
+            add("he");
  151
+            add("her");
  152
+            add("here");
  153
+            add("herself");
  154
+            add("high");
  155
+            add("high");
  156
+            add("high");
  157
+            add("higher");
  158
+            add("highest");
  159
+            add("him");
  160
+            add("himself");
  161
+            add("his");
  162
+            add("how");
  163
+            add("however");
  164
+            add("i");
  165
+            add("if");
  166
+            add("important");
  167
+            add("in");
  168
+            add("interest");
  169
+            add("interested");
  170
+            add("interesting");
  171
+            add("interests");
  172
+            add("into");
  173
+            add("is");
  174
+            add("it");
  175
+            add("its");
  176
+            add("it's");
  177
+            add("itself");
  178
+            add("just");
  179
+            add("keep");
  180
+            add("keeps");
  181
+            add("kind");
  182
+            add("knew");
  183
+            add("know");
  184
+            add("known");
  185
+            add("knows");
  186
+            add("large");
  187
+            add("largely");
  188
+            add("last");
  189
+            add("later");
  190
+            add("latest");
  191
+            add("least");
  192
+            add("less");
  193
+            add("let");
  194
+            add("lets");
  195
+            add("like");
  196
+            add("likely");
  197
+            add("long");
  198
+            add("longer");
  199
+            add("longest");
  200
+            add("made");
  201
+            add("make");
  202
+            add("making");
  203
+            add("man");
  204
+            add("many");
  205
+            add("may");
  206
+            add("me");
  207
+            add("member");
  208
+            add("members");
  209
+            add("men");
  210
+            add("might");
  211
+            add("more");
  212
+            add("most");
  213
+            add("mostly");
  214
+            add("mr");
  215
+            add("mrs");
  216
+            add("much");
  217
+            add("must");
  218
+            add("my");
  219
+            add("myself");
  220
+            add("nbsp");
  221
+            add("necessary");
  222
+            add("need");
  223
+            add("needed");
  224
+            add("needing");
  225
+            add("needs");
  226
+            add("never");
  227
+            add("new");
  228
+            add("new");
  229
+            add("newer");
  230
+            add("newest");
  231
+            add("next");
  232
+            add("no");
  233
+            add("nobody");
  234
+            add("non");
  235
+            add("noone");
  236
+            add("not");
  237
+            add("nothing");
  238
+            add("now");
  239
+            add("nowhere");
  240
+            add("number");
  241
+            add("numbers");
  242
+            add("of");
  243
+            add("off");
  244
+            add("often");
  245
+            add("old");
  246
+            add("older");
  247
+            add("oldest");
  248
+            add("on");
  249
+            add("once");
  250
+            add("one");
  251
+            add("only");
  252
+            add("open");
  253
+            add("opened");
  254
+            add("opening");
  255
+            add("opens");
  256
+            add("or");
  257
+            add("order");
  258
+            add("ordered");
  259
+            add("ordering");
  260
+            add("orders");
  261
+            add("other");
  262
+            add("others");
  263
+            add("our");
  264
+            add("out");
  265
+            add("over");
  266
+            add("part");
  267
+            add("parted");
  268
+            add("parting");
  269
+            add("parts");
  270
+            add("per");
  271
+            add("perhaps");
  272
+            add("place");
  273
+            add("places");
  274
+            add("point");
  275
+            add("pointed");
  276
+            add("pointing");
  277
+            add("points");
  278
+            add("possible");
  279
+            add("present");
  280
+            add("presented");
  281
+            add("presenting");
  282
+            add("presents");
  283
+            add("problem");
  284
+            add("problems");
  285
+            add("put");
  286
+            add("puts");
  287
+            add("quite");
  288
+            add("quot");
  289
+            add("rather");
  290
+            add("really");
  291
+            add("right");
  292
+            add("right");
  293
+            add("room");
  294
+            add("rooms");
  295
+            add("said");
  296
+            add("same");
  297
+            add("saw");
  298
+            add("say");
  299
+            add("says");
  300
+            add("second");
  301
+            add("seconds");
  302
+            add("see");
  303
+            add("seem");
  304
+            add("seemed");
  305
+            add("seeming");
  306
+            add("seems");
  307
+            add("sees");
  308
+            add("several");
  309
+            add("shall");
  310
+            add("she");
  311
+            add("should");
  312
+            add("show");
  313
+            add("showed");
  314
+            add("showing");
  315
+            add("shows");
  316
+            add("side");
  317
+            add("sides");
  318
+            add("since");
  319
+            add("small");
  320
+            add("smaller");
  321
+            add("smallest");
  322
+            add("so");
  323
+            add("some");
  324
+            add("somebody");
  325
+            add("someone");
  326
+            add("something");
  327
+            add("somewhere");
  328
+            add("state");
  329
+            add("states");
  330
+            add("still");
  331
+            add("still");
  332
+            add("such");
  333
+            add("sure");
  334
+            add("take");
  335
+            add("taken");
  336
+            add("than");
  337
+            add("that");
  338
+            add("the");
  339
+            add("their");
  340
+            add("them");
  341
+            add("then");
  342
+            add("there");
  343
+            add("therefore");
  344
+            add("these");
  345
+            add("they");
  346
+            add("thing");
  347
+            add("things");
  348
+            add("think");
  349
+            add("thinks");
  350
+            add("this");
  351
+            add("those");
  352
+            add("though");
  353
+            add("thought");
  354
+            add("thoughts");
  355
+            add("three");
  356
+            add("through");
  357
+            add("thus");
  358
+            add("to");
  359
+            add("today");
  360
+            add("together");
  361
+            add("too");
  362
+            add("took");
  363
+            add("toward");
  364
+            add("turn");
  365
+            add("turned");
  366
+            add("turning");
  367
+            add("turns");
  368
+            add("two");
  369
+            add("under");
  370
+            add("until");
  371
+            add("up");
  372
+            add("upon");
  373
+            add("us");
  374
+            add("use");
  375
+            add("used");
  376
+            add("uses");
  377
+            add("very");
  378
+            add("want");
  379
+            add("wanted");
  380
+            add("wanting");
  381
+            add("wants");
  382
+            add("was");
  383
+            add("way");
  384
+            add("ways");
  385
+            add("we");
  386
+            add("well");
  387
+            add("wells");
  388
+            add("went");
  389
+            add("were");
  390
+            add("what");
  391
+            add("when");
  392
+            add("where");
  393
+            add("whether");
  394
+            add("which");
  395
+            add("while");
  396
+            add("who");
  397
+            add("whole");
  398
+            add("whose");
  399
+            add("why");
  400
+            add("will");
  401
+            add("with");
  402
+            add("within");
  403
+            add("without");
  404
+            add("work");
  405
+            add("worked");
  406
+            add("working");
  407
+            add("works");
  408
+            add("would");
  409
+            add("year");
  410
+            add("years");
  411
+            add("yet");
  412
+            add("you");
  413
+            add("young");
  414
+            add("younger");
  415
+            add("youngest");
  416
+            add("your");
  417
+            add("yours");
  418
+        }
  419
+    };
  420
+}
7  src/main/java/varaha/text/TokenizeText.java
@@ -21,6 +21,8 @@
21 21
 import java.io.IOException;
22 22
 import java.io.StringReader;
23 23
 import java.util.Iterator;
  24
+import java.util.Set;
  25
+import java.util.HashSet;
24 26
 
25 27
 import org.apache.pig.EvalFunc;
26 28
 import org.apache.pig.data.Tuple;
@@ -37,7 +39,8 @@
37 39
 
38 40
 /**
39 41
  * TokenizeText uses the Lucene libraries StandardAnalyzer class to tokenize a
40  
- * raw text input. Output is a pig bag containing tokens.
  42
+ * raw text input. A list of the stopwords used is available {@link StopWords}.
  43
+ * Output is a pig bag containing tokens.
41 44
  *  
42 45
  * <dt><b>Example:</b></dt>
43 46
  * <dd><code>
@@ -56,7 +59,7 @@
56 59
     private static TupleFactory tupleFactory = TupleFactory.getInstance();
57 60
     private static BagFactory bagFactory = BagFactory.getInstance();
58 61
     private static String NOFIELD = "";
59  
-    private static StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_31);
  62
+    private static StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_31, StopWords.ENGLISH_STOP_WORDS);
60 63
 
61 64
     public DataBag exec(Tuple input) throws IOException {
62 65
         if (input == null || input.size() < 1 || input.isNull(0))

0 notes on commit fa9ad21

Please sign in to comment.
Something went wrong with that request. Please try again.