Стиминг с WordNet с помощта на JWNL - Не може да се инсталира речник

Опитвам се да създам низ с помощта на WordNet с JWNL API. Когато се опитам да заредя речника, той ми дава FileNotFoundException.

Това е кодът, инициализиращ речника:

public static void Initializer(){
    try {
        JWNL.initialize(new FileInputStream("file_properties.xml"));
        dictionary = Dictionary.getInstance();
        morphPro = dictionary.getMorphologicalProcessor();
    }
    catch(FileNotFoundException e){
        e.printStackTrace();

    } catch (JWNLException e) {
        e.printStackTrace();
    }
}

И ето какво получавам:

net.didion.jwnl.JWNLException: Unable to install net.didion.jwnl.dictionary.FileBackedDictionary
    at net.didion.jwnl.util.factory.Element.install(Element.java:34)
    at net.didion.jwnl.JWNL.initialize(JWNL.java:169)
    at Algorithms.Stemmer.Initializer(Stemmer.java:54)
    at Algorithms.Stemmer.WordStemmer(Stemmer.java:33)
    at Algorithms.Stemmer.StringStemmer(Stemmer.java:26)
    at GUI.ButtonListener.actionPerformed(ButtonListener.java:167)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$000(Unknown Source)
    at java.awt.EventQueue$1.run(Unknown Source)
    at java.awt.EventQueue$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$2.run(Unknown Source)
    at java.awt.EventQueue$2.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: net.didion.jwnl.JWNLException: The properties file must specify a dictionary path
    at net.didion.jwnl.util.factory.AbstractValueParam.create(AbstractValueParam.java:34)
    at net.didion.jwnl.dictionary.FileBackedDictionary.install(FileBackedDictionary.java:111)
    at net.didion.jwnl.util.factory.Element.install(Element.java:32)

Почти съм сигурен, че има нещо общо с пътя, но не мога да разбера какво точно не е наред, тъй като промених файла properties.xml да използва C:\WordNet\2.1\dict\ - така че това трябва да е наред?


person Aqeel Hussain    schedule 21.05.2012    source източник


Отговори (5)


И аз имам същия проблем. Грешката беше:

gate.creole.ResourceInstantiationException: net.didion.jwnl.JWNLException: Unable to install net.didion.jwnl.dictionary.FileBackedDictionary
    at gate.wordnet.JWNLWordNetImpl.init(JWNLWordNetImpl.java:62)
    at gate.Factory.createResource(Factory.java:432)
    at gate.Factory.createResource(Factory.java:139)
    at WordNetApp.main(WordNetApp.java:45)
Caused by: net.didion.jwnl.JWNLException: Unable to install net.didion.jwnl.dictionary.FileBackedDictionary
    at net.didion.jwnl.util.factory.Element.install(Element.java:34)
    at net.didion.jwnl.JWNL.initialize(JWNL.java:169)
    at gate.wordnet.JWNLWordNetImpl.init(JWNLWordNetImpl.java:57)
    ... 3 more
Caused by: net.didion.jwnl.JWNLException: The properties file must specify a dictionary path
    at net.didion.jwnl.util.factory.AbstractValueParam.create(AbstractValueParam.java:34)
    at net.didion.jwnl.dictionary.FileBackedDictionary.install(FileBackedDictionary.java:111)
    at net.didion.jwnl.util.factory.Element.install(Element.java:32)
    ... 5 more
Caused by: net.didion.jwnl.JWNLException: Could not create a file manager of type class net.didion.jwnl.princeton.file.PrincetonRandomAccessDictionaryFile
    at net.didion.jwnl.dictionary.file_manager.FileManagerImpl.create(FileManagerImpl.java:98)
    at net.didion.jwnl.util.factory.AbstractValueParam.create(AbstractValueParam.java:32)
    ... 7 more
Caused by: 

java.io.FileNotFoundException: C:\Program Files\WordNet\index.verb

(The system cannot find the file specified)
        at java.io.RandomAccessFile.open(Native Method)
        at java.io.RandomAccessFile.<init>(Unknown Source)
        at net.didion.jwnl.princeton.file.PrincetonRandomAccessDictionaryFile.openFile(PrincetonRandomAccessDictionaryFile.java:76)
        at net.didion.jwnl.dictionary.file.AbstractDictionaryFile.open(AbstractDictionaryFile.java:58)
        at net.didion.jwnl.dictionary.file.DictionaryCatalog.open(DictionaryCatalog.java:45)
        at net.didion.jwnl.dictionary.file.DictionaryCatalogSet.open(DictionaryCatalogSet.java:34)
        at net.didion.jwnl.dictionary.file_manager.FileManagerImpl.<init>(FileManagerImpl.java:71)
        at net.didion.jwnl.dictionary.file_manager.FileManagerImpl.create(FileManagerImpl.java:96)
        ... 8 more

Така че открих проблема. В този property.xml дадох грешен път като:

<param name="dictionary_path" value="C:/Program Files/WordNet/"/>

Така че промених пътя му към директорията съдържа глаголен файл:

<param name="dictionary_path" value="C:/Program Files/WordNet/2.1/dict/"/>

Така че проблемът ми е решен.

person Sujith PS    schedule 04.09.2013

По същия начин трябва да промените data.adj и т.н. във формата на adj.dat (това е, разбира се, ако не желаете да промените номера на версията във file_properties.xml)

person jana    schedule 15.10.2013

В file_properties.xml променете номера на версията на правилната версия.

person David    schedule 30.08.2013

Добре, разбрах какво не е наред. Търсеше грешни файлове. Преименувах index.verb, index.adj и т.н. на verb.idx... Това реши проблема и програмата вече може да търси думите в речника.

person Aqeel Hussain    schedule 22.05.2012
comment
картографирането на файлове се основава на използваната версия на wordnet. и трябва да бъдат посочени във файла за инициализация. - person Amit G; 17.02.2014

jwnl не работи с wordnet 2.1 версия. Така че опитайте с wordnet 2.0, тогава работи правилно.

person Community    schedule 13.10.2015