Извлечение списка слов из Wordnet

Я хотел бы извлечь основной список синонимов из базы данных для моей поисковой системы. Это включает в себя общепринятые имена, такие как "Шон против Шона", различные варианты Мухаммеда, аббревиатуры названных организаций, таких как ООН (ООН) или "Сильный острый респираторный синдром" (ТОРС).

После извлечения этот список синонимов будет помещен на сервер и сохранен как таковой - строка связанных терминов / синонимов.

пример

Я использовал API челюстей и смог получить синонимы определенных слов, которые я ввел. Это один из примеров, которые я пробовал.

Синонимы НАСА:

  1. Национальное управление по аэронавтике и исследованию космического пространства: независимое агентство правительства Соединенных Штатов, ответственное за авиацию и космические полеты.

Ниже приведен код, который я использовал.

/**
 * Main entry point. The command-line arguments are concatenated together
 * (separated by spaces) and used as the word form to look up.
 */
public static void main(String[] args)
{
    arg[0]="NASA";
    if (args.length > 0)
    {
        //  Concatenate the command-line arguments
        StringBuffer buffer = new StringBuffer();
        for (int i = 0; i < args.length; i++)
        {
            buffer.append((i > 0 ? " " : "") + args[i]);
        }
        String wordForm = buffer.toString();
        //  Get the synsets containing the wrod form
        WordNetDatabase database = WordNetDatabase.getFileInstance();
        Synset[] synsets = database.getSynsets(wordForm);
        //  Display the word forms and definitions for synsets retrieved
        if (synsets.length > 0)
        {
            System.out.println("The following synsets contain '" +
                    wordForm + "' or a possible base form " +
                    "of that text:");
            for (int i = 0; i < synsets.length; i++)
            {
                System.out.println("");
                String[] wordForms = synsets[i].getWordForms();
                for (int j = 0; j < wordForms.length; j++)
                {
                    System.out.print((j > 0 ? ", " : "") +
                            wordForms[j]);
                }
                System.out.println(": " + synsets[i].getDefinition());
            }
        }
        else
        {
            System.err.println("No synsets exist that contain " +
                    "the word form '" + wordForm + "'");
        }
    }
    else
    {
        System.err.println("You must specify " +
                "a word form for which to retrieve synsets.");
    }
}

Тем не менее, этот метод потребует от меня вручную ввести все слова, которые я хочу запросить. Есть ли способ перебрать весь словарь для хранения всех различных слов и их синонимов в списке слов (текстовая форма)?

Спасибо

1 ответ

Я нахожусь в той же лодке для моего проекта, но я нашел кого-то, кто уже сделал различные извлечения WordNet: https://sourceforge.net/projects/wordnetport/files/?source=navbar

Это не очень помогло мне, так как группы синонимов WordNet довольно мелкие, но, надеюсь, они сделают свое дело для вас (или кого-то синонима).

Другие вопросы по тегам