/** * return the base form of a word * * @param element * @param baseWord * @return */ private static string getBaseForm(InflectedWordElement element, WordElement baseWord) { // unclear what the right behaviour should be // for now, prefer baseWord.getBaseForm() to element.getBaseForm() for // verbs (ie, "is" mapped to "be") // but prefer element.getBaseForm() to baseWord.getBaseForm() for other // words (ie, "children" not mapped to "child") // AG: changed this to get the default spelling variant // needed to preserve spelling changes in the VP if ((int)LexicalCategoryEnum.VERB == element.getCategory().enumType) { if (baseWord != null && baseWord.getDefaultSpellingVariant() != null) { return(baseWord.getDefaultSpellingVariant()); } else { return(element.getBaseForm()); } } else { if (element.getBaseForm() != null) { return(element.getBaseForm()); } else if (baseWord == null) { return(null); } else { return(baseWord.getDefaultSpellingVariant()); } } // if (LexicalCategory.VERB == element.getCategory()) { // if (baseWord != null && baseWord.getBaseForm() != null) // return baseWord.getBaseForm(); // else // return element.getBaseForm(); // } else { // if (element.getBaseForm() != null) // return element.getBaseForm(); // else if (baseWord == null) // return null; // else // return baseWord.getBaseForm(); // } }
/** * Constructs a new inflected word from a WordElement * * @param word * underlying wordelement */ public InflectedWordElement(WordElement word) { setFeature(InternalFeature.BASE_WORD.ToString(), word); // AG: changed to use the default spelling variant // setFeature(LexicalFeature.BASE_FORM, word.getBaseForm()); var defaultSpelling = word.getDefaultSpellingVariant(); setFeature(LexicalFeature.BASE_FORM, defaultSpelling); setCategory(word.getCategory()); }