Как использовать POS-теги Stanford CoreNLP для получения синсетов из WordNet?

Я работаю с Java в Eclipse и Stanford CoreNLP. Я хочу знать, как использовать теги POS, сгенерированные Stanford CoreNLP, для извлечения синсетов слов с тегами из WordNet. (Я токенизировал предложение перед POS-тегированием)

Поскольку WordNet имеет синсеты с POS-тегами, я предполагаю, что это можно сделать. Я также просмотрел несколько руководств, но ничего особенно полезного.


person user5330688    schedule 23.10.2015    source источник
comment
Во-первых, я хочу отфильтровать только существительные, глаголы и прилагательные из всех слов с тегами, а затем использовать их для вышеупомянутой цели.   -  person user5330688    schedule 24.10.2015
comment
Итак, я вроде решил это. Поскольку WN использует нотацию Penn Treebank, я написал метод для получения синсетов для каждого соответствующего тега.   -  person user5330688    schedule 25.10.2015
comment
Я не уверен, что вы подразумеваете под WN, используя нотацию Penn Treebank; но, как и в другом потоке, я бы порекомендовал реализовать вариант алгоритма Леска или посмотреть, работает ли базовая линия наиболее здравого смысла достаточно хорошо, чтобы быть полезной.   -  person Gabor Angeli    schedule 26.10.2015


Ответы (1)


следующий код получает все синсеты тега searchWord+POS, затем из них печатает их глоссы. вы можете изменить POS.NOUN для поиска других форм поискового слова:

public int stackoverflow(String searchWord) throws IOException {
        String s = null;
        IDictionary dict = dicitionaryFactory();
        try {

            IIndexWord idxWord = dict.getIndexWord(searchWord, POS.NOUN);
            for (int i = 0; i < idxWord.getWordIDs().size(); i++) {
            IWordID wordID = idxWord.getWordIDs().get(i); // ist meaning
            edu.mit.jwi.item.IWord word = dict.getWord(wordID);
            edu.mit.jwi.item.ISynset synset = word.getSynset();
            List<edu.mit.jwi.item.IWord> words;
            System.out.println(synset.getGloss());

            }
            return -1;
        } catch (Exception e) {
            return -2;
        }
    }
person Hasan Zafari    schedule 28.06.2016