Ошибка в конфигурации индекса пути BabelNet 2.5

Выполнив все действия, описанные на этой странице, я настроил BabelNet для Windows в Eclipse.

Он работает нормально и загружает все наборы из BabelNet. Затем он должен знать knowldgeBasePathIndex и начинает загрузку. В первой ссылке указано такое:

Это начинает работать, но не удается, потому что он не может найти то, что называется "индекс пути", при попытке загрузить базу знаний. Расположение индекса пути можно указать, поместив строку в config / знание.var.properties: Knowledge.graph.pathIndex=C:/Program Files/BabelNet/data

У меня есть два вопроса по этому поводу:

  1. В BabelNet 3.0 нет файла Knowledge.var.properties. Итак, я перешел на BabelNet 2.5.

  2. В BabelNet 2.5 нет такой папки, как данные, но есть в BabelNet 3.0. Тем не менее, ни в одном из них нет указателей пути.

Из-за этого программа перестает работать.

Кто-нибудь может дать совет по этому поводу?

Спасибо.

Программа здесь:

public static void disambiguate(Collection<Word> words, KnowledgeBase kb, KnowledgeGraphScorer scorer) 
    {
        try
        {
        BabelNet bn = BabelNet.getInstance();
        System.out.println("SYNSETS WITH English word: \"bank\"");
        List<BabelSynset> synsets = bn.getSynsets(Language.EN, "bank");
        for (BabelSynset synset : synsets)
        {
        System.out.print(" =>(" + synset.getId() + ") SOURCE: " + synset.getSynsetSource() +"; WN SYNSET: " + synset.getWordNetOffsets() +";\n SENSES (EN): { ");
        for (BabelSense sense : synset.getSenses(Language.EN))
        System.out.print(sense.toString()+" ");
        System.out.println("}\n -----");
        Map<IPointer, List<BabelSynset>> relatedSynsets = synset.getRelatedMap();
        for (IPointer relationType : relatedSynsets.keySet()) 
        {
        List<BabelSynset> relationSynsets = relatedSynsets.get(relationType);
        for (BabelSynset relationSynset : relationSynsets) 
        {
        System.out.println(" EDGE " + relationType.getSymbol() +" " + relationSynset.getId() +" " + relationSynset.toString(Language.EN));
        }
        }
        System.out.println(" -----");
        KnowledgeGraphFactory factory = KnowledgeGraphFactory.getInstance(kb);
        KnowledgeGraph kGraph = factory.getKnowledgeGraph(words);
        Map<String, Double> scores = scorer.score(kGraph);
        for (String concept : scores.keySet()) 
        {
        double score = scores.get(concept);
        for (Word word : kGraph.wordsForConcept(concept))
        word.addLabel(concept, score);
        }
        for (Word word : words) 
        {
        System.out.println("\n\t" + word.getWord() + " -- ID " + word.getId() +" => SENSE DISTRIBUTION: ");
        for (ScoredItem<String> label : word.getLabels()) 
        {
        System.out.println("\t [" + label.getItem() + "]:" +Strings.format(label.getScore()));
        }
        }
        }
        }
        catch(IOException ioe)
        {
            System.out.println("Trouble: " + ioe.getMessage());
        } 
}
public static void main(String[] args) {
List<Word> sentence = Arrays.asList(new Word[]{new Word("bank", ’n’,     Language.EN), new Word("bonus", ’n’, Language.EN),new Word("pay", ’v’, Language.EN), new Word("stock", ’n’, Language.EN)});
disambiguate(sentence, KnowledgeBase.BABELNET, KnowledgeGraphScorer.DEGREE);
}

1 ответ

Решение

Фабрика знаний устарела в BabelNet API 2.5.1, и "Precompiled Index Bundle v2.5.1" не является необходимыми индексами для этой фабрики. Мы не выпустили "Индексы пути BabelNet" после BabelNet 1.1.

для задания WSD используйте Babelfy (babelfy.org)

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