擅长:python、mysql、java
<p><code>fuzzywuzzy</code>提供了一个<code>process.extract*</code>函数族来帮助实现这一点,例如:</p>
<pre><code>from fuzzywuzzy import process
a = ['Express Scripts', 'Catamaran Corp', 'Banmedica SA (96.7892%)', 'WebMD', 'ODC', 'Caremerge LLC (Stake%)']
b = ['Doctor on Demand', 'Catamaran', 'Express Scripts Holding Corp', 'ODC, Inc.', 'WebMD Health Services', 'Banmedica']
for name in a:
print(name, process.extract(name, b, limit=3))
</code></pre>
<p>将打印出<code>a</code>中的每个名称和<code>b</code>中最匹配的三个名称。你知道吗</p>
<p>这仍然是<code>O(n**2)</code>,但是因为这个库是开放源代码,所以您可以看到<code>extract</code>是如何定义的,并且可能只做一次<a href="https://github.com/seatgeek/fuzzywuzzy/blob/master/fuzzywuzzy/process.py" rel="nofollow noreferrer">preprocessing</a>,而不是每次都做,这可能会加快速度</p>