.hierarchicalCluster(TextInstance.textInstancesSet);
int k = 30;
Set<Set<TextInstance>> clResponsePartition = completeLinkDendrogram
.partitionK(k);
Object[] clusters = clResponsePartition.toArray();
CSVFileWriter out = new CSVFileWriter("completeLinkClustersCSV.csv",
',');
Vector<String> header = new Vector<String>();
header.add("Cluster label");
out.writeFields(header);
Object[] textInstancesArray = TextInstance.textInstancesSet.toArray();
for (int i = 0; i < textInstancesArray.length; i++)
{
for (int j = 0; j < clusters.length; j++)
{
if (((Set<TextInstance>) clusters[j])
.contains(textInstancesArray[i]))
{
Vector<String> clusterLabel = new Vector<String>();
clusterLabel.add((j + 1) + "");
out.writeFields(clusterLabel);
}
}
}
out.close();
HierarchicalClusterer<TextInstance> slClusterer = new SingleLinkClusterer<TextInstance>(
TextInstance.EUCLIDEAN_DISTANCE);
Dendrogram<TextInstance> singleLinkDendrogram = slClusterer
.hierarchicalCluster(TextInstance.textInstancesSet);
Set<Set<TextInstance>> slResponsePartition = singleLinkDendrogram
.partitionK(k);
clusters = slResponsePartition.toArray();
out = new CSVFileWriter("singleLinkClustersCSV.csv", ',');
out.writeFields(header);
for (int i = 0; i < textInstancesArray.length; i++)
{
for (int j = 0; j < clusters.length; j++)
{
if (((Set<TextInstance>) clusters[j])
.contains(textInstancesArray[i]))
{
Vector<String> clusterLabel = new Vector<String>();
clusterLabel.add((j + 1) + "");
out.writeFields(clusterLabel);
}
}
}
out.close();
}