All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.harium.suneidesis.linguistic.english.English Maven / Gradle / Ivy

The newest version!
package com.harium.suneidesis.linguistic.english;

import com.harium.suneidesis.linguistic.LanguageCode;
import com.harium.suneidesis.linguistic.LanguageHelper;
import com.harium.suneidesis.linguistic.english.math.SimpleNumberToWord;
import com.harium.suneidesis.linguistic.math.NumberToWord;
import com.harium.suneidesis.linguistic.math.WordToNumber;
import com.harium.suneidesis.linguistic.nlp.pos.Tag;
import com.harium.suneidesis.linguistic.portuguese.math.SimpleWordToNumber;

import java.math.BigDecimal;

public class English implements LanguageHelper {

    public static final String LANGUAGE_ENGLISH = "english";
    public static final String LANGUAGE_FRENCH = "french";
    public static final String LANGUAGE_PORTUGUESE = "portuguese";
    private final NumberToWord numberToWord = new SimpleNumberToWord();

    private final WordToNumber wordToNumber = new SimpleWordToNumber();

    @Override
    public Tag getTagFromText(String tagText) {
        if (tagText == null || tagText.isEmpty()) {
            return null;
        }

        String tag = tagText.toLowerCase();

        if ("determiner".equalsIgnoreCase(tag)) {
            return Tag.DETERMINER;
        } else if ("adjective".equalsIgnoreCase(tag)) {
            return Tag.ADJECTIVE;
        } else if ("adverb".equalsIgnoreCase(tag)) {
            return Tag.ADVERB;
        } else if ("numeral".equalsIgnoreCase(tag)) {
            return Tag.NUMERAL;
        } else if ("conjunction".equalsIgnoreCase(tag)) {
            return Tag.CONJUCTION;
        } else if ("interjection".equalsIgnoreCase(tag)) {
            return Tag.INTERJECTION;
        } else if ("verb".equalsIgnoreCase(tag)) {
            return Tag.VERB;
        } else if ("verb conjugation".equalsIgnoreCase(tag)) {
            return Tag.VERB_CONJUGATION;
        } else if ("noun".equalsIgnoreCase(tag)) {
            return Tag.NOUN;
        } else if ("proper noun".equalsIgnoreCase(tag)) {
            return Tag.NOUN_PROPER;
        } else if ("personal pronoun".equalsIgnoreCase(tag)) {
            return Tag.PERSONAL_PRONOUN;
        } else if ("pronoun".equalsIgnoreCase(tag)) {
            return Tag.PRONOUN;
        } else if ("preposition".equalsIgnoreCase(tag)) {
            return Tag.PREPOSITION;
        }

        return null;
    }

    @Override
    public String getLanguageCode(String languageName) {
        if (languageName == null || languageName.isEmpty()) {
            return null;
        }
        if (LANGUAGE_ENGLISH.equalsIgnoreCase(languageName)) {
            return LanguageCode.ENGLISH;
        } else if (LANGUAGE_FRENCH.equalsIgnoreCase(languageName)) {
            return LanguageCode.FRENCH;
        } else if (LANGUAGE_PORTUGUESE.equalsIgnoreCase(languageName)) {
            return LanguageCode.PORTUGUESE;
        }
        return null;
    }

    @Override
    public String getLanguageName(String languageCode) {
        if (languageCode == null || languageCode.isEmpty()) {
            return null;
        }
        if (LanguageCode.ENGLISH.equalsIgnoreCase(languageCode)) {
            return LANGUAGE_ENGLISH;
        } else if (LanguageCode.FRENCH.equalsIgnoreCase(languageCode)) {
            return LANGUAGE_FRENCH;
        } else if (LanguageCode.PORTUGUESE.equalsIgnoreCase(languageCode)) {
            return LANGUAGE_PORTUGUESE;
        }
        return null;
    }

    @Override
    public String toWord(int number) {
        return numberToWord.toWord(number);
    }

    @Override
    public String toWord(double number) {
        return numberToWord.toWord(number);
    }

    @Override
    public String toWord(BigDecimal number) {
        return numberToWord.toWord(number);
    }

    @Override
    public BigDecimal toNumber(String sentence) {
        return wordToNumber.toNumber(sentence);
    }

    public static boolean isEnglish(String language) {
        if (language == null || language.isEmpty()) {
            return false;
        }
        return language.startsWith(LanguageCode.ENGLISH);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy