我试图使用下面的代码来阻止一个单词,但它给出了一个例外。
public class stemmer {
private int MaxWordLength = 50;
private Dictionary dic;
private MorphologicalProcessor morph;
private boolean IsInitialized = false;
public HashMap AllWords = null;
public stemmer()
{
AllWords = new HashMap ();
try
{
System.out.println ("1" );
JWNL.initialize(new FileInputStream
("D:\\azeema\\MyResearch\\words database\\jwnl14-rc2 javaAPI\\jwnl14-rc2\\config/file_properties.xml"));
dic = Dictionary.getInstance();
morph = dic.getMorphologicalProcessor();
// ((AbstractCachingDictionary)dic).
// setCacheCapacity (10000);
IsInitialized = true;
System.out.println ("2" );
}
catch ( FileNotFoundException e )
{
// System.out.println (e);
System.out.println ( "Error initializing Stemmer: JWNLproperties.xml not found" );
}
catch ( JWNLException e )
{
System.out.println ( "Error initializing Stemmer: "
+ e.toString() );
e.printStackTrace();
}
}
public void Unload ()
{
dic.close();
Dictionary.uninstall();
JWNL.shutdown();
}
public String StemWordWithWordNet ( String word )
{
if ( !IsInitialized )
return word;
if ( word == null ) return null;
if ( morph == null ) morph = dic.getMorphologicalProcessor();
IndexWord w;
try
{
w = morph.lookupBaseForm( POS.VERB, word );
if ( w != null )
return w.getLemma().toString ();
w = morph.lookupBaseForm( POS.NOUN, word );
if ( w != null )
return w.getLemma().toString();
w = morph.lookupBaseForm( POS.ADJECTIVE, word );
if ( w != null )
return w.getLemma().toString();
w = morph.lookupBaseForm( POS.ADVERB, word );
if ( w != null )
return w.getLemma().toString();
}
catch ( JWNLException e )
{
System.out.println (e);
}
return null;
}
}
这是词干的代码,当我运行此代码时,我发现了这个异常
run:
1 初始化Stemmer时出错:net.didion.jwnl.JWNLException:无法安装net.didion.jwnl.dictionary.FileBackedDictionary net.didion.jwnl.JWNLException:无法安装net.didion.jwnl.dictionary.FileBackedDictionary 在net.didion.jwnl.util.factory.Element.install(Element.java:34) 在net.didion.jwnl.JWNL.initialize(JWNL.java:157) 在opennlp.stemmer。(stemmer.java:29) at opennlp.OpenNLP.main(OpenNLP.java:28) 引起:net.didion.jwnl.JWNLException:属性文件必须指定字典路径 at net.didion.jwnl.util.factory.AbstractValueParam.create(AbstractValueParam.java:34) 在net.didion.jwnl.dictionary.FileBackedDictionary.install(FileBackedDictionary.java:100) 在net.didion.jwnl.util.factory.Element.install(Element.java:32) ......还有3个 引起:net.didion.jwnl.JWNLException:无法创建类型为net.didion.jwnl.princeton.file.PrincetonRandomAccessDictionaryFile的文件管理器 在net.didion.jwnl.dictionary.file_manager.FileManagerImpl.create(FileManagerImpl.java:71) 在net.didion.jwnl.util.factory.AbstractValueParam.create(AbstractValueParam.java:32) ......还有5个 引起:java.io.FileNotFoundException:C:\ Program Files(x86)\ WordNet \ 2.1 \ dict \ verb.idx(系统找不到指定的文件) 在java.io.RandomAccessFile.open(本机方法) 在java.io.RandomAccessFile。(RandomAccessFile.java:241) 在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:46) 在net.didion.jwnl.dictionary.file.DictionaryCatalogSet.open(DictionaryCatalogSet.java:34) 在net.didion.jwnl.dictionary.file_manager.FileManagerImpl。(FileManagerImpl.java:54) 在net.didion.jwnl.dictionary.file_manager.FileManagerImpl.create(FileManagerImpl.java:69) ......还有6个 建立成功(总时间:0秒)