【发布时间】:2013-08-29 00:53:52
【问题描述】:
WordnetSynonymParser的构造函数请接受三个参数:
boolean dedup, boolean expand and an Analyzer.
但是,什么是重复数据删除和扩展?我不明白。
文档cites:
如果 dedup 为真,那么相同的规则(相同的输入,相同的输出)将 只能添加一次。
什么意思?一个例子?而参数expand?
请帮帮我……谢谢
【问题讨论】:
WordnetSynonymParser的构造函数请接受三个参数:
boolean dedup, boolean expand and an Analyzer.
但是,什么是重复数据删除和扩展?我不明白。
文档cites:
如果 dedup 为真,那么相同的规则(相同的输入,相同的输出)将 只能添加一次。
什么意思?一个例子?而参数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 为真,它会为结果集中的每个可能的同义词组合添加一个同义词。如果它是假的,它将创建同义词规则,这样每个同义词将仅被列表中的第一个同义词替换。假设我们有一组同义词:“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,以便同义词匹配减少到一个主要同义词,但这取决于您的需要。
【讨论】: