请 WordnetSynonymParser 的构造函数接受三个参数:
boolean dedup, boolean expand and an Analyzer.
但是,什么是重复数据删除和扩展?我不明白。
文档cites:
如果重复数据删除为真,那么相同的规则(相同的输入,相同的输出)将是 只添加一次。
这意味着什么?一个例子?参数expand
?
请帮帮我,谢谢
答案 0 :(得分: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为true,则会为集合中每个可能的同义词组合的结果集添加同义词。如果它是假的,它将创建同义词规则,使得每个同义词仅被替换为列表中的第一个同义词。比如说,如果我们有一组同义词:“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,以便将同义词匹配缩减为一个主同义词,但这取决于您的需要。