I suppose I detect a bug in UniqueLabelAssigner. Here it is.
phraseCos matrix is not column-length-normalized as I saw.
And assignLabels method is supposed the find the unique desired cluster count times pairs which are in decreasing order of pairs' value. But, I believe it should be done when phrase matrix is column-length-normalized.
Now think of a phraseCos matrix as below. The first selected pair should be phraseCos(3,1) but it will be phraseCos(4,3) as in the current code. And this cause different labels selected for the algorithm.