Mercurial > hg > mpdl-group
diff software/mpdl-services/mpiwg-mpdl-lt/src/de/mpg/mpiwg/berlin/mpdl/lt/morph/app/MorphologyCache.java @ 20:7d6d969b10cf
little corrections
author | Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de> |
---|---|
date | Wed, 14 Dec 2011 12:48:43 +0100 |
parents | 4a3641ae14d2 |
children | e845310098ba |
line wrap: on
line diff
--- a/software/mpdl-services/mpiwg-mpdl-lt/src/de/mpg/mpiwg/berlin/mpdl/lt/morph/app/MorphologyCache.java Wed Nov 09 15:32:05 2011 +0100 +++ b/software/mpdl-services/mpiwg-mpdl-lt/src/de/mpg/mpiwg/berlin/mpdl/lt/morph/app/MorphologyCache.java Wed Dec 14 12:48:43 2011 +0100 @@ -64,14 +64,19 @@ LOGGER.info("Morphology db cache: closed"); } - public ArrayList<Lemma> getLemmasByFormName(String lang, String formNameArg, boolean normalize) throws ApplicationException { + /* + public ArrayList<Lemma> getLemmasByFormName(String lang, String formName, boolean normalize) throws ApplicationException { + return getLemmasByFormName(lang, formName, normalize, Normalizer.DISPLAY); + } + */ + + public ArrayList<Lemma> getLemmasByFormName(String lang, String formNameArg, int normMode) throws ApplicationException { String language = Language.getInstance().getLanguageId(lang); ArrayList<Lemma> retFormLemmas = null; String formName = formNameArg; - if (normalize) { - Normalizer normalizer = new Normalizer(language); - formName = normalizer.normalize(formNameArg); - } + Normalizer normalizer = new Normalizer(language); + normalizer.setNormMode(normMode); + formName = normalizer.normalize(formNameArg); // first look in local cache String key = language + "###" + formName; Hashtable<String, Lemma> formLemmasHashtable = forms.get(key); @@ -114,13 +119,12 @@ return retFormLemmas; } - public Lemma getLemma(String lang, String lemmaNameArg, boolean normalize) throws ApplicationException { + public Lemma getLemma(String lang, String lemmaNameArg, int normMode) throws ApplicationException { String language = Language.getInstance().getLanguageId(lang); String lemmaName = lemmaNameArg; - if (normalize) { - Normalizer normalizer = new Normalizer(language); - lemmaName = normalizer.normalize(lemmaNameArg); - } + Normalizer normalizer = new Normalizer(language); + normalizer.setNormMode(normMode); + lemmaName = normalizer.normalize(lemmaNameArg); // first look in local cache String key = language + "###" + lemmaName; Lemma lemma = lemmas.get(key); @@ -138,7 +142,7 @@ return lemma; } - public ArrayList<Form> getFormsByLuceneQuery(String lang, String luceneQueryString, boolean normalize) throws ApplicationException { + public ArrayList<Form> getFormsByLuceneQuery(String lang, String luceneQueryString, int normMode) throws ApplicationException { String language = Language.getInstance().getLanguageId(lang); ArrayList<Form> result = new ArrayList<Form>(); luceneQueryString = luceneQueryString.toLowerCase(); @@ -146,19 +150,18 @@ if (! (formsFromQuery == null || formsFromQuery.isEmpty())) { for (int i=0; i<formsFromQuery.size(); i++) { String formStr = formsFromQuery.get(i); - if (normalize) { - Normalizer normalizer = new Normalizer(language); - formStr = normalizer.normalize(formStr); - } + Normalizer normalizer = new Normalizer(language); + normalizer.setNormMode(normMode); + formStr = normalizer.normalize(formStr); ArrayList<Lemma> formLemmas = null; // lemma mode: if formName contains "lemmalemma" then the lemma itself is fetched if (formStr.startsWith("lemmalemma")) { formLemmas = new ArrayList<Lemma>(); String lemmaName = formStr.substring(10); - Lemma lemma = getLemma(language, lemmaName, false); + Lemma lemma = getLemma(language, lemmaName, Normalizer.NONE); formLemmas.add(lemma); } else { - formLemmas = getLemmasByFormName(language, formStr, false); + formLemmas = getLemmasByFormName(language, formStr, normMode); } if (formLemmas != null && ! formLemmas.isEmpty()) { for (int j=0; j<formLemmas.size(); j++) { @@ -172,7 +175,7 @@ return result; } - public ArrayList<Lemma> getLemmasByLuceneQuery(String lang, String luceneQueryString, boolean normalize) throws ApplicationException { + public ArrayList<Lemma> getLemmasByLuceneQuery(String lang, String luceneQueryString, int normMode) throws ApplicationException { String language = Language.getInstance().getLanguageId(lang); Hashtable<String, Lemma> lemmas = new Hashtable<String, Lemma>(); luceneQueryString = luceneQueryString.toLowerCase(); @@ -180,19 +183,18 @@ if (! (formsFromQuery == null || formsFromQuery.isEmpty())) { for (int i=0; i<formsFromQuery.size(); i++) { String formStr = formsFromQuery.get(i); - if (normalize) { - Normalizer normalizer = new Normalizer(language); - formStr = normalizer.normalize(formStr); - } + Normalizer normalizer = new Normalizer(language); + normalizer.setNormMode(normMode); + formStr = normalizer.normalize(formStr); ArrayList<Lemma> formLemmas = null; // lemma mode: if formName starts with "lemmalemma" then the lemma itself is fetched if (formStr.startsWith("lemmalemma")) { formLemmas = new ArrayList<Lemma>(); String lemmaName = formStr.substring(10); - Lemma lemma = getLemma(language, lemmaName, false); + Lemma lemma = getLemma(language, lemmaName, Normalizer.NONE); formLemmas.add(lemma); } else { - formLemmas = getLemmasByFormName(language, formStr, false); + formLemmas = getLemmasByFormName(language, formStr, normMode); } if (formLemmas != null) { for (int j=0; j<formLemmas.size(); j++) { @@ -223,13 +225,13 @@ Hashtable<String, String> indexKeys = new Hashtable<String, String>(); for (int j=0; j<lemmaNames.size(); j++) { String lemmaName = lemmaNames.get(j); - Lemma lemma = getLemma(language, lemmaName, false); + Lemma lemma = getLemma(language, lemmaName, Normalizer.NONE); indexKeys.put(lemmaName, lemmaName); if (lemma != null) { ArrayList<Form> lemmaForms = lemma.getFormsList(); for (int k=0; k<lemmaForms.size(); k++) { Form form = lemmaForms.get(k); - ArrayList<Lemma> fLemmas = getLemmasByFormName(language, form.getFormName(), false); + ArrayList<Lemma> fLemmas = getLemmasByFormName(language, form.getFormName(), Normalizer.NONE); if (fLemmas != null) { String indexKey = ""; if (fLemmas.size() == 1) {