// Initialize the WVTool
WVTool wvt = new WVTool(false);
// Initialize the configuration
WVTConfiguration config = new WVTConfiguration();
final WVTStemmer dummyStemmer = new DummyStemmer();
final WVTStemmer porterStemmer = new PorterStemmerWrapper();
config.setConfigurationRule(WVTConfiguration.STEP_STEMMER, new WVTConfigurationRule() {
public Object getMatchingComponent(WVTDocumentInfo d) {
if (d.getContentLanguage().equals("english"))
return porterStemmer;
else
return dummyStemmer;
}
});
WVTStemmer stemmer = new LovinsStemmerWrapper();
config.setConfigurationRule(WVTConfiguration.STEP_STEMMER, new WVTConfigurationFact(stemmer));
// Initialize the input list with two classes
WVTFileInputList list = new WVTFileInputList(2);
// Add entries
list.addEntry(new WVTDocumentInfo("../data/alt.atheism", "txt", "", "german", 0));
list.addEntry(new WVTDocumentInfo("../data/soc.religion.christian", "txt", "", "english", 1));
// Generate the word list
WVTWordList wordList = wvt.createWordList(list, config);
// Prune the word list
wordList.pruneByFrequency(2, 5);
// Alternativ I: read an already created word list from a file
// WVTWordList wordList2 =
// new WVTWordList(new FileReader("/home/wurst/tmp/wordlisttest.txt"));
// Alternative II: Use predifined dimensions
// List dimensions = new Vector();
// dimensions.add("atheist");
// dimensions.add("christian");
// wordList =
// wvt.createWordList(list, config, dimensions, false);
// Store the word list in a file
wordList.storePlain(new FileWriter("wordlist.txt"));
// Create the word vectors
// Set up an output filter (write sparse vectors to a file)
FileWriter outFile = new FileWriter("wv.txt");
WordVectorWriter wvw = new WordVectorWriter(outFile, true);
config.setConfigurationRule(WVTConfiguration.STEP_OUTPUT, new WVTConfigurationFact(wvw));
config.setConfigurationRule(WVTConfiguration.STEP_VECTOR_CREATION, new WVTConfigurationFact(new TFIDF()));
// Create the vectors
wvt.createVectors(list, config, wordList);
// Alternatively: create word list and vectors together