请WordnetSynonymParser的构造函数接受三个参数:
boolean dedup, boolean expand and an Analyzer.
但是,什么是重复数据删除和扩展?我不明白。
该文档引用:
如果 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,以便同义词匹配减少为一个主要同义词,但这取决于您的需要。