2012-09-16 2 views
1

extjwnl library을 사용하여 WordNet에 새 synset을 추가하려고했습니다. 이렇게하기 위해 다음 샘플 코드를 작성했습니다. 저장 후, 나는 새로운 동의어와 단어가 추가된다는 것을 알았지 만, 생성 된 의미 론적 포인터 (hyponymy 관계를 식별 함)는 저장되지 않는다. 포인터를 사전과 어떻게 관련시킬 수 있습니까? 및 dictionary.getManageSymmetricPointers : 포인터가 (하위 분류 거울 하나를 가지고 상위어, 등) 대칭 인 경우EXTJWNL을 사용하여 Wordnet 사전 편집

topmostSynset.getPointers().add(newPointer); 

:

 JWNL.initialize(new FileInputStream(propsFile)); 
     Dictionary dictionary = Dictionary.getInstance(); 
     Iterator<Synset> synsets = dictionary.getSynsetIterator(POS.NOUN); 

     dictionary.edit(); 
     Synset newSynset = new Synset(dictionary, POS.NOUN); 
     IndexWord newWord = new IndexWord(dictionary, "hublabooboo", POS.NOUN, newSynset); 
     Synset topmostSynset = synsets.next(); 
     Pointer newPointer = new Pointer(PointerType.HYPONYM, topmostSynset, newSynset); 
     dictionary.save(); 

답변

2

난 당신이 포인터의 synset의 목록에 포인터를 추가 좋을 것()를 사용하면 역순 포인터 (예 : hyponym)가 자동으로 추가됩니다.

그건 그렇고,이 코드에 의해 Synset topmostSynset = synsets.next(); synset 반복자에서 처음으로 반환 된 synset이 "엔터티"라고 추측하는 것처럼 보입니다. 그러나 이것은 아무 데서도 보장되지 않습니다. 이것은 사전에 의존적입니다. 파일 기반에서는 작동하지만 데이터베이스 기반에서는지도 기반이거나 예측할 수 없을 것입니다.

출처 : SourceForge