欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-05-16 09:09:49
...

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<hits.length();i++){

Document doc=hits.doc(i);

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

for (int j=0;j<values.length;j++){

synList.add(values[j]);

}

}

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

}

}

相关标签: lucene J# Apache