【问题标题】:Lucene: new WordnetSynonymParser(boolean dedup,boolean expand, Analyzer analyzer)Lucene:新的 WordnetSynonymParser(boolean dedup,boolean expand, Analyzer 分析器)
【发布时间】:2013-08-29 00:53:52
【问题描述】:

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

boolean dedup, boolean expand and an Analyzer.

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

文档cites

如果 dedup 为真,那么相同的规则(相同的输入,相同的输出)将 只能添加一次。

什么意思?一个例子?而参数expand?

请帮帮我……谢谢

【问题讨论】:

    标签: java lucene wordnet


    【解决方案1】:

    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 为真,它会为结果集中的每个可能的同义词组合添加一个同义词。如果它是假的,它将创建同义词规则,这样每个同义词将仅被列表中的第一个同义词替换。假设我们有一组同义词:“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,以便同义词匹配减少到一个主要同义词,但这取决于您的需要。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-29
      • 1970-01-01
      相关资源
      最近更新 更多