lucene-使用sandbox的wordnet完成同义词索引

阅读更多

wordnet是一个同义词系统。

1、从wordnet网站下载解压prolog16.tar.gz文件

2、获得sandbox工具箱wordnet包的二进制文件

3、建立同义词索引

java org.apache.lucene.wordnet.Syns2Index prologwn/wn_s.plwordnetindex

4、将WordNet中的同义词连接到分析器中

public class WordNetSynonymEngine implements SynonymEngine{

RAMDirectory directory;

IndexSearcher searcher;

 

public WordNetSynonymEngine(File index) throws IOException{

directory=newRAMDirectory(FSDirectory.getDirectory(index,false));

searcher=new IndexSearcher(directory);

}

public String[] getSynonms(String word) throws IOException{

ArrayList synList=new ArrayList();

Hits hits=searcher.search(new TermQUery(newTerm("word",word)));

 

for(int i=0;i

Document doc=hits.doc(i);

String[] values=doc.getValues("syn");

for (int j=0;j

synList.add(values[j]);

}

}

return (String[]) synList.toArray(new String[0]);

}

}

你可能感兴趣的:(lucene,J#,Apache)