擅长:python、mysql、java
<p>为了从我的评论中理解这一点,我只是从<a href="http://code.activestate.com/recipes/576874-levenshtein-distance/" rel="noreferrer">here</a>抓取了一个距离的实现,并计算了一些距离:</p>
<pre><code>d('House', 'hoose') = 2
d('House', 'trousers') = 4
d('trousers', 'hoose') = 5
</code></pre>
<p>现在,假设你的阈值是4。您必须合并<code>House</code>和{<cd2>},以及<code>House</code>和{<cd4>},但是<strong>不是</strong><code>trousers</code>和{<cd2>}。你确定这样的事情永远不会发生在你的数据上吗?在</p>
<p>最后,我认为更多的是一个聚类问题,所以你可能需要研究聚类算法。<a href="http://www.scipy.org/" rel="noreferrer">SciPy</a>提供了一个<a href="http://docs.scipy.org/doc/scipy/reference/cluster.hierarchy.html" rel="noreferrer">hierarchical clustering</a>的实现,它与自定义的距离函数一起工作(请注意,对于较大的数据集,这可能会非常慢,而且会消耗大量内存)。在</p>
<p>主要的问题是决定集群质量的度量,因为对于您的问题没有一个正确的解决方案。<a href="http://ww2.cs.mu.oz.au/~caleckie/ijcai99.pdf" rel="noreferrer">This paper</a>(pdf)为您提供了一个了解该问题的起点。在</p>