我有很多文本,例如100。
我会保留其中10个最独特的。我制作了一个100x100矩阵,我用Levenshtein算法比较了它们中的每个文本。
是否有算法可以选择最独特的10个?
编辑:
我想要的是N个最独特的文本,无论我的第一个元素是什么,它都能最大化这个N文本之间的距离。
我想要最独特的,因为我会将这些文本发布到网上,我希望避免重复。
答案 0 :(得分:0)
长篇评论而不是答案......
我认为你没有明确说明你的要求。如何选择10个字符串集的第一个元素?它是与任何其他字符串具有最大距离的字符串(在这种情况下,您正在寻找数组中的最大元素)或与所有其他字符串具有最大距离的字符串(在这种情况下,您正在寻找最大的行) - 或数组中的列和。)
转到N(或你建议的10)最远的字符串,你有很多选择。
您可以选择阵列中的N个最大距离。我怀疑,没有看到你的数据,可能是离任何其他字符串最远的字符串也可能离其他几个字符串最远 - 我的意思是你可能会发现数组中N个最大的条目中的几个发生在同一行或列中。
您可以简单地选择行数最大的N个字符串。
或许您正在寻找一个N个字符串的集群,它可以最大化该集群中所有字符串与剩余100-N字符串中所有字符串之间的距离。这可能会让您更明显地看待聚类算法。
我建议您澄清您的要求并编辑您的问题。
答案 1 :(得分:0)
由于这看起来像是一个特征值问题,我会尝试在矩阵上执行Power iteration,并从结果向量中拒绝90个最高值。功率迭代通常在〜十次迭代内非常快地收敛。 BTW:该解决方案假设相似性矩阵。如果矩阵的条目是* dis *相似度(“距离”)的度量,则可能需要使用它们的反转。