Java BabelNet 2.5路径索引配置中出错
按照本文和中的所有步骤,我已经在Eclipse中为Windows配置了BabelNet 它工作正常,从BabelNet加载所有synset。然后它需要knowldgeBasePathIndex并开始加载。在第一个链接中,规定如下: 它开始运行,但失败了,因为它在尝试加载知识库时找不到称为“路径索引”的内容。路径索引的位置可以通过在config/knowledge.var.properties中放置一行来指定: knowledge.graph.pathIndex=C:/Program Files/BabelNet/data 我对此有两个疑问:Java BabelNet 2.5路径索引配置中出错,java,word-sense-disambiguation,Java,Word Sense Disambiguation,按照本文和中的所有步骤,我已经在Eclipse中为Windows配置了BabelNet 它工作正常,从BabelNet加载所有synset。然后它需要knowldgeBasePathIndex并开始加载。在第一个链接中,规定如下: 它开始运行,但失败了,因为它在尝试加载知识库时找不到称为“路径索引”的内容。路径索引的位置可以通过在config/knowledge.var.properties中放置一行来指定: knowledge.graph.pathIndex=C:/Program Files/
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);
}
publicstaticvoid消歧(集合词、知识库知识库、知识图记分器记分器)
{
尝试
{
BabelNet bn=BabelNet.getInstance();
System.out.println(“带有英文单词的synset:“bank\”);
List synsets=bn.getSynsets(Language.EN,“bank”);
for(BabelSynset-synset:synset)
{
System.out.print(“=>(“+synset.getId()+”)源:“+synset.getSynsetSource()+”;WN-synset:“+synset.getWordNetOffsets()+”;\n感官(EN):{”);
for(BabelSense sense:synset.getsense(Language.EN))
System.out.print(sense.toString()+);
System.out.println(“}\n-----”);
Map relatedSynsets=synset.getRelatedMap();
对于(IPInter relationType:relatedSynsets.keySet())
{
List relationSynsets=relatedSynsets.get(relationType);
for(BabelSynset relationSynset:relationSynset)
{
System.out.println(“EDGE”+relationType.getSymbol()+“”+relationSynset.getId()+“”+relationSynset.toString(Language.EN));
}
}
System.out.println(“----”);
KnowledgeGraphFactory工厂=KnowledgeGraphFactory.getInstance(kb);
KnowledgeGraph kGraph=factory.getKnowledgeGraph(文字);
地图得分=记分员得分(kGraph);
for(字符串概念:scores.keySet())
{
double score=分数。获取(概念);
for(单词:kGraph.wordsForConcept(概念))
添加标签(概念、分数);
}
for(单词:单词)
{
System.out.println(“\n\t”+word.getWord()+”--ID“+word.getId()+”=>SENSE-DISTRIBUTION:”);
for(ScoredItem标签:word.getLabels())
{
System.out.println(“\t[”+label.getItem()+”]:“+Strings.format(label.getScore());
}
}
}
}
捕获(ioe异常ioe)
{
System.out.println(“故障:+ioe.getMessage());
}
}
公共静态void main(字符串[]args){
列表语句=数组.asList(新词[]{新词(“银行”,“n”,Language.EN”)、新词(“奖金”,“n”,Language.EN”)、新词(“支付”,“v”,Language.EN”)、新词(“股票”,“n”,Language.EN”);
消除歧义(句子,KnowledgeBase.BABELNET,KnowledgeGraphScorer.DEGREE);
}
BabelNet API 2.5.1中不推荐使用知识工厂,“预编译索引束v2.5.1”不是该工厂的必要索引。在BabelNet 1.1之后,我们还没有发布“BabelNet路径索引”
水务署的任务请使用(babelfy.org)