java - Lucene:新的 WordnetSynonymParser( boolean 去重、 boolean 展开、Analyzer 分析器)

标签 java lucene wordnet

请,WordnetSynonymParser 的构造函数接受三个参数:

boolean dedup, boolean expand and an Analyzer.

但是,什么是重复数据删除和扩展?我不明白。

文档 cites :

If dedup is true then identical rules (same input, same output) will be added only once.

这意味着什么?一个例子?还有参数expand

请帮助我...谢谢

最佳答案

dedup 值直接传递到 SynonymMap.Builder,并按照其说明进行操作。如果存在两个相同同义词规则,则仅使用其中之一。将其设置为 true 可能非常安全,除非您有理由不这样做。

要了解expand,其使用方法如下:

 if (expand) {
   for (int i = 0; i < size; i++) {
     for (int j = 0; j < size; j++) {
       add(synset[i], synset[j], false);
     }
   }
 } else {
   for (int i = 0; i < size; i++) {
     add(synset[i], synset[0], false);
   }
 }

因此,如果 Expand 为 true,它会为结果集中的每个可能的同义词组合添加一个同义词。如果为 false,它将创建同义词规则,以便每个同义词仅替换为列表中的第一个同义词。假设我们有一组同义词:“walk”、“stroll”和“amble

扩展,这将生成同义词:

walk -> walk
walk -> stroll
walk -> amble
stroll -> walk
stroll -> stroll
stroll -> amble
amble -> walk
amble -> stroll
amble -> amble

如果不扩展,您只会:

walk -> walk
stroll -> walk
amble -> walk

一般来说,我倾向于将其设置为 false,以便同义词匹配减少为一个主要同义词,但这确实取决于您的需求。

关于java - Lucene:新的 WordnetSynonymParser( boolean 去重、 boolean 展开、Analyzer 分析器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18500670/

相关文章:

python-2.7 - 在 python 2.7.3 中使用 Wordnet API 时出现属性错误

python - 如何将用户输入的字符串转换为正确的对象类型

java - maven2 - 如何从 pom 文件中列出所有资源库 url

java - 创建一个无法用NEW实例化的EJB

lucene - 如何在 Elasticsearch 中始终推荐不同的文档(文件)

java - StandardTokenizer 重写 final方法 setReader.(Ljava/io/Reader;)V

java - 获取树结构中所有可能的路径

java - 如何在Java中更快地读取大文本文件?

java - 如何在 Tomcat 上将 Rserve 与 JSP 一起使用? (Windows 7的)

java - 调试solr 4.6源码。获取 ClassNotFoundException : java. lang.ClassNotFoundException : solr. WhitespaceTokenizerFactory