的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);
}
}
所以,如果擴大是真實的,它增加了一個同義詞在一組同義詞的每個可能的組合的結果集。如果它是錯誤的,它會創建同義詞規則,使得每個同義詞只會被列表中的第一個同義詞替換。再說了,如果我們有一組同義詞:「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,以便將同義詞匹配縮減爲一個主同義詞,但它取決於您的需要。