package gannuWSD;
import java.io.File;
import java.util.ArrayList;
import gannuNLP.data.Input;
import gannuNLP.dictionaries.DataBroker;
import gannuUtil.Util;
import gannuWSD.algorithms.FirstSense;
import gannuWSD.algorithms.WSDAlgorithm;
import gannuWSD.skipfilters.SkipFilter;
import gannuWSD.testing.Decision;
import gannuWSD.windowfilters.WindowFilter;
public class Raw2SGF {
/**
* Command for performing Word Sense Disambiguation over raw text in a file.
* java -cp "gannu.jar" gannuWSD.Raw2SGF textFile targetDictionaryClass version disambiguateFlag.
* The disambiguateFlag tells the command to disambiguate all open-class words using the best method available.
* @param args
*/
public static void main(String[] args) throws Exception{
if(args.length<4)
{
System.out.println("java -cp \"gannu.jar\" gannuWSD.Raw2SGF textFile targetDictionaryClass version disambiguateFlag");
}
else
{
File target= new File(args[0]);
DataBroker data=new DataBroker(args[1],args[2]);
data.load("Glosses");
ArrayList<File> files=Util.getAllFiles(target);
for(File f:files)
{
System.out.println("Processing file "+f.getName());
String text=Input.generateSGFFromRaw(f,data);
if(Boolean.parseBoolean(args[3]))
{
Input test=new Input(text,data);
System.out.println("Disambiguating file...");
WSDAlgorithm wsd=new FirstSense();
ArrayList<SkipFilter> skipFilters=new ArrayList<SkipFilter>();
//TODO
//SkipNotOSD filter=new SkipNotOSD();
//filter.addParameters("corpus:sgfSamples/semcor3.0/");
//skipFilters.add(filter);
wsd.setSkipFilters(skipFilters);
ArrayList<WindowFilter> filters=new ArrayList<WindowFilter>(1);
wsd.setWindowFilters(filters);
ArrayList<Decision> ds=wsd.solve(test, null, null, data);
System.out.println("Modifying file...");
Input.modifyAndSaveSGF(f.getCanonicalPath()+".sgf",ds);
}
System.out.println("Saving...");
}
}
}
}