package com.transmem.nlp;
public class Linguist implements ILinguist
{
private String langCode_;
private String langName_;
private ISegmenter segmenter_;
private IFilter filter_;
private IStemmer stemmer_;
private ITagger tagger_;
private IParser parser_;
private IAligner aligner_;
//private ISpellChecker spellchecker_;
public Linguist()
{
}
public Linguist(String code, String name)
{
this.langCode_ = code;
this.langName_ = name;
}
public String getLangCode()
{
return this.langCode_;
}
public void setLangCode(String code)
{
this.langCode_ = code;
}
public String getLangName()
{
return this.langName_;
}
public void setLangName(String name)
{
this.langName_ = name;
}
public ISegmenter getSegmenter()
{
return this.segmenter_;
}
public void setSegmenter(ISegmenter segmenter)
{
this.segmenter_ = segmenter;
}
public IFilter getFilter()
{
return this.filter_;
}
public void setFilter(IFilter filter)
{
this.filter_ = filter;
}
public IStemmer getStemmer()
{
return this.stemmer_;
}
public void setStemmer(IStemmer stemmer)
{
this.stemmer_ = stemmer;
}
public ITagger getTagger()
{
return this.tagger_;
}
public void setTagger(ITagger tagger)
{
this.tagger_ = tagger;
}
public IParser getParser()
{
return this.parser_;
}
public void setParser(IParser parser)
{
this.parser_ = parser;
}
public String[] segment(String sent) throws LanguageException
{
if (this.segmenter_ == null)
{
throw new LanguageException(LanguageException.NullPointerException,"segmenter not assigned");
}
return this.segmenter_.segment(sent);
}
public String[] filter(String[] words) throws LanguageException
{
if (this.filter_ == null)
{
throw new LanguageException(LanguageException.NullPointerException,"filter not assigned");
}
return this.filter_.filter(words);
}
public String[] stem(String[] words) throws LanguageException
{
if (this.stemmer_ == null)
{
throw new LanguageException(LanguageException.NullPointerException,"stemmer not assigned");
}
String[] s = new String[words.length];
for (int i=0; i<words.length; i++)
{
s[i] = this.stemmer_.stem(words[i]);
}
return s;
}
/**
* indexkeys returns a list of words as indexes in a given sentence.
* @param sent - sentence as a String
* @return array of words(stems) suitable for indexing as keys
*/
public String[] indexkeys(String sent) throws LanguageException
{
String[] words = segment(sent);
String[] words2 = filter(words);
String[] stems = stem(words2);
return stems;
}
}